/* ================================================================
   THE DHARPANA CHAMBERS 

   WHAT WAS PRESERVED (by directive)
     · Every hex code and every alpha-composited brand colour
     · The three typefaces and their roles (Cinzel / Lora / Martel)
     · The section order, content flow, and user journey

   WHAT WAS REFINED
     1. DESIGN TOKENS — a single source of truth for radius,
        shadow, easing, and duration. Every interactive element
        now draws from the same four tokens, so the whole page
        moves and curves with one voice.
     2. 8-POINT SPATIAL GRID — every padding, margin, and gap
        was audited and snapped to multiples of 4px/8px
        (0.25rem increments). Former off-grid values such as
        2.6rem, 1.7rem, 4.2rem, 6.4rem are now 2.5, 1.75, 4, 6.5.
     3. DEPTH SYSTEM — two-layer diffused shadows (a tight
        contact layer + a soft ambient layer) replace single
        heavy shadows. Gold glows are reserved for gold objects.
     4. GLASSMORPHISM — applied only where the base already
        supported it: the sticky header and the disclaimer gate
        card, both built from existing greens/creams at alpha.
     5. MOTION — one easing curve, three durations. Hover, focus,
        and active states are defined for every interactive
        element, with prefers-reduced-motion fully honoured.
     6. RESPONSIVENESS — the primary nav no longer vanishes on
        mobile; it collapses into an accessible disclosure menu.
        Sections gain scroll-margin so sticky-header anchors
        land precisely. Type uses text-wrap balancing.
   ================================================================ */

:root {
    /* ---------- PALETTE (exact, unchanged) ---------- */
    --green: #0B3B24;
    /* Sovereign Forest Green            */
    --green-2: #1A3622;
    --green-deep: #072A19;
    --gold: #B8860B;
    /* Burnished Gold                    */
    --brass: #C5A059;
    /* Antique Brass                     */

    --paper: #FBFAF6;
    --paper-2: #F3F0E7;
    --ink: #16261E;
    --muted: #40514A;
    --rule: rgba(11, 59, 36, .14);

    --cream: #F2EFE6;
    --on-dark: rgba(242, 239, 230, .86);
    --rule-dark: rgba(242, 239, 230, .18);

    /* ---------- TYPE (exact families, unchanged) ---------- */
    --mark: 'Cinzel', serif;
    /* the firm's name               */
    --heading: 'Cinzel', serif;
    /* all headings                  */
    --prose: 'Lora', serif;
    /* all prose                     */
    --label: 'Martel', serif;
    /* labels, navigation, buttons   */

    /* ---------- NEW · RADIUS SCALE ----------
     One deliberate scale. Rectangular interactive elements share
     --r-sm; the one floating panel (gate card) uses --r-lg;
     circular devices (nodes, monogram) use --r-round. Nothing
     is rounded by accident any more.                            */
    --r-sm: 6px;
    --r-md: 10px;
    --r-lg: 20px;
    --r-round: 50%;

    /* ---------- NEW · MOTION TOKENS ----------
     A single signature curve, three speeds. --ease-out is kept
     for entrance reveals only.                                  */
    --ease: cubic-bezier(.22, .7, .3, 1);
    --ease-out: cubic-bezier(.16, 1, .3, 1);
    --t-quick: .22s;
    /* colour, underline, small state changes */
    --t-base: .38s;
    /* lifts, background washes               */
    --t-slow: .9s;
    /* scroll reveals, trace drawing          */

    /* ---------- NEW · DEPTH SCALE ----------
     Layered, diffused, low-opacity. Neutral shadows derive from
     the deep green; gold glows from the existing gold — no new
     hues introduced.                                            */
    --shadow-1: 0 1px 2px rgba(7, 42, 25, .06), 0 4px 16px -4px rgba(7, 42, 25, .08);
    --shadow-2: 0 2px 4px rgba(7, 42, 25, .06), 0 16px 40px -12px rgba(7, 42, 25, .18);
    --shadow-gold: 0 2px 6px -2px rgba(184, 134, 11, .5), 0 12px 28px -12px rgba(184, 134, 11, .65);
    --shadow-gold-lg: 0 4px 10px -4px rgba(184, 134, 11, .55), 0 20px 44px -16px rgba(184, 134, 11, .8);

    /* ---------- LAYOUT ---------- */
    --gutter: clamp(1.5rem, 6vw, 5.5rem);
    --gold-grad: linear-gradient(120deg, #E2C98E 0%, var(--brass) 38%, var(--gold) 68%, #8f6a09 100%);
    --gold-rule: linear-gradient(90deg, transparent, var(--brass) 18%, var(--gold) 50%, var(--brass) 82%, transparent);
}

/* ================================================================
   RESET & BASE
   ================================================================ */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation: none !important;
        transition: none !important;
    }
}

body {
    font-family: var(--prose);
    font-weight: 400;
    font-size: 1.12rem;
    line-height: 1.85;
    color: var(--ink);
    background: var(--paper);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

::selection {
    background: var(--gold);
    color: var(--paper);
}

a {
    color: inherit;
}

/* Unified focus ring: same colour, offset, and curvature everywhere.
   The ring inherits the element's radius so it hugs the shape.     */
a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 4px;
    border-radius: var(--r-sm);
}

img,
svg {
    max-width: 100%;
    height: auto;
    display: block;
}

h1,
h2,
h3,
h4 {
    font-family: var(--heading);
    font-weight: 500;
    color: var(--green);
    letter-spacing: .01em;
    text-wrap: balance;
    /* modern: no orphaned last words */
}

