/* [hidden] must win over display rules */
[hidden]{display:none!important}
/* WordPress-specific additions: light mode tokens, mode toggle, custom form controls, login page, prose. */

/* ---------- light mode ---------- */
html[data-theme="light"]{
  --bg:#EFF1F2; --surface:#FFFFFF; --surface-2:#F7F8F9; --field:#FFFFFF; --ink:#0B0B0B; --ink-2:#4B5054;
  --line:rgba(0,0,0,.12); --line-strong:rgba(0,0,0,.3); --gold-line:rgba(160,120,20,.45); --header-bg:rgba(255,255,255,.9);
  color-scheme:light;
}
html[data-theme="light"] body::after{mix-blend-mode:multiply;opacity:.05}
html[data-theme="light"] .site-header.is-solid{box-shadow:0 20px 50px -30px rgba(0,0,0,.35)}
html[data-theme="light"] .map[data-filter="invert"] .map-tiles{filter:saturate(.6) contrast(1.05) brightness(.98)}
.map[data-provider="esri-sat"] .map-tint,.map[data-provider="esri-sat"] .map-vignette{opacity:.35}
html[data-theme="light"] .map-tint{opacity:.18}
html[data-theme="light"] .map-vignette{background:radial-gradient(80% 80% at 50% 50%,transparent 60%,rgba(0,0,0,.25))}
html[data-theme="light"] .crew-card,html[data-theme="light"] .svc,html[data-theme="light"] .info-card,html[data-theme="light"] .person,html[data-theme="light"] .tcard{box-shadow:0 18px 40px -28px rgba(0,0,0,.35)}
html[data-theme="light"] .hero-badge{filter:drop-shadow(0 18px 40px rgba(0,0,0,.35))}
html[data-theme="light"] .lb::backdrop{background:rgba(0,0,0,.9)}
html[data-theme="light"] .lb{--ink:#fff;--ink-2:#C8C8D0}
html[data-theme="light"] .tst::before{background:radial-gradient(60% 60% at 50% 40%,rgba(var(--olive-rgb),.12),transparent 70%)}
html[data-theme="light"] .mega{box-shadow:0 40px 80px -30px rgba(0,0,0,.35)}
body.no-grain::after{display:none}

/* Elements that keep the dark ground in both modes (photo heroes, banners, footer). */
.keep-dark{--bg:#000000;--surface:#191919;--surface-2:#060606;--field:#0d0d0d;--ink:#FFFFFF;--ink-2:#C8C8D0;--line:rgba(200,200,208,.16);--line-strong:rgba(200,200,208,.32);--gold-line:rgba(224,184,64,.32);color:var(--ink)}
.keep-dark .lead{color:var(--ink-2)}

/* ---------- light/dark toggle (custom switch) ---------- */
.mode-toggle{background:none;border:0;padding:6px;cursor:pointer;display:inline-flex;align-items:center;border-radius:999px}
.mode-toggle:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.mode-track{position:relative;width:52px;height:28px;border-radius:999px;background:var(--surface);border:1px solid var(--line-strong);display:block;transition:background .3s,border-color .3s}
.mode-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--gold);display:grid;place-items:center;transition:transform .35s var(--ease),background .3s;color:#000}
.mode-knob svg{width:12px;height:12px;position:absolute;transition:opacity .25s}
.mode-knob svg:first-child{opacity:1}
.mode-knob svg:last-child{opacity:0}
.mode-toggle[aria-checked="true"] .mode-knob{transform:translateX(24px);background:var(--lime)}
.mode-toggle[aria-checked="true"] .mode-knob svg:first-child{opacity:0}
.mode-toggle[aria-checked="true"] .mode-knob svg:last-child{opacity:1}
.site-header .mode-toggle{margin-left:6px}
.drawer-mode{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink-2);font-size:15px}
@media (max-width:1100px){.site-header .mode-toggle{display:none}}

/* ---------- custom select (native select stays for form data, visually hidden) ---------- */
.csel{position:relative}
.csel > select{position:absolute;inset:0;opacity:0;pointer-events:none;width:100%;height:100%}
.csel-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--field);border:1px solid var(--line-strong);color:var(--ink);padding:15px 16px;font-family:var(--body);font-size:16px;line-height:1.4;cursor:pointer;text-align:left;transition:border-color .25s}
.csel-btn:hover{border-color:var(--ink-2)}
.csel-btn[aria-expanded="true"]{border-color:var(--lime)}
.csel-btn .ph{color:var(--ink-2)}
.csel-btn svg{width:14px;height:14px;color:var(--gold-text);flex:none;transition:transform .25s}
.csel-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.csel-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;background:var(--surface);border:1px solid var(--line-strong);max-height:280px;overflow:auto;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);padding:6px;margin:0;list-style:none;opacity:0;transform:translateY(-6px);visibility:hidden;transition:opacity .2s var(--ease),transform .2s var(--ease),visibility 0s .2s}
.csel-list.open{opacity:1;transform:none;visibility:visible;transition:opacity .2s var(--ease),transform .2s var(--ease),visibility 0s}
.csel-list li{padding:10px 12px;cursor:pointer;color:var(--ink);font-size:15.5px;line-height:1.35;display:flex;justify-content:space-between;align-items:center;gap:10px}
.csel-list li[aria-selected="true"]{color:var(--lime-text)}
.csel-list li.hl,.csel-list li:hover{background:rgba(var(--gold-rgb),.14)}
.csel-list li[data-group]{font-family:var(--label);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);cursor:default;padding-top:12px}
.csel-list li[data-group]:hover{background:none}
.field.invalid .csel-btn{border-color:var(--error)}

