:root{--bg:#0E0E0F;--bg2:#161518;--card:#1A191D;--text:#F5F1EA;--muted:#A29B90;--border:#2A2830;--sage:rgba(255,122,24,.12);--orange:#FF7A18;--orange2:#FFA24D;--font-body:'Geist',system-ui,sans-serif;--font-disp:'Instrument Serif',Georgia,serif;--ease:cubic-bezier(0.22,1,0.36,1);}
[data-theme=light]{--bg:#FBF9F5;--bg2:#FFFFFF;--card:#FFFFFF;--text:#191714;--muted:#6B6459;--border:#EAE4DA;--sage:rgba(255,122,24,.09);}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased;}
a{color:var(--orange);}
a:hover{color:var(--orange2);}
[data-reveal]{opacity:1;}
@supports (animation-timeline:view()){[data-reveal]{opacity:0;transform:translateY(26px);animation:swcl-rise linear both;animation-timeline:view();animation-range:entry 4% cover 26%;}}
@keyframes swcl-rise{to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1 !important;transform:none !important;animation:none !important;}}
[data-card]{transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);}
[data-card]:hover{transform:translateY(-6px);box-shadow:0 26px 55px rgba(0,0,0,.42);border-color:var(--orange);}
[data-card]:hover [data-cardimg]{transform:scale(1.06);}
[data-card]:hover [data-arrow]{transform:translateX(4px);}
@media (prefers-reduced-motion:reduce){[data-card]:hover,[data-card]:hover [data-cardimg],[data-card]:hover [data-arrow]{transform:none !important;}}
.swcl-flink{position:relative;}
.swcl-flink::after{content:'';position:absolute;left:0;right:100%;bottom:-3px;height:1.5px;background:var(--orange);transition:right .35s var(--ease);}
.swcl-flink:hover::after{right:0;}
@media (prefers-reduced-motion:reduce){.swcl-flink::after{transition:none;}}
[data-theme=light] #contact{background:#161719;}
[data-theme=light] #contact [data-gt]{color:#F4F1EA;--text:#F4F1EA;--muted:#B7B1A6;--border:rgba(255,255,255,.16);}
[data-vm]:hover [data-arrow]{transform:translateX(4px);}
@media (max-width:900px){[data-aboutgrid],[data-contactgrid],[data-areagrid],[data-featgrid]{grid-template-columns:1fr;}}
@media (max-width:760px){[data-footgrid]{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){[data-footgrid]{grid-template-columns:1fr;}#contact form{grid-template-columns:1fr;}[data-aboutgrid] img{height:340px;}[data-promise]{flex-direction:column;align-items:stretch;}}
img{display:block;max-width:100%;}
::selection{background:var(--orange);color:#111;}
@keyframes swcl-kb{0%{transform:scale(1) translate(0,0);}100%{transform:scale(1.14) translate(-1.6%,-1.4%);}}
@keyframes swcl-grain{0%{background-position:0 0;}25%{background-position:-22px 12px;}50%{background-position:16px -20px;}75%{background-position:-14px 24px;}100%{background-position:0 0;}}
@keyframes swcl-wipe{0%{transform:translateX(-140%);}55%{transform:translateX(140%);}100%{transform:translateX(140%);}}
@keyframes swcl-spark{0%,100%{opacity:0;transform:scale(.3) rotate(45deg);}50%{opacity:1;transform:scale(1) rotate(45deg);}}
@media (max-width:900px){[data-featgrid] div[style*="sticky"]{position:static !important;top:auto !important;}}
@media (max-width:560px){header [data-cta]{display:none !important;}}
@media (max-width:900px){header button[aria-label="Search"],header button[aria-label="Settings and accessibility"],header button[aria-label="Menu"]{width:44px;height:44px;}}
@media (max-width:900px){[data-featgrid]>div:last-child{order:-1;}}
@media (max-width:640px){#home{padding-top:118px !important;}[data-featgrid] img{height:300px !important;}[data-aboutgrid] img{height:320px !important;}}
@media (max-width:400px){h1{font-size:44px !important;}}
/* hover / focus states (ported from the design's inline style-hover / style-focus) */
.nav-link:hover{background:var(--sage);}
.nav-link.active{color:var(--orange);font-weight:700;}
.icon-btn:hover{background:var(--sage);}
.cta:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 12px 30px rgba(255,122,24,.45);}
.hero-cta:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 16px 40px rgba(255,122,24,.5);}
.hero-ghost:hover{background:rgba(255,255,255,.2);}
.menu-row:hover{background:var(--sage);}
.btn-ghost:hover{background:var(--sage);}
[data-vm]:hover{transform:translateY(-3px);}
#quoteForm input:focus,#quoteForm select:focus,#quoteForm textarea:focus{border-color:var(--orange);}
#quoteForm button[type=submit]:hover{transform:translateY(-2px);}
