/* DESIGN.md: editorial spacing, serif/mono contrast and floating navigation.
   Adapted to the requested brown/beige identity and animated family tree. */
:root { --paper:#fffefb; --cream:#f5f1e9; --sand:#eee7dc; --ink:#322318; --muted:#745a44; --serif:'Iowan Old Style','Palatino Linotype',Palatino,Georgia,serif; --mono:'Cascadia Code',Consolas,'Courier New',monospace; }
body { background:var(--paper); }
.site-header { position:absolute; top:24px; left:50%; transform:translateX(-50%); width:min(1280px,calc(100% - 48px)); border:1px solid #745a4470; border-radius:30px; background:#f6f0e7e8; }
.header-row { width:calc(100% - 40px); min-height:76px; gap:20px; }
.brand-mark { display:none; }
.brand-eagle { display:block; flex-shrink:0; width:54px; height:38px; overflow:hidden; mix-blend-mode:multiply; }
.footer-brand .brand-eagle { filter:invert(1); mix-blend-mode:screen; }
.brand-copy strong { font-size:1.55rem; }
.brand-copy small { font-family:var(--mono); font-weight:400; letter-spacing:.1em; }
.desktop-nav a { font-weight:400; padding-block:22px; }
.header-contact,.button { border-radius:9999px; font-weight:400; }
.header-contact { background:#174c3f; border-color:#174c3f; padding:12px 21px; }
.hero { min-height:860px; background:#eee7dc; color:var(--ink); }
.hero::before { display:none; }
.hero-content { width:min(1360px,calc(100% - 80px)); grid-template-columns:.85fr 1.25fr; gap:40px; padding:180px 0 95px; }
.hero h1 { font-size:clamp(3.4rem,5.3vw,5.7rem); line-height:1.06; font-weight:400; color:var(--ink); letter-spacing:-.055em; }
.hero .eyebrow { color:#745a44; font-family:var(--mono); font-weight:400; letter-spacing:.08em; }
.hero-lede { color:#745a44; font-family:var(--mono); font-size:13px; line-height:1.9; max-width:430px; }
.hero-actions { gap:24px; }
.hero .button { background:#174c3f; color:#fffefb; padding:14px 22px; }
.hero .text-link { color:#745a44; font-weight:400; border-bottom:1px solid #745a44; padding-bottom:5px; font-size:12px; }
.hero-foot { border-color:#745a4470; color:#745a44; font-family:var(--mono); text-transform:none; letter-spacing:0; padding-block:24px; }
.succession-visual { max-width:none; }
.succession-visual::before { display:none; }
.family-tree svg { display:block; width:100%; overflow:visible; }
.family-connections path { stroke:#745a44; stroke-width:1; fill:none; }
.family-trace { fill:none; stroke:#174c3f; stroke-width:2; }
.family-arrow { fill:none; stroke:#174c3f; stroke-width:2; opacity:0; }
.family-person circle { fill:#eee7dc; stroke:#745a44; stroke-width:1; transition:fill .4s,stroke .4s; }
.family-initial { fill:#745a44; text-anchor:middle; font-family:var(--serif); font-size:19px; }
.family-label { fill:#745a44; text-anchor:middle; font-family:var(--mono); font-size:11px; }
.family-person.is-active circle { fill:#174c3f; stroke:#174c3f; }
.family-person.is-active .family-initial { fill:#fffefb; }
.tree-controls { display:flex; justify-content:space-between; gap:16px; margin:24px 20px 0; font:11px/1.5 var(--mono); color:#745a44; }
.tree-controls button { border:0; border-bottom:1px solid #745a44; background:none; padding:0 0 4px; cursor:pointer; font:inherit; }
.section { padding-block:100px; }
h2 { font-size:clamp(2rem,3.3vw,3.3rem); font-weight:400; }
.eyebrow,.path-number,.service-index { font-family:var(--mono); font-weight:400; }
.intro-copy { padding-top:0; }
.intro-copy>p:not(.lead),.section-head>p,.service-row p,.steps p,.guide-card p,.international .tick-list,.contact-copy>p:not(.eyebrow) { font-family:var(--mono); font-size:13px; line-height:1.85; }
.pathways { background:var(--paper); }
.pathways-grid { grid-template-columns:1fr; padding-bottom:70px; }
.path-card,.path-card:last-child { min-height:0; border:0; border-top:1px solid var(--line); padding:28px 0; grid-template-columns:50px 1fr; }
.path-card>div { display:grid; grid-template-columns:1fr 1fr; gap:12px 55px; align-items:start; }
.path-card .eyebrow { grid-column:1/-1; margin:0; }
.path-card h3 { font-size:1.65rem; }
.path-card p:not(.eyebrow) { font:13px/1.8 var(--mono); }
.path-card a { margin:0; font-weight:400; }
.services { background:var(--cream); }
.service-row:hover { background:transparent; padding-inline:10px; }
.service-arrow { display:none; }
.process { background:#174c3f; }
.international { background:var(--paper); }
.international-visual { display:none; }
.international-grid { grid-template-columns:1fr; }
.international-grid>div:last-child { display:grid; grid-template-columns:1fr 1fr; gap:24px 80px; }
.international .eyebrow { grid-column:1/-1; margin:0; }
.international .lead { margin:0; font:14px/1.85 var(--mono); }
.tick-list { grid-column:2; margin:0; }
.international .text-link { grid-column:2; margin-top:0; }
.guide-grid { grid-template-columns:1fr; border:0; }
.guide-card { display:grid; grid-template-columns:100px 1fr .8fr; gap:24px 40px; min-height:0; padding:32px 0; border:0; border-top:1px solid var(--line); }
.guide-card>span { margin:0; font-family:var(--mono); font-weight:400; }
.guide-card h3 { margin:0; font-size:1.6rem; }
.guide-card a { grid-column:2; margin:0; padding:0; justify-content:start; gap:20px; font-weight:400; }
.contact { background:#174c3f; }
.enquiry-form { background:transparent; padding:0; color:#fffefb; }
.enquiry-form label { color:#e0d7ca; font-weight:400; }
.enquiry-form input:not([type='checkbox']),.enquiry-form select,.enquiry-form textarea { background:#fffefb08; color:#fffefb; border:0; border-bottom:1px solid #745a446b; }
.enquiry-form select option { background:#174c3f; }
.form-status,.form-disclaimer { color:#cbbbA6; }
.contact-note { display:none; }
.site-footer { background:#103b31; }
.mobile-menu { top:84px; border-radius:24px; height:calc(100dvh - 120px); overflow:auto; }
[id] { scroll-margin-top:32px; }
@media(min-width:901px) and (max-width:1150px) { .hero-content { grid-template-columns:.85fr 1.15fr; gap:24px; width:calc(100% - 64px); } .hero h1 { font-size:3.5rem; } .hero { min-height:720px; } }
@media(max-width:900px) { .hero-content { grid-template-columns:1fr; padding-top:160px; max-width:760px; } .hero-copy { max-width:620px; } .hero h1 br { display:none; } .succession-visual { margin:0; width:100%; } .hero { min-height:0; } }
@media(max-width:760px) { .site-header { top:16px; width:calc(100% - 24px); } .header-row { min-height:64px; width:calc(100% - 32px); } .hero-content { width:calc(100% - 40px); padding:140px 0 54px; gap:36px; } .hero h1 { font-size:clamp(3rem,11vw,4.4rem); } .hero-lede { font-size:12px; } .family-label { font-size:14px; } .tree-controls { margin:12px 0 0; font-size:10px; } .section { padding-block:70px; } .path-card>div,.international-grid>div:last-child,.guide-card { grid-template-columns:1fr; gap:16px; } .path-card { grid-template-columns:25px 1fr; gap:12px; } .international .tick-list,.international .text-link,.guide-card a { grid-column:auto; } .hero-actions { flex-direction:row; align-items:center; } .hero-actions .text-link { padding:4px 0; } }

/* Approved evergreen and beige homepage direction. */
:root {
  --green:#174c3f;
  --green-deep:#103b31;
  --green-soft:#dce5dd;
  --paper:#fffefb;
  --cream:#f5f1e9;
  --sand:#eee7dc;
  --ink:#322318;
  --shell:min(1440px,calc(100% - 96px));
}

::selection { background:var(--green-soft); }
:focus-visible { outline-color:var(--green); }
.site-header { width:var(--shell); border-color:#cdbda9a6; background:#f7f2eade; }
.header-row { width:calc(100% - 40px); }
.desktop-nav { flex:1; justify-content:center; gap:clamp(16px,1.8vw,30px); }
.desktop-nav a[aria-current=page] { border-color:var(--green); }
.desktop-nav a::after { background:var(--green); }
.header-actions { gap:14px; }
.header-contact { background:var(--green); border-color:var(--green); white-space:nowrap; }
.header-contact:hover { background:var(--green-deep); }
.site-language { display:flex; align-items:center; gap:7px; color:#745a44; font:10px/1 var(--mono); letter-spacing:.05em; }
.site-language button { min-width:34px; height:34px; padding:0 7px; border:1px solid transparent; background:transparent; color:inherit; cursor:pointer; }
.site-language button[aria-pressed="true"] { border-color:var(--green); border-radius:3px; background:var(--green); color:#fffefb; }
.mobile-language { padding:18px 0 6px; border-bottom:1px solid var(--line); }
.mobile-language .site-language { justify-content:flex-start; }
.header-actions>.site-language { display:flex; }

.button-dark { background:var(--green); color:#fffefb; }
.button-dark:hover { background:var(--green-deep); }
.button-outline { border-color:#745a44; background:transparent; color:var(--ink); }
.button-outline:hover { border-color:var(--green); color:var(--green); }
.text-link,.reading-category,.row-arrow { color:var(--green); }

.hero { min-height:0; background:var(--paper); color:var(--ink); }
.hero-content { width:var(--shell); grid-template-columns:minmax(410px,.8fr) minmax(580px,1.25fr); gap:clamp(46px,6vw,100px); padding:140px 0 68px; }
.hero-copy { padding-block:24px; }
.hero h1 { max-width:690px; color:var(--ink); font-size:clamp(4.2rem,6.2vw,7rem); line-height:.91; letter-spacing:-.06em; }
.hero .eyebrow { color:#745a44; }
.hero .eyebrow::after { content:''; display:inline-block; width:90px; height:2px; margin:0 0 3px 22px; background:var(--green); }
.hero-lede { max-width:600px; margin-top:24px; color:#745a44; font:clamp(1rem,1.25vw,1.15rem)/1.7 var(--sans); }
.hero-actions { gap:18px; margin-top:28px; }
.hero .button { min-width:190px; padding:15px 28px; }
.hero .button-dark { background:var(--green); color:#fffefb; }
.hero .button-outline { background:var(--paper); color:var(--ink); }
.hero-image { position:relative; align-self:stretch; min-height:520px; margin:0; overflow:hidden; border-radius:0 0 0 28px; background:var(--sand); }
.hero-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-image figcaption { position:absolute; bottom:32px; left:38px; color:#fff; font:11px/1.55 var(--mono); letter-spacing:.28em; text-transform:uppercase; text-shadow:0 1px 6px #0008; }
.hero-image figcaption span { display:block; width:64px; height:2px; margin-bottom:17px; background:#fff; }

.home-pathways { position:relative; overflow:hidden; background:var(--sand); }
.home-pathways>.shell { position:relative; z-index:1; }
.home-pathways h2 { max-width:900px; font-size:clamp(3rem,5vw,5.2rem); }
.pathway-intro { margin-top:14px; color:var(--muted); }
.home-pathway-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:42px; }
.home-pathway-grid>a { position:relative; display:grid; grid-template-columns:auto 1fr auto; gap:20px; align-items:center; min-height:116px; padding:25px 24px; border:1px solid #e5dbce; border-radius:18px; background:#fffdf9d9; text-decoration:none; box-shadow:0 14px 35px #3223180a; transition:transform .2s,border-color .2s,background .2s; }
.home-pathway-grid>a:hover { transform:translateY(-3px); border-color:var(--green); background:#fff; }
.home-pathway-grid>a>span:last-child { color:var(--green); font-size:1.2rem; }
.pathway-icon { display:grid; place-items:center; width:52px; height:52px; color:var(--green); }
.pathway-icon svg { width:42px; height:42px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.home-pathway-grid strong { color:#322318; font-family:var(--serif); font-size:1.2rem; font-weight:400; line-height:1.25; }
.olive-decoration { position:absolute; z-index:0; right:-90px; bottom:-190px; width:min(650px,48vw); max-width:none; opacity:.26; transform:rotate(-5deg); pointer-events:none; }

.journey-preview { background:var(--green); color:#fffefb; }
.journey-preview .eyebrow,.journey-preview ol span { color:#d7c5a8; }
.journey-preview p,.journey-preview ol small { color:#dce5dd; }
.journey-preview .button-dark { border-color:#fffefb; background:#fffefb; color:var(--green-deep); }
.publication-band { background:var(--sand); }
.site-footer { background:var(--green-deep); }
.contact-launcher { border-color:#fffaf2; outline-color:var(--green); background:var(--green); }
.contact-launcher:hover { background:var(--green-deep); }

@media(max-width:1260px) {
  :root { --shell:min(100% - 64px,1440px); }
  .header-phone { display:none; }
  .desktop-nav { gap:15px; }
  .desktop-nav a { font-size:.69rem; }
  .hero-content { grid-template-columns:minmax(360px,.8fr) minmax(470px,1.15fr); gap:38px; }
  .home-pathway-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:1050px) {
  .header-actions>.site-language { display:none; }
  .hero-content { grid-template-columns:1fr; max-width:none; }
  .hero-copy { max-width:760px; }
  .hero-image { min-height:480px; border-radius:0 0 24px 24px; }
}
@media(max-width:760px) {
  :root { --shell:min(100% - 32px,1440px); }
  .site-header { width:calc(100% - 24px); }
  .hero-content { width:var(--shell); padding:122px 0 48px; }
  .hero h1 { font-size:clamp(3.25rem,16vw,5rem); }
  .hero h1 br { display:block; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero .button { width:100%; min-width:0; }
  .hero-image { min-height:390px; }
  .hero-image figcaption { bottom:24px; left:24px; }
  .home-pathway-grid { grid-template-columns:1fr; }
  .olive-decoration { right:-170px; bottom:-100px; width:620px; opacity:.17; }
}