/* ---------- custom checkbox / switch ---------- */
.switch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;user-select:none}
.switch input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.switch-track{position:relative;width:46px;height:26px;border-radius:999px;background:var(--field);border:1px solid var(--line-strong);transition:background .25s,border-color .25s;flex:none}
.switch-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ink-2);transition:transform .3s var(--ease),background .25s}
.switch input:checked + .switch-track{background:rgba(var(--lime-rgb),.25);border-color:var(--lime)}
.switch input:checked + .switch-track .switch-knob{transform:translateX(20px);background:var(--lime)}
.switch input:focus-visible + .switch-track{outline:2px solid var(--lime);outline-offset:2px}
.switch-label{font-size:15px;color:var(--ink)}

/* ---------- scrollbars follow the palette (no default browser chrome) ---------- */
html{scrollbar-color:rgba(var(--gold-rgb),.7) var(--bg);scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:rgba(var(--gold-rgb),.6);border:2px solid var(--bg);border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}

/* ---------- login page ---------- */
.login-main{min-height:100svh;display:grid}
.login-split{display:grid;grid-template-columns:1.1fr 1fr;min-height:100svh}
.login-art{position:relative;overflow:hidden;display:grid;align-items:end;padding:calc(var(--header-h) + 40px) clamp(24px,5vw,72px) clamp(40px,6vw,80px);isolation:isolate}
.login-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.login-art::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#000 0%,rgba(0,0,0,.55) 45%,rgba(0,0,0,.15)),linear-gradient(90deg,rgba(0,0,0,.6),transparent 60%)}
.login-art::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--olive);mix-blend-mode:multiply;opacity:.35}
.login-art-txt{max-width:560px;display:grid;gap:14px}
.login-art-txt h1{font-size:var(--s7)}
.login-panel{display:grid;place-items:center;padding:calc(var(--header-h) + 40px) clamp(24px,5vw,72px) clamp(40px,6vw,80px);background:var(--bg)}
.login-form{width:min(440px,100%);gap:20px}
.login-form h2{font-size:var(--s5);margin-bottom:4px}
.login-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.muted-link{color:var(--ink-2);font-size:14.5px;text-decoration:underline;text-underline-offset:.2em}
.muted-link:hover{color:var(--lime-text)}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:52px}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;background:none;border:0;color:var(--ink-2);cursor:pointer;display:grid;place-items:center}
.pw-eye svg{width:18px;height:18px}
.pw-eye[aria-pressed="true"]{color:var(--lime-text)}
.form-alert{border-left:2px solid var(--error);padding:10px 14px;background:var(--surface);color:var(--ink);font-size:15px}
.form-alert.ok{border-left-color:var(--lime)}
@media (max-width:900px){.login-split{grid-template-columns:1fr}.login-art{min-height:46svh;padding-top:calc(var(--header-h) + 24px)}}

