/* ==========================================================================
   Page-level blocks
   ========================================================================== */

/* --- Page curtain (entry transition) ------------------------------------ */
.page-curtain{position:fixed;inset:0;background:var(--forest);z-index:1180;transform:scaleY(1);
  transform-origin:50% 100%;pointer-events:none}

/* --- Home hero ---------------------------------------------------------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;
  background:var(--forest);color:#fff;padding-top:calc(var(--hdr-h) + 2rem);padding-bottom:3.5rem}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;opacity:.42;filter:grayscale(.45) contrast(1.06)}
.hero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(6,36,25,.95) 0%,rgba(6,36,25,.80) 44%,rgba(6,36,25,.52) 100%),
             radial-gradient(760px 460px at 78% 42%,rgba(201,162,39,.16),transparent 68%)}
.hero__grid{position:relative;z-index:2;display:grid;grid-template-columns:1.08fr .92fr;
  gap:clamp(1.5rem,4vw,3.5rem);align-items:center;width:100%}
@media (max-width:1000px){.hero__grid{grid-template-columns:1fr}}
.hero h1{color:#fff;max-width:15ch}
.hero .lead{color:#C4D3CB;margin-top:1.6rem;max-width:46ch;font-size:clamp(1.02rem,1.4vw,1.18rem)}
.hero__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.3rem}
.hero__net{position:relative;width:100%;aspect-ratio:1/.82}
@media (max-width:1000px){
  .hero__net{position:absolute;inset:auto 0 -6% 0;aspect-ratio:1/.6;opacity:.32;z-index:1;pointer-events:none}
}
.hero__net > svg{width:100%;height:100%;overflow:visible}
.an-label{font-family:var(--mono);font-size:7.2px;letter-spacing:.14em;text-transform:uppercase;
  fill:rgba(255,255,255,.62)}
.an-node{cursor:pointer}
.an-node:hover .an-ring{stroke:var(--gold-lt)}
.an-node:hover .an-label{fill:#fff}
.hero__meta{position:absolute;left:var(--pad-x);right:var(--pad-x);bottom:1.6rem;z-index:3;
  display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.5)}
@media (max-width:760px){.hero__meta{display:none}}
.scrollcue{display:flex;align-items:center;gap:.7rem}
.scrollcue i{display:block;width:1px;height:34px;background:rgba(255,255,255,.28);position:relative;overflow:hidden}
.scrollcue i::after{content:"";position:absolute;inset:0;background:var(--gold-lt);
  animation:cue 2.1s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
.reduced .scrollcue i::after{animation:none;opacity:.5}

/* --- Statement ---------------------------------------------------------- */
.statement{font-family:var(--display);font-weight:600;letter-spacing:-.03em;line-height:1.22;
  font-size:clamp(1.35rem,3.3vw,2.5rem);max-width:22ch;color:var(--forest)}
.statement .fw{transition:none}
.statement-wrap{display:grid;grid-template-columns:1fr .78fr;gap:clamp(2rem,6vw,5rem);align-items:start}
@media (max-width:960px){.statement-wrap{grid-template-columns:1fr}}
.statement-side p{font-size:.98rem;color:var(--stone)}

/* --- Division hero (inner pages) ---------------------------------------- */
.dhero{position:relative;background:var(--forest);color:#fff;overflow:hidden;
  padding-top:calc(var(--hdr-h) + clamp(2.6rem,6vw,5rem));padding-bottom:clamp(3rem,7vw,5.5rem)}
.dhero__bg{position:absolute;inset:0;z-index:0}
.dhero__bg img{width:100%;height:100%;object-fit:cover;opacity:.2;filter:grayscale(.6)}
.dhero__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,rgba(6,36,25,.95),rgba(6,36,25,.72) 60%,rgba(6,36,25,.5)),
             radial-gradient(620px 380px at 84% 30%,rgba(201,162,39,.18),transparent 70%)}
.dhero__grid{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;
  gap:clamp(1.5rem,4vw,3rem);align-items:center}
