/* ==========================================================================
   Seychelles United Movement — shared stylesheet  (mockup)
   Design language: institutional "Office in Waiting" — warm navy + cream + gold
   ========================================================================== */
:root{
  --parch:#f3ecdb; --parch2:#e8dcc4; --panel:#f8f2e4;
  --blue:#15325a; --blue-d:#0c1f38; --blue-l:#20477c;
  --ink:#221f1a; --ink-soft:#5c574d;
  --gold:#9d7a30; --gold-hi:#e2bb62; --gold-line:#d8b45e; --gold-text:#765920;
  --gold-grad:linear-gradient(180deg,#f7db83 0%,#e8bf5b 46%,#d0a036 100%);
  --red:#8a2b34; --green:#0a7a3d;
  --line:rgba(34,31,26,.16); --line-soft:rgba(34,31,26,.08);
  --serif:"Fraunces", Georgia, serif;
  --sans:"Inter", system-ui, sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0}
html{scroll-behavior:smooth}
body{background:var(--parch); color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.62; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden}
::selection{background:var(--blue); color:var(--parch)}
a{color:inherit; text-decoration:none}
img{display:block; max-width:100%}
.serif{font-family:var(--serif)}
.mock-tag{position:fixed; z-index:200; bottom:12px; right:12px; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--parch); background:var(--blue); padding:5px 10px; border-radius:2px; opacity:.8}
.label{font-family:var(--sans); font-size:11.5px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-text)}
.wrap{max-width:1120px; margin:0 auto}

/* flag hairline */
.flagline{height:3px; background:linear-gradient(90deg,
  #003f87 0 20%, #f4c430 20% 40%, #c62828 40% 60%, #ffffff 60% 80%, #0a7a3d 80% 100%)}

/* ceremonial ribbon */
.ribbon{background:var(--blue-d); color:#cdd6e6; font-size:11px; letter-spacing:.2em; text-transform:uppercase; font-weight:500}
.ribbon .in{max-width:1220px; margin:0 auto; padding:9px clamp(16px,4vw,48px); display:flex; justify-content:space-between; align-items:center; gap:16px}
.ribbon .motto{display:flex; gap:16px; align-items:center; flex-wrap:wrap}
.ribbon .dot{width:3px; height:3px; border-radius:50%; background:var(--gold-hi); display:inline-block}
.ribbon .langs{display:flex; gap:14px; flex:none}
.ribbon .langs span{opacity:.55; transition:opacity .2s}
.ribbon .langs span.on{opacity:1; color:var(--gold-hi)}

/* masthead */
.masthead{background:var(--parch); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:100}
.mast-in{max-width:1220px; margin:0 auto; padding:15px clamp(16px,4vw,48px); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px}
.mast-left,.mast-right{display:flex; align-items:center; gap:26px}
.mast-right{justify-content:flex-end}
.mast-nav{display:flex; gap:24px; font-size:13.5px; font-weight:500; color:var(--ink)}
.mast-nav a{position:relative; padding:4px 0; color:var(--ink-soft); transition:color .2s; white-space:nowrap}
.mast-nav a::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .22s}
.mast-nav a:hover{color:var(--ink)} .mast-nav a:hover::after{transform:scaleX(1)}
.mast-nav a.on{color:var(--ink)} .mast-nav a.on::after{transform:scaleX(1)}
.mast-emblem{display:flex; flex-direction:column; align-items:center; gap:7px}
.mast-emblem img{width:50px; height:50px; filter:drop-shadow(0 3px 8px rgba(8,29,73,.28))}
.mast-emblem .name{font-family:var(--serif); font-weight:600; font-size:15px; letter-spacing:.16em; text-transform:uppercase; color:var(--blue); white-space:nowrap}
.enrol{font-weight:600; font-size:13.5px; color:var(--parch); background:var(--blue); padding:10px 18px; border-radius:2px; border:1px solid var(--blue); transition:background .2s}
.enrol:hover{background:var(--blue-l)}
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; padding:6px; background:none; border:0}
.burger span{width:24px; height:2px; background:var(--blue); border-radius:2px; transition:.2s}
.mobile-menu{display:none; position:fixed; left:0; right:0; top:0; z-index:99; overflow-y:auto; -webkit-overflow-scrolling:touch; background:var(--blue-d); border-bottom:1px solid var(--gold-line); box-shadow:0 14px 28px rgba(0,0,0,.30)}
.mobile-menu.open{display:block}
.mobile-menu a{display:block; color:#cdd6e6; padding:13px clamp(16px,4vw,48px); border-bottom:1px solid rgba(255,255,255,.06); font-size:15px; letter-spacing:.02em}
.mobile-menu a:hover{background:var(--blue); color:#fff}

/* buttons */
.btn{font-weight:600; font-size:15.5px; letter-spacing:.02em; padding:15px 28px; border-radius:2px; display:inline-flex; align-items:center; gap:10px; transition:all .2s; border:1px solid transparent; cursor:pointer; font-family:var(--sans)}
.btn-solid{background:var(--blue); color:var(--parch); box-shadow:0 8px 26px rgba(12,47,116,.24)}
.btn-solid:hover{background:var(--blue-l); transform:translateY(-1px)}
.btn-out{background:transparent; color:var(--blue); border-color:var(--gold)}
.btn-out:hover{background:rgba(166,129,47,.09)}
.btn-gold{background:linear-gradient(180deg,#f7db83 0%,#e8bf5b 46%,#d0a036 100%); color:#2b1f07; border:1px solid rgba(255,241,201,.5); box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.btn-gold:hover{filter:brightness(1.06); transform:translateY(-1px)}
.btn .arr{transition:transform .2s} .btn:hover .arr{transform:translateX(3px)}
.btn-sm{padding:11px 20px; font-size:14px}

/* ---- home: hero ---- */
.hero{position:relative; overflow:hidden; border-bottom:1px solid var(--line); background:
  radial-gradient(120% 90% at 88% 20%, rgba(166,129,47,.08), transparent 55%), var(--parch)}
.hero-in{position:relative; z-index:1; max-width:1220px; margin:0 auto; padding:clamp(46px,6.5vw,92px) clamp(16px,4vw,48px); display:grid; grid-template-columns:1.12fr .88fr; gap:clamp(32px,5vw,76px); align-items:center}
.crest{width:70px; height:70px; margin-bottom:26px; filter:drop-shadow(0 4px 12px rgba(8,29,73,.25))}
.hero-copy h1{font-family:var(--serif); font-weight:600; font-size:clamp(42px,5.7vw,82px); line-height:1.0; letter-spacing:-.018em; color:var(--blue); text-wrap:balance}
.hero-copy h1 em{font-style:italic; color:var(--gold)}
.hero-rule{display:flex; align-items:center; gap:14px; margin:26px 0}
.hero-rule .bar{width:52px; height:2px; background:var(--gold)}
.hero-rule .txt{font-family:var(--serif); font-style:italic; font-size:18px; color:var(--red)}
.hero-lead{font-size:19px; line-height:1.6; color:var(--ink); max-width:45ch}
.hero-lead b{color:var(--blue); font-weight:600}
.hero-actions{margin-top:34px; display:flex; gap:16px; flex-wrap:wrap; align-items:center}

/* official portrait */
.portrait{position:relative}
.portrait-frame{position:relative; aspect-ratio:4/5; border:2px solid var(--gold-line); background:var(--blue-d); box-shadow:0 24px 60px rgba(8,29,73,.3); overflow:hidden}
.portrait-frame::after{content:""; position:absolute; inset:8px; border:1px solid rgba(196,164,87,.55); z-index:2; pointer-events:none}
.portrait-frame img{width:100%; height:100%; object-fit:cover; object-position:50% 22%}
.portrait-plate{position:absolute; left:50%; bottom:16px; transform:translateX(-50%); z-index:3; background:rgba(8,29,73,.86); border:1px solid rgba(196,164,87,.5); padding:9px 18px; text-align:center; white-space:nowrap}
.portrait-plate .nm{font-family:var(--serif); font-weight:600; font-size:15px; color:var(--parch); letter-spacing:.02em}
.portrait-plate .tl{font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-hi); margin-top:2px}
.portrait .ph{position:absolute; top:14px; left:14px; z-index:3; font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--parch); background:rgba(8,29,73,.6); border:1px dashed rgba(196,164,87,.5); padding:3px 8px}

/* unity band (monument) */
.unity{position:relative; background:var(--blue-d); color:var(--parch); overflow:hidden; text-align:center}
.unity .mon{position:absolute; inset:0; background:url('/assets/twa-lezel.jpg') center 38%/cover; opacity:.22; filter:grayscale(1) contrast(1.05)}
.unity .mon::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,29,73,.82), rgba(8,29,73,.6)), radial-gradient(80% 120% at 50% 0%, rgba(12,47,116,.3), rgba(8,29,73,.9))}
.unity-in{position:relative; z-index:2; max-width:900px; margin:0 auto; padding:clamp(56px,8vw,104px) clamp(16px,4vw,48px)}
.unity .label{color:var(--gold-hi)}
.unity h2{font-family:var(--serif); font-weight:500; font-size:clamp(28px,4.4vw,50px); line-height:1.12; letter-spacing:-.01em; margin-top:16px; text-wrap:balance}
.unity h2 em{font-style:italic; color:var(--gold-hi)}
.unity p{color:#c8d1e2; max-width:54ch; margin:20px auto 0; font-size:17px}
.unity .waves{position:absolute; left:0; right:0; bottom:0; z-index:1; height:120px; overflow:hidden; pointer-events:none}
.unity .waves svg{position:absolute; bottom:0; left:0; width:200%; height:100%}
.unity .waves .w1{animation:drift 18s linear infinite}
.unity .waves .w2{animation:drift 26s linear infinite reverse}
.unity .waves .w3{animation:drift 34s linear infinite}
@keyframes drift{from{transform:translateX(0)} to{transform:translateX(-50%)}}

/* register */
.register{background:var(--blue); color:var(--parch); position:relative; overflow:hidden; border-top:2px solid var(--gold-line); border-bottom:2px solid var(--gold-line)}
.register .seal-ghost{position:absolute; right:-40px; top:50%; transform:translateY(-50%); width:340px; opacity:.08}
.register-in{position:relative; z-index:1; max-width:1220px; margin:0 auto; padding:clamp(40px,6vw,66px) clamp(16px,4vw,48px); display:flex; align-items:center; justify-content:center; gap:clamp(28px,6vw,88px); flex-wrap:wrap; text-align:center}
.register .col{display:flex; flex-direction:column; align-items:center; gap:8px}
.register .rlabel{font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-hi)}
.register .rnum{font-family:var(--serif); font-weight:600; font-size:clamp(56px,8vw,102px); line-height:1; color:var(--parch); letter-spacing:-.01em}
.register .rsub{font-size:14.5px; color:#c8d1e2; max-width:26ch}
.register .rdelta{font-size:13px; color:#7fe0a8; letter-spacing:.04em}
.register .rnote{font-size:11px; letter-spacing:.06em; color:#93a0b8; margin-top:2px}
.register .divider{width:1px; height:120px; background:linear-gradient(var(--gold-line),transparent); opacity:.5}
.register .btn-out{border-color:var(--gold-hi); color:var(--gold-hi)}
.register .btn-out:hover{background:rgba(201,162,75,.14)}

/* address */
.address{background:var(--panel); border-bottom:1px solid var(--line)}
.address-in{max-width:1040px; margin:0 auto; padding:clamp(56px,8vw,104px) clamp(16px,4vw,48px); display:grid; grid-template-columns:auto 1fr; gap:clamp(28px,5vw,60px); align-items:center}
.address .pic{width:190px; height:230px; border:1px solid var(--gold-line); overflow:hidden; flex:none; box-shadow:0 16px 40px rgba(8,29,73,.22)}
.address .pic img{width:100%; height:100%; object-fit:cover; object-position:50% 20%}
.address .body .label{display:block; margin-bottom:20px}
.address blockquote{font-family:var(--serif); font-weight:400; font-size:clamp(21px,2.7vw,31px); line-height:1.4; color:var(--blue); letter-spacing:-.008em; text-wrap:pretty; max-width:34ch}
.address blockquote .dc{float:left; font-family:var(--serif); font-weight:600; font-size:3.4em; line-height:.72; padding:6px 12px 0 0; color:var(--gold)}
.address .sig{margin-top:30px; display:flex; flex-direction:column; gap:3px}
.address .sig .swash{font-family:var(--serif); font-style:italic; font-weight:500; font-size:28px; color:var(--red)}
.address .sig .nm{font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft)}
.address .sig-rule{width:40px; height:1px; background:var(--gold); margin-bottom:8px}

/* programme index (home + programme page) */
.programme{padding:clamp(60px,9vw,112px) clamp(16px,4vw,48px)}
.prog-in{max-width:1120px; margin:0 auto}
.prog-head{text-align:center; margin-bottom:54px}
.prog-head h2{font-family:var(--serif); font-weight:600; font-size:clamp(30px,4.4vw,52px); color:var(--blue); letter-spacing:-.015em; line-height:1.04; margin-top:14px}
.prog-head p{color:var(--ink-soft); max-width:52ch; margin:16px auto 0; font-size:17px}
.prog-list{border-top:1px solid var(--line)}
.art{display:grid; grid-template-columns:80px 1fr auto; gap:26px; align-items:baseline; padding:26px 12px; border-bottom:1px solid var(--line); transition:background .22s, padding-left .22s}
.art:hover{background:var(--panel); padding-left:24px}
.art .rn{font-family:var(--serif); font-weight:500; font-style:italic; font-size:22px; color:var(--gold)}
.art .body h3{font-family:var(--serif); font-weight:600; font-size:clamp(20px,2.4vw,27px); color:var(--blue); letter-spacing:-.01em; line-height:1.1}
.art .body p{color:var(--ink-soft); font-size:15.5px; margin-top:7px; max-width:64ch}
.art .go{font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); white-space:nowrap; align-self:center; opacity:0; transition:opacity .22s}
.art:hover .go{opacity:1}
.art.more h3{color:var(--ink-soft); font-style:italic; font-weight:500; font-size:20px}
.prog-foot{text-align:center; margin-top:44px}

/* record grid */
.record{background:var(--parch2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:clamp(56px,8vw,100px) clamp(16px,4vw,48px)}
.rec-in{max-width:1120px; margin:0 auto}
.rec-head{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:40px; flex-wrap:wrap}
.rec-head h2{font-family:var(--serif); font-weight:600; font-size:clamp(26px,3.6vw,42px); color:var(--blue); letter-spacing:-.015em; margin-top:12px}
.rec-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line)}
.rec-item{background:var(--parch); padding:28px; display:flex; flex-direction:column; gap:12px; min-height:224px; transition:background .2s}
.rec-item:hover{background:var(--panel)}
.rec-item .rtag{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:600}
.rec-item .rdate{font-size:12.5px; color:var(--ink-soft)}
.rec-item h3{font-family:var(--serif); font-weight:600; font-size:21px; color:var(--blue); line-height:1.18; letter-spacing:-.01em}
.rec-item p{color:var(--ink-soft); font-size:14.5px; margin-top:auto}
.rec-item a.rl{color:var(--gold); font-size:13.5px; font-weight:600}

