:root{
  --bg:#f6f3ec; --bg2:#efe9dd; --surface:#fffdf8; --text:#1b1915; --text2:#5c574d;
  --border:#e5ddce; --gold:#a9791f; --gold2:#c39a45; --goldsoft:rgba(169,121,31,.12);
  --sage:#8f9d86; --sagesoft:rgba(143,157,134,.16); --shadow:rgba(45,33,10,.10);
  --hero:rgba(22,18,12,.38); --hero2:rgba(22,18,12,.14);
  --body:'Geist',system-ui,-apple-system,sans-serif; --display:'Archivo','Geist',system-ui,sans-serif;
  --ease:cubic-bezier(0.22,1,0.36,1);
}
[data-theme="dark"]{
  --bg:#131210; --bg2:#1b1813; --surface:#1e1a14; --text:#f2eee3; --text2:#a9a193;
  --border:#332e25; --gold:#c8a052; --gold2:#d9b56a; --goldsoft:rgba(200,160,82,.14);
  --shadow:rgba(0,0,0,.55); --hero:rgba(8,6,4,.55); --hero2:rgba(8,6,4,.3);
}
[data-dys="true"]{ --body:'Lexend',sans-serif; }
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:18px;line-height:1.6;
  transition:background .45s var(--ease),color .45s var(--ease);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
h1,h2,h3{margin:0;font-weight:800;line-height:1.04;letter-spacing:-0.02em}
p{margin:0}
a{color:var(--gold);text-decoration:none}
a:hover{color:var(--gold2)}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--goldsoft)}
input,textarea,select{font-family:inherit}
img{display:block}
@media (pointer:fine){ body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Ccircle cx='11' cy='11' r='6.5' fill='none' stroke='%23a9791f' stroke-width='2'/%3E%3Ccircle cx='11' cy='11' r='1.6' fill='%23a9791f'/%3E%3C/svg%3E") 11 11, auto } }
@keyframes kb{0%{transform:scale(1) translate(0,0)}100%{transform:scale(1.14) translate(-1.5%,-1.5%)}}
@keyframes drive{0%{left:-64px;transform:translateY(0)}8%{transform:translateY(0)}50%{transform:translateY(-2px)}92%{transform:translateY(0)}100%{left:100%;transform:translateY(0)}}
@keyframes roadmove{to{background-position:-30px 0}}
@keyframes grainshift{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-4%)}60%{transform:translate(-2%,2%)}80%{transform:translate(4%,-2%)}100%{transform:translate(0,0)}}
@keyframes pulseRing{0%{box-shadow:0 0 0 0 var(--goldsoft)}70%{box-shadow:0 0 0 14px transparent}100%{box-shadow:0 0 0 0 transparent}}

.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cover-img{width:100%;height:100%;object-fit:cover}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
[data-reveal].in{opacity:1;transform:none}

/* nav active state via body page class */
.navlink{background:none;border:none;padding:9px 14px;border-radius:100px;font-size:15px;font-weight:500;color:var(--text2)}
.navlink:hover{color:var(--text)}
.page-home .navlink.nav-home,.page-about .navlink.nav-about,.page-services .navlink.nav-services,.page-faq .navlink.nav-faq,.page-contact .navlink.nav-contact{font-weight:600;color:var(--gold);background:var(--goldsoft)}

/* utility icon buttons */
.icon-btn{width:42px;height:42px;display:grid;place-items:center;background:none;border:none;border-radius:10px;color:var(--text)}
.icon-btn:hover{background:var(--sagesoft)}
.pill:hover{border-color:var(--gold)!important}
.ddrow:hover{background:var(--goldsoft)}

/* cards */
.card{display:flex;flex-direction:column;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:20px;overflow:hidden;padding:0;transition:box-shadow .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);box-shadow:0 8px 26px var(--shadow);text-decoration:none;color:inherit}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(45,33,10,.22);border-color:var(--gold)}
.card:hover .card-img{transform:scale(1.06)}
.card:hover .arrow{transform:translateX(4px)}
.card-img{position:absolute;inset:0;transition:transform .7s var(--ease)}
.arrow{transition:transform .3s var(--ease)}