/* ---------- generic content ---------- */
.prose{max-width:72ch}
.prose p,.prose ul,.prose ol{margin:0 0 18px;color:var(--ink-2)}
.prose h2,.prose h3{margin:32px 0 12px}
.prose a{text-decoration:underline}
.entry{padding:20px 0;border-bottom:1px solid var(--line)}
.media.plate{background:var(--olive);display:grid;place-items:center;padding:32px}
.media.plate p{font-family:var(--display);font-size:var(--s5);line-height:1.05;color:var(--on-olive);text-align:center;max-width:12ch}
.media.plate em{color:#fff;font-style:italic}
.hero-badge{opacity:.96}
/* Header over the photo hero (before it turns solid) always reads as dark-ground UI, whatever the mode. */
.site-header:not(.is-solid){--ink:#FFFFFF;--ink-2:#C8C8D0;--surface:#191919;--line-strong:rgba(200,200,208,.32);--lime-text:var(--lime);--gold-text:var(--gold)}
.site-header:not(.is-solid){background:linear-gradient(180deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.28) 60%,rgba(0,0,0,0) 100%);background-origin:border-box}/* border-box origin: otherwise the gradient tiles its first stop into the 1px transparent border row and draws a dark line under the header */

/* map credit (optional) and offline card */
.map-credit{position:absolute;right:8px;bottom:8px;z-index:2;font-size:10px;line-height:1;letter-spacing:.02em;color:rgba(255,255,255,.75);background:rgba(0,0,0,.45);padding:4px 6px;pointer-events:none}
html[data-theme="light"] .map-credit{color:rgba(0,0,0,.65);background:rgba(255,255,255,.6)}
.map-fallback{position:absolute;inset:0;z-index:3;display:grid;place-items:center;align-content:center;gap:12px;text-align:center;padding:24px;background:var(--surface);color:var(--ink)}
.map-fallback .addr{font-family:var(--display);font-size:var(--s4);line-height:1.15}
.map-fallback p{color:var(--ink-2)}
.map.is-offline{cursor:default}
html[data-theme="light"] .map-hint{background:rgba(255,255,255,.85);color:#3a3d40}
html[data-theme="light"] .map-ctl button{background:rgba(255,255,255,.92);color:#000;border-color:rgba(0,0,0,.25)}
html[data-theme="light"] .map-ctl button:hover{background:var(--gold);color:var(--on-gold)}

/* cleaning switched off */
.crew-grid.no-kim{grid-template-columns:1.2fr 1fr}
@media (max-width:1000px){.crew-grid.no-kim{grid-template-columns:1fr}}
.people.single{grid-template-columns:1fr;max-width:860px}
/* standalone login page (no site header) */
.is-login .login-art{padding-top:clamp(40px,6vw,72px);display:grid;grid-template-rows:auto 1fr;align-items:end}
.is-login .login-logo{position:relative;z-index:2;display:inline-block;align-self:start}
.is-login .login-panel{padding-top:clamp(40px,6vw,72px)}
.login-back{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);text-decoration:none;font-family:var(--label);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.login-back svg{width:14px;height:14px}
.login-back:hover{color:var(--lime-text)}

/* legal pages (Privacy Policy, Terms) */
.legal-hero{min-height:0;background:var(--charcoal,#191919)}
.legal-hero .hero-inner{padding-top:calc(var(--header-h) + 56px);padding-bottom:clamp(40px,5vh,56px)}
.legal-hero h1{font-size:var(--s6)}
.legal-updated{font-family:var(--label);font-size:var(--s0);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.legal-layout{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}
.legal-toc{position:sticky;top:calc(var(--header-h) + 24px)}
.legal-toc ol{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:2px;border-left:1px solid var(--line)}
.legal-toc a{display:block;padding:7px 0 7px 16px;margin-left:-1px;border-left:1px solid transparent;color:var(--ink-2);text-decoration:none;font-size:14.5px;line-height:1.4;transition:color .2s var(--ease),border-color .2s var(--ease)}
.legal-toc a:hover,.legal-toc a:focus-visible{color:var(--ink);border-left-color:var(--gold)}
.legal-doc{max-width:72ch;display:grid;gap:clamp(28px,4vw,44px)}
.legal-intro p{font-size:var(--s2);line-height:1.6;color:var(--ink-2)}
.legal-sec{scroll-margin-top:calc(var(--header-h) + 24px);display:grid;gap:12px}
.legal-sec h2{font-size:var(--s4);display:flex;gap:14px;align-items:baseline}
.legal-sec h3{font-size:var(--s3);margin-top:6px}
.legal-num{font-family:var(--label);font-weight:700;font-size:var(--s0);letter-spacing:.14em;color:var(--gold-text)}
.legal-doc p,.legal-doc li{line-height:1.75;color:var(--ink-2)}
.legal-doc p{margin:0}
.legal-doc ul,.legal-doc ol{margin:0;padding-left:1.3em;display:grid;gap:6px}
.legal-doc ul li::marker{color:var(--gold-text)}
.legal-doc a{color:var(--ink);text-decoration:underline;text-underline-offset:.2em;text-decoration-color:var(--gold)}
.legal-doc a:hover{color:var(--lime-text)}
.legal-contact{border:1px solid var(--line);padding:24px;display:grid;gap:12px;background:var(--surface)}
.legal-contact .btn-row{display:flex;flex-wrap:wrap;gap:12px}
.site-footer .legal-links{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:10px;font-size:13px}
.site-footer .legal-links a{color:var(--ink);text-decoration:underline;text-underline-offset:.2em}
.form-note .legal-note a{color:var(--ink);text-decoration:underline;text-underline-offset:.2em}
@media (max-width:900px){.legal-layout{grid-template-columns:1fr}.legal-toc{position:static}}

/* crew card without a photo */
.person.no-photo{grid-template-columns:1fr}
html[data-theme="light"]{--error:#B3261E}