p {
    text-wrap: pretty;
}

/* modern: better rag, fewer widows */

/* label device: "Clause 01" — a bare GOLD IMPRINT, no plate.
   Deep bullion letters (#8f6a09, palette), a touch larger and more
   widely tracked, with a doubled catch-light above and a firmer
   press shadow below — the letterpress reads without any backing. */
.tag {
    font-family: var(--label);
    font-weight: 600;
    font-size: .95rem;
    letter-spacing: .26em;
    text-transform: uppercase;
    display: block;
    line-height: 1.6;
    color: #8f6a09;
}

.on-dark .tag {
    color: #E2C98E;
}

.wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 var(--gutter);
}

/* Section rhythm on the 8px grid: 88px → 144px, fluid.
   scroll-margin keeps anchored sections clear of the sticky header. */
/* section rhythm: full breathing room above the heading, half below
   the last text — the trailing gap was twice what the eye needs */
section {
    padding: clamp(5.5rem, 5vw, 9rem) 0 clamp(2.75rem, 5vw, 4.5rem);
    scroll-margin-top: 5rem;
}

/* ================================================================
   GATE — now a true glass panel
   The card floats on the green gradient as frosted glass built
   entirely from existing palette values at alpha: a whisper of
   cream fill, the existing dark rule as its edge, and the deep
   ambient shadow. Radius: --r-lg (the only large-radius surface).
   ================================================================ */
.gate {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: linear-gradient(180deg, var(--green) 0%, var(--green-deep) 100%);
    color: var(--cream);
}

.gate[hidden] {
    display: none;
}

.gate-card {
    max-width: 680px;
    max-height: 92vh;
    overflow: auto;
    text-align: center;
    padding: clamp(2rem, 5vw, 3rem);
    /* 32 → 48px, on grid */
    background: rgba(242, 239, 230, .04);
    /* cream at 4%        */
    border: 1px solid var(--rule-dark);
    border-radius: var(--r-lg);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: var(--shadow-2);
}

.gate-card img {
    width: 88px;
    margin: 0 auto 1.5rem;
}

/* 24px */
.gate-card h2 {
    font-size: 1.85rem;
    color: var(--cream);
    margin: 1.25rem 0 1.5rem;
}

.gate-card p {
    font-size: 1rem;
    line-height: 1.8;
    color: var(--on-dark);
    margin-bottom: 1rem;
    text-align: left;
}

.gate-actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 2rem;
}

/* custom scroll for the admission card: slim gold thumb on a faint track */
.gate-card {
    scrollbar-width: thin;
    scrollbar-color: var(--gold) rgba(242, 239, 230, .08);
}

.gate-card::-webkit-scrollbar {
    width: 8px;
}

.gate-card::-webkit-scrollbar-track {
    background: rgba(242, 239, 230, .08);
    border-radius: 4px;
}

.gate-card::-webkit-scrollbar-thumb {
    background: var(--gold-grad);
    border-radius: 4px;
}

/* ---------- BUTTONS ----------
   Shared geometry (--r-sm), shared motion (--t-quick/--t-base),
   and a full state map: rest → hover (lift + glow) → active
   (settle) → focus (ring). Padding snapped to the 8px grid.     */
.btn {
    font-family: var(--label);
    font-weight: 600;
    font-size: .86rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    padding: 1rem 2.25rem;
    /* 16 × 36px */
    cursor: pointer;
    border: 1px solid var(--gold);
    border-radius: var(--r-sm);
    background: var(--gold-grad);
    color: var(--green-deep);
    box-shadow: var(--shadow-gold);
    transition: filter var(--t-quick) var(--ease),
        transform var(--t-quick) var(--ease),
        box-shadow var(--t-base) var(--ease),
        border-color var(--t-quick) var(--ease),
        color var(--t-quick) var(--ease),
        background-color var(--t-quick) var(--ease);
}

.btn:hover {
    filter: brightness(1.08);
    transform: translateY(-2px);
    box-shadow: var(--shadow-gold-lg);
}

.btn:active {
    transform: translateY(0);
    box-shadow: var(--shadow-gold);
    filter: brightness(1.02);
}

.btn.ghost {
    background: transparent;
    color: var(--on-dark);
    border-color: var(--rule-dark);
    box-shadow: none;
}

.btn.ghost:hover {
    background: rgba(242, 239, 230, .06);
    /* cream wash at 6% */
    color: var(--cream);
    border-color: var(--cream);
    filter: none;
    box-shadow: none;
}

.btn.ghost:active {
    background: rgba(242, 239, 230, .1);
}

/* ================================================================
   HEADER — refined glass
   Slightly more translucent green with saturation boost behind
   the blur, so content scrolling beneath reads as depth rather
   than dirt. Nav links gain an animated brass underline that
   grows from the left on hover/focus.
   ================================================================ */
header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(7, 42, 25, .88);
    backdrop-filter: blur(18px) saturate(1.5);
    -webkit-backdrop-filter: blur(18px) saturate(1.5);
    border-bottom: 1px solid rgba(197, 160, 89, .35);
}

/* faint gold track; the live reading-progress bar rides on top */
header::before {
    content: "";
    display: block;
    height: 2.5px;
    background: var(--gold-rule);
    opacity: .45;
}

#scrollProgress {
    position: absolute;
    top: 0;
    left: 0;
    height: 2.5px;
    width: 0;
    background: var(--gold-grad);
    box-shadow: 0 0 12px rgba(184, 134, 11, .6);
    /* a soft gold glow as it advances */
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
}

