/* Thalwei Abstract v2 — unified palette (www tokens + service /create landscape tones) */
:root{
 --ink:#0F1225;--ink-soft:#1A2744;--mute:#5D6376;
 --paper:#F7F5F1;--paper-deep:#EFEBE3;--white:#fff;
 --seal:#C8860A;--seal-soft:#E0A83A;--seal-wash:#F1E3C6;
 --sky:#C3D4DB;--mist:#E0E4E9;--sage:#DFE9E5;--stone:#9C9081;
 --line:#E4DED2;
 --serif:"Cormorant Garamond","Iowan Old Style",Georgia,serif;--sans:Inter,system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;
 --fs:clamp(16px,.45vw + 10px,30px);--wrap:min(92vw,1240px);
}
@media(min-width:2200px){:root{--wrap:min(86vw,2700px)}}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:400 var(--fs)/1.65 var(--sans);color:var(--ink);background:var(--paper)}
img{max-width:100%;display:block}a{color:inherit}
.wrap{width:var(--wrap);margin:auto}
.eyebrow{font:500 max(12px,.72em) var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--seal)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1;margin:.2em 0 .4em;color:var(--ink)}
h1{font-size:clamp(40px,4.6vw,170px)}h2{font-size:clamp(32px,2.8vw,104px)}h3{font-size:1.45em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:.85em 1.5em;border-radius:4px;font:500 .78em var(--mono);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:.15s}
.btn-gold{background:var(--seal);color:#fff}.btn-gold:hover{background:#b07507}
.btn-line{border-color:var(--ink);color:var(--ink);background:transparent}.btn-line:hover{background:var(--ink);color:#fff}
.btn-white{background:#fff;color:var(--ink)}
/* top strip */
.strip{background:var(--paper-deep);font:500 max(12px,.66em) var(--mono);letter-spacing:.12em;color:var(--mute)}
.strip .wrap{display:flex;gap:1.5em;justify-content:flex-end;align-items:center;min-height:36px;flex-wrap:wrap}
.strip a{text-decoration:none;padding:.4em 0;min-height:44px;display:inline-flex;align-items:center}
@media(max-width:600px){.strip .wrap{justify-content:center;gap:.2em 1.2em}.strip a:nth-child(3){display:none}}.strip a:hover{color:var(--seal)}
/* header */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;gap:1em;height:clamp(72px,4.6vw,150px)}
.brand{display:flex;align-items:center;gap:.9em;text-decoration:none;flex:none}
.brand img{height:clamp(46px,3.2vw,104px);width:auto}
.brand span{font:500 max(12px,.62em) var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);border-left:1px solid var(--line);padding-left:.9em;line-height:1.4}
nav.main{margin-left:auto}nav.main>ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:.15em}
nav.main li>a,nav.main li>button{display:flex;align-items:center;gap:.35em;min-height:44px;padding:.5em .6em;border:0;background:none;font:500 .84em var(--sans);color:var(--ink);text-decoration:none;border-radius:4px;cursor:pointer;white-space:nowrap}
nav.main li>a:hover,nav.main li>button:hover,nav.main li>button[aria-expanded=true]{background:var(--paper);color:var(--seal)}
nav.main li>a[aria-current]{color:var(--seal)}
nav.main svg{width:.65em;transition:transform .2s}nav.main button[aria-expanded=true] svg{transform:rotate(180deg)}
.dd{position:relative}.panel{display:none;position:absolute;top:calc(100% + 10px);left:0;min-width:19em;background:#fff;border:1px solid var(--line);border-top:3px solid var(--seal);border-radius:6px;box-shadow:0 20px 44px rgba(15,18,37,.12);padding:.5em}
.dd.open .panel{display:block}
.panel a{display:block;padding:.65em .85em;border-radius:4px;text-decoration:none;min-height:44px}
.panel a:hover{background:var(--paper)}.panel b{display:block;font-weight:600;font-size:.88em}.panel small{color:var(--mute);font-size:.74em}
nav.main .btn{margin-left:.5em;color:#fff}nav.main .btn:hover{color:#fff;background:#b07507}
.burger{display:none;margin-left:auto;width:48px;height:48px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer}
.burger span{display:block;height:2px;background:var(--ink);margin:5px 12px}
@media(max-width:1240px){
 .brand span{display:none}.burger{display:block}
 header{backdrop-filter:none;background:#fff}
 nav.main{display:none;position:absolute;left:0;right:0;top:100%;height:calc(100dvh - clamp(72px,4.6vw,150px));background:#fff;overflow:auto;padding:1em 4vw 2em;border-top:1px solid var(--line);box-shadow:0 20px 40px rgba(15,18,37,.15)}
 header.open nav.main{display:block}
 nav.main>ul{flex-direction:column;align-items:stretch}
 nav.main li>a,nav.main li>button{min-height:56px;font-size:1.05em;justify-content:space-between;border-bottom:1px solid var(--line);border-radius:0;width:100%}
 .panel{position:static;box-shadow:none;border:0;background:var(--paper);min-width:0}
 nav.main .btn{margin:1.2em 0 0;min-height:56px;width:100%}
}
/* hero */
.hero{position:relative;min-height:clamp(560px,82vh,2000px);display:flex;align-items:flex-end;color:var(--ink)}
.hero>img{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero::before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(247,245,241,.97) 0%,rgba(247,245,241,.88) 38%,rgba(247,245,241,.15) 70%,rgba(247,245,241,0) 100%)}
.hero .wrap{position:relative;z-index:2;padding:clamp(48px,7vw,240px) 0}
.hero .lead{max-width:34em;color:var(--ink-soft);font-size:1.08em}
.hero .row{display:flex;gap:1em;flex-wrap:wrap;margin-top:1.6em}
.photo-credit{z-index:2;position:absolute;right:1em;bottom:.6em;font:500 max(12px,.6em) var(--mono);color:#fff;text-shadow:0 1px 3px #000;letter-spacing:.1em}
@media(max-width:820px){.hero{min-height:0;display:block}.hero>img{position:relative;height:58vw}.hero::before{display:none}.photo-credit{display:none}.hero .wrap{padding:1.6em 0 2.4em}}
.pagehero{position:relative;padding:clamp(56px,7vw,220px) 0 clamp(40px,4vw,140px);background:linear-gradient(180deg,var(--mist),var(--paper))}
.pagehero p{max-width:40em;color:var(--ink-soft)}
/* sections */
section.s{padding:clamp(56px,6vw,200px) 0}.alt{background:#fff}.deep{background:var(--paper-deep)}
.trust{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11em),1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:-1px}
.trust div{background:#fff;padding:1.4em}.trust b{display:block;font:500 2em/1 var(--serif);color:var(--ink)}.trust span{font-size:.8em;color:var(--mute)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16em),1fr));gap:1.1em}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:1.4em;text-decoration:none;display:flex;flex-direction:column;gap:.35em;transition:.15s;min-height:44px}
a.card:hover{border-color:var(--seal);transform:translateY(-2px);box-shadow:0 14px 30px rgba(15,18,37,.08)}
.card b{font:600 1.05em var(--sans)}.card span{color:var(--mute);font-size:.88em;flex:1}.card i{font:normal 500 max(12px,.7em) var(--mono);letter-spacing:.12em;color:var(--seal);text-transform:uppercase}
.card .ic{width:2.4em;height:2.4em;border-radius:50%;display:grid;place-items:center;font-size:.9em;margin-bottom:.4em}
.t1{background:var(--seal-wash)}.t2{background:var(--mist)}.t3{background:var(--sage)}.t4{background:#efe0d9}
.cat{margin:2.2em 0 .9em;display:flex;align-items:baseline;gap:1em;flex-wrap:wrap}.cat h3{margin:0}
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,4vw,140px);align-items:center}
.split img{border-radius:8px;width:100%;height:100%;object-fit:cover;max-height:80vh}
@media(max-width:820px){.split{grid-template-columns:1fr}}
.quote{background:#fff;border-left:4px solid var(--seal);padding:1.6em;border-radius:6px;font:italic 500 1.35em/1.4 var(--serif)}
.ph{display:inline-block;font:500 max(12px,.62em) var(--mono);letter-spacing:.1em;background:#fff2d6;color:#8a5a00;border:1px dashed var(--seal);padding:.2em .5em;border-radius:3px;font-style:normal;vertical-align:middle}
.cstrip{background:var(--seal-wash);padding:clamp(36px,3.5vw,120px) 0}
.cstrip .wrap{display:flex;justify-content:space-between;align-items:center;gap:1.5em;flex-wrap:wrap}
.cstrip h2{margin:0}
/* contact */
.cgrid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,3vw,120px)}@media(max-width:900px){.cgrid{grid-template-columns:1fr}}
dl.info dt{font:500 max(12px,.68em) var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--seal);margin-top:1.3em}
dl.info dd{margin:.2em 0 0;font-size:1.05em}dl.info a{text-decoration:none;display:inline-block;min-height:44px;padding:.35em 0}
form.f{background:#fff;border:1px solid var(--line);border-radius:8px;padding:clamp(20px,2vw,60px)}
.f label{display:block;font:500 max(12px,.7em) var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:1.1em}
.f input,.f textarea{width:100%;font:inherit;font-size:max(16px,1em);padding:.75em .9em;border:1px solid var(--line);border-radius:4px;background:var(--paper);min-height:48px;margin-top:.35em}
.f input:focus,.f textarea:focus{outline:2px solid var(--seal-soft);background:#fff}
.hp{position:absolute;left:-9999px}
.map{width:100%;height:clamp(300px,30vw,900px);border:0;border-radius:8px;margin-top:1.5em}
table.hours{border-collapse:collapse;width:100%}table.hours td{padding:.45em 0;border-bottom:1px solid var(--line)}table.hours td+td{text-align:right}
/* footer */
footer{background:var(--paper-deep);border-top:1px solid var(--line);padding:clamp(48px,4vw,140px) 0 2em;font-size:.9em}
footer .cols{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:2em}
@media(max-width:1000px){footer .cols{grid-template-columns:1fr 1fr}}@media(max-width:520px){footer .cols{grid-template-columns:1fr}}
footer h4{font:500 max(12px,.7em) var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--seal);margin:0 0 .8em}
footer ul{list-style:none;margin:0;padding:0}footer li a{text-decoration:none;display:inline-block;padding:.45em 0;min-height:44px;color:var(--ink-soft)}footer li a:hover{color:var(--seal)}
footer .legal{border-top:1px solid var(--line);margin-top:2.5em;padding-top:1.2em;display:flex;flex-wrap:wrap;gap:1em 2em;justify-content:space-between;color:var(--mute);font-size:max(13px,.82em)}
footer .legal a{display:inline-block;min-height:44px;padding:.6em 0}
.mock{background:#0F1225;color:#fff;text-align:center;font:500 12px var(--mono);padding:6px}

@media(max-width:1600px) and (min-width:1241px){.brand span{display:none}nav.main li>a,nav.main li>button{padding:.5em .45em;font-size:.8em}nav.main .btn{padding:.8em 1em}}
nav.main>ul{flex-wrap:nowrap}
@media(max-width:1700px) and (min-width:1241px){nav.main li.lg{display:none}}
nav.main li>a.btn-gold{background:var(--seal);color:#fff;font:500 .74em var(--mono);letter-spacing:.14em;padding:.8em 1.2em;border-radius:4px}nav.main li>a.btn-gold:hover{background:#b07507;color:#fff}
/* toasts (live-site form feedback) */
#toasts{position:fixed;z-index:100;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:.5rem;width:min(92vw,420px)}
.toast{background:var(--ink);color:#fff;padding:.9em 1.1em;border-radius:6px;font-size:max(14px,.85em);box-shadow:0 10px 30px rgba(0,0,0,.2)}
.toast.err{background:#9b1c1c}.toast.ok{background:#1f5f3f}
/* legal pages (content copied verbatim from live /privacy and /terms) */
.legal-hero .meta{display:flex;flex-wrap:wrap;gap:1em 2.5em;margin-top:1.4em}
.legal-hero .meta-item{display:flex;flex-direction:column}.legal-hero .label{font-size:max(12px,.66em)}.legal-hero .value{font-size:.95em}
.doc{max-width:min(92vw,1240px)}.doc .doc-lede{font-size:1.15em;color:var(--ink-soft);max-width:46em}
.doc .doc-grid{display:grid;grid-template-columns:15em 1fr;gap:clamp(24px,3vw,100px);margin-top:2em}
@media(max-width:900px){.doc .doc-grid{grid-template-columns:1fr}}
.doc .rail{position:sticky;top:calc(clamp(72px,4.6vw,150px) + 1em);align-self:start;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:1.2em}
@media(max-width:900px){.doc .rail{position:static}}
.doc .rail ol{list-style:none;padding:0;margin:0}.doc .rail li{display:flex;gap:.6em;align-items:center}
.doc .rail a{text-decoration:none;display:inline-block;min-height:44px;padding:.6em 0;font-size:.9em}.doc .rail a:hover{color:var(--seal)}
.doc .num{font:500 max(12px,.7em) var(--mono);color:var(--seal)}
.doc .section{padding:1.2em 0;border-bottom:1px solid var(--line);scroll-margin-top:calc(clamp(72px,4.6vw,150px) + 1em)}
.doc .section-head{display:flex;align-items:baseline;gap:.8em}.doc h2{font-size:clamp(26px,1.8vw,64px);margin:.2em 0}
.doc li{margin:.35em 0}.doc .notice{background:var(--seal-wash);border-left:4px solid var(--seal);padding:1em 1.2em;border-radius:4px;margin:1em 0}
.doc .contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14em),1fr));gap:1em;margin-top:1em}
.doc .contact-grid>div{display:flex;flex-direction:column}
.doc .cross-link{display:inline-flex;align-items:center;min-height:44px;margin-top:1.5em;color:var(--seal);font-weight:600;text-decoration:none}
.doc .doc-foot{color:var(--mute);font-size:.9em;margin-top:2em}
.doc a{word-break:break-word}
.doc .value a{display:inline-flex;align-items:center;min-height:44px}
footer li a.staff{color:var(--mute);font-size:.9em}footer li a.staff:hover{color:var(--seal)}
.doc p a{padding:.75em 0}
