:root{--bg:#F5EEE2;--text:#33101A;--text-rgb:51,16,26;--accent:#7A1F2B;--accent-rgb:122,31,43;--accent-hover:#5E1520;--on-accent:#F8F1E6;--btn:#C9A04F;--btn-hover:#B78D3C;--on-btn:#2A0A10;--gold-ink:#8C6A22;--muted:#6A4A50;--sub:#4A2A30;--faint:#8D7378;--soft:#EADFCB;--surface-rgb:255,252,246;--card:rgba(255,252,246,.8);--line:rgba(140,106,34,.32);--nav-bg:rgba(245,238,226,.94);--panel-bg:rgba(245,238,226,.98);--hero-shade:rgba(245,238,226,.86);--band:#2A0A10;--ok:#2E7D4F;--err:#B3412A;--disabled:#C3B6B0;--busy-text:#9A8A86;--busy-border:#D6C7A8;--gold:#D4AF6A;--ivory:#F5EEE2;--mist:#C9B4A8;color-scheme:light}
/* Night: deep maroon & gold */
:root[data-theme="dark"]{--bg:#1A0A0E;--text:#F3EADB;--text-rgb:243,234,219;--accent:#D9B56E;--accent-rgb:217,181,110;--accent-hover:#E7C88A;--on-accent:#1A0A0E;--btn:#D4AF6A;--btn-hover:#E2C386;--on-btn:#1A0A0E;--gold-ink:#D9B56E;--muted:#C4ACA4;--sub:#E2D2C8;--faint:#93797A;--soft:#2A1218;--surface-rgb:44,18,24;--card:rgba(255,255,255,.035);--line:rgba(212,175,106,.25);--nav-bg:rgba(26,10,14,.92);--panel-bg:rgba(26,10,14,.97);--hero-shade:rgba(26,10,14,.74);--band:#110508;--ok:#B7E4C7;--err:#F0B4B4;--disabled:#5A4448;--busy-text:#93797A;--busy-border:rgba(212,175,106,.4);color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:96px}
html,body{margin:0;transition:background-color .4s ease,color .4s ease;background:var(--bg);color:var(--text);font-family:'Figtree',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
.serif{font-family:'EB Garamond',Georgia,serif;font-weight:500}
.eyebrow{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.eyebrow::before{content:"";flex:none;width:22px;height:1px;background:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:4px;font:600 15px 'Figtree',sans-serif;cursor:pointer;border:0;transition:background .2s ease,border-color .2s ease}
.btn-primary{background:var(--btn);color:var(--on-btn)}
.btn-primary:hover{background:var(--btn-hover)}
.btn-gold{background:var(--gold);color:var(--on-btn)}
.btn-ghost{background:rgba(var(--surface-rgb),.35);color:var(--text);border:1px solid rgba(var(--text-rgb),.35)}
.btn-ghost:hover{background:rgba(var(--surface-rgb),.7)}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.icon-btn{width:44px;height:44px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:1px solid rgba(var(--text-rgb),.25);background:transparent;color:var(--text)}
.icon-btn.primary{background:var(--btn);border:0;color:var(--on-btn)}
.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
h2{margin:10px 0 0;font-size:clamp(36px,4.4vw,60px);line-height:1.03}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}.reveal,.up{opacity:1!important;transform:none!important}}

/* ---- Nav ---- */
.nav-outer{position:fixed;top:0;left:0;right:0;z-index:40;padding:0 24px;background:var(--nav-bg);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
.nav{max-width:1360px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
.brand{display:flex;align-items:center;gap:14px;color:var(--text)}
.brand b{display:block;white-space:nowrap;font-family:'EB Garamond',Georgia,serif;font-size:20px;font-weight:600;line-height:1.1}
.brand span{display:block;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.nav-links{display:none}
.nav-links a{height:44px;display:flex;align-items:center;padding:0 12px;font-size:13.5px;font-weight:500;color:var(--text);border-bottom:2px solid transparent;white-space:nowrap}
.nav-links a:hover{color:var(--accent)}
.nav-links a.on{color:var(--accent);border-bottom-color:var(--accent)}
.nav .btn{height:44px;padding:0 20px;font-size:13px;white-space:nowrap}
.nav-actions{display:flex;align-items:center;gap:8px}
.brand svg{color:var(--gold-ink);flex:none}
.theme-toggle{display:inline-flex;width:44px;height:44px;border-radius:999px;border:1px solid rgba(var(--text-rgb),.25);background:transparent;color:var(--text);align-items:center;justify-content:center;cursor:pointer;transition:color .2s ease,border-color .2s ease}
.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}
.theme-toggle .sun{display:none}
:root[data-theme="dark"] .theme-toggle .sun{display:block}
:root[data-theme="dark"] .theme-toggle .moon{display:none}
@media (max-width:420px){.nav{padding-left:16px;gap:8px}.nav .btn{padding:0 16px}.brand span span{display:none}}
.nav-burger{display:inline-flex;width:44px;height:44px;border-radius:999px;border:1px solid rgba(var(--text-rgb),.25);background:transparent;color:var(--text);align-items:center;justify-content:center;cursor:pointer}
@media (min-width:1180px){.nav-links{display:flex;align-items:center;gap:2px}.nav-burger{display:none}}

.nav-panel{position:fixed;inset:76px 16px auto 16px;z-index:39;padding:14px;border-radius:6px;border:1px solid var(--line);background:var(--panel-bg);box-shadow:0 18px 40px rgba(var(--text-rgb),.12);backdrop-filter:blur(16px);display:flex;flex-direction:column;gap:2px}
.nav-panel a{padding:14px 16px;border-radius:4px;color:var(--text);font-size:15px}
.nav-panel a:hover,.nav-panel a.on{background:rgba(var(--accent-rgb),.08);color:var(--accent)}
@media (min-width:1180px){.nav-panel{display:none!important}}

/* ---- Page header (for interior pages) ---- */
.page-hero{max-width:1320px;margin:0 auto;padding:150px 48px 32px}
.page-hero p{margin:14px 0 0;max-width:640px;font-size:17px;line-height:1.7;color:var(--muted)}
@media (max-width:760px){.page-hero{padding:140px 20px 24px}}

/* ---- Shared card / form styling for interior pages ---- */
.form-card{max-width:760px;margin:0 auto;padding:0 48px 96px}
.form-card form{display:flex;flex-direction:column;gap:18px;padding:36px;border-radius:6px;border:1px solid var(--line);background:var(--card)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:14px;color:var(--muted)}
.field input,.field textarea{width:100%;padding:14px 16px;border-radius:4px;border:1px solid rgba(var(--text-rgb),.18);background:rgba(var(--surface-rgb),.8);color:var(--text);font:15px 'Figtree',sans-serif;resize:none}
.field input::placeholder,.field textarea::placeholder{color:var(--faint)}
.field input:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.form-note{margin:0;font-size:13px;color:var(--muted)}
.form-status{margin:0;font-size:15px;line-height:1.6}
.form-status.ok{color:var(--ok)}
.form-status.err{color:var(--err)}
@media (max-width:760px){.form-card{padding:0 20px 64px}.form-card form{padding:24px}.form-row{grid-template-columns:1fr}}

/* ---- Footer ---- */
/* Dark band: sets its own text color, never inherits navy */
.site-footer{background:var(--band);color:var(--ivory);padding:32px 24px;border-top:3px solid var(--gold)}
.site-footer-inner{max-width:1320px;margin:0 auto;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--mist)}
.site-footer-inner a{color:var(--ivory)}
.site-footer-inner a:hover{color:var(--gold)}

/* mailto overflow: the long retreat email must wrap on phones instead of pushing cards off-screen */
a[href^="mailto:"]{overflow-wrap:anywhere}
.contact-grid>*{min-width:0}
/* "I'm not a robot" box (assets/site.js humanCheck) */
.human{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:14px 16px;border-radius:4px;border:1px solid rgba(var(--text-rgb),.18);background:rgba(var(--surface-rgb),.8)}
.human label{display:inline-flex;align-items:center;gap:12px;font-size:15px;color:var(--text);cursor:pointer}
.human input{position:absolute;opacity:0;width:1px;height:1px}
.human-box{position:relative;flex:none;width:24px;height:24px;border-radius:4px;border:2px solid rgba(var(--text-rgb),.35);background:rgba(var(--surface-rgb),1);transition:border-color .2s,background .2s}
.human input:focus-visible+.human-box{outline:2px solid var(--accent);outline-offset:2px}
.human[data-state=busy] .human-box{border-color:var(--accent);border-right-color:transparent;border-radius:50%;animation:human-spin .7s linear infinite}
.human[data-state=ok] .human-box{border-color:var(--ok);background:var(--ok)}
.human[data-state=ok] .human-box::after{content:"";position:absolute;left:6px;top:1px;width:6px;height:12px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.human[data-state=err] .human-t{color:var(--err)}
.human small{font-size:12px;color:var(--faint)}
@keyframes human-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.human[data-state=busy] .human-box{animation:none}}