@media (max-width:900px){.dhero__grid{grid-template-columns:1fr}}
.dhero h1{color:#fff;margin-top:1.2rem;max-width:16ch}
.dhero .lead{color:#C4D3CB;margin-top:1.4rem;max-width:48ch}
.dhero__num{font-family:var(--mono);font-size:.68rem;letter-spacing:.24em;color:var(--gold-lt);
  display:block;margin-top:1.4rem}
.motif{width:100%;aspect-ratio:1;max-width:400px;margin-inline:auto}
.motif > svg{width:100%;height:100%}
@media (max-width:900px){.motif{max-width:250px}}

/* --- Scope list --------------------------------------------------------- */
.scope{list-style:none;margin:0;padding:0}
.scope li{position:relative;padding:.7rem 0 .7rem 2rem;border-bottom:1px solid var(--line);
  font-size:.95rem}
.section--dark .scope li{border-color:var(--line-dark)}
.scope li::before{content:"";position:absolute;left:.15rem;top:1.15rem;width:9px;height:9px;
  border-radius:50%;border:2px solid var(--gold);}
.scope--tight li{font-size:.9rem;padding-block:.5rem}

/* --- Two column split --------------------------------------------------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.split--60 {grid-template-columns:1.25fr .75fr}
@media (max-width:900px){.split--60{grid-template-columns:1fr}}

/* --- Overview list of divisions (divisions.html) ------------------------- */
.dlist{border-top:1px solid var(--line)}
.dlist__row{display:grid;grid-template-columns:82px 1.1fr 1.4fr auto;gap:clamp(1rem,3vw,2.5rem);
  align-items:center;padding:clamp(1.4rem,2.6vw,2.1rem) 0;border-bottom:1px solid var(--line);
  position:relative;transition:padding-left .5s var(--ease)}
.dlist__row:hover{padding-left:1rem}
@media (max-width:900px){
  .dlist__row{grid-template-columns:56px 1fr;gap:.6rem 1.2rem}
  .dlist__row p{grid-column:1/-1}
  .dlist__row .dlist__go{grid-column:1/-1;justify-self:start}
}
.dlist__ico{width:82px;height:82px;border-radius:var(--r);background:var(--forest);overflow:hidden;
  display:grid;place-items:center}
@media (max-width:900px){.dlist__ico{width:56px;height:56px}}
.dlist__ico .motif{max-width:none;width:130%;height:130%;aspect-ratio:auto}
.dlist__row h3{font-size:clamp(1.1rem,1.9vw,1.5rem)}
.dlist__row .n{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;color:var(--gold-dk);
  display:block;margin-bottom:.35rem}
.dlist__row p{font-size:.93rem;color:var(--stone);margin:0}
.dlist__go{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);display:grid;
  place-items:center;transition:background .4s var(--ease),color .4s,border-color .4s}
.dlist__row:hover .dlist__go{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.dlist__go svg{width:15px;height:15px}

/* --- About: org diagram ------------------------------------------------- */
.org{width:100%;max-width:840px;margin-inline:auto}
.org > svg{width:100%;height:auto;overflow:visible}
.org .org-branch{stroke:var(--line);stroke-width:1.4;fill:none}
.section--dark .org .org-branch{stroke:rgba(255,255,255,.24)}
.org .org-chip{fill:var(--paper);stroke:var(--line)}
.section--dark .org .org-chip{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.18)}
.org .org-t{font-family:var(--body);font-size:7.4px;font-weight:500;fill:var(--forest)}
.section--dark .org .org-t{fill:#fff}
.org .org-core{fill:var(--forest)}
.org .org-core-t{font-family:var(--display);font-size:8.4px;font-weight:600;fill:#fff}

/* --- Values / timeline -------------------------------------------------- */
.tl{list-style:none;margin:0;padding:0;position:relative}
.tl::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:1px;background:var(--line)}
.section--dark .tl::before{background:var(--line-dark)}
.tl li{position:relative;padding:0 0 1.9rem 2.6rem}
.tl li::before{content:"";position:absolute;left:0;top:6px;width:15px;height:15px;border-radius:50%;
  background:var(--sand);border:2px solid var(--gold)}
.section--dark .tl li::before{background:var(--forest)}
.tl h4{font-family:var(--display);font-size:1.02rem;font-weight:600;margin-bottom:.3rem}
.tl p{font-size:.93rem;color:var(--stone);margin:0}

/* --- 404 ---------------------------------------------------------------- */
.err{min-height:78svh;display:flex;align-items:center;text-align:center}
.err__code{font-family:var(--display);font-weight:700;font-size:clamp(5rem,20vw,13rem);
  line-height:.9;letter-spacing:-.05em;color:var(--forest);opacity:.14}

/* --- Leaflet pin -------------------------------------------------------- */
.ga-pin{position:relative}
.ga-pin svg{position:relative;z-index:2;filter:drop-shadow(0 6px 14px rgba(7,26,18,.3))}
.ga-pin__pulse{position:absolute;left:50%;top:50%;width:38px;height:38px;margin:-19px 0 0 -19px;
  border-radius:50%;border:2px solid rgba(201,162,39,.8);animation:pin 2.4s var(--ease) infinite}
@keyframes pin{0%{transform:scale(.85);opacity:.85}70%,100%{transform:scale(2.1);opacity:0}}
.reduced .ga-pin__pulse{animation:none;opacity:0}
.leaflet-popup-content-wrapper{border-radius:12px;font-family:var(--body);font-size:.86rem}
.leaflet-container{font-family:var(--body)}

/* --- Print -------------------------------------------------------------- */
@media print{
  .header,.drawer,.wa,.preloader,.progress,.cursor,.cursor-ring,.mapwrap,.marquee{display:none!important}
  body{background:#fff}
  .section{padding-block:1.2rem}
  [data-reveal]{opacity:1!important}
}
