:root { --ease: cubic-bezier(0.22, 1, 0.36, 1); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: 'Geist', system-ui, sans-serif; background:var(--bg); color:var(--text); min-height:100vh; overflow-x:hidden; position:relative; }
[data-theme="dark"]{ --bg:#0d0e10; --bg2:#15171a; --card:#15171a; --line:rgba(255,255,255,.09); --text:#ece9e3; --muted:#9e9b94; --gold:#c9a24c; --green:#2e7d46; --head:#f3f1ec; --heroOverlay:rgba(10,11,13,.62); }
[data-theme="light"]{ --bg:#f5f5f2; --bg2:#ffffff; --card:#ffffff; --line:rgba(0,0,0,.10); --text:#2a2c2f; --muted:#6a6c6f; --gold:#9a7220; --green:#1f6b37; --head:#1b232f; --heroOverlay:rgba(20,22,26,.52); }
[data-dys="on"], [data-dys="on"] * { font-family:'Lexend', sans-serif !important; }
a { color: var(--gold); text-decoration: none; }
a:hover { color: var(--green); }
::selection { background: var(--gold); color:#0d0e10; }
::-webkit-scrollbar { width:11px; } ::-webkit-scrollbar-track{ background:var(--bg); } ::-webkit-scrollbar-thumb{ background:#3a3d42; border-radius:8px; }

@keyframes kb { 0%{transform:scale(1)} 100%{transform:scale(1.14)} }
@keyframes grainshift { 0%{transform:translate(0,0)}25%{transform:translate(-4%,3%)}50%{transform:translate(3%,-5%)}75%{transform:translate(-5%,-3%)}100%{transform:translate(0,0)} }
@keyframes rise { 0%{transform:translateY(14px) scale(.7);opacity:0}30%{opacity:.55}100%{transform:translateY(-46px) scale(1.5);opacity:0} }

@keyframes fadeUp { from{ opacity:0; transform:translateY(28px); } to{ opacity:1; transform:none; } }
[data-reveal]{ animation: fadeUp .8s var(--ease) both; }

.ulink{ position:relative; }
.ulink::after{ content:""; position:absolute; left:0; bottom:-4px; height:1.5px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.ulink:hover::after, .ulink.on::after{ transform:scaleX(1); }

.svc-card{ transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease); }
.svc-card:hover{ transform:translateY(-6px); box-shadow:0 26px 52px rgba(0,0,0,.45); border-color:var(--gold) !important; }
.svc-media{ overflow:hidden; }
.svc-media > .svc-zoom{ transition:transform .7s var(--ease); height:100%; width:100%; }
.svc-card:hover .svc-media > .svc-zoom{ transform:scale(1.06); }
.svc-arrow{ transition:transform .3s var(--ease); display:inline-block; }
.svc-card:hover .svc-arrow{ transform:translateX(4px); }

.svc-row{ display:flex; gap:64px; align-items:flex-start; padding:76px 0; border-top:1px solid var(--line); }
.svc-row.rev{ flex-direction:row-reverse; }
.svc-col{ flex:1 1 0; min-width:0; }
.svc-sticky{ position:sticky; top:104px; }
.svc-photo{ position:relative; width:100%; aspect-ratio:4/3; border-radius:18px; overflow:hidden; border:1px solid var(--line); transition:transform .5s var(--ease), box-shadow .5s var(--ease); }
.svc-row:hover .svc-photo{ box-shadow:0 26px 60px rgba(0,0,0,.4); }
@media (max-width:900px){ .svc-row, .svc-row.rev{ flex-direction:column; gap:26px; padding:48px 0; } .svc-sticky{ position:static; } }

.iconbtn{ transition:background .25s var(--ease), color .25s var(--ease); }
.iconbtn:hover{ background:rgba(46,125,70,.14); }
.glowsoc{ transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.glowsoc:hover{ transform:translateY(-3px); box-shadow:0 0 18px rgba(201,162,76,.45); }

.slot-img{ display:block; width:100%; height:100%; object-fit:cover; }

/* dropdown menus driven by hover (no JS runtime needed) */
.nav-drop .nav-dropmenu{ opacity:0; visibility:hidden; transition:opacity .2s var(--ease); }
.nav-drop:hover .nav-dropmenu{ opacity:1; visibility:visible; }
.nav-drop:hover .nav-caret{ transform:rotate(180deg); }
.contact-drop .contact-menu{ opacity:0; visibility:hidden; transition:opacity .2s var(--ease); }
.contact-drop:hover .contact-menu{ opacity:1; visibility:visible; }
.dropmenu-link:hover{ background:var(--bg); }

/* overlay panels toggled by site.js via .open */
#search-panel{ position:fixed; top:0; left:0; right:0; z-index:720; background:var(--bg2); border-bottom:1px solid var(--line); box-shadow:0 18px 50px rgba(0,0,0,.35); transform:translateY(-105%); opacity:0; transition:transform .4s var(--ease), opacity .3s; }
#search-panel.open{ transform:translateY(0); opacity:1; }
#settings-scrim{ position:fixed; inset:0; z-index:700; background:rgba(0,0,0,.5); opacity:0; visibility:hidden; transition:opacity .3s var(--ease); }
#settings-scrim.open{ opacity:1; visibility:visible; }
#settings-panel{ position:fixed; top:0; right:0; bottom:0; width:360px; max-width:88vw; z-index:710; background:var(--bg2); border-left:1px solid var(--line); padding:26px 26px 40px; overflow-y:auto; box-shadow:-18px 0 50px rgba(0,0,0,.4); transform:translateX(105%); transition:transform .4s var(--ease); }
#settings-panel.open{ transform:translateX(0); }
#mobile-menu{ position:fixed; top:0; left:0; width:100vw; height:100vh; z-index:650; background:var(--bg); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px; opacity:0; visibility:hidden; transition:opacity .35s var(--ease); }
#mobile-menu.open{ opacity:1; visibility:visible; }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  [data-reveal]{ opacity:1 !important; transform:none !important; }
  #tn-loader{ display:none !important; }
}
@media (max-width: 900px){
  .desk-nav, .desk-cta{ display:none !important; }
  .hamb{ display:flex !important; }
  .two-col{ grid-template-columns:1fr !important; }
  .three-col{ grid-template-columns:1fr !important; }
  .contact-grid{ grid-template-columns:1fr !important; }
  .h-xl{ font-size:44px !important; }
  .h-lg{ font-size:36px !important; }
  .pad-lg{ padding-left:22px !important; padding-right:22px !important; }
}
