*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: auto; }
html:has(body.has-smooth-scroll) { scroll-behavior: smooth; }

body {
    margin: 0;
    overflow-x: clip;
    background: var(--gianthi-paper);
    color: var(--gianthi-ink);
    font-family: var(--gianthi-font-sans);
    font-size: var(--gianthi-body-size, 16px);
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body.admin-bar .site-header { top: 32px; }
body.elementor-editor-active.admin-bar .site-header,
body.elementor-editor-preview.admin-bar .site-header { top: 0; }

.has-gianthi-motion .gianthi-reveal {
    opacity: 0;
    transform: translateY(var(--gianthi-motion-distance, 12px));
    transition: opacity var(--gianthi-motion-duration, 420ms) var(--gianthi-ease), transform var(--gianthi-motion-duration, 420ms) var(--gianthi-ease);
}
.has-gianthi-motion .gianthi-reveal.is-gianthi-visible { opacity: 1; transform: none; }

img,
svg,
video { display: block; max-width: 100%; height: auto; }

a { color: var(--gianthi-bronze); text-decoration-thickness: .08em; text-underline-offset: .2em; }
a:hover { color: var(--gianthi-gold); }

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0 0 .45em;
    color: var(--gianthi-ink);
    font-family: var(--gianthi-font-display);
    max-width: 100%;
    font-weight: 600;
    letter-spacing: -.035em;
    line-height: 1.02;
    overflow-wrap: break-word;
}

h1 { font-size: clamp(2.65rem, 4.55vw, 4rem); }
h2 { font-size: clamp(1.95rem, 3vw, 2.8rem); }
h3 { font-size: clamp(1.35rem, 1.85vw, 1.75rem); }
h4 { font-size: clamp(1.15rem, 1.4vw, 1.38rem); }

p { margin: 0 0 1.25em; }

button,
input,
select,
textarea { font: inherit; }

button,
a { -webkit-tap-highlight-color: transparent; }

:focus-visible {
    outline: 3px solid var(--gianthi-champagne);
    outline-offset: 3px;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.screen-reader-text:focus,
.skip-link:focus {
    z-index: 100000;
    top: 12px;
    left: 12px;
    width: auto;
    height: auto;
    padding: 12px 18px;
    clip: auto;
    background: var(--gianthi-paper);
    color: var(--gianthi-ink);
}

.gianthi-container {
    width: min(100% - (2 * var(--gianthi-gutter)), var(--gianthi-container));
    margin-inline: auto;
}

.gianthi-shell { padding-block: var(--gianthi-section); }
.site-main--elementor { overflow: clip; }

.entry-content { max-width: var(--gianthi-reading); }
.entry-content > * + * { margin-top: 1.35em; }

@media (max-width: 782px) {
    body.admin-bar .site-header { top: 46px; }
    body.elementor-editor-active.admin-bar .site-header,
    body.elementor-editor-preview.admin-bar .site-header { top: 0; }
}

@media (max-width: 767px) {
    body { font-size: 15.5px; line-height: 1.62; }
    h1 { font-size: clamp(2.18rem, 9.6vw, 2.85rem); }
    h2 { font-size: clamp(1.75rem, 7.8vw, 2.2rem); }
    h3 { font-size: clamp(1.3rem, 6vw, 1.62rem); }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .gianthi-reveal { opacity: 1 !important; transform: none !important; }
}