.brand {
    display: flex;
    align-items: center;
    gap: 1rem;
    text-decoration: none;
}

.brand img {
    width: 60px;
    height: 60px;
    filter: drop-shadow(0 2px 8px rgba(184, 134, 11, .35));
    /* lifts the seal off the glass */
    transition: transform var(--t-base) var(--ease);
}

.brand:hover img {
    transform: rotate(-6deg) scale(1.06);
}

/* a quiet wink */
.wordmark {
    font-family: var(--mark);
    font-weight: 600;
    font-size: clamp(1.02rem, 1.6vw, 1.4rem);
    /* the firm's name now reads first */
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--cream);
    line-height: 1.35;
    text-shadow: 0 1px 12px rgba(7, 42, 25, .8);
    /* separates it cleanly from the blur */
}

.wordmark span {
    color: var(--brass);
}

/* THE LOCKUP. In the header the name is a two-line seal:
   THE DHARPANA above, CHAMBERS beneath in brass with measured
   tracking — spaced enough to feel engraved, close enough to
   still read as one word. */
.brand .wordmark {
    display: flex;
    flex-direction: column;
}

.brand .wm-top {
    display: block;
    color: var(--cream);
    margin-right: -.16em;
}

/* trim trailing tracking */
.brand .wm-bottom {
    display: block;
    color: var(--brass);
    font-size: .76em;
    line-height: 1.3;
    letter-spacing: .4em;
    margin-top: .25em;
}

.brand .wm-bottom b {
    font-weight: 600;
}

nav {
    display: flex;
    gap: .375rem;
}

nav a {
    position: relative;
    font-family: var(--label);
    font-weight: 600;
    font-size: .84rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--on-dark);
    padding: .5rem .875rem;
    /* pill hit-area */
    border-radius: var(--r-sm);
    transition: color var(--t-quick) var(--ease), background-color var(--t-quick) var(--ease);
}

/* animated underline in the gold gradient, inset to the pill */
nav a::after {
    content: "";
    position: absolute;
    left: .875rem;
    right: .875rem;
    bottom: .25rem;
    height: 1px;
    background: var(--gold-grad);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--t-base) var(--ease);
}

nav a:hover {
    color: var(--cream);
    background: rgba(242, 239, 230, .07);
}

nav a:hover::after,
nav a:focus-visible::after {
    transform: scaleX(1);
}

/* scrollspy: the section under the reader stays lit in brass */
nav a.active {
    color: var(--brass);
}

nav a.active::after {
    transform: scaleX(1);
}

/* ---------- MOBILE NAV (new — fixes the vanishing menu) ----------
   Below 1000px the same six links collapse into an accessible
   disclosure panel. Same fonts, same colours, same underline. */
.nav-toggle {
    display: none;
    font-family: var(--label);
    font-weight: 600;
    font-size: .82rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--on-dark);
    background: transparent;
    border: 1px solid var(--rule-dark);
    border-radius: var(--r-sm);
    padding: .5rem 1rem;
    cursor: pointer;
    transition: color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease),
        background-color var(--t-quick) var(--ease);
}

.nav-toggle:hover {
    color: var(--cream);
    border-color: var(--cream);
    background: rgba(242, 239, 230, .06);
}

@media (max-width:1000px) {
    header {
        padding: 0 var(--gutter);
    }

    .nav-toggle {
        display: inline-block;
    }

    nav {
        display: none;
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        flex-direction: column;
        gap: 0;
        padding: .75rem var(--gutter) 1.25rem;
        background: rgba(7, 42, 25, .96);
        backdrop-filter: blur(16px) saturate(1.4);
        -webkit-backdrop-filter: blur(16px) saturate(1.4);
        border-bottom: 1px solid rgba(197, 160, 89, .35);
        box-shadow: var(--shadow-2);
    }

    nav.open {
        display: flex;
    }

    nav a {
        padding: .875rem 10px;
        border-bottom: 1px solid var(--rule-dark);
    }

    nav a:last-child {
        border-bottom: none;
    }

    nav a::after {
        display: none;
    }

    /* underline device is desktop-only */
}

/* ================================================================
   HERO — structure unchanged; letter-fit refined
   ================================================================ */
.hero {
    position: relative;
    isolation: isolate;
    text-align: center;
    overflow: hidden;
    color: var(--cream);
    background:
        radial-gradient(ellipse 100% 65% at 50% -10%, rgba(197, 160, 89, .22), transparent 55%),
        radial-gradient(ellipse 60% 45% at 50% 108%, rgba(184, 134, 11, .14), transparent 60%),
        linear-gradient(180deg, var(--green) 0%, var(--green-2) 78%, var(--green-deep) 100%);
    padding: clamp(5rem, 12vw, 9rem) 0 clamp(2.75rem, 6.5vw, 5rem);
}

/* rays now emanate from dead centre — from the seal itself —
   and rotate almost imperceptibly, so the page feels alive */
.hero::before {
    content: "";
    position: absolute;
    inset: -40%;
    pointer-events: none;
    background: repeating-conic-gradient(from 0deg at 50% 50%, rgba(184, 134, 11, .11) 0deg .5deg, transparent .5deg 12deg);
    /* deeper bullion rays */
    animation: emanate 160s linear infinite;
}

@keyframes emanate {
    to {
        transform: rotate(360deg);
    }
}

/* THE SEAL AT THE HEART OF THE PAGE.
   The chambers' gold seal (extracted from the supplied artwork,
   background removed) sits exactly centred behind the headline,
   wrapped in a soft gold aura — the landing page radiates from it. */