/* closing */
.closing{text-align:center; padding:clamp(64px,10vw,128px) clamp(16px,4vw,48px); background:var(--panel)}
.closing img.seal{width:88px; height:88px; margin:0 auto 28px; filter:drop-shadow(0 6px 16px rgba(8,29,73,.28))}
.closing h2{font-family:var(--serif); font-weight:600; font-size:clamp(32px,5vw,62px); color:var(--blue); letter-spacing:-.02em; line-height:1.04; text-wrap:balance; max-width:19ch; margin:0 auto}
.closing p{color:var(--ink-soft); max-width:48ch; margin:20px auto 0; font-size:18px}
.closing .btn{margin-top:36px; font-size:17px; padding:17px 36px}

/* footer */
footer{background:var(--blue-d); color:#aab4c6; padding:58px clamp(16px,4vw,48px) 32px}
.foot-in{max-width:1220px; margin:0 auto; display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:40px}
.foot-brand{display:flex; gap:16px; align-items:flex-start}
.foot-brand img{width:52px; height:52px; flex:none}
.foot-brand .name{font-family:var(--serif); font-weight:600; font-size:16px; letter-spacing:.1em; text-transform:uppercase; color:var(--parch)}
.foot-brand p{font-size:13.5px; margin-top:8px; max-width:32ch; color:#8c97ab}
.foot-brand .motto2{margin-top:12px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-hi)}
.foot-social{display:flex; gap:12px; margin-top:16px}
.foot-social a{width:34px; height:34px; border:1px solid rgba(196,160,82,.4); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold-hi); transition:.2s; font-size:13px}
.foot-social a:hover{background:var(--gold); color:#fff; border-color:var(--gold)}
.foot-follow{margin-top:18px; font-size:12.5px; letter-spacing:.03em; color:var(--gold-hi)}
.foot-follow + .foot-social{margin-top:9px}
.follow-band{background:var(--blue); color:var(--parch)}
.follow-in{max-width:1080px; margin:0 auto; padding:60px 24px; display:flex; gap:44px; align-items:center; justify-content:space-between; flex-wrap:wrap}
.follow-copy{flex:1 1 400px; max-width:600px}
.follow-copy .label{color:var(--gold-hi)}
.follow-copy h2{font-family:var(--serif); font-size:32px; line-height:1.12; font-weight:600; color:#f7f1e2; margin:10px 0 12px}
.follow-copy p{color:#c3cedd; font-size:16px; line-height:1.62; margin:0}
.follow-act{flex:0 0 auto; display:flex; flex-direction:column; align-items:flex-start; gap:16px}
.btn-fb{display:inline-flex; align-items:center; gap:10px; background:var(--gold-grad); color:#2b1f07; font-weight:700; font-size:15px; padding:14px 22px; border-radius:8px; text-decoration:none; transition:filter .2s; box-shadow:0 1px 0 rgba(255,255,255,.35) inset, 0 6px 16px rgba(120,80,10,.22)}
.btn-fb:hover{filter:brightness(1.05)}
.btn-fb svg{width:17px; height:17px}
.follow-mini{display:flex; gap:11px}
.follow-mini a{width:36px; height:36px; border:1px solid rgba(193,155,69,.45); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold-hi); transition:.2s}
.follow-mini a:hover{background:var(--gold); color:#fff; border-color:var(--gold)}
@media(max-width:640px){.follow-copy h2{font-size:26px} .follow-in{padding:44px 20px; gap:26px}}
.herob{position:relative; overflow:hidden; background:var(--blue-d); color:var(--parch); border-bottom:1px solid rgba(196,164,87,.22)}
.herob-bg{position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 92% at 82% 4%, rgba(34,74,128,.42), transparent 58%),
    linear-gradient(180deg, var(--blue-d) 0%, #0b2038 62%, #0a2340 100%)}
.herob-bg::after{content:""; position:absolute; right:-40px; top:50%; transform:translateY(-50%); width:430px; height:430px; background:url('../assets/sum-emblem.png') center/contain no-repeat; opacity:.06}
.herob-in{position:relative; max-width:1140px; margin:0 auto; padding:94px 24px 22px}
.herob-kick{display:inline-flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-hi); font-weight:600; margin-bottom:24px}
.kdot{width:24px; height:1px; background:var(--gold-hi); display:inline-block}
.herob h1{font-family:var(--serif); font-weight:700; font-size:clamp(48px,8.6vw,90px); line-height:.99; color:#f7f1e2; margin:0 0 24px; letter-spacing:-.018em}
.herob h1 em{font-style:italic; color:var(--gold-hi)}
.herob-sub{font-size:clamp(17px,2.3vw,22px); line-height:1.5; color:#c7d2e2; max-width:640px; margin:0 0 32px}
.herob-actions{display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin-bottom:34px}
.btn-solid-gold{display:inline-flex; align-items:center; gap:8px; background:linear-gradient(180deg,#f7db83 0%,#e8bf5b 46%,#d0a036 100%); color:#2b1f07; font-weight:700; padding:16px 28px; border-radius:10px; font-size:16px; text-decoration:none; border:1px solid rgba(255,241,201,.55); box-shadow:0 12px 30px -12px rgba(226,187,98,.7), inset 0 1px 0 rgba(255,255,255,.55); transition:transform .15s, filter .2s, box-shadow .3s; animation:goldBreathe 2.8s ease-in-out infinite}
.btn-solid-gold:hover{transform:translateY(-2px); filter:brightness(1.06)}
@keyframes goldBreathe{0%,100%{box-shadow:0 10px 26px -12px rgba(226,187,98,.5), inset 0 1px 0 rgba(255,255,255,.55), 0 0 0 0 rgba(226,187,98,0)} 50%{box-shadow:0 14px 36px -10px rgba(226,187,98,.9), inset 0 1px 0 rgba(255,255,255,.55), 0 0 24px 4px rgba(226,187,98,.34)}}
@media(prefers-reduced-motion:reduce){.btn-solid-gold{animation:none}}
/* metallic gold display italic */
.herob h1 em{background:linear-gradient(180deg,#f4d67e 0%,#e7bd5d 52%,#caa03c 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:#e2bb62}
.btn-ghost-l{display:inline-flex; align-items:center; color:var(--parch); border:1px solid rgba(243,236,219,.32); padding:15px 26px; border-radius:10px; font-size:16px; text-decoration:none; transition:.2s}
.btn-ghost-l:hover{border-color:var(--gold-hi); color:var(--gold-hi)}
.herob-count{display:inline-flex; align-items:center; gap:14px; padding-top:6px}
.hc-num{font-family:var(--serif); font-weight:700; font-size:40px; color:var(--gold-hi); line-height:1; font-variant-numeric:tabular-nums}
.hc-lab{font-size:12px; color:#9fb0c8; line-height:1.4; letter-spacing:.03em; text-transform:uppercase}
.hc-lab i{text-transform:none; color:#6f8099; font-style:italic; letter-spacing:0}
.herob-strip{position:relative; display:flex; align-items:center; gap:14px; max-width:1140px; margin:0 auto; padding:16px 24px 48px; text-decoration:none; color:var(--parch); flex-wrap:wrap}
.herob-strip.in{animation:revUp .6s ease both}
.hs-tag{background:#c0392b; color:#fff; font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; padding:6px 11px; border-radius:5px; white-space:nowrap}
.hs-txt{font-size:15.5px; color:#d0d8e4; flex:1; min-width:220px}
.hs-txt b{color:#f0b8ad; font-weight:600}
.hs-go{color:var(--gold-hi); font-size:14px; font-weight:600; white-space:nowrap}

/* home — cost of living band */
.cost{background:var(--panel); padding:clamp(52px,7vw,84px) 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.cost-in{max-width:1140px; margin:0 auto; padding:0 24px}
.cost-head{max-width:640px; margin-bottom:34px}
.cost-head h2{font-family:var(--serif); font-weight:700; font-size:clamp(28px,4.4vw,44px); color:var(--blue); line-height:1.04; letter-spacing:-.015em; margin:12px 0 12px}
.cost-head p{font-size:17px; color:#39414c; line-height:1.6}
.cost-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.cost-card{background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px 22px}
.ck{font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--gold)}
.cost-card h3{font-family:var(--serif); font-weight:700; font-size:19px; color:var(--blue); margin:8px 0 8px; line-height:1.15}
.cost-card p{font-size:14.5px; color:#4a5462; line-height:1.55; margin:0}
.cost-foot{display:flex; gap:14px; flex-wrap:wrap; margin-top:30px}
@media(max-width:900px){.cost-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.cost-grid{grid-template-columns:1fr}}

/* whistleblower */
.wb-assure{display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; justify-content:center; background:var(--blue-d); color:var(--parch); border:1px solid rgba(224,185,94,.28); border-radius:14px; padding:20px 26px; margin:0 auto 30px; max-width:780px; text-align:center}
.wb-assure svg{flex:0 0 auto; color:var(--gold-hi)}
.wb-assure .p{font-size:15.5px; letter-spacing:.01em}
.wb-assure .p b{color:#f3e8c8; font-weight:600}

@media(max-width:640px){.herob-in{padding:64px 20px 18px} .herob-strip{padding:14px 20px 40px} .herob-bg::after{width:280px; height:280px; right:-100px; opacity:.05}}
[data-reveal]{opacity:1}
[data-reveal].in{animation:revUp .7s ease both}

@keyframes revUp{from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:none}}
.skip{position:absolute; left:12px; top:-60px; z-index:2000; background:var(--blue); color:var(--parch); padding:11px 18px; border-radius:0 0 10px 10px; font-size:14px; font-weight:600; text-decoration:none; transition:top .2s}
.skip:focus{top:0}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold); outline-offset:2px; border-radius:3px}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important}}
.rc-zone{background:var(--blue-d); color:var(--parch); padding:66px 0; margin-top:56px; border-top:1px solid rgba(196,164,87,.2); border-bottom:1px solid rgba(196,164,87,.2)}
.rc-zone .in{max-width:1080px; margin:0 auto; padding:0 24px}
.rc-zone .section-head h2{color:#f7f1e2}
.rc-globe{width:100%; height:460px; margin:18px 0 30px; cursor:grab}
.rc-globe:active{cursor:grabbing}
.rc-charts{display:grid; grid-template-columns:1.35fr 1fr; gap:20px}
.rc-card{background:#122a4b; border:1px solid #24406a; border-radius:14px; padding:18px 20px}
.rc-card h3{font-family:var(--serif); font-size:17px; color:#f2ead9; margin:0 0 14px; font-weight:600}
.rc-card .cw{position:relative; height:240px}
@media(max-width:760px){.rc-charts{grid-template-columns:1fr} .rc-globe{height:360px}}
/* receipts: method callout, ledger detail cells, downloads */
.rc-method{background:#122a4b; border:1px solid #24406a; border-left:3px solid var(--gold-line); border-radius:14px; padding:24px 30px}
.rc-method p{color:#c7d2e2; font-size:15.5px; line-height:1.62; margin:10px 0 0; max-width:900px}
.rc-method b{color:#f2ead9; font-weight:600}
.rc-breakdown{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:20px 0 0}
.rcb{background:#122a4b; border:1px solid #24406a; border-radius:12px; padding:18px 18px}
.rcb-n{font-family:var(--serif); font-weight:600; font-size:clamp(20px,2.4vw,26px); color:var(--gold-hi); line-height:1.05}
.rcb-l{font-size:12.5px; color:#9fb0c8; margin-top:7px; line-height:1.35}
@media(max-width:760px){.rc-breakdown{grid-template-columns:1fr 1fr}}
.rt-date{white-space:nowrap; font-variant-numeric:tabular-nums; color:var(--ink-soft); font-size:14px}
.rt-purp{display:block; font-family:var(--sans); font-weight:400; font-size:13px; color:var(--ink-soft); margin-top:4px; line-height:1.4}
.rt-conf{font-size:11.5px; color:var(--ink-soft); font-weight:500; white-space:nowrap}
.rt-cost{white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:600; color:var(--blue)}
.ledger .rl{color:var(--gold-text); font-size:13px; white-space:nowrap}
.rc-download{margin-top:56px; background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:26px 28px; text-align:center}
.rc-download p{max-width:560px; margin:8px auto 18px; color:var(--ink-soft)}
.rc-dl-row{display:flex; gap:14px; justify-content:center; flex-wrap:wrap}

/* ===== The File — dramatised dossier / case-file cards ===== */
.files{max-width:1000px; margin:0 auto; display:flex; flex-direction:column; gap:30px}
.dossier{position:relative; margin-top:16px;
  background:
    repeating-linear-gradient(0deg, rgba(70,52,18,.035) 0 26px, transparent 26px 27px),
    linear-gradient(178deg,#f7efdb 0%,#efe3c6 100%);
  border:1px solid #d9c99f; border-radius:2px 8px 8px 8px;
  box-shadow:0 22px 46px -22px rgba(38,28,8,.55), 0 1px 0 #eadfbd inset;
  padding:30px 30px 26px}
.dossier::before{content:""; position:absolute; top:-15px; left:-1px; width:172px; height:16px;
  background:linear-gradient(178deg,#efe0b6,#e3d2a3); border:1px solid #d3c091; border-bottom:none; border-radius:7px 7px 0 0}
.dossier::after{content:""; position:absolute; inset:5px; border:1px solid rgba(120,90,32,.14); border-radius:2px 6px 6px 6px; pointer-events:none}
.doss-fileno{position:relative; font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace; font-size:11px; letter-spacing:.14em; color:#8a7440; text-transform:uppercase; margin-bottom:20px; display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.doss-fileno .dot{width:6px; height:6px; border-radius:50%; background:var(--red); display:inline-block}
.doss-body{display:grid; grid-template-columns:158px 1fr; gap:30px; align-items:start}
.photo-frame{position:relative; background:#23262f; border:1px solid #c9b98f; padding:9px; box-shadow:0 6px 16px rgba(0,0,0,.25)}
.photo-frame svg{display:block; width:100%; height:auto; filter:grayscale(1) contrast(1.04)}
.photo-frame .pf-tag{position:absolute; left:9px; right:9px; bottom:9px; text-align:center; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:8.5px; letter-spacing:.16em; color:#d3c091; background:rgba(0,0,0,.55); padding:3px 0}
.pf-corner{position:absolute; width:15px; height:15px; border:2px solid var(--gold-hi)}
.pf-corner.tl{top:3px; left:3px; border-right:0; border-bottom:0}
.pf-corner.tr{top:3px; right:3px; border-left:0; border-bottom:0}
.pf-corner.bl{bottom:3px; left:3px; border-right:0; border-top:0}
.pf-corner.br{bottom:3px; right:3px; border-left:0; border-top:0}
.doss-cap{text-align:center; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:9.5px; letter-spacing:.2em; color:#8a7440; margin-top:10px; text-transform:uppercase}
.doss-name{font-family:var(--serif); font-size:clamp(24px,3.4vw,32px); font-weight:600; color:var(--blue-d); line-height:1}
.doss-title{font-size:13px; color:var(--ink-soft); margin:7px 0 18px; line-height:1.45}
.doss-rec{width:100%; border-collapse:collapse; font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace}
.doss-rec td{padding:10px 2px; border-bottom:1px dashed #cdbd93; font-size:13px; color:#3c331f; vertical-align:baseline}
.doss-rec td:first-child{color:#7c6a42; padding-right:14px; letter-spacing:.01em}
.doss-rec td:last-child{text-align:right; font-weight:700; color:var(--blue-d); white-space:nowrap; font-variant-numeric:tabular-nums}
.doss-rec tr.big td{border-bottom:2px solid rgba(138,43,52,.3); padding-top:13px}
.doss-rec tr.big td:first-child{color:var(--red)}
.doss-rec tr.big td:last-child{color:var(--red); font-size:16px; white-space:normal}
.doss-rec tr:last-child td{border-bottom:none}
.doss-note{margin-top:14px; font-size:11.5px; color:#8a7440; font-style:italic; line-height:1.5}
.doss-stamp{position:absolute; top:44px; right:20px; transform:rotate(8deg);
  font-family:var(--serif); font-weight:700; font-size:clamp(15px,2vw,20px); letter-spacing:.05em; color:rgba(138,43,52,.72);
  border:3px solid rgba(138,43,52,.5); border-radius:7px; padding:6px 15px; text-transform:uppercase; text-align:center; line-height:1.05;
  box-shadow:0 0 0 1px rgba(138,43,52,.18) inset; pointer-events:none; background:rgba(247,239,219,.35)}
.doss-stamp small{display:block; font-family:var(--sans); font-weight:600; font-size:9px; letter-spacing:.14em; opacity:.85; margin-top:2px}
@media(max-width:640px){
  .doss-body{grid-template-columns:1fr; gap:20px}
  .doss-photo{max-width:158px; margin:0 auto}
  .doss-stamp{position:static; display:inline-block; transform:rotate(-2deg); margin-top:18px}
}
.dmap{display:grid; gap:26px; grid-template-columns:1.1fr .9fr; align-items:start; margin-top:8px}
.dmap-islands{display:flex; flex-direction:column; gap:22px}
.dmap-isl h4{font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin:0 0 12px}
.dmap-tiles{display:flex; flex-wrap:wrap; gap:8px}
.dtile{border:1px solid var(--line); background:var(--panel); color:var(--ink); font-size:13px; padding:9px 13px; border-radius:8px; cursor:pointer; transition:.16s; font-family:var(--sans); line-height:1.1}
.dtile:hover{border-color:var(--gold-line); background:#fff; transform:translateY(-1px)}
.dtile.on{background:var(--blue); color:var(--parch); border-color:var(--blue)}
.dpanel{position:sticky; top:96px; background:var(--blue); color:var(--parch); border-radius:16px; padding:26px 26px 28px; min-height:260px}
.dpanel .lab{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-hi); font-weight:600}
.dpanel h3{font-family:var(--serif); font-size:26px; color:#f7f1e2; margin:8px 0 6px; font-weight:600}
.dpanel .isl{font-size:13.5px; color:#a9b6cb; margin-bottom:18px}
.dpanel .drow{display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid rgba(196,164,87,.2); font-size:14px}
.dpanel .drow .k{color:#9fb0c8}
.dpanel .drow .v{color:#f3ecdb; text-align:right}
.dcta{display:inline-block; background:var(--gold-grad); color:#2b1f07; font-weight:700; padding:11px 20px; border-radius:8px; text-decoration:none; font-size:14.5px; transition:filter .2s; box-shadow:0 1px 0 rgba(255,255,255,.35) inset, 0 6px 16px rgba(120,80,10,.22)}
.dcta:hover{filter:brightness(1.05)}
.dpanel .dcta{margin-top:20px}
@media(max-width:820px){.dmap{grid-template-columns:1fr} .dpanel{position:static}}
.calc{display:grid; grid-template-columns:1.1fr .9fr; gap:30px; align-items:start; margin-top:6px}
.calc-inputs{display:flex; flex-direction:column; gap:24px}
.cinput label{display:flex; justify-content:space-between; align-items:baseline; font-size:14.5px; color:var(--ink); font-weight:500; margin-bottom:11px}
.cinput label .val{font-family:var(--serif); font-size:19px; color:var(--blue); font-weight:600; font-variant-numeric:tabular-nums}
.cinput input[type=range]{-webkit-appearance:none; appearance:none; width:100%; height:6px; border-radius:6px; background:var(--parch2); outline:none; margin:0}
.cinput input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:50%; background:var(--gold); cursor:pointer; border:3px solid #fff; box-shadow:0 2px 7px rgba(0,0,0,.22)}
.cinput input[type=range]::-moz-range-thumb{width:20px; height:20px; border-radius:50%; background:var(--gold); cursor:pointer; border:3px solid #fff}
.cinput input[type=range]:focus-visible{box-shadow:0 0 0 3px rgba(193,155,69,.4)}
.calc-result{position:sticky; top:96px; background:var(--blue); color:var(--parch); border-radius:18px; padding:28px 28px 30px; text-align:center}
.cr-lab{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-hi); font-weight:600}
.cr-big{font-family:var(--serif); margin:14px 0 4px; line-height:1; display:flex; align-items:baseline; justify-content:center; gap:6px}
.cr-cur{font-size:22px; color:var(--gold-hi)}
.cr-big #cr-month{font-size:56px; font-weight:700; color:#f7f1e2; font-variant-numeric:tabular-nums}
.cr-per{font-size:15px; color:#9fb0c8}
.cr-year{font-size:14.5px; color:#c3cedd; margin-bottom:20px}
.cr-year b{color:var(--gold-hi)}
.cr-break{text-align:left; border-top:1px solid rgba(196,164,87,.22); padding-top:6px; margin-bottom:22px}
.crb{display:flex; justify-content:space-between; padding:9px 0; font-size:14px; color:#c3cedd; border-bottom:1px solid rgba(255,255,255,.06)}
.crb:last-child{border-bottom:none}
.crb b{color:#f3ecdb; font-variant-numeric:tabular-nums}
@media(max-width:820px){.calc{grid-template-columns:1fr} .calc-result{position:static}}
.pmatch{display:grid; grid-template-columns:1.15fr .85fr; gap:30px; align-items:start; margin-top:6px}
.pchips{display:flex; flex-wrap:wrap; gap:9px}
.pchip{border:1px solid var(--line); background:var(--panel); color:var(--ink); font-size:13.5px; padding:10px 15px; border-radius:30px; cursor:pointer; transition:.16s; font-family:var(--sans); line-height:1.1}
.pchip:hover{border-color:var(--gold-line); background:#fff}
.pchip.on{background:var(--blue); color:var(--parch); border-color:var(--blue)}
.presult{position:sticky; top:96px; background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:22px 22px 24px; min-height:220px}
.pr-empty{color:var(--ink-soft); font-size:14.5px; line-height:1.55}
.pr-head{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:12px}
.pr-item{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; margin-bottom:8px; text-decoration:none; color:inherit; background:#fff; transition:.16s}
.pr-item:hover{border-color:var(--gold-line); transform:translateY(-1px)}
.pr-item b{display:block; color:var(--blue); font-size:14.5px; margin-bottom:2px}
.pr-item span{font-size:12.5px; color:var(--ink-soft)}
.pr-go{color:var(--gold); font-size:13px; font-weight:600; white-space:nowrap}
.presult .dcta{margin-top:14px; display:block; text-align:center}
@media(max-width:820px){.pmatch{grid-template-columns:1fr} .presult{position:static}}
.benefit-box{margin-top:2.2em; background:var(--panel); border:1px solid var(--gold-line); border-left:4px solid var(--gold); border-radius:0 12px 12px 0; padding:22px 26px}
.benefit-box .bb-lab{display:block; font-size:11.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:9px}
.benefit-box p{font-family:var(--serif); font-size:19px; line-height:1.5; color:var(--ink); margin:0}
.roadmap{list-style:none; margin:14px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:26px; position:relative}
.roadmap::before{content:""; position:absolute; top:9px; left:9%; right:9%; height:2px; background:var(--gold-line); z-index:0}
.rm-step{position:relative; padding-top:34px; z-index:1}
.rm-dot{position:absolute; top:1px; left:0; width:16px; height:16px; border-radius:50%; background:var(--gold); border:3px solid var(--panel); box-shadow:0 0 0 2px var(--gold-line)}
.rm-when{font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:7px}
.rm-step h3{font-family:var(--serif); font-size:19px; color:var(--blue); margin:0 0 8px; font-weight:600}
.rm-step p{font-size:14px; line-height:1.56; color:var(--ink-soft); margin:0}
@media(max-width:800px){.roadmap{grid-template-columns:1fr; gap:0} .roadmap::before{left:7px; right:auto; top:6px; bottom:6px; width:2px; height:auto} .rm-step{padding:0 0 26px 30px} .rm-dot{left:0; top:4px}}
.foot-col .foot-lab{font-family:var(--sans); font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-hi); margin-bottom:15px}
.foot-col a{display:block; color:#8c97ab; font-size:14.5px; padding:5px 0; transition:color .2s}
.foot-col a:hover{color:var(--parch)}
.foot-bottom{max-width:1220px; margin:42px auto 0; padding-top:22px; border-top:1px solid rgba(196,164,87,.24); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12.5px; color:#7d879a}

/* ==========================================================================
   INTERIOR PAGES
   ========================================================================== */
/* interior page hero */
.page-hero{position:relative; background:
  radial-gradient(110% 120% at 92% 0%, rgba(166,129,47,.10), transparent 55%), var(--parch2);
  border-bottom:1px solid var(--line)}
.page-hero .in{max-width:1120px; margin:0 auto; padding:clamp(40px,6vw,78px) clamp(16px,4vw,48px)}
.crumb{font-size:12.5px; color:var(--ink-soft); letter-spacing:.02em; margin-bottom:22px}
.crumb a{color:var(--gold-text)} .crumb a:hover{color:var(--blue)} .crumb span{opacity:.5; margin:0 8px}
.page-hero h1{font-family:var(--serif); font-weight:600; font-size:clamp(34px,5vw,66px); line-height:1.02; letter-spacing:-.02em; color:var(--blue); max-width:20ch; margin-top:14px; text-wrap:balance}
.page-hero .lead{font-size:19px; color:var(--ink); max-width:60ch; margin-top:22px; line-height:1.58}
.page-hero.on-blue{background:var(--blue); border-bottom:2px solid var(--gold-line)}
.page-hero.on-blue h1{color:var(--parch)} .page-hero.on-blue .lead{color:#c8d1e2}
.page-hero.on-blue .label{color:var(--gold-hi)} .page-hero.on-blue .crumb{color:#9aa8bd} .page-hero.on-blue .crumb a{color:var(--gold-hi)}
.page-hero .article-meta{display:flex; gap:20px; flex-wrap:wrap; margin-top:24px; font-size:13px; color:var(--ink-soft); letter-spacing:.02em}
.page-hero .article-meta b{color:var(--blue); font-weight:600}

/* section shell */
.section{padding:clamp(52px,7vw,92px) clamp(16px,4vw,48px)}
.section.alt{background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.section .in{max-width:1120px; margin:0 auto}
.section-head{margin-bottom:40px}
.section-head h2{font-family:var(--serif); font-weight:600; font-size:clamp(26px,3.6vw,44px); color:var(--blue); letter-spacing:-.015em; line-height:1.06; margin-top:12px}
.section-head p{color:var(--ink-soft); max-width:56ch; margin-top:14px}
.section-head.center{text-align:center} .section-head.center p{margin-left:auto; margin-right:auto}

/* prose / article body */
.prose{max-width:68ch; font-size:18px; line-height:1.72; color:var(--ink)}
.prose>*+*{margin-top:1.15em}
.prose h2{font-family:var(--serif); font-weight:600; font-size:clamp(24px,3vw,34px); color:var(--blue); letter-spacing:-.01em; line-height:1.12; margin-top:1.8em}
.prose h3{font-family:var(--serif); font-weight:600; font-size:22px; color:var(--blue); margin-top:1.4em}
.prose p{color:var(--ink)}
.prose strong{color:var(--blue); font-weight:600}
.prose a{color:var(--gold-text); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(118,89,32,.45)}
.prose a:hover{text-decoration-color:var(--gold)}
.prose ul,.prose ol{padding-left:1.3em}
.prose li{margin-top:.5em}
.prose li::marker{color:var(--gold)}
.prose blockquote{border-left:3px solid var(--gold); padding:6px 0 6px 22px; font-family:var(--serif); font-style:italic; font-size:1.18em; color:var(--blue)}
.prose .lead-p{font-size:20px; line-height:1.6; color:var(--blue); font-family:var(--serif); font-weight:400}

/* article + aside layout */
.article-grid{display:grid; grid-template-columns:1fr 320px; gap:clamp(30px,5vw,64px); align-items:start; max-width:1120px; margin:0 auto}
.aside{position:sticky; top:96px; display:flex; flex-direction:column; gap:20px}
.factcard{border:1px solid var(--line); background:var(--panel); padding:24px}
.factcard .factcard-lab{font-family:var(--sans); font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-text); margin-bottom:16px}
.factcard .row{display:flex; justify-content:space-between; gap:14px; padding:9px 0; border-top:1px solid var(--line-soft); font-size:14.5px}
.factcard .row:first-of-type{border-top:0}
.factcard .row .k{color:var(--ink-soft)} .factcard .row .v{color:var(--blue); font-weight:600; text-align:right}
.factcard.blue{background:var(--blue); border-color:var(--blue)}
.factcard.blue .factcard-lab{color:var(--gold-hi)} .factcard.blue .row{border-color:rgba(255,255,255,.12)} .factcard.blue .k{color:#b9c2d1} .factcard.blue .v{color:#fff}

/* measures / plan blocks */
.measures{display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px}
.measure{background:var(--parch); padding:24px 26px; display:grid; grid-template-columns:44px 1fr; gap:20px}
.measure .mno{font-family:var(--serif); font-style:italic; font-size:22px; color:var(--gold)}
.measure h3{font-family:var(--serif); font-weight:600; font-size:20px; color:var(--blue); line-height:1.14}
.measure p{color:var(--ink-soft); font-size:15.5px; margin-top:7px}

/* callout */
.callout{background:var(--blue); color:var(--parch); padding:clamp(28px,4vw,44px); border-left:3px solid var(--gold); margin:8px 0}
.callout .label{color:var(--gold-hi)}
.callout p{font-family:var(--serif); font-size:clamp(19px,2.4vw,26px); line-height:1.4; color:var(--parch); margin-top:12px; font-weight:400}
.callout.cream{background:var(--panel); color:var(--ink); border-left-color:var(--gold)}

/* ---- Programme deep sections: numbers band, how-steps, impact, funding ---- */
.numbers-band{background:var(--blue-d); color:#dce4f0}
.numbers-band .section-head h2{color:#fff}
.numbers-band .label{color:var(--gold-hi)}
.pnum-grid{display:flex; flex-wrap:wrap; justify-content:center; gap:34px 48px}
.pnum{flex:1 1 190px; max-width:250px; text-align:center}
.pn-fig{font-family:var(--serif); font-weight:600; font-size:clamp(30px,4.4vw,52px); color:var(--gold-hi); line-height:1.04; letter-spacing:-.01em}
.pn-cap{font-size:13.5px; color:#aebbd2; margin-top:11px; line-height:1.45}

.howsteps{display:grid; gap:12px}
.howstep{display:grid; grid-template-columns:44px 1fr; gap:22px; align-items:start; background:var(--parch); border:1px solid var(--line); border-radius:3px; padding:22px 26px; transition:border-color .18s}
.howstep:hover{border-color:var(--blue-l)}
.hs-n{font-family:var(--serif); font-weight:600; font-size:22px; color:#fff; background:var(--blue); width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; line-height:1}
.hs-body h3{font-family:var(--serif); font-weight:600; font-size:19px; color:var(--blue); margin-bottom:6px; line-height:1.16}
.hs-body p{color:var(--ink-soft); font-size:15px; line-height:1.6}

.impact-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:16px; margin-bottom:30px}
.impact-card{background:var(--panel); border:1px solid var(--line); border-left:4px solid var(--gold); border-radius:0 4px 4px 0; padding:22px 24px}
.ic-who{font-family:var(--serif); font-weight:600; font-size:16px; color:var(--blue); margin-bottom:8px; line-height:1.2}
.impact-card p{color:var(--ink-soft); font-size:14.5px; line-height:1.6}

.fundpanel{background:var(--blue); color:#e8eef7; border-radius:4px; padding:26px 30px; border-left:4px solid var(--gold-hi)}
.fund-lab{display:block; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-hi); font-weight:600; margin-bottom:10px}
.fundpanel p{font-size:15.5px; line-height:1.62; color:#dce4f0; margin:0}
.callout.cream p{color:var(--blue)}

/* stat strip */
.stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line)}
.stat{background:var(--parch); padding:28px 24px; text-align:center}
.stat .n{font-family:var(--serif); font-weight:600; font-size:clamp(34px,4.4vw,52px); color:var(--gold-text); line-height:1; letter-spacing:-.01em}
.stat .n.money{font-size:clamp(21px,2.7vw,32px); white-space:nowrap; letter-spacing:0}
.stat .l{font-size:13.5px; color:var(--ink-soft); margin-top:10px; line-height:1.4}

/* FAQ accordion */
.faq{border-top:1px solid var(--line); max-width:820px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none; cursor:pointer; padding:22px 40px 22px 0; position:relative; font-family:var(--serif); font-weight:600; font-size:19px; color:var(--blue); line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; position:absolute; right:6px; top:20px; font-size:24px; color:var(--gold); font-family:var(--sans); transition:transform .2s}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 40px 24px 0; color:var(--ink); line-height:1.65}
.faq .a p+p{margin-top:12px}

/* timeline (100 days) */
.timeline{max-width:900px; margin:0 auto; border-left:2px solid var(--gold-line); padding-left:0}
.timeline .tl{position:relative; padding:0 0 34px 40px}
.timeline .tl::before{content:attr(data-n); position:absolute; left:-19px; top:0; width:36px; height:36px; border-radius:50%; background:var(--blue); color:var(--parch); font-family:var(--serif); font-size:15px; display:flex; align-items:center; justify-content:center; border:2px solid var(--gold-line)}
.timeline .tl h3{font-family:var(--serif); font-weight:600; font-size:21px; color:var(--blue); line-height:1.2}
.timeline .tl p{color:var(--ink-soft); font-size:15.5px; margin-top:8px; max-width:64ch}
.timeline .tl.last{padding-bottom:0}

/* principles grid */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line)}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line)}
.cell{background:var(--parch); padding:30px 28px; transition:background .2s}
.cell:hover{background:var(--panel)}
.cell .cn{font-family:var(--serif); font-style:italic; font-size:20px; color:var(--gold); margin-bottom:10px}
.cell h3{font-family:var(--serif); font-weight:600; font-size:20px; color:var(--blue); line-height:1.16}
.cell p{color:var(--ink-soft); font-size:15px; margin-top:9px; line-height:1.55}

/* team */
.team-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:26px}
.member{border:1px solid var(--line); background:var(--panel)}
.member .pic{aspect-ratio:4/5; background:var(--blue-d); overflow:hidden; position:relative}
.member .pic img{width:100%; height:100%; object-fit:cover; object-position:50% 20%}
.member .pic .empty{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(196,164,87,.5)}
.member .info{padding:18px 20px}
.member .info .nm{font-family:var(--serif); font-weight:600; font-size:19px; color:var(--blue)}
.member .info .role{font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-top:4px}
.member .info p{font-size:14px; color:var(--ink-soft); margin-top:10px; line-height:1.5}

.member .socials{display:flex; gap:9px; margin-top:14px}
.member .socials a{width:29px; height:29px; border:1px solid var(--gold-line); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold); transition:.2s}
.member .socials a:hover{background:var(--blue); color:var(--parch); border-color:var(--blue)}
.member .socials a svg{width:13px; height:13px}

/* districts */
.district-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line)}
.district{background:var(--parch); padding:20px 22px; display:flex; justify-content:space-between; align-items:center; gap:12px; transition:background .2s}
.district:hover{background:var(--panel)}
.district .nm{font-family:var(--serif); font-weight:600; font-size:17px; color:var(--blue)}
.district .st{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft)}
.district .arr{color:var(--gold)}

/* events */
.event{display:grid; grid-template-columns:120px 1fr auto; gap:28px; align-items:center; padding:26px 8px; border-bottom:1px solid var(--line)}
.event .date{text-align:center; border-right:1px solid var(--line); padding-right:20px}
.event .date .d{font-family:var(--serif); font-weight:600; font-size:34px; color:var(--blue); line-height:1}
.event .date .m{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-top:4px}
.event h3{font-family:var(--serif); font-weight:600; font-size:21px; color:var(--blue)}
.event .meta{font-size:14px; color:var(--ink-soft); margin-top:5px}
.event.past{opacity:.62}

/* forms */
.form{max-width:640px}
.form-sent{padding:22px 24px; border:1px solid var(--gold); background:var(--panel); border-radius:2px; font-size:17px; line-height:1.6; color:var(--ink)}
.field{margin-bottom:20px}
.field label{display:block}
.field label>span{display:block; font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px}
.field input,.field select,.field textarea{width:100%; padding:13px 15px; border:1px solid var(--line); background:var(--parch); font-family:var(--sans); font-size:16px; color:var(--ink); border-radius:2px; transition:border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(166,129,47,.12)}
.field .hint{font-size:12.5px; color:var(--ink-soft); margin-top:6px}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.tiers{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:8px 0 28px}
.tier{border:1px solid var(--line); background:var(--panel); padding:20px 18px; text-align:center; position:relative}
.tier.sel{border-color:var(--gold); box-shadow:0 6px 20px rgba(166,129,47,.14)}
.tier .tn{font-family:var(--serif); font-weight:600; font-size:19px; color:var(--blue)}
.tier .td{font-size:13px; color:var(--ink-soft); margin-top:8px; line-height:1.45}
.tier .soon{position:absolute; top:8px; right:8px; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); border:1px solid var(--gold-line); padding:2px 6px}
.assure{display:flex; gap:12px; align-items:flex-start; margin-top:8px; font-size:14px; color:var(--ink-soft); line-height:1.5}
.assure .ic{color:var(--gold); flex:none; font-size:16px; margin-top:1px}

/* ledger table */
.ledger{width:100%; border-collapse:collapse; font-size:15px; margin-top:8px}
.table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch}
.ledger th{text-align:left; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-text); padding:14px 16px; border-bottom:2px solid var(--gold-line); font-weight:600}
.ledger td{padding:16px; border-bottom:1px solid var(--line); vertical-align:top; color:var(--ink)}
.ledger tr:hover td{background:var(--panel)}
.ledger .promise{font-family:var(--serif); font-weight:600; color:var(--blue)}

/* ===== expandable travel-ledger evidence files ===== */
.ledger-x .lrow:hover td{background:var(--panel)}
.ledger-x .lrow-open td{background:var(--panel); border-bottom-color:transparent}
.ledger-x .lx-detail:hover td{background:var(--panel)}
.rt-open{white-space:nowrap; text-align:right}
.lx-btn{font-family:var(--sans); font-size:12.5px; font-weight:600; letter-spacing:.03em; color:var(--blue); background:var(--parch); border:1px solid var(--gold-line); border-radius:40px; padding:7px 14px; cursor:pointer; display:inline-flex; align-items:center; gap:5px; transition:.16s; white-space:nowrap}
.lx-btn:hover{background:var(--blue); color:var(--parch); border-color:var(--blue)}
.lx-chev{display:inline-block; font-size:17px; line-height:1; transition:transform .2s}
.lrow-open .lx-chev{transform:rotate(90deg)}
.lx-detail > td{padding:0 16px !important; background:var(--panel)}
.lx-body{background:linear-gradient(180deg,#fbf6ea,#f3ebd8); border:1px solid var(--gold-line); border-top:0; border-radius:0 0 12px 12px; padding:24px 26px 26px; margin:0 0 16px; box-shadow:0 16px 30px -22px rgba(38,28,8,.5)}
.lx-grid{display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:start}
.lx-col{min-width:0}
.lx-h{font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-text); margin:0 0 12px}
.lx-col .lx-h + .lx-h, .lx-col .lxc + .lx-h, .lx-col .lx-p + .lx-h, .lx-col .lxc-total + .lx-h{margin-top:22px}
.lx-p{font-size:14px; color:var(--ink-soft); line-height:1.55; margin:0 0 8px}
.lx-p b{color:var(--ink)}
.lxi{list-style:none; margin:0; padding:0; position:relative}
.lxi::before{content:""; position:absolute; left:5px; top:6px; bottom:10px; width:2px; background:var(--gold-line)}
.lxi li{position:relative; padding:0 0 16px 26px; font-size:14px; line-height:1.5; color:var(--ink)}
.lxi li::before{content:""; position:absolute; left:0; top:4px; width:12px; height:12px; border-radius:50%; background:var(--parch); border:2px solid var(--gold)}
.lxi-d{display:block; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:11px; letter-spacing:.05em; color:var(--gold-text); text-transform:uppercase; margin-bottom:2px}
.lxc{border-top:1px solid var(--line); padding:12px 0}
.lxc:first-of-type{border-top:0; padding-top:2px}
.lxc-h{display:flex; justify-content:space-between; align-items:baseline; gap:14px}
.lxc-l{font-weight:600; color:var(--blue); font-size:14.5px}
.lxc-n{font-family:var(--serif); font-weight:600; color:var(--blue); font-variant-numeric:tabular-nums; white-space:nowrap}
.lxc-note{font-size:12.5px; color:var(--ink-soft); margin-top:4px; line-height:1.45}
.lxc-b{font-size:12.5px; color:var(--ink); background:rgba(157,122,48,.1); border-left:2px solid var(--gold); padding:8px 12px; border-radius:0 6px 6px 0; margin-top:8px; line-height:1.5}
.lxc-b a,.lx-pub a{color:var(--gold-text); font-weight:600; white-space:nowrap}
.lxc-total{border-top:2px solid var(--gold-line); margin-top:6px; padding-top:12px}
.lxc-total .lxc-l{color:var(--red)}
.lxc-total .lxc-n{color:var(--red); font-size:19px}
.lx-pub{font-size:13px; color:var(--ink); background:rgba(10,122,61,.08); border:1px solid rgba(10,122,61,.22); border-radius:8px; padding:10px 12px; margin-top:14px; line-height:1.5}
.lx-sources{margin-top:22px; border-top:1px dashed var(--gold-line); padding-top:18px}
.lx-src-row{display:flex; flex-wrap:wrap; gap:9px}
.lx-src{display:inline-flex; align-items:center; gap:8px; max-width:100%; font-size:12.5px; color:var(--blue); background:var(--parch); border:1px solid var(--line); border-radius:8px; padding:8px 12px; transition:.16s; line-height:1.3}
.lx-src:hover{border-color:var(--gold-line); background:#fff; transform:translateY(-1px)}
.lx-src b{color:var(--gold-text); white-space:nowrap}
.lx-src-t{color:var(--ink-soft); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:360px}
@media(max-width:760px){
  .lx-grid{grid-template-columns:1fr; gap:4px}
  .lx-col .lx-p + .lx-h{margin-top:20px}
  .lx-src-t{max-width:190px}
  .lx-body{padding:18px 15px 20px}
}
.tag{display:inline-block; font-size:11px; letter-spacing:.06em; text-transform:uppercase; font-weight:600; padding:4px 10px; border-radius:40px}
.tag.kept{background:rgba(10,122,61,.12); color:var(--green)}
.tag.broken{background:rgba(138,43,52,.12); color:var(--red)}
.tag.pending{background:rgba(157,122,48,.14); color:var(--gold-text)}

/* media kit */
.swatches{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:16px}
.swatch{border:1px solid var(--line)}
.swatch .chip{height:88px}
.swatch .meta{padding:12px 14px; font-size:13px}
.swatch .meta .nm{font-weight:600; color:var(--blue)}
.swatch .meta .hex{color:var(--ink-soft); font-family:var(--sans); letter-spacing:.04em}
.downloads{display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line)}
.dl{background:var(--parch); padding:20px 24px; display:flex; justify-content:space-between; align-items:center; gap:16px; transition:background .2s}
.dl:hover{background:var(--panel)}
.dl .nm{font-family:var(--serif); font-weight:600; font-size:17px; color:var(--blue)}
.dl .ty{font-size:12px; color:var(--ink-soft); letter-spacing:.06em; text-transform:uppercase; margin-top:3px}
.dl-soon{opacity:.72}
.dl-soon:hover{background:var(--parch)}
.dl-tag{font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); border:1px solid var(--line); border-radius:999px; padding:5px 12px; white-space:nowrap}

/* signature gap (we made history) */
.gap-viz{display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,64px); align-items:end; margin:12px 0}
.gap-col{display:flex; flex-direction:column; gap:12px}
.gap-num{font-family:var(--serif); font-weight:600; line-height:.9; letter-spacing:-.02em}
.gap-signed .gap-num{font-size:clamp(52px,10vw,120px); color:var(--gold)}
.gap-voted .gap-num{font-size:clamp(40px,7vw,86px); color:var(--ink-soft)}
.gap-bar{height:14px; border-radius:8px; margin-top:6px}
.gap-signed .gap-bar{background:linear-gradient(90deg,var(--gold),var(--gold-hi))}
.gap-voted .gap-bar{background:#c9bfa8; width:24%}
.gap-lbl{font-size:15px; color:var(--ink)} .gap-lbl.dim{color:var(--ink-soft)}
.ph-num{font-family:var(--sans); font-size:12px; font-weight:600; color:var(--parch); background:var(--ink-soft); padding:3px 9px; border-radius:2px; letter-spacing:.06em; vertical-align:middle}

/* split feature */
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; max-width:1120px; margin:0 auto}
.split .fig{aspect-ratio:4/3; overflow:hidden; border:1px solid var(--gold-line)}
.split .fig img{width:100%; height:100%; object-fit:cover}
.split h2{font-family:var(--serif); font-weight:600; font-size:clamp(26px,3.4vw,40px); color:var(--blue); letter-spacing:-.015em; line-height:1.1}
.split p{color:var(--ink-soft); margin-top:16px; font-size:16.5px; line-height:1.6}

/* prev / next */
.prevnext{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px}
.pn{background:var(--parch); padding:24px 26px; transition:background .2s}
.pn:hover{background:var(--panel)}
.pn.next{text-align:right}
.pn .dir{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold)}
.pn .t{font-family:var(--serif); font-weight:600; font-size:18px; color:var(--blue); margin-top:6px; line-height:1.2}

.muted{color:var(--ink-soft)}
.center{text-align:center}
.mt{margin-top:34px}
.disclaimer{font-size:12.5px; color:var(--ink-soft); border:1px dashed var(--line); padding:14px 18px; border-radius:2px; background:var(--panel); max-width:820px}

/* ==========================================================================
   YOUR MNA — contact your representative
   ========================================================================== */
.mna-lead{max-width:760px; margin:0 auto 40px; text-align:center}
.mna-lead h2{font-size:clamp(24px,3.1vw,34px); color:var(--blue); line-height:1.16; margin:14px 0 12px}
.mna-lead p{color:var(--ink-soft); font-size:16px}

/* civics: three jobs */
.mna-civics{background:var(--panel); border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft)}
.mna-jobs{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.mna-job{background:var(--parch); border:1px solid var(--line); border-top:3px solid var(--blue); border-radius:3px; padding:26px 24px 28px; position:relative}
.mna-job .jn{font-family:var(--serif); font-size:13px; font-weight:600; letter-spacing:.16em; color:var(--gold-text); display:block; margin-bottom:10px}
.mna-job h3{font-family:var(--serif); font-size:20px; color:var(--blue); margin-bottom:9px}
.mna-job p{font-size:14.5px; color:var(--ink-soft); line-height:1.6}

/* directory tools */
.mna-tools{display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap; margin-bottom:16px}
.mna-searchwrap{position:relative; flex:1; min-width:260px}
.mna-mag{position:absolute; left:15px; top:50%; transform:translateY(-50%); color:var(--ink-soft); pointer-events:none}
#mna-q{width:100%; font-family:var(--sans); font-size:15px; color:var(--ink); background:var(--parch); border:1px solid var(--line); border-radius:3px; padding:13px 16px 13px 44px; outline:none; transition:border-color .18s, box-shadow .18s}
#mna-q:focus{border-color:var(--blue-l); box-shadow:0 0 0 3px rgba(32,71,124,.12)}
#mna-q::placeholder{color:var(--ink-soft); opacity:.75}
.mna-filters{display:flex; gap:8px; flex-wrap:wrap}
.mna-fbtn{font-family:var(--sans); font-size:13px; font-weight:600; color:var(--ink-soft); background:var(--parch); border:1px solid var(--line); border-radius:100px; padding:9px 15px; cursor:pointer; transition:.18s; display:inline-flex; align-items:center; gap:7px}
.mna-fbtn:hover{border-color:var(--blue-l); color:var(--ink)}
.mna-fbtn.on{background:var(--blue); border-color:var(--blue); color:var(--parch)}
.mna-fbtn .fc{font-size:11.5px; opacity:.7; font-weight:700}
.mna-fbtn.on .fc{opacity:.85}
.mna-showing{font-size:12.5px; letter-spacing:.02em; color:var(--ink-soft); margin:0 0 18px 2px}
.mna-showing #mna-count{font-weight:700; color:var(--ink)}

/* the grid of cards */
.mna-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.mna-card{display:flex; flex-direction:column; background:var(--parch); border:1px solid var(--line); border-radius:5px; overflow:hidden; transition:border-color .18s, box-shadow .18s, transform .18s}
.mna-card:hover{border-color:var(--blue-l); box-shadow:0 8px 24px rgba(12,31,56,.1); transform:translateY(-2px)}
/* portrait */
.mna-ph{display:block; aspect-ratio:1/1; background:var(--blue-d); overflow:hidden; position:relative}
.mna-ph img{width:100%; height:100%; object-fit:cover; object-position:center 22%; display:block; transition:transform .3s}
.mna-card:hover .mna-ph img{transform:scale(1.035)}
.mna-mono{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:38px; font-weight:600; color:rgba(255,255,255,.85); letter-spacing:.03em}
.mna-cbody{display:flex; flex-direction:column; padding:15px 16px 16px; flex:1}
.mna-top{display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:3px}
.mna-dist{font-family:var(--serif); font-size:17px; font-weight:600; color:var(--blue); line-height:1.15}
.mna-isle{font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); flex:none; opacity:.75}
.mna-rep{font-size:15px; color:var(--ink); font-weight:500; margin-bottom:11px}
.mna-card-pr .mna-rep{font-family:var(--serif); font-size:17px; font-weight:600; color:var(--blue); margin-bottom:11px}
.mna-meta{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.mna-badge{font-size:11px; font-weight:600; letter-spacing:.02em; padding:4px 9px; border-radius:100px; white-space:nowrap; line-height:1.3}
.mna-badge.us{background:rgba(16,120,120,.12); color:#0d6a63; border:1px solid rgba(16,120,120,.24)}
.mna-badge.lds{background:rgba(176,120,20,.13); color:#8a5a12; border:1px solid rgba(176,120,20,.26)}
.mna-role{font-size:11px; font-weight:600; letter-spacing:.02em; color:var(--red); background:rgba(138,43,52,.08); border:1px solid rgba(138,43,52,.2); padding:4px 9px; border-radius:100px; line-height:1.3}
/* contact links on each card */
.mna-links{display:flex; flex-direction:column; gap:5px; margin-top:auto; padding-top:12px}
.mna-links a{display:inline-flex; align-items:center; gap:7px; text-decoration:none; line-height:1.35}
.mna-mail{font-size:12.5px; color:var(--blue); word-break:break-all}
.mna-mail svg{flex:none; opacity:.7}
.mna-mail:hover{color:var(--red); text-decoration:underline}
.mna-prof{font-size:12px; font-weight:600; letter-spacing:.02em; color:var(--ink-soft)}
.mna-prof:hover{color:var(--blue)}
.mna-empty{text-align:center; color:var(--ink-soft); font-size:15px; padding:30px 0}

/* what they cost / what they control */
.mna-pay .in{max-width:1080px}
.pay-two{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:8px}
.pay-card{background:var(--parch); border:1px solid var(--line); border-radius:6px; padding:26px 26px 22px; display:flex; flex-direction:column}
.pay-tag{font-size:11px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:12px}
.pay-intro{font-size:14.5px; color:var(--ink-soft); line-height:1.6; margin-bottom:16px}
.paygrid{display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line-soft)}
.payrow{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 0; border-bottom:1px solid var(--line-soft)}
.pay-k{font-size:13.5px; color:var(--ink); line-height:1.4; max-width:58%}
.pay-v{font-family:var(--serif); font-size:20px; font-weight:600; color:var(--blue); white-space:nowrap; text-align:right; display:flex; flex-direction:column; align-items:flex-end; line-height:1.15}
.pay-v small{font-family:var(--sans); font-size:11px; font-weight:500; color:var(--ink-soft); letter-spacing:.02em; margin-top:2px}
.pay-note{font-size:12.5px; color:var(--ink-soft); line-height:1.6; margin:15px 0 0}
.pay-total{margin-top:16px; padding:15px 16px; background:rgba(21,50,90,.05); border-left:3px solid var(--blue); border-radius:0 4px 4px 0; font-size:14px; line-height:1.6; color:var(--ink)}
.pay-total strong{color:var(--blue); font-weight:700}
.pay-src{font-size:11.5px; color:var(--ink-soft); line-height:1.55; margin-top:auto; padding-top:16px}
.pay-src a{color:var(--blue); text-decoration:underline}
.pay-card-dark{background:var(--blue-d); border-color:var(--blue-d); color:#dce4f0}
.pay-card-dark .pay-tag{color:#8ea6c8}
.pay-card-dark p{font-size:14px; line-height:1.62; color:#c8d3e4; margin:0 0 12px}
.pay-card-dark strong{color:#fff; font-weight:600}
.pay-zero{display:flex; flex-direction:column; gap:2px; padding:6px 0 16px; margin-bottom:6px; border-bottom:1px solid rgba(255,255,255,.14)}
.pz-n{font-family:var(--serif); font-size:44px; font-weight:700; color:#fff; line-height:1}
.pz-l{font-size:13px; color:#a9bcd6; letter-spacing:.01em}
.pay-punch{font-size:14.5px !important; color:#fff !important; font-weight:500; border-left:3px solid var(--gold,#c69a3e); padding-left:14px; margin-top:4px !important}
.pay-src-dark{color:#8ea6c8; padding-top:14px}
.pay-src-dark a{color:#b9cbe6}
@media(max-width:820px){ .pay-two{grid-template-columns:1fr} }

/* ---- Every cent page ---- */
.ec-block .in{max-width:1000px}
.ec-alt{background:var(--sand,#f3ecdb)}
.ec-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:6px}
.ec-fig{background:var(--parch); border:1px solid var(--line); border-radius:5px; padding:20px 18px; text-align:center}
.ec-alt .ec-fig{background:#fff}
.ec-n{font-family:var(--serif); font-size:23px; font-weight:700; color:var(--blue); line-height:1.1}
.ec-l{font-size:12.5px; color:var(--ink-soft); margin-top:7px; line-height:1.4}
.ec-tot{margin-top:20px; background:var(--blue-d); color:#dce4f0; border-radius:6px; padding:24px 26px}
.ec-tot-main{display:flex; flex-direction:column; gap:3px; padding-bottom:14px; margin-bottom:14px; border-bottom:1px solid rgba(255,255,255,.14)}
.ec-tot-n{font-family:var(--serif); font-size:34px; font-weight:700; color:#fff; line-height:1}
.ec-tot-l{font-size:14px; color:#a9bcd6}
.ec-tot-note{font-size:13.5px; line-height:1.65; color:#c8d3e4; margin:0}
.ec-tot-note strong{color:#fff; font-weight:600}
.ec-tot-note a, .ec-lawnote a{color:#b9cbe6; text-decoration:underline}
/* pay ladder */
.ec-ladder{display:flex; flex-direction:column; border-top:1px solid var(--line)}
.ec-lrow{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 2px; border-bottom:1px solid var(--line-soft)}
.ec-lk{font-size:14.5px; color:var(--ink); line-height:1.4; max-width:64%}
.ec-lk small{display:block; font-size:11.5px; color:var(--ink-soft); margin-top:2px; font-weight:400}
.ec-lv{font-family:var(--serif); font-size:22px; font-weight:600; color:var(--blue); white-space:nowrap; text-align:right}
.ec-lv small{display:block; font-family:var(--sans); font-size:11px; font-weight:500; color:var(--ink-soft)}
/* parties */
.ec-parties{background:var(--blue-d); color:#dce4f0}
.ec-parties .label{color:#8ea6c8}
.ec-parties .mna-lead h2{color:#fff}
.ec-parties .mna-lead p{color:#c3cedd}
.ec-parties .mna-lead p strong{color:#fff}
.ec-partybox{display:flex; flex-direction:column; gap:14px; margin-top:8px}
.ec-prow{background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.1); border-radius:5px; padding:13px 15px}
.ec-prow-big{border-color:rgba(255,255,255,.2)}
.ec-prow-sum{border-color:var(--gold,#c69a3e); background:rgba(198,154,62,.1)}
.ec-phead{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:9px}
.ec-pname{font-size:14.5px; font-weight:600; color:#fff; line-height:1.3}
.ec-pname small{font-weight:400; font-size:12px; color:#9fb0c8; margin-left:4px; white-space:nowrap}
.ec-pbarwrap{width:100%}
.ec-pbar{height:15px; border-radius:3px; background:linear-gradient(90deg,#4d7cbf,#6d97cf); min-width:3px; max-width:100%}
.ec-prow-sum .ec-pbar{background:linear-gradient(90deg,#c69a3e,#e0b95e)}
.ec-pv{font-family:var(--serif); font-size:18px; font-weight:700; color:#fff; white-space:nowrap; flex:none}
.ec-pv-none{font-family:var(--sans); font-size:13px; font-weight:500; color:#8ea6c8; font-style:italic}
.ec-pnote{display:block; font-size:11.5px; color:#8ea6c8; margin-top:6px}
.ec-punchrow{margin-top:22px}
.ec-punch{display:flex; align-items:center; gap:20px; background:rgba(198,154,62,.12); border:1px solid rgba(198,154,62,.3); border-radius:6px; padding:20px 22px}
.ec-punch-n{font-family:var(--serif); font-size:52px; font-weight:800; color:var(--gold,#e0b95e); line-height:.9; flex:none}
.ec-punch-l{font-size:14.5px; line-height:1.6; color:#dce4f0}
.ec-punch-l strong{color:#fff; font-weight:600}
.ec-lawnote{font-size:12.5px; line-height:1.65; color:#9fb0c8; margin-top:20px; max-width:820px}
/* sources + close */
.ec-sources .in{max-width:840px}
.ec-srclist{list-style:none; padding:0; margin:16px 0 0; display:flex; flex-direction:column; gap:12px}
.ec-srclist li{font-size:14px; line-height:1.6; color:var(--ink-soft); padding-left:16px; border-left:2px solid var(--line)}
.ec-srclist strong{color:var(--ink)}
.ec-srclist a{color:var(--blue); text-decoration:underline}
.ec-close{margin-top:40px; padding-top:34px; border-top:1px solid var(--line)}
.ec-close h3{font-size:clamp(22px,3.4vw,30px); color:var(--blue); margin:0 0 12px}
.ec-close p{font-size:15.5px; line-height:1.65; color:var(--ink); max-width:680px}
.ec-close-act{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px}
@media(max-width:820px){
  .ec-grid{grid-template-columns:repeat(2,1fr)}
  .ec-lk{max-width:56%}
  .ec-punch{flex-direction:column; align-items:flex-start; gap:10px}
  .ec-punch-n{font-size:44px}
}
@media(max-width:520px){
  .ec-grid{grid-template-columns:1fr}
  .ec-n{font-size:21px}
}

.mna-prwrap{margin-top:56px; padding-top:52px; border-top:1px solid var(--line-soft)}
.mna-grid-pr{grid-template-columns:repeat(3,1fr)}

/* how to reach them */
.mna-reach{background:var(--blue-d); color:#dce4f0}
.mna-reach .mna-lead h2{color:#fff}
.mna-reach .mna-lead p{color:#b7c3d8}
.mna-reach .label{color:var(--gold-hi)}
.mna-reach-grid{display:grid; grid-template-columns:1fr 1.15fr; gap:22px; align-items:start}
.mna-contact,.mna-template{background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); border-radius:4px; padding:24px 26px}
.mna-cc-lab{font-size:11.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-hi); margin-bottom:16px}
.mna-cc-row{display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:14.5px}
.mna-cc-row:last-of-type{border-bottom:0}
.mna-cc-row .k{color:#9fb0cb; flex:none}
.mna-cc-row .v{color:#fff; text-align:right; font-weight:500}
a.mna-cc-row{transition:color .18s} a.mna-cc-row:hover .v{color:var(--gold-hi)}
.mna-cc-note{font-size:12.5px; color:#93a3bd; line-height:1.55; margin-top:14px}
.mna-tmpl{background:var(--parch); color:var(--ink); border-radius:3px; padding:20px 22px; font-size:14px; line-height:1.62}
.mna-tmpl p{margin:0 0 11px} .mna-tmpl p:last-child{margin-bottom:0}
.mna-tmpl .tvar{color:var(--blue-l); background:rgba(32,71,124,.09); border-radius:2px; padding:1px 5px; font-weight:500}

/* closing */
.mna-close-card{max-width:840px; margin:0 auto; text-align:center; background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:44px 40px 46px}
.mna-close-card h2{font-size:clamp(24px,3vw,32px); color:var(--blue); margin-bottom:14px}
.mna-close-card p{color:var(--ink-soft); font-size:16px; max-width:640px; margin:0 auto 26px}
.mna-close-act{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}

/* ==========================================================================
   THE BUDGET — line-by-line accountability
   ========================================================================== */
.budget-band{background:var(--blue-d); color:#dce4f0}
.budget-band .section-head h2{color:#fff}
.budget-band .label{color:var(--gold-hi)}
.bfind-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px}
.bfind{background:var(--parch); border:1px solid var(--line); border-top:3px solid var(--gold); border-radius:3px; padding:24px 26px 22px; display:flex; flex-direction:column}
.bfind.bf-red{border-top-color:var(--red)}
.bf-head{display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-bottom:10px}
.bf-tag{font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft)}
.bf-fig{font-family:var(--serif); font-weight:600; font-size:clamp(24px,3vw,32px); line-height:1; letter-spacing:-.01em; color:var(--gold-text); white-space:nowrap}
.bf-red .bf-fig{color:var(--red)}
.bf-hl{font-family:var(--serif); font-weight:600; font-size:19px; color:var(--blue); line-height:1.2; margin-bottom:16px}
.bf-series{display:flex; flex-direction:column; gap:7px; margin-bottom:16px}
.bf-row{display:grid; grid-template-columns:96px 1fr 82px; align-items:center; gap:12px; font-size:12.5px}
.bf-yr{color:var(--ink-soft); letter-spacing:.01em}
.bf-track{height:11px; background:rgba(34,31,26,.08); border-radius:100px; overflow:hidden}
.bf-fill{display:block; height:100%; background:#c8bd9f; border-radius:100px}
.bf-gold .bf-fill.hot{background:var(--gold)}
.bf-red .bf-fill.hot{background:var(--red)}
.bf-val{text-align:right; font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums}
.bf-body{color:var(--ink-soft); font-size:14.5px; line-height:1.6; margin-bottom:16px; flex:1}
.bf-src{font-size:11.5px; letter-spacing:.02em; color:var(--ink-soft); border-top:1px solid var(--line-soft); padding-top:12px; opacity:.9}
.bnote p{color:var(--ink-soft); font-size:15.5px; line-height:1.65; margin-bottom:14px} .bnote p:last-child{margin-bottom:0}
.bnote b{color:var(--ink)} .bnote a{color:var(--blue-l); text-decoration:underline; text-underline-offset:2px}
.budget-close{max-width:840px; margin:0 auto; text-align:center; background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:44px 40px 46px}
.budget-close h2{font-size:clamp(24px,3vw,32px); color:var(--blue); margin-bottom:14px}
.budget-close p{color:var(--ink-soft); font-size:16px; max-width:660px; margin:0 auto 26px}
.budget-close-act{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}

/* ---- The Receipts: flights floor note + the world-tour passport stamps ---- */
.rc-floornote{max-width:940px; font-size:14px; line-height:1.62; color:var(--ink-soft); margin:0 0 12px}
.rc-floornote b{color:var(--red)}
.worldtour .wt-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:10px}
.wt-stamp{padding:3px}
.wt-in{border:2px solid rgba(226,187,98,.5); border-radius:7px; padding:15px 16px 14px; background:rgba(226,187,98,.05); transform:rotate(-1.4deg); min-height:120px; transition:transform .2s}
.wt-stamp:nth-child(2n) .wt-in{transform:rotate(1.3deg); border-color:rgba(196,86,78,.5); background:rgba(196,86,78,.05)}
.wt-stamp:nth-child(3n) .wt-in{transform:rotate(.7deg)}
.wt-stamp:nth-child(4n) .wt-in{transform:rotate(-.7deg); border-color:rgba(160,185,210,.4)}
.wt-stamp:nth-child(5n) .wt-in{transform:rotate(1.6deg)}
.wt-stamp:hover .wt-in{transform:rotate(0deg)}
.wt-country{font-family:var(--serif); font-weight:600; font-size:19px; color:#f7f1e2; line-height:1.1}
.wt-entries{font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-hi); margin-top:7px; font-weight:700}
.wt-when{font-size:12px; color:#aeb9cd; margin-top:8px; font-variant-numeric:tabular-nums}
.wt-who{font-size:12px; color:#c9d3e2; margin-top:9px; border-top:1px dashed rgba(255,255,255,.16); padding-top:8px}
.wt-foot{max-width:760px; margin:36px auto 0; text-align:center; font-family:var(--serif); font-size:clamp(17px,2vw,22px); line-height:1.5; color:#f2ead9}

/* responsive */
@media (max-width:960px){
  .mast-nav{display:none} .burger{display:flex}
  .mast-in{grid-template-columns:1fr auto; column-gap:12px}
  .mast-left{display:none} .mast-right .enrol{display:none}
  .mast-emblem{flex-direction:row; align-items:center; gap:10px; justify-self:start}
  .mast-emblem img{width:40px; height:40px}
  .mast-emblem .name{font-size:11px; letter-spacing:.1em; line-height:1.25; white-space:normal; max-width:160px}
  .hero-in{grid-template-columns:1fr; gap:44px}
  .portrait{max-width:340px; margin:0 auto; width:100%}
  .address-in{grid-template-columns:1fr; text-align:center; justify-items:center}
  .address blockquote{text-align:left}
  .rec-grid,.grid-3{grid-template-columns:1fr}
  .foot-in{grid-template-columns:1fr 1fr}
  .register .divider{display:none}
  .article-grid{grid-template-columns:1fr}
  .aside{position:static; flex-direction:row; flex-wrap:wrap} .aside>*{flex:1; min-width:240px}
  .tiers{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .gap-viz{grid-template-columns:1fr}
  .event{grid-template-columns:90px 1fr}
  .mna-jobs{grid-template-columns:1fr}
  .bfind-grid{grid-template-columns:1fr}
  .worldtour .wt-grid{grid-template-columns:repeat(2,1fr)}
  .mna-grid{grid-template-columns:repeat(2,1fr)}
  .mna-grid-pr{grid-template-columns:repeat(2,1fr)}
  .mna-reach-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  body{font-size:16px}
  .foot-in{grid-template-columns:1fr}
  .btn{width:100%; justify-content:center}
  .art{grid-template-columns:48px 1fr; gap:14px} .art .go{display:none}
  .foot-brand{justify-content:center; text-align:left}
  .grid-2,.tiers,.prevnext,.field-row{grid-template-columns:1fr}
  .event{grid-template-columns:1fr; gap:10px} .event .date{border-right:0; text-align:left; padding-right:0; display:flex; gap:8px; align-items:baseline}
  .measure{grid-template-columns:1fr} .measure .mno{display:none}
  .howstep{grid-template-columns:38px 1fr; gap:16px; padding:20px}
  .hs-n{width:38px; height:38px; font-size:18px}
  .mna-grid,.mna-grid-pr{grid-template-columns:1fr}
  .worldtour .wt-grid{grid-template-columns:1fr}
  .mna-tools{flex-direction:column; align-items:stretch}
  .mna-filters{justify-content:flex-start}
  .mna-cc-row{flex-direction:column; gap:3px} .mna-cc-row .v{text-align:left}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important; transition:none!important}}
