:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
--ink:#10292E;--harbor:#0F5A5E;--filament:#F2B134;--mist:#EEF2EC;--paper:#FFFFFF;--muted:#45595C;--line:#D3DCD6;--line2:#C4CFC8;
--bg:var(--paper);--text:var(--ink);--alt:var(--mist);--card:var(--paper);--soft:var(--muted);--rule:var(--line);--strong:var(--ink);
--display:"Archivo","Arial Narrow",system-ui,sans-serif;--body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0C2226;--text:#EEF2EC;--alt:#10292E;--card:#15343A;--soft:#B3C2BD;--rule:#2B484D;--strong:#EEF2EC}}
:root[data-theme="dark"]{--bg:#0C2226;--text:#EEF2EC;--alt:#10292E;--card:#15343A;--soft:#B3C2BD;--rule:#2B484D;--strong:#EEF2EC}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 90px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.6}
img,svg{max-width:100%}
a{color:var(--harbor)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) a{color:#7FC4C2}}
:root[data-theme="dark"] a{color:#7FC4C2}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--filament);outline-offset:3px}
.wrap{width:100%;max-width:1280px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}
h1,h2,h3{font-family:var(--display);font-stretch:112%;color:var(--strong);margin:0;letter-spacing:-.01em}
h1{font-weight:800;font-size:clamp(38px,5.6vw,72px);line-height:1.03;letter-spacing:-.02em}
h2{font-weight:800;font-size:clamp(30px,3.8vw,52px);line-height:1.06}
h3{font-weight:700;font-size:clamp(20px,1.8vw,25px);line-height:1.2}
p{margin:0}
.lead{font-size:clamp(17px,1.5vw,21px);color:var(--soft);max-width:38em}
.muted{color:var(--soft)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 14px;z-index:99;border-radius:6px}
.skip:focus{left:12px}
/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--bg);border-bottom:1px solid var(--rule)}
.hbar{display:flex;align-items:center;justify-content:space-between;gap:24px;height:80px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-name{font-family:var(--display);font-stretch:118%;font-weight:800;font-size:21px;color:var(--strong)}
.brand-sub{font-family:var(--display);font-weight:500;font-size:14px;color:var(--harbor);margin-top:3px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand-sub{color:var(--filament)}}
.nav{display:flex;align-items:center;gap:28px}
.nav>a,.nav summary{color:var(--strong);text-decoration:none;font-weight:500;font-size:16px;cursor:pointer}
.nav>a:hover,.nav summary:hover{color:var(--harbor)}
.nav details{position:relative}
.nav summary{list-style:none;display:flex;align-items:center;gap:6px}
.nav summary::-webkit-details-marker{display:none}
.nav summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.dropdown{position:absolute;top:calc(100% + 18px);left:-20px;background:var(--card);border:1px solid var(--rule);border-radius:6px;padding:10px;min-width:280px;display:flex;flex-direction:column;box-shadow:0 14px 40px rgba(16,41,46,.14)}
.dropdown a{padding:10px 12px;border-radius:4px;text-decoration:none;color:var(--strong);font-weight:500}
.dropdown a:hover{background:var(--alt)}
.hcta{display:flex;align-items:center;gap:18px}
.phone{font-weight:700;color:var(--strong);text-decoration:none;white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border-radius:6px;font-weight:700;font-size:16px;text-decoration:none;border:2px solid transparent;cursor:pointer;font-family:var(--body);text-align:center}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:var(--harbor);color:#fff}
.btn-sun{background:var(--filament);color:var(--ink)}
.btn-sun:hover{background:#F6C453;color:var(--ink)}
.btn-line{border-color:currentColor;color:var(--strong);background:transparent}
.btn-lg{min-height:58px;padding:16px 28px;font-size:18px}
.menu-btn{display:none;width:48px;height:48px;border:0;background:transparent;color:var(--strong);padding:0;align-items:center;justify-content:center;cursor:pointer}
@media (max-width:1080px){
 .nav,.hcta .btn{display:none}
 .menu-btn{display:inline-flex}
 .nav.open{display:flex;position:absolute;left:0;right:0;top:80px;background:var(--bg);flex-direction:column;align-items:stretch;gap:0;padding:8px clamp(20px,5vw,64px) 24px;border-bottom:1px solid var(--rule);max-height:calc(100vh - 80px);overflow:auto}
 .nav.open>a,.nav.open summary{padding:14px 0;border-bottom:1px solid var(--rule);font-size:18px}
 .nav.open .dropdown{position:static;border:0;box-shadow:none;padding:0 0 8px 12px;background:transparent}
}
@media (max-width:560px){.hcta .phone{display:none}}
/* sections */
.sec{padding:clamp(64px,9vw,112px) 0}
.alt{background:var(--alt)}
.dark{background:var(--ink);color:#EEF2EC}
.dark h1,.dark h2,.dark h3{color:#fff}
.dark .lead,.dark .muted{color:#C9D5D1}
.teal{background:var(--harbor);color:#EEF2EC}
.teal h2{color:#fff}
.teal a{color:#fff}
.sun{background:var(--filament);color:var(--ink)}
.sun h2{color:var(--ink)}
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px 64px;flex-wrap:wrap;margin-bottom:clamp(36px,5vw,56px)}
.head-row h2{max-width:14em}
.head-row p{max-width:30em}
/* hero */
.hero{background:var(--alt);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:56px;align-items:center;padding-top:clamp(48px,7vw,88px);padding-bottom:clamp(56px,7vw,96px)}
.hero-copy{display:flex;flex-direction:column;gap:26px}
.actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-mark{aspect-ratio:1;width:100%;max-width:540px;justify-self:end;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center}
.hero-mark svg{width:86%;height:86%}
.spin{animation:spin 48s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation:none}}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.hero-mark{order:-1;max-width:200px;justify-self:end}}
/* stats */
.stats{background:var(--ink);color:#D3DCD6}
.stats .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding-top:36px;padding-bottom:36px}
.stat b{display:block;font-family:var(--display);font-stretch:115%;font-weight:800;font-size:clamp(28px,3vw,40px);color:#fff;line-height:1.1}
.stat b.hl{color:var(--filament)}
.stat span{font-size:15px}
@media (max-width:760px){.stats .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* service grid */
.sgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:48px}
@media (max-width:980px){.sgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.sgrid{grid-template-columns:1fr}}
.sitem{border-top:2px solid var(--strong);padding:28px 0 44px;display:flex;flex-direction:column;gap:12px}
.sitem .ico{width:36px;height:36px;color:var(--harbor)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .sitem .ico{color:var(--filament)}}
.sitem p{color:var(--soft)}
.price{font-weight:700;color:var(--strong)}
.more{font-weight:700}
/* steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.steps li{display:flex;flex-direction:column;gap:12px}
.steps .n{font-family:var(--display);font-stretch:115%;font-weight:800;font-size:60px;line-height:1;color:var(--harbor)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .steps .n{color:var(--filament)}}
.steps p{color:var(--soft)}
@media (max-width:760px){.steps{grid-template-columns:1fr;gap:28px}}
/* split */
.split{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:clamp(32px,7vw,96px);align-items:start}
.split-head{display:flex;flex-direction:column;gap:18px}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.rlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}
.rlist li{border-top:1px solid var(--rule);padding:22px 0;display:flex;flex-direction:column;gap:6px}
.rlist li p{color:var(--soft);font-size:16px}
.rlist h3{font-family:var(--body);font-stretch:100%;font-size:19px;font-weight:700}
@media (max-width:620px){.rlist{grid-template-columns:1fr}}
/* area */
.area{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:64px;align-items:center}
.area ul{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 28px;font-weight:600;font-size:18px}
.area svg{width:100%;height:auto}
@media (max-width:900px){.area{grid-template-columns:1fr}.area svg{max-width:320px}}
@media (max-width:520px){.area ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* reviews */
.rgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media (max-width:900px){.rgrid{grid-template-columns:1fr}}
.review{margin:0;background:var(--card);padding:32px;border-radius:4px;display:flex;flex-direction:column;gap:18px}
.stars{color:#B7861F;letter-spacing:3px;font-size:19px}
.review blockquote{margin:0;font-size:18px;line-height:1.55}
.review figcaption{font-size:15px;color:var(--soft)}
/* about */
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,7vw,96px);align-items:center}
.photo{aspect-ratio:4/5;background:var(--line);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--muted);text-align:center;padding:24px}
.about-copy{display:flex;flex-direction:column;gap:20px}
.about-copy p{color:var(--soft);font-size:18px}
@media (max-width:860px){.about{grid-template-columns:1fr}.photo{aspect-ratio:4/3}}
/* faq */
.faq{margin:0;display:flex;flex-direction:column}
.faq details{border-top:1px solid var(--line2);padding:4px 0}
.faq details:last-child{border-bottom:1px solid var(--line2)}
.faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;font-weight:700;font-size:19px;position:relative;color:var(--strong)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:28px;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(225deg);top:32px}
.faq details p{padding:0 0 22px;color:var(--soft);max-width:44em}
/* cta band */
.band .wrap{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.band h2{font-size:clamp(30px,4vw,54px)}
.band p{font-size:19px;margin-top:8px}
/* service page hero */
.shero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:64px;align-items:start;padding-top:clamp(40px,6vw,72px);padding-bottom:clamp(56px,7vw,96px)}
.crumbs{font-size:15px;display:flex;gap:10px;flex-wrap:wrap;color:#A9B8B3}
.crumbs a{color:#D3DCD6}
.shero .hero-copy h1{font-size:clamp(36px,5vw,64px)}
.pricebox{background:var(--paper);color:var(--ink);border-radius:4px;padding:32px;display:flex;flex-direction:column;gap:16px}
.pricebox .big{font-family:var(--display);font-stretch:115%;font-weight:800;font-size:46px;line-height:1}
.pricebox ul{margin:0;padding-left:20px;line-height:1.8}
.pricebox small{font-size:14px;color:var(--muted);line-height:1.5}
@media (max-width:900px){.shero .wrap{grid-template-columns:1fr}}
.dark .btn-line{color:#fff}
.chips{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 28px;font-weight:600}
@media (max-width:860px){.chips{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* contact */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(32px,6vw,80px);align-items:start}
@media (max-width:900px){.contact{grid-template-columns:1fr}}
.cinfo{display:flex;flex-direction:column;gap:22px}
.cinfo dl{margin:0;display:grid;gap:18px}
.cinfo dt{font-weight:700;color:var(--strong)}
.cinfo dd{margin:2px 0 0;color:var(--soft)}
.form{background:var(--card);border:1px solid var(--rule);border-radius:6px;padding:clamp(22px,4vw,40px);display:grid;gap:18px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:560px){.row2{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-weight:600;font-size:15px}
.field input,.field select,.field textarea{font:inherit;color:var(--text);background:var(--bg);border:1.5px solid var(--line2);border-radius:6px;min-height:50px;padding:12px 14px;width:100%}
.field textarea{min-height:130px;resize:vertical}
.form-note{font-size:14px;color:var(--soft)}
.form-msg{padding:14px 16px;border-radius:6px;background:var(--alt);font-weight:600}
/* footer */
.site-footer{background:var(--ink);color:#D3DCD6;padding:72px 0 40px}
.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.fgrid{grid-template-columns:1fr}}
.site-footer h3{font-family:var(--body);font-stretch:100%;font-size:16px;color:#fff;margin-bottom:12px}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15px}
.site-footer a{color:#D3DCD6;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.site-footer .brand-name{color:#fff}.site-footer .brand-sub{color:var(--filament)}
.fbottom{border-top:1px solid #2E4A4F;margin-top:48px;padding-top:22px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px;color:#A9B8B3}
/* mobile sticky bar */
.mbar{display:none}
@media (max-width:760px){
 .mbar{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--bg);border-top:1px solid var(--rule);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}
 .mbar .btn{flex:1}
 body{padding-bottom:78px}
}
.page[hidden]{display:none}
.nav>a,.nav summary,.btn,.phone{white-space:nowrap}
@media (max-width:560px){.actions .btn{flex:1 1 100%}}
.photo{padding:0;overflow:hidden}
.photo img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block}
/* hero animation: palm shadows sway, light switches on, fan spins up */
.hero{position:relative;isolation:isolate}
.hero .wrap{position:relative;z-index:1}
.palms{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.palm{position:absolute;fill:var(--ink);opacity:.11;filter:blur(2px)}
.palm-a{width:880px;left:-140px;top:-260px;transform-origin:4% 50%;transform:rotate(24deg);animation:sway-a 9s ease-in-out infinite alternate}
.palm-b{width:760px;left:18%;bottom:-330px;transform-origin:4% 50%;transform:rotate(-28deg);animation:sway-b 11s ease-in-out infinite alternate;opacity:.08}
.palm-c{width:860px;left:calc(100% - 40px);top:-300px;transform-origin:4% 50%;transform:rotate(150deg);animation:sway-c 10s ease-in-out infinite alternate;opacity:.09}
@keyframes sway-a{from{transform:rotate(30deg)}to{transform:rotate(35deg)}}
@keyframes sway-b{from{transform:rotate(-30deg)}to{transform:rotate(-25deg)}}
@keyframes sway-c{from{transform:rotate(147deg)}to{transform:rotate(153deg)}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .palm{fill:#000;opacity:.25}}
.hero-mark{position:relative}
.glow{position:absolute;inset:-24%;border-radius:50%;background:radial-gradient(circle,rgba(242,177,52,.75) 0%,rgba(242,177,52,.45) 36%,rgba(242,177,52,.14) 56%,rgba(242,177,52,0) 70%);opacity:0;z-index:-1;animation:glow-on .9s ease-out .7s forwards,glow-breathe 6s ease-in-out 1.6s infinite}
@keyframes glow-on{to{opacity:1}}
@keyframes glow-breathe{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.04)}}
.fan{width:86%;height:86%;overflow:visible}
.fan .blades{transform-origin:0 0;animation:spin-up 3.2s cubic-bezier(.15,.65,.35,1) .5s both,spin 40s linear 3.7s infinite}
@keyframes spin-up{from{transform:rotate(0)}to{transform:rotate(720deg)}}
.fan .bulb{fill:#9AA8A3;animation:bulb-on .35s steps(1,end) .7s forwards}
@keyframes bulb-on{to{fill:#F2B134}}
@media (prefers-reduced-motion:reduce){
 .palm,.fan .blades,.glow{animation:none}
 .glow{opacity:1}
 .fan .bulb{animation:none;fill:#F2B134}
}
/* photos */
.pic{display:block;width:100%;height:auto;object-fit:cover;border-radius:4px;background:var(--line)}
.ph{display:flex;align-items:flex-end;padding:16px;background:repeating-linear-gradient(135deg,var(--alt) 0 14px,var(--bg) 14px 28px);border:1px dashed var(--line2);color:var(--soft);font-size:14px}
.photo-card .pic{margin-bottom:6px}
.sgrid .photo-card{border-top:0;padding-top:0}
.feature{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:center}
.feature.rev .feature-img{order:2}
.feature-copy{display:flex;flex-direction:column;gap:18px}
.rlist.one{grid-template-columns:1fr}
@media (max-width:900px){.feature{grid-template-columns:1fr}.feature.rev .feature-img{order:0}}
.on-dark .sitem{border-top-color:rgba(238,242,236,.5)}
.on-dark .sitem p{color:#C9D5D1}
.split-head .pic{margin-top:12px}
.ggrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
@media (max-width:900px){.ggrid{grid-template-columns:1fr}}
.gcard{display:flex;flex-direction:column;gap:12px}
.gcard-link{text-decoration:none;display:flex;flex-direction:column;gap:14px;color:var(--strong)}
.gcard-link:hover h3{text-decoration:underline}
.gcard p{color:var(--soft);font-size:16px}
.article-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(32px,6vw,80px);align-items:start}
@media (max-width:980px){.article-wrap{grid-template-columns:1fr}}
.article{max-width:720px;display:flex;flex-direction:column;gap:18px;font-size:18px}
.article h2{font-size:clamp(26px,2.6vw,34px);margin-top:28px}
.article p{color:var(--text)}
.article ul{margin:0;padding-left:22px;display:grid;gap:8px}
.article-cta{margin-top:36px;background:var(--alt);border-radius:6px;padding:32px;display:flex;flex-direction:column;gap:14px}
.article-cta h2{margin:0}
.article-side{position:sticky;top:110px;display:flex;flex-direction:column;gap:12px}
.article-side ul{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:10px}
.article-side h3{font-family:var(--body);font-stretch:100%;font-size:16px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg.ok{background:#E3F2E7;color:#1E5631}
.form-msg.err{background:#FBE7E4;color:#8A2A1B}