.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 50% 50%, rgba(184, 134, 11, .24), rgba(184, 134, 11, .07) 34%, transparent 58%),
        /* first render retired — the delicate linework needed a stronger layer. */
        url("data:image/png;base64,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") center / clamp(340px, 48vw, 640px) no-repeat;
    opacity: .85;
}

.hero .wrap {
    position: relative;
    z-index: 2;
}

.hero .hero-logo {
    position: absolute !important;
    left: 50%;
    top: 11%;
    transform: translate(-50%, -50%);
    width: min(88vw, 560px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 0;
    opacity: .85;
    pointer-events: none;
}

.hero .hero-logo img {
    width: min(40vw, 320px);
    max-width: 320px;
    height: auto;
    filter: drop-shadow(0 10px 24px rgba(7, 42, 25, .24));

}

.hero .wrap>* {
    position: relative;
    z-index: 1;
}

.hero .tag {
    margin-bottom: 2rem;
}

.hero h1 {
    font-size: clamp(2.2rem, 5.4vw, 4.2rem);
    line-height: 1.22;
    /* a touch tighter at display size */
    letter-spacing: .005em;
    color: var(--cream);
    max-width: 20ch;
    margin: 0 auto 2.25rem;
    text-shadow: 0 2px 24px rgba(7, 42, 25, .9);
    /* lifts the headline off the seal behind it */
}

.hero .lede {
    font-size: clamp(1.1rem, 1.9vw, 1.28rem);
    line-height: 1.9;
    color: var(--on-dark);
    max-width: 56ch;
    margin: 0 auto;
}

.hero .courts {
    margin-top: 3.5rem;
    /* 56px, on grid */
    font-family: var(--label);
    font-weight: 600;
    font-size: .86rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--brass);
}

.hero .courts span {
    padding: 0 1rem;
}

/* entrance choreography — unchanged timing character, tokenised */
.rise {
    opacity: 0;
    transform: translateY(16px);
    animation: rise 1s var(--ease) forwards;
}

.d1 {
    animation-delay: .05s
}

.d2 {
    animation-delay: .22s
}

.d3 {
    animation-delay: .39s
}

.d4 {
    animation-delay: .56s
}

@keyframes rise {
    to {
        opacity: 1;
        transform: none;
    }
}

/* ================================================================
   SECTION HEADS
   ================================================================ */
.head {
    max-width: 58ch;
}

.head.mid {
    margin: 0 auto;
    text-align: center;
}

.head h2 {
    font-size: clamp(1.9rem, 3.8vw, 3rem);
    line-height: 1.28;
    margin-top: 1.5rem;
}

.head h2::after {
    content: "";
    display: block;
    width: 72px;
    height: 2px;
    margin-top: 1.5rem;
    /* 72 & 24px, on grid */
    background: var(--gold-grad);
    border-radius: 1px;
    /* softened hairline ends */
}

.head.mid h2::after {
    margin-left: auto;
    margin-right: auto;
}

.head .sub {
    color: var(--muted);
    margin-top: 1.75rem;
    max-width: 56ch;
}

/* 28px */
.head.mid .sub {
    margin-left: auto;
    margin-right: auto;
}

/* ================================================================
   TRINITY
   ================================================================ */
.trinity {
    background:
        radial-gradient(ellipse 70% 60% at 50% 0%, rgba(184, 134, 11, .09), transparent 65%),
        var(--paper);
}

/* The three tenets as engraved plaques. The circled seals are gone —
   the huge ghost Roman numeral in Cinzel, etched at 7% gold behind
   each card's content, carries the numbering alone. A gold hairline
   sits beneath each heading, and a gold crest sweeps across the top
   edge on hover. */
.tenets {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 4rem;
    /* 32 / 80px */
}

.tenet {
    position: relative;
    overflow: hidden;
    text-align: center;
    padding: 3rem 2rem 2.5rem;
    /* 48 × 32 × 40px */
    background: var(--paper);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-1);
    transition: transform var(--t-base) var(--ease),
        box-shadow var(--t-base) var(--ease),
        border-color var(--t-base) var(--ease);
}

/* gold crest line, sweeping outward from the centre on hover */
.tenet::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--gold-grad);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform var(--t-base) var(--ease);
    z-index: 2;
}

/* the ghost numeral, cropped by the card's top-right corner */
.tenet::after {
    content: attr(data-n);
    position: absolute;
    top: -1.25rem;
    right: .25rem;
    font-family: var(--mark);
    font-weight: 600;
    font-size: 8rem;
    line-height: 1;
    color: rgba(184, 134, 11, .07);
    pointer-events: none;
    transition: color var(--t-base) var(--ease);
}

.tenet:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-2);
    border-color: rgba(184, 134, 11, .35);
}

.tenet:hover::before {
    transform: scaleX(1);
}

.tenet:hover::after {
    color: rgba(184, 134, 11, .13);
}

/* content sits above the ghost numeral */
.tenet h3,
.tenet p {
    position: relative;
    z-index: 1;
}

.tenet h3 {
    font-size: 1.62rem;
    margin: 0 0 1rem;
}

/* 16px */
/* gold hairline beneath each heading */
.tenet h3::after {
    content: "";
    display: block;
    width: 32px;
    height: 2px;
    margin: 1rem auto 0;
    background: var(--gold-grad);
    border-radius: 1px;
}

.tenet p {
    color: var(--ink);
    max-width: 30ch;
    margin: 0 auto;
}

