:root{ --ease: cubic-bezier(0.22, 1, 0.36, 1); --bg:#faf9f7; --panel:#ffffff; --line:rgba(20,18,15,.12); --text:#1b1915; --muted:#5f5b53; --gold:#9a7a2c; --gold-bright:#b8942f; --sage:rgba(120,135,110,.16); --orange:#e8863c; --orange-soft:#f6ad74; --navy:#1a2330; }
*{ box-sizing:border-box; }
summary::-webkit-details-marker{ display:none; }
summary::marker{ content:''; }
html{ scroll-behavior:auto; }
body{ margin:0; background:var(--bg); color:var(--text); font-family:'Geist',system-ui,sans-serif; font-size:18px; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
body.dys{ font-family:'Lexend',system-ui,sans-serif; }
h1,h2,h3,h4{ margin:0; font-weight:300; letter-spacing:-.02em; line-height:1.08; }
p{ margin:0; }
a{ color:var(--gold); text-decoration:none; }
a:hover{ color:var(--gold-bright); }
::selection{ background:rgba(154,122,44,.22); color:#1b1915; }
input,button,select,textarea{ font-family:inherit; }
img{ max-width:100%; }

/* ---- keyframes ---- */
@keyframes mmsKen{ 0%{ transform:scale(1.02) translate(0,0);} 100%{ transform:scale(1.14) translate(-1.5%,-1.5%);} }
@keyframes mmsGrain{ 0%{ transform:translate(0,0);} 25%{ transform:translate(-4%,-3%);} 50%{ transform:translate(3%,-5%);} 75%{ transform:translate(-3%,4%);} 100%{ transform:translate(4%,3%);} }
@keyframes mmsPulse{ 0%,100%{ opacity:.35;} 50%{ opacity:1;} }
@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; } }

/* ---- header / nav ---- */
.site-header{ position:fixed; top:0; left:0; right:0; z-index:200; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 clamp(18px,3vw,40px); height:98px; background:#efece6; border-bottom:1px solid transparent; transition:border-color .4s var(--ease); }
.brand{ display:flex; align-items:center; padding:6px 4px; flex:none; }
.nav-desktop{ display:flex; align-items:center; gap:2px; flex-wrap:nowrap; }
.nav-link{ display:inline-flex; align-items:center; white-space:nowrap; color:var(--text); font-size:18px; letter-spacing:.02em; padding:13px 11px; border-radius:8px; transition:background .3s var(--ease); }
.nav-link:hover{ background:var(--sage); color:var(--text); }
.header-actions{ display:flex; align-items:center; gap:8px; flex:none; }
.icon-btn{ width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:none; border:none; border-radius:10px; color:var(--text); cursor:pointer; transition:background .3s var(--ease); }
.icon-btn:hover{ background:var(--sage); }
.contact-pill{ display:flex; align-items:center; white-space:nowrap; gap:9px; height:46px; padding:0 18px; border-radius:23px; background:rgba(216,184,120,.12); border:1px solid rgba(216,184,120,.28); color:var(--text); font-size:18px; letter-spacing:.01em; transition:background .3s var(--ease); }
.contact-pill:hover{ background:rgba(216,184,120,.2); color:var(--text); }
.contact-row{ display:flex; align-items:center; gap:11px; padding:11px 12px; border-radius:9px; color:var(--text); font-size:18px; transition:background .25s var(--ease); }
.contact-row:hover{ background:var(--sage); color:var(--text); }
.nav-drawer{ position:fixed; inset:0; z-index:190; background:rgba(250,249,247,.98); backdrop-filter:blur(10px); flex-direction:column; padding:96px clamp(24px,7vw,48px) 40px; gap:6px; opacity:0; visibility:hidden; display:flex; transition:opacity .4s var(--ease), visibility .4s var(--ease); }
.nav-drawer.open{ opacity:1; visibility:visible; }
.drawer-link{ text-align:left; border-bottom:1px solid var(--line); color:var(--text); font-size:26px; font-weight:300; padding:20px 4px; }
.drawer-link:hover{ color:var(--gold); }
.burger{ display:none; }
@media (min-width:901px){ .nav-drawer{ display:none !important; } }
@media (max-width:900px){ .nav-desktop{ display:none !important; } .burger{ display:flex !important; } }
@media (max-width:1299px){ .header-quote{ display:none !important; } }
@media (min-width:901px) and (max-width:1299px){ .site-header{ gap:10px; padding:0 16px; } .nav-link{ padding:12px 7px; } .brand img{ height:58px !important; } }
@media (min-width:901px) and (max-width:1120px){ .contact-num{ display:none; } .contact-pill{ padding:0; width:48px; justify-content:center; } }
@media (max-width:560px){ .contact-num{ display:none; } .contact-pill{ padding:0; width:48px; justify-content:center; } }

/* ---- buttons ---- */
.btn-gold{ height:56px; padding:0 30px; white-space:nowrap; border-radius:30px; background:linear-gradient(135deg,#f2d99a,#e8934a); color:#141210; font-size:18px; font-weight:600; border:none; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.btn-gold:hover{ transform:translateY(-3px); box-shadow:0 14px 34px rgba(216,184,120,.34); color:#141210; }
.ghost-btn{ height:56px; display:inline-flex; align-items:center; gap:10px; padding:0 26px; border-radius:30px; border:1px solid var(--line); color:var(--text); font-size:18px; transition:border-color .3s var(--ease), background .3s var(--ease); }
.ghost-btn:hover{ border-color:rgba(216,184,120,.4); background:rgba(216,184,120,.06); color:var(--text); }
.flink{ color:var(--muted); font-size:18px; width:fit-content; }
.flink:hover{ color:var(--gold); }
[data-link]{ cursor:pointer; }
summary:hover{ color:var(--gold); }

/* form fields must shrink inside their grid */
form input, form textarea, form select{ width:100%; min-width:0; }
form label{ min-width:0; }

@media (max-width:1080px){ [data-service-grid]{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:620px){ [data-service-grid]{ grid-template-columns:1fr !important; } }

@media (max-width:1100px){ [data-hero-split]{ grid-template-columns:1fr !important; } [data-hero-media]{ aspect-ratio:16/10 !important; } }

[data-mega]:hover [data-mega-panel], [data-mega]:focus-within [data-mega-panel], [data-mega-panel]:hover{ opacity:1 !important; visibility:visible !important; transform:translate(-50%,0) !important; }
[data-mega-link]:hover{ color:var(--gold) !important; }
@media (max-width:900px){ [data-mega-panel]{ display:none !important; } [data-mini-panel]{ display:none !important; } }
[data-mini]:hover [data-mini-panel], [data-mini]:focus-within [data-mini-panel], [data-mini-panel]:hover{ opacity:1 !important; visibility:visible !important; transform:translateY(0) !important; }
[data-mini-panel] [data-mini-link]:hover{ background:var(--sage) !important; color:var(--text) !important; }

[data-mini-link]:hover span:first-child{ color:var(--gold) !important; }

[data-anchor]{ scroll-margin-top:120px; }
[data-jump]:hover{ border-color:rgba(216,184,120,.5) !important; background:rgba(216,184,120,.08) !important; }


@media (max-width:860px){ [data-section-row]{ grid-template-columns:1fr !important; } [data-section-media]{ height:auto !important; aspect-ratio:16/9 !important; } }

[data-mega][data-mega-off] [data-mega-panel]{ opacity:0 !important; visibility:hidden !important; transform:translate(-50%,-8px) !important; }
[data-mini][data-mini-off] [data-mini-panel]{ opacity:0 !important; visibility:hidden !important; transform:translateY(-6px) !important; }