.btn-gold{background:var(--gold);color:#fff;border:none}
.btn-gold:hover{background:var(--gold2);color:#fff}
.btn-outline:hover{border-color:var(--gold)!important;color:var(--gold)!important}
.btn-white:hover{background:#111!important;color:#fff!important}
.contact-row:hover{border-color:var(--gold)!important}
.social:hover{border-color:var(--gold)!important;box-shadow:0 0 0 4px var(--goldsoft)}
.footlink{background:none;border:none;color:var(--text);padding:0;font-size:15px;background-image:linear-gradient(var(--gold),var(--gold));background-size:0% 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .35s var(--ease);text-align:left}
.footlink:hover{background-size:100% 2px;color:var(--gold)}

/* services rows */
.svc{background:var(--surface);border:1px solid var(--border);border-radius:26px;overflow:hidden;box-shadow:0 20px 54px var(--shadow);display:grid;grid-template-columns:minmax(0,50%) 1fr;align-items:stretch}
.svc.rev{grid-template-columns:1fr minmax(0,50%)}
.svc .svc-img{position:relative;align-self:stretch;overflow:hidden;min-height:340px}
.svc.rev .svc-img{order:2}
@media (max-width:820px){
  .svc,.svc.rev{grid-template-columns:1fr}
  .svc.rev .svc-img{order:0}
  .svc .svc-img{min-height:260px}
}

/* faq */
.faq details{border-bottom:1px solid var(--border)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px clamp(20px,3vw,32px);color:var(--text);font-size:clamp(17px,2vw,20px);font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq .plus{flex:none;color:var(--gold);font-size:26px;transition:transform .3s var(--ease)}
.faq details[open] .plus{transform:rotate(45deg)}
.faq .ans{padding:0 clamp(20px,3vw,32px) 24px;color:var(--text2)}

/* header responsive */
.desknav{display:flex}
.burger{display:none}
.callpill-text{display:inline}
@media (max-width:900px){
  .desknav{display:none}
  .burger{display:grid!important}
  .callpill-text{display:none}
}

/* drawer + panels */
.overlay{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.4);display:none}
.overlay.open{display:block}
.drawer{position:absolute;top:0;right:0;height:100%;width:min(84vw,340px);background:var(--surface);border-left:1px solid var(--border);padding:26px 22px;display:flex;flex-direction:column;gap:6px;box-shadow:-20px 0 60px var(--shadow)}
.drawerlink{text-align:left;background:none;border:none;padding:14px 8px;font-size:20px;font-family:var(--display);color:var(--text);border-bottom:1px solid var(--border);text-decoration:none;display:block}
.settings-overlay{position:fixed;inset:0;z-index:85;background:rgba(0,0,0,.4);display:none}
.settings-overlay.open{display:block}
.settings-panel{position:absolute;top:0;right:0;height:100%;width:min(90vw,380px);background:var(--surface);border-left:1px solid var(--border);padding:24px;overflow-y:auto;box-shadow:-20px 0 60px var(--shadow);display:flex;flex-direction:column;gap:22px}
.search-panel{display:none;border-top:1px solid var(--border);background:var(--surface)}
.search-panel.open{display:block}
.contact-dd{display:none}
.contact-dd.open{display:block}
.knob{position:absolute;top:2px;width:24px;height:24px;border-radius:50%;background:var(--gold);transition:left .3s var(--ease)}
.switch{width:56px;height:30px;border-radius:100px;border:1px solid var(--border);background:var(--border);position:relative;transition:background .3s var(--ease)}
.switch[aria-checked="true"]{background:var(--goldsoft)}
.switch .knob{left:2px}
.switch[aria-checked="true"] .knob{left:28px}

/* grain + fx layers */
.grain{position:fixed;inset:-60px;z-index:60;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grainshift 8s steps(6) infinite}
.fxlayer{position:fixed;inset:0;pointer-events:none;overflow:hidden}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  [data-reveal]{opacity:1 !important;transform:none !important}
  .kb-zoom{animation:none !important}
}
.kb-zoom{position:absolute;inset:-6%;animation:kb 24s ease-in-out infinite alternate}