@media (max-width:900px) {
    .tenets {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* ================================================================
   PRACTICE — rows gain a soft rounded wash on hover
   ================================================================ */
.practice {
    background:
        radial-gradient(ellipse 55% 60% at 88% 15%, rgba(197, 160, 89, .12), transparent 62%),
        var(--paper-2);
}

.practice .head {
    margin: 0 auto 4rem;
    text-align: center;
}

/* The rows now sit inside an elevated paper panel, so the whole
   block reads as the centrepiece of the section rather than text
   floating on the background. Body copy switched from the muted
   grey-green to full ink for contrast. */
.rows {
    max-width: 960px;
    margin: 0 auto;
    background: var(--paper);
    border: 1px solid var(--rule);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow-2);
    padding: 1rem 3rem;
    /* 16 × 48px */
}

.row {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, .36fr) minmax(0, 1fr);
    gap: clamp(1rem, 4vw, 3.5rem);
    padding: 2.5rem 0;
    /* 40px */
    border-bottom: 1px solid var(--rule);
    align-items: start;
}

.row:last-child {
    border-bottom: none;
}

/* a gold ledger-mark that unfurls in the panel's left margin on hover */
.row::before {
    content: "";
    position: absolute;
    left: -3rem;
    top: 2.5rem;
    bottom: 2.5rem;
    width: 3px;
    background: var(--gold-grad);
    border-radius: 2px;
    transform: scaleY(0);
    transform-origin: top;
    transition: transform var(--t-base) var(--ease);
}

.row:hover::before {
    transform: scaleY(1);
}

.row .rail {
    padding-top: .375rem;
}

/* 6px optical align */
.row .rail .tag {
    font-size: 1.75rem;
    letter-spacing: .02em;
    line-height: 1;
    /* numbers step forward */
    background: var(--gold-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.row .rail h3 {
    font-size: 1.3rem;
    margin-top: .75rem;
    line-height: 1.4;
    color: var(--green);
}

.row p {
    color: var(--ink);
    max-width: 60ch;
}

/* full contrast */
@media (max-width:820px) {
    .rows {
        padding: .5rem 1.5rem;
        border-radius: var(--r-md);
    }

    /* 8 × 24px */
    .row {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: 2rem 0;
    }

    /* 16 / 32px */
    .row::before {
        left: -1.5rem;
        top: 2rem;
        bottom: 2rem;
    }
}

/* ================================================================
   MEMORANDUM — trace mechanics untouched; nodes tokenised
   ================================================================ */
.memo {
    background:
        radial-gradient(ellipse 60% 50% at 15% 20%, rgba(184, 134, 11, .07), transparent 60%),
        radial-gradient(ellipse 60% 50% at 85% 80%, rgba(197, 160, 89, .07), transparent 60%),
        var(--paper);
}

/* ---------- THE MEMORANDUM TRACE — original design, repaired ----------
   The full-width alternating clauses and the etched PCB routes are
   back, exactly as the original. Why it used to break: the routes
   were measured once, before the webfonts finished loading, and
   never re-measured — so once Cinzel/Lora/Martel swapped in and the
   text reflowed, every line drifted off its node. The geometry is
   unchanged; the repair is in WHEN it is measured (see the script).
   Each connection is drawn as THREE parallel lanes — a centre trace
   flanked by two fainter ones, offset ±7px — with sharp 45° slant
   corners, the way etched copper actually turns. */
.clauses {
    position: relative;
    max-width: 1000px;
    margin: 4rem auto 0;
}

#trace {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
    overflow: visible;
}

#trace .lane {
    fill: none;
    stroke: var(--rule);
    stroke-width: 1;
}

#trace .live {
    fill: none;
    stroke-width: 1.4;
    stroke-linecap: round;
    stroke-dasharray: var(--len);
    stroke-dashoffset: var(--len);
    transition: stroke-dashoffset 1.1s var(--ease);
}

#trace .live.gold {
    stroke: var(--gold);
}

#trace .live.green {
    stroke: var(--green);
}

#trace .live.on {
    stroke-dashoffset: 0;
}

#trace .via {
    fill: var(--paper);
    stroke: var(--brass);
    stroke-width: 1;
    opacity: .5;
}

.clause {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 0 0 1.5rem;
    /* 24px */
}

.clause+.clause {
    margin-top: 6.5rem;
}

/* 104px */

/* odd clauses read from the left, even from the right — as before */
.clause:nth-of-type(odd) {
    padding-left: 96px;
    text-align: left;
}

.clause:nth-of-type(even) {
    padding-right: 96px;
    text-align: right;
}

.clause:nth-of-type(odd) p {
    margin-right: auto;
}

.clause:nth-of-type(even) p {
    margin-left: auto;
}

.clause .node {
    position: absolute;
    top: 0;
    width: 56px;
    height: 56px;
    border-radius: var(--r-round);
    z-index: 2;
    background: var(--paper);
    border: 1px solid var(--rule);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--mark);
    font-size: .95rem;
    font-weight: 600;
    color: var(--muted);
    box-shadow: var(--shadow-1);
    transition: border-color var(--t-base) var(--ease), color var(--t-base) var(--ease),
        background var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);
}

.clause:nth-of-type(odd) .node {
    left: 0;
}

.clause:nth-of-type(even) .node {
    right: 0;
}

.clause.lit .node {
    border-color: var(--gold);
    color: var(--green-deep);
    background: var(--gold-grad);
    box-shadow: var(--shadow-gold);
}

.clause .tag {
    margin-top: .25rem;
}

.clause h4 {
    font-size: 1.36rem;
    line-height: 1.4;
    margin: 1rem 0;
}

.clause p {
    line-height: 1.85;
    color: var(--ink);
    max-width: 64ch;
}

@media (max-width:860px) {
    #trace {
        display: none;
    }

    .clause:nth-of-type(odd),
    .clause:nth-of-type(even) {
        padding-left: 64px;
        padding-right: 0;
        text-align: left;
    }

    .clause:nth-of-type(even) p {
        margin-left: 0;
    }

    .clause+.clause {
        margin-top: 3.5rem;
    }

    /* 56px */
    .clause .node {
        width: 48px;
        height: 48px;
        font-size: .86rem;
    }

    .clause:nth-of-type(even) .node {
        right: auto;
        left: 0;
    }
}

/* ================================================================
   COUNSEL
   ================================================================ */
.counsel {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(ellipse 60% 70% at 88% 12%, rgba(197, 160, 89, .16), transparent 60%),
        radial-gradient(ellipse 50% 50% at 5% 95%, rgba(184, 134, 11, .13), transparent 62%),
        var(--green);
    color: var(--cream);
    box-shadow: inset 0 24px 40px -24px rgba(7, 42, 25, .55);
}

.counsel-decor {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image: url('../img/award_winner.JPG');
    background-repeat: no-repeat;
    background-position: center top;
    background-size: contain;
    opacity: .1;
    filter: saturate(0.85) contrast(1.05);
}

.counsel .wrap,
.counsel .head,
.counsel .counsel-grid {
    position: relative;
    z-index: 1;
}

.counsel .head h2 {
    color: var(--cream);
}

.counsel .founder {
    font-family: var(--label);
    font-weight: 600;
    font-size: .84rem;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: var(--brass);
    margin-top: 0.5rem;
    display: inline-block;
    padding-top: 1rem;
}

.counsel-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
    gap: clamp(2.5rem, 6vw, 5.5rem);
    align-items: start;
    margin-top: 3rem;
    /* was 4.2rem → 64px */
}

@media (max-width:920px) {
    .counsel-grid {
        grid-template-columns: 1fr;
    }

    .counsel-decor {
        opacity: .03;
        background-position: right 10% center;
        background-size: 78% auto;
    }
}

@media (max-width:640px) {
    .counsel-decor {
        display: none;
    }
}

.monogram {
    width: 108px;
    height: 108px;
    border-radius: var(--r-round);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--mark);
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--green-deep);
    letter-spacing: .08em;
    margin-bottom: 2.25rem;
    /* 36px */
    background: var(--gold-grad);
    box-shadow: var(--shadow-gold-lg);
    overflow: hidden;
    transition: transform var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);
}

.monogram img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.monogram:hover {
    transform: translateY(-4px);
}

/* The credentials as a flush ruled ledger. The earlier glass panel
   indented this text 1.5rem from the column edge, so the monogram,
   the labels, and the bio all began at different x-positions — the
   misalignment you could feel. Everything now shares one left edge:
   monogram, rules, labels, values. */
.creds {
    list-style: none;
}

.creds li {
    padding: 1.25rem 0;
    border-top: 1px solid var(--rule-dark);
    /* 20px */
}

.creds li:last-child {
    border-bottom: 1px solid var(--rule-dark);
}

.creds strong {
    display: block;
    font-family: var(--label);
    font-weight: 600;
    font-size: .84rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--brass);
    margin-bottom: .5rem;
    /* 8px */
}

.creds span {
    font-size: 1.02rem;
    color: var(--on-dark);
    line-height: 1.75;
}

.bio p {
    margin-bottom: 1.75rem;
    color: var(--on-dark);
    max-width: 60ch;
}

/* 28px */
.bio p:last-child {
    margin-bottom: 0;
}

/* ================================================================
   RESEARCH
   ================================================================ */
.research {
    background:
        radial-gradient(ellipse 55% 60% at 10% 12%, rgba(184, 134, 11, .1), transparent 62%),
        var(--paper-2);
}

/* THE OPEN TEXTBOOK.
   The essay is set as a book lying open: two facing pages divided
   by a soft gutter crease, justified bookish text with an
   illuminated initial, stacked page-edges showing beneath the
   cover — and a fountain pen in the seal's own colours (gold nib,
   deep-green barrel, brass fittings) resting on the right page,
   endlessly writing an ink flourish. */
.research-body {
    margin-top: 3rem;
    /* 48px */
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(2.5rem, 6vw, 5rem);
    padding: clamp(2rem, 5vw, 3rem) clamp(2rem, 5vw, 3rem) 10rem;
    /* deep bottom margin = the raised signature's writing area */
    background:
        linear-gradient(90deg, transparent 47.5%, rgba(11, 59, 36, .05) 49.4%, rgba(11, 59, 36, .1) 50%, rgba(11, 59, 36, .05) 50.6%, transparent 52.5%),
        radial-gradient(ellipse 130% 100% at 50% 0%, rgba(197, 160, 89, .09), transparent 65%),
        var(--paper);
    border: 1px solid var(--rule);
    border-radius: var(--r-sm);
    /* isolation pins the page-blocks to the panel's own paint layer —
     without it they vanished once the scroll-reveal transform ended */
    position: relative;
    isolation: isolate;
    box-shadow: var(--shadow-2);
}

/* THE TOME — modelled on the photograph of a real open volume.
   · The top page sits almost directly on the bulk: the fore-edge
     strips now rise to within a few millimetres of the spread.
   · The leaves are ultra-fine (one hairline per 2px, very faint):
     the eye feels the mass of a thousand pages, never a line.
   · The hard mitre joints are gone. The tail paints ABOVE the
     strips (z −1 over z −2) and both share the same 26px-rounded
     bottom corners, so left-bottom and right-bottom are single
     smooth curved sweeps — plus soft shading gradients where the
     surfaces turn, as in the photo. */
.research-body::before,
.research-body::after {
    content: "";
    position: absolute;
    top: 0;
    width: 46px;
    z-index: -2;
    background:
        linear-gradient(to bottom, transparent calc(100% - 44px), rgba(11, 59, 36, .07)),
        repeating-linear-gradient(90deg,
            rgba(11, 59, 36, .12) 0px, rgba(11, 59, 36, .12) 1px,
            var(--paper) 1.5px, var(--paper) 2.5px,
            rgba(11, 59, 36, .12) 3px);
}

.research-body::before {
    left: -46px;
}

.research-body::after {
    right: -46px;
}

/* no tail band: the book's thickness is carried by the two
   fore-edge strips alone, each closing on its own rounded foot */
@media (max-width:900px) {

    .research-body::before,
    .research-body::after {
        width: 20px;
        top: 4px;
        bottom: 0;
    }

    .research-body::before {
        left: -20px;
    }

    .research-body::after {
        right: -20px;
    }
}

.research-body p {
    /* the book's interior is set in Martel — already on the page as
     the label face, and designed for long-form book printing — so
     the pages read as genuine print while flowing with the site */
    font-family: var(--label);
    font-weight: 400;
    font-size: 1.02rem;
    line-height: 1.9;
    color: var(--ink);
    text-align: justify;
    /* whole words only, never split */
}

/* illuminated initial, as an old textbook opens its chapter */
.research-body p:first-child::first-letter {
    font-family: var(--mark);
    font-weight: 600;
    color: var(--gold);
    font-size: 3.2em;
    line-height: .8;
    float: left;
    padding: .08em .12em 0 0;
}

@media (max-width:900px) {
    .research-body {
        grid-template-columns: 1fr;
        background:
            /* single page: no gutter crease */
            radial-gradient(ellipse 130% 100% at 50% 0%, rgba(197, 160, 89, .09), transparent 65%),
            var(--paper);
    }
}

/* ---------- the writing pen — it signs the counsel's name ---------- */
.pen {
    position: absolute;
    right: clamp(.5rem, 4vw, 2.5rem);
    bottom: 3.25rem;
    /* raised ~0.5in, clear of the tail */
    width: 230px;
    height: 110px;
    pointer-events: none;
}

.pen .script-text {
    font-family: 'Alex Brush', cursive;
    /* a fuller, firmer signing hand */
    font-size: 26px;
    fill: var(--brass);
}

/* the ink is unveiled by a paper-coloured cover rectangle that runs
   the SAME penMove animation as the nib — one animation, two riders,
   so ink and pen share every position at every instant, and the
   reveal is a pure GPU transform: perfectly smooth to the last "K.".
   clip-path is gone; it interpolated unreliably and jammed mid-name. */
.pen .script {
    animation: scriptFade 7s linear infinite;
}

.pen .script-cover {
    animation: penMove 7s linear infinite;
}

.pen .pen-g {
    animation: penMove 7s linear infinite;
}

@keyframes scriptFade {

    0%,
    88% {
        opacity: 1;
    }

    96%,
    100% {
        opacity: 0;
    }
}

/* the nib travels the signature with the small tilts of a writing hand */
@keyframes penMove {
    0% {
        transform: translate(0, 0) rotate(0deg);
    }

    12% {
        transform: translate(20px, -2px) rotate(-2deg);
    }

    24% {
        transform: translate(42px, 1px) rotate(1.5deg);
    }

    36% {
        transform: translate(66px, -2px) rotate(-2deg);
    }

    46% {
        transform: translate(96px, 1px) rotate(1.5deg);
    }

    55% {
        transform: translate(150px, 0) rotate(0deg);
    }

    88% {
        transform: translate(150px, 0) rotate(0deg);
    }

    100% {
        transform: translate(0, 0) rotate(0deg);
    }
}

.coda {
    margin: 4rem auto 0;
    max-width: 62ch;
    padding: 2rem 0;
    text-align: center;
    position: relative;
    font-family: var(--prose);
    font-style: italic;
    font-size: 1.35rem;
    line-height: 1.8;
    color: var(--gold);
}

/* short gold rules bracket the pull-quote, above and below */
.coda::before,
.coda::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 96px;
    height: 2px;
    background: var(--gold-grad);
    border-radius: 1px;
}

.coda::before {
    top: 0;
}

.coda::after {
    bottom: 0;
}

/* ================================================================
   ENGAGEMENT — tiles keep the sweeping gold reveal, now tokenised
   ================================================================ */
.engage {
    background:
        radial-gradient(ellipse 60% 55% at 12% 85%, rgba(184, 134, 11, .08), transparent 62%),
        var(--paper);
}

/* Third pass, and minimal this time: no rules, no boxes, no
   dividers — the lines had accumulated. Three centred columns of
   pure typography, each opened by a single small gold diamond (the
   only ornament on the section), with generous air between them.
   Links carry no underline at rest; gold appears only under the
   pointer. All text untouched. */
.tiles {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(2rem, 5vw, 4rem);
    margin-top: 4rem;
    /* 64px */
}

/* structure returns, lightly: each contact stands on a quiet cream
   plaque — thin rule, soft radius, gentle lift — so the texts no
   longer float, without reintroducing heavy lines or dark boxes */
.tile {
    text-align: center;
    padding: 2.5rem 1.5rem;
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    box-shadow: var(--shadow-1);
    transition: transform var(--t-base) var(--ease),
        box-shadow var(--t-base) var(--ease),
        border-color var(--t-base) var(--ease);
}

.tile:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-2);
    border-color: rgba(184, 134, 11, .35);
}

/* line icons in the brand metals: gold strokes, brass accents */
.tile-icon {
    width: 44px;
    height: 44px;
    display: block;
    margin: 0 auto 1.25rem;
    /* 20px */
    transition: transform var(--t-base) var(--ease);
}

.tile:hover .tile-icon {
    transform: translateY(-3px) scale(1.06);
}

.tile p {
    line-height: 1.85;
    color: var(--ink);
    margin-top: 1.25rem;
    font-size: 1.08rem;
}

.tile a {
    text-decoration: none;
    color: var(--green);
    font-weight: 500;
    border-bottom: 1px solid transparent;
    padding-bottom: 2px;
    transition: color var(--t-quick) var(--ease), border-color var(--t-quick) var(--ease);
}

.tile a:hover {
    color: var(--gold);
    border-bottom-color: var(--gold);
}

.tile small {
    display: block;
    margin-top: 1rem;
    font-size: .95rem;
    color: var(--muted);
}

@media (max-width:860px) {
    .tiles {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .tile {
        padding: 2rem 1.25rem;
    }
}

@media (max-width:500px) {
    .hero .hero-logo {
        top: 3%;
    }
}

/* ================================================================
   FOOTER
   ================================================================ */
footer {
    background: var(--green-deep);
    color: var(--on-dark);
    padding: 3rem 0 3rem;
    position: relative;
}

footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--gold-rule);
}

.f-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    text-align: center;
}

.f-brand img {
    width: 56px;
    height: 56px;
}

footer .wordmark {
    font-size: .98rem;
}

.floating-contact-widget {
    position: fixed;
    right: 20px;
    bottom: 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
    z-index: 1100;
}

.floating-contact-btn,
.floating-contact-fab {
    width: 52px;
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(7, 42, 25, 0.18);
    transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease, opacity 0.25s ease;
}

.floating-contact-fab {
    display: none;
    border: 0;
    cursor: pointer;
    background: linear-gradient(135deg, rgba(197, 160, 89, 0.98) 0%, rgba(184, 134, 11, 0.98) 100%);
    color: var(--green-deep);
    padding: 0;
}

.floating-contact-fab .fab-icon {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
}

.floating-contact-fab .fab-icon span {
    display: block;
    width: 100%;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.floating-contact-widget.is-open .floating-contact-fab .fab-icon span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.floating-contact-widget.is-open .floating-contact-fab .fab-icon span:nth-child(2) {
    opacity: 0;
}

.floating-contact-widget.is-open .floating-contact-fab .fab-icon span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

.floating-contact-btn:hover,
.floating-contact-btn:focus-visible,
.floating-contact-fab:hover,
.floating-contact-fab:focus-visible {
    transform: scale(1.08) translateY(-2px);
    box-shadow: 0 14px 30px rgba(7, 42, 25, 0.24);
    filter: brightness(1.04);
}

.floating-contact-btn.linkedin {
    background: linear-gradient(135deg, #0A66C2 0%, #004182 100%);
}

.floating-contact-btn.whatsapp {
    background: linear-gradient(135deg, #25D366 0%, #1DA851 100%);
    font-size: 2rem
}

.floating-contact-btn.google {
    background: linear-gradient(135deg, #f75b4c 0%, #ea4335 100%);
    color: #fff;
    border: 1px solid rgba(11, 59, 36, 0.12);
}

.floating-contact-btn i {
    font-size: 1.25rem;
}

.floating-contact-btn.whatsapp i {
    font-size: 1.5rem;

}

@media (max-width: 768px) {
    .floating-contact-widget {
        right: 15px;
        bottom: 15px;
        gap: 10px;
    }

    .floating-contact-fab {
        display: inline-flex;
    }

    .floating-contact-btn {
        width: 48px;
        height: 48px;
        opacity: 0;
        transform: translateY(8px) scale(0.96);
        pointer-events: none;
        transition-delay: 0ms;
    }

    .floating-contact-widget.is-open .floating-contact-btn {
        opacity: 1;
        transform: translateY(0) scale(1);
        pointer-events: auto;
    }

    .floating-contact-widget.is-open .floating-contact-btn.linkedin {
        transition-delay: 0ms;
    }

    .floating-contact-widget.is-open .floating-contact-btn.whatsapp {
        transition-delay: 50ms;
    }

    .floating-contact-widget.is-open .floating-contact-btn.google {
        transition-delay: 100ms;
    }
}

.motto {
    font-family: var(--label);
    font-weight: 600;
    font-size: .82rem;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: var(--brass);
    margin-top: 1rem;
}

.disclaimer {
    margin: 3rem auto 0;
    max-width: 80ch;
    text-align: center;
    font-size: .95rem;
    line-height: 1.85;
    color: rgba(242, 239, 230, .62);
}

.disclaimer strong {
    color: var(--on-dark);
    font-weight: 500;
}

.fine {
    margin-top: 2rem;
    text-align: center;
    font-family: var(--label);
    font-size: .82rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: rgba(242, 239, 230, .45);
}

/* scroll-reveal: one curve, one duration, everywhere */
.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity var(--t-slow) var(--ease-out), transform var(--t-slow) var(--ease-out);
}

.reveal.in {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion:reduce) {

    .reveal,
    .rise {
        opacity: 1;
        transform: none;
        animation: none;
    }
}