:root{--teal:#003751;--teal-900:#04222F;--teal-700:#0A4A63;--accent:#E2641C;--ink:#0C1E26;--muted:#46595F;--soft:#F6F8F8;--line:#E5EBEC;--radius:14px}
*{box-sizing:border-box}
body{margin:0;font-family:"Hanken Grotesk",system-ui,sans-serif;color:var(--ink);line-height:1.65}
img{max-width:100%;display:block}
h1,h2,h3{font-family:"Newsreader",Georgia,serif;font-weight:600;line-height:1.1;letter-spacing:-.01em;margin:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.95rem;padding:.9rem 1.5rem;border-radius:999px;text-decoration:none;border:1px solid transparent;transition:transform .2s,background .2s,box-shadow .2s}
.btn--accent{background:var(--accent);color:#fff}
.btn--accent:hover{background:#c0530f}
.btn--outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn--outline:hover{background:rgba(255,255,255,.1)}
.btn--teal{background:var(--teal);color:#fff}
.btn--white{background:#fff;color:var(--teal)}
.btn--accent:hover,.btn--teal:hover,.btn--white:hover{transform:translateY(-2px);box-shadow:0 12px 24px -12px rgba(4,34,47,.5)}
/* topbar + nav */
.topbar{background:var(--teal-900);color:rgba(255,255,255,.8);font-size:.82rem}
.topbar .wrap{display:flex;justify-content:space-between;min-height:42px;align-items:center;flex-wrap:wrap;gap:1rem}
.topbar a{color:inherit;text-decoration:none;transition:color .2s}
.topbar a:hover{color:#fff}
.nav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;min-height:80px}
.nav .logo{height:44px;border-radius:6px}
.nav .brand{display:inline-flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;line-height:1.05}
.nav .brand img{height:46px;width:auto;display:block}
.nav .brand .bt{font-family:"Newsreader",Georgia,serif;font-weight:700;font-size:.98rem;color:var(--teal);letter-spacing:.03em;white-space:nowrap;text-transform:uppercase}
.nav .brand .bt span{color:var(--accent)}
.nav ul{display:flex;gap:1.8rem;list-style:none;margin:0;padding:0;font-weight:500;font-size:.95rem}
.nav a{color:var(--ink);text-decoration:none}
.nav a.active{color:var(--teal)}
/* hero */
.hero{position:relative;min-height:600px;display:grid;place-items:center;text-align:center;overflow:hidden}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kb 16s ease-out forwards}
.hero .ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,34,47,.62),rgba(0,55,81,.78))}
.hero .inner{position:relative;color:#fff;max-width:760px;padding:4rem 24px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:#fff;opacity:.9}
.hero h1{font-size:clamp(2.2rem,5vw,3rem);margin:1rem 0}
.hero p.sub{font-size:1.08rem;color:rgba(255,255,255,.9);max-width:36rem;margin:0 auto 1.8rem}
.hero .btns{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}
@keyframes kb{from{transform:scale(1.14)}to{transform:scale(1)}}
/* hero slideshow (3 images, crossfade + zoom-out) */
.hero .slides{position:absolute;inset:0;overflow:hidden}
.hero .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:heroSlide 18s infinite;will-change:opacity,transform}
.hero .slides img:nth-child(1){animation-delay:0s}
.hero .slides img:nth-child(2){animation-delay:6s}
.hero .slides img:nth-child(3){animation-delay:12s}
@keyframes heroSlide{0%{opacity:0;transform:scale(1.2)}4%{opacity:1}30%{opacity:1}36%{opacity:0;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
/* page hero (inner pages) */
.page-hero{position:relative;background:var(--teal);color:#fff;padding:66px 0 56px;overflow:hidden}
.page-hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:radial-gradient(80% 100% at 80% 0,#000,transparent 70%);mask-image:radial-gradient(80% 100% at 80% 0,#000,transparent 70%)}
.page-hero:after{content:"";position:absolute;right:-100px;top:-100px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(226,100,28,.22),transparent 70%)}
.page-hero .wrap{position:relative}
.crumb{font-size:.85rem;color:rgba(255,255,255,.7);margin-bottom:.8rem}
.crumb a{color:rgba(255,255,255,.7);text-decoration:none}.crumb a:hover{color:#fff}.crumb .cur{color:var(--accent)}
.page-hero h1{color:#fff;font-size:clamp(2rem,4vw,2.8rem);max-width:22ch}
.page-hero .ph-sub{color:rgba(255,255,255,.8);max-width:54ch;margin-top:.8rem}
/* stats */
.stats{background:var(--teal);color:#fff;padding:44px 0}
.stats .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center}
.stats .n{font-family:"Newsreader";font-size:2.4rem;line-height:1}
.stats .n.o{color:var(--accent)}
.stats .l{font-size:.85rem;color:rgba(255,255,255,.72);margin-top:.3rem}
/* section */
.sec{padding:72px 0}
.sec.soft{background:var(--soft)}
.sec h2{font-size:clamp(1.8rem,3.4vw,2.2rem);text-align:center}
.sec .lead{text-align:center;color:var(--muted);max-width:52ch;margin:.8rem auto 0}
/* services cards */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:2.4rem}
.svc{border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;background:#fff;transition:transform .3s,box-shadow .3s}
.svc:hover{transform:translateY(-4px);box-shadow:0 18px 40px -20px rgba(4,34,47,.3)}
.svc .num{font-family:"Newsreader";color:var(--muted);font-size:.95rem;float:right}
.svc h3{font-size:1.15rem;margin-bottom:.4rem}
.svc p{font-size:.9rem;color:var(--muted);margin:0}
.svc ul{list-style:none;margin:.9rem 0 0;padding:0;display:grid;gap:.4rem}
.svc li{font-size:.85rem;font-weight:500;position:relative;padding-left:1.5rem;color:var(--ink)}
.svc li:before{content:"\2713";position:absolute;left:0;color:var(--accent)}
/* capabilities */
.caps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:2.4rem}
.cap{border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;background:#fff;transition:transform .3s,box-shadow .3s}
.cap:hover{transform:translateY(-5px);box-shadow:0 18px 40px -20px rgba(4,34,47,.3)}
.cap .ic{width:52px;height:52px;border-radius:13px;background:var(--teal);color:#fff;display:grid;place-items:center;margin-bottom:1rem;font-size:1.5rem}
.cap h3{font-size:1.2rem;margin-bottom:.5rem}
.cap>p{font-size:.9rem;color:var(--muted);margin-bottom:1rem}
.cap ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.cap li{font-size:.9rem;font-weight:500;position:relative;padding-left:1.6rem}
.cap li:before{content:"\2713";position:absolute;left:0;color:var(--accent);font-weight:700}
/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-top:2.6rem}
.step .n2{width:52px;height:52px;border-radius:50%;background:var(--teal);color:#fff;font-family:"Newsreader";font-size:1.2rem;display:grid;place-items:center;margin-bottom:1rem}
.step h3{font-size:1.1rem;margin-bottom:.3rem}
.step p{font-size:.88rem;color:var(--muted);margin:0}
/* gallery (home) */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.4rem}
.gal figure{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;background:var(--ink)}
.gal img{width:100%;height:100%;object-fit:cover;transition:.6s}
.gal figure:hover img{transform:scale(1.06)}
.center{text-align:center;margin-top:2.2rem}
/* gallery page (masonry) */
.gallery-page{columns:3;column-gap:1rem;margin-top:2.4rem}
.gallery-page figure{margin:0 0 1rem;break-inside:avoid;border-radius:var(--radius);overflow:hidden;background:var(--ink)}
.gallery-page img{width:100%;transition:.6s;cursor:pointer}
.gallery-page figure:hover img{transform:scale(1.05)}
/* intro split */
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.split-media{position:relative}
.split-media img{border-radius:var(--radius);width:100%;aspect-ratio:4/5;object-fit:cover}
.split-media .badge{position:absolute;right:-10px;bottom:22px;background:var(--accent);color:#fff;padding:.8rem 1.1rem;border-radius:var(--radius);font-size:.78rem;box-shadow:0 14px 30px -14px rgba(4,34,47,.5)}
.split-media .badge b{font-family:"Newsreader";font-size:1.5rem;display:block;line-height:1}
.eyebrow2{font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem}
.split h2{font-size:clamp(1.7rem,3vw,2.1rem);text-align:left}
.muted{color:var(--muted);margin:.9rem 0}
.points{list-style:none;padding:0;margin:1.1rem 0 1.5rem;display:grid;gap:.6rem}
.points li{position:relative;padding-left:1.8rem;color:var(--muted);font-size:.95rem}
.points li:before{content:"\2713";position:absolute;left:0;color:var(--accent);font-weight:700}
.sign{display:flex;align-items:center;gap:1rem;margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.sign .nm{font-family:"Newsreader";font-style:italic;font-size:1.4rem;color:var(--teal);line-height:1}
.sign .rl{font-size:.8rem;color:var(--muted)}
/* emergency band */
.emband{position:relative;overflow:hidden;color:#fff}
.emband .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.emband .ov{position:absolute;inset:0;background:linear-gradient(100deg,rgba(4,34,47,.94) 42%,rgba(0,55,81,.72))}
.emband-in{position:relative;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:56px 24px;flex-wrap:wrap}
.emband-in h2{font-size:clamp(1.6rem,3vw,2.1rem);margin:.4rem 0;color:#fff}
.emband-call{display:flex;align-items:center;gap:1rem}
.emband-call small{display:block;color:rgba(255,255,255,.65);font-size:.8rem}
.emband-call .ph{font-family:"Newsreader";font-size:1.9rem;color:#fff;text-decoration:none}
/* why */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-top:2.4rem}
.why{padding:1.4rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.why h3{font-size:1.05rem;margin-bottom:.4rem}
.why p{font-size:.88rem;color:var(--muted);margin:0}
/* reviews */
.rev{background:var(--teal);color:#fff}
.pill{display:inline-flex;gap:.5rem;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:.45rem .9rem;font-size:.85rem;margin:1rem auto 0}
.stars{color:var(--accent)}
.rev-card{background:var(--teal-700);border-radius:var(--radius);padding:1.6rem}
.rev-card p.q{color:#eef4f6;font-size:.95rem;margin:.7rem 0 1rem}
.rev-card b{font-size:.9rem}
.rev-wall{overflow:hidden;margin-top:2.2rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.rev-track{display:flex;gap:1.1rem;width:max-content;animation:revscroll 44s linear infinite;padding:.3rem 0}
.rev-wall:hover .rev-track{animation-play-state:paused}
.rev-track .rev-card{flex:0 0 330px}
@keyframes revscroll{to{transform:translateX(-50%)}}
/* faq */
.faq{max-width:820px;margin:2.4rem auto 0;display:grid;gap:.8rem}
.faq-item{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:1.2rem 1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-family:"Newsreader";font-size:1.05rem;color:var(--ink);font-weight:600}
.faq-q .pm{width:28px;height:28px;border-radius:50%;background:var(--soft);color:var(--teal);display:grid;place-items:center;flex:none;transition:.3s;font-size:1.3rem;line-height:1}
.faq-item.open .pm{background:var(--accent);color:#fff;transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-item.open .faq-a{max-height:320px}
.faq-a p{padding:0 1.4rem 1.2rem;color:var(--muted);font-size:.92rem;margin:0}
/* contact */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,3.5rem);align-items:start}
.info-card{display:flex;gap:1rem;padding:1.3rem 1.5rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:1rem;transition:transform .3s,box-shadow .3s}
.info-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(4,34,47,.3)}
.info-card .ic{width:46px;height:46px;border-radius:12px;background:var(--soft);color:var(--teal);display:grid;place-items:center;flex:none;font-size:1.2rem}
.info-card h3{font-size:1rem;margin-bottom:.2rem}
.info-card a,.info-card p{font-size:.9rem;color:var(--muted);text-decoration:none;margin:0;display:block}
.info-card a:hover{color:var(--teal)}
.hours-bar{display:flex;align-items:center;gap:.6rem;background:var(--teal);color:#fff;border-radius:var(--radius);padding:1rem 1.3rem;font-size:.9rem}
.hours-bar .dot{width:9px;height:9px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 3px rgba(61,220,132,.25)}
.cform{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem}
.cform label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.35rem}
.cform input,.cform select,.cform textarea{width:100%;padding:.8rem 1rem;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:.95rem;background:var(--soft);margin-bottom:1rem;color:var(--ink)}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:0;border-color:var(--accent);background:#fff}
.cform textarea{min-height:120px;resize:vertical}
.cform .row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.cform .btn{width:100%;justify-content:center}
.map-panel{position:relative;background:linear-gradient(135deg,var(--teal),var(--teal-900));color:#fff;text-align:center;padding:64px 24px;overflow:hidden}
.map-panel .pin{width:58px;height:58px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;margin:0 auto 1rem;animation:pulse 2.4s infinite}
.map-panel h3{color:#fff;font-size:1.4rem;margin-bottom:.4rem}
.map-panel p{color:rgba(255,255,255,.8);max-width:36ch;margin:0 auto 1.2rem}
.area-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.3rem}
.area-chip{font-size:.85rem;font-weight:500;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;background:#fff}
/* cta */
.cta{background:var(--accent);color:#fff;text-align:center;padding:64px 0}
.cta h2{color:#fff;font-size:clamp(1.6rem,3vw,2rem);max-width:22ch;margin:0 auto 1.4rem}
/* footer */
.foot{background:var(--teal-900);color:rgba(255,255,255,.6);text-align:center;padding:28px 0;font-size:.85rem}
.foot a{color:#fff}
/* full site footer */
.site-footer{background:var(--teal-900);color:rgba(255,255,255,.72)}
.site-footer .cols{display:grid;grid-template-columns:1.5fr 1fr 1.15fr 1.35fr;gap:2.5rem;padding:58px 24px 34px}
.site-footer .fareas{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;padding:26px 24px 30px;border-top:1px solid rgba(255,255,255,.1)}
.site-footer .fareas .lbl{font-family:"Newsreader",Georgia,serif;color:#fff;font-size:1rem;margin-right:.45rem}
.site-footer .fareas span:not(.lbl){font-size:.82rem;color:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:.34rem .85rem;transition:border-color .2s,color .2s,background .2s}
.site-footer .fareas span:not(.lbl):hover{color:#fff;border-color:var(--accent);background:rgba(226,100,28,.12)}
.site-footer h4{font-family:"Newsreader",Georgia,serif;color:#fff;font-size:1.05rem;margin:0 0 1.1rem;font-weight:600}
.site-footer .fbrand img{height:66px;width:auto;margin-bottom:.7rem;display:block}
.site-footer .fbrand .bt{font-family:"Newsreader",Georgia,serif;font-weight:700;font-size:1.35rem;color:#fff;display:block;margin-bottom:.7rem;text-transform:uppercase;letter-spacing:.03em}
.site-footer .fbrand .bt span{color:var(--accent)}
.site-footer .fbrand p{font-size:.9rem;line-height:1.65;margin:.3rem 0;max-width:38ch}
.site-footer .lic{color:var(--accent);font-weight:600;font-size:.85rem;letter-spacing:.02em}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.site-footer a{color:rgba(255,255,255,.72);text-decoration:none;font-size:.9rem;transition:color .2s}
.site-footer a:hover{color:#fff}
.site-footer .fcontact li{display:flex;gap:.65rem;align-items:flex-start;font-size:.9rem;line-height:1.5}
.site-footer .fcontact svg{width:17px;height:17px;color:var(--accent);flex:none;margin-top:3px}
.site-footer .fbar{border-top:1px solid rgba(255,255,255,.12);padding:20px 24px;font-size:.85rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}
.site-footer .fbar a{color:#fff}
/* marquee */
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;background:#fff;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marq 26s linear infinite}
.marquee-item{font-family:"Newsreader";font-size:1.1rem;color:var(--teal);white-space:nowrap;padding:0 1.5rem;display:inline-flex;align-items:center;gap:.6rem}
.marquee-item i{color:var(--accent);font-style:normal;font-size:1.2rem}
@keyframes marq{to{transform:translateX(-50%)}}
/* pulse */
.pulse{width:60px;height:60px;border-radius:50%;border:1px solid rgba(255,255,255,.35);display:grid;place-items:center;color:var(--accent);flex:none;animation:pulse 2.2s infinite}
.pulse svg{width:24px;height:24px}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(226,100,28,.5)}70%{box-shadow:0 0 0 16px rgba(226,100,28,0)}100%{box-shadow:0 0 0 0 rgba(226,100,28,0)}}
/* reveal */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.22,1,.3,1),transform .7s cubic-bezier(.22,1,.3,1)}
.js .reveal.in{opacity:1;transform:none}
/* lightbox */
.lb{position:fixed;inset:0;background:rgba(4,34,47,.93);display:none;place-items:center;z-index:100;padding:24px}
.lb.on{display:grid}
.lb img{max-width:92vw;max-height:88vh;border-radius:8px}
.lb .x{position:absolute;top:18px;right:26px;color:#fff;font-size:2.2rem;cursor:pointer;background:none;border:0;line-height:1}
@media(max-width:820px){.stats .grid,.svc-grid,.gal,.caps,.gallery-page{grid-template-columns:1fr 1fr}.nav .nav-toggle{display:flex}.nav .wrap{position:relative}.nav .wrap>ul{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:.4rem 24px;gap:0;display:none;box-shadow:0 24px 30px -22px rgba(4,34,47,.5)}.nav.open .wrap>ul{display:flex}.nav ul li{width:100%}.nav ul a{display:block;padding:.9rem .2rem;border-bottom:1px solid var(--soft)}.nav ul li:last-child a{border-bottom:0}.nav .wrap>.btn--accent{display:none}.split,.contact-grid{grid-template-columns:1fr}.why-grid,.steps{grid-template-columns:1fr 1fr}.gallery-page{columns:2}.cform .row2{grid-template-columns:1fr}.site-footer .cols{grid-template-columns:1fr 1fr;gap:2rem}}
@media(max-width:520px){.stats .grid,.svc-grid,.gal,.why-grid,.caps,.steps{grid-template-columns:1fr}.gallery-page{columns:1}.site-footer .cols{grid-template-columns:1fr;gap:1.8rem}.site-footer .fbar{justify-content:center;text-align:center}}
@media(prefers-reduced-motion:reduce){.hero img.bg{animation:none}.hero .slides img{animation:none;opacity:0}.hero .slides img:first-child{opacity:1}.js .reveal{opacity:1!important;transform:none!important}.marquee-track,.rev-track{animation:none}.pulse{animation:none}}

/* ===================================================================
   Gutenberg / Kadence block adaptations
   (these map the design onto WordPress core-block markup)
   =================================================================== */
.wp-block-group{margin:0}
/* editable images render inside <figure class="wp-block-image"> */
.split-media .wp-block-image,.gal .wp-block-image,.gallery-page .wp-block-image{margin:0}
.gal .wp-block-image{height:100%}
/* core buttons -> brand buttons */
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:.9rem}
.hero .wp-block-buttons,.wp-block-buttons.center,.cta .wp-block-buttons{justify-content:center}
.wp-block-button__link{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.95rem;padding:.9rem 1.5rem;border-radius:999px;border:1px solid transparent;text-decoration:none;transition:transform .2s,background .2s,box-shadow .2s}
.wp-block-button.btn--accent .wp-block-button__link{background:var(--accent);color:#fff}
.wp-block-button.btn--accent .wp-block-button__link:hover{background:#c0530f}
.wp-block-button.btn--teal .wp-block-button__link{background:var(--teal);color:#fff}
.wp-block-button.btn--white .wp-block-button__link{background:#fff;color:var(--teal)}
.wp-block-button.btn--outline .wp-block-button__link{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.wp-block-button.btn--outline .wp-block-button__link:hover{background:rgba(255,255,255,.1)}
.wp-block-button.btn--accent .wp-block-button__link:hover,.wp-block-button.btn--teal .wp-block-button__link:hover,.wp-block-button.btn--white .wp-block-button__link:hover{transform:translateY(-2px);box-shadow:0 12px 24px -12px rgba(4,34,47,.5)}
/* hero overlay as pseudo-element so no empty block is needed */
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(4,34,47,.62),rgba(0,55,81,.78))}
.hero .slides{z-index:0}
.hero .inner{z-index:2}
/* FAQ built on the native Details block */
.faq .wp-block-details{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:0}
.faq .wp-block-details summary{list-style:none;cursor:pointer;padding:1.2rem 1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-family:"Newsreader",Georgia,serif;font-size:1.05rem;color:var(--ink);font-weight:600}
.faq .wp-block-details summary::-webkit-details-marker{display:none}
.faq .wp-block-details summary::after{content:"+";width:28px;height:28px;flex:none;border-radius:50%;background:var(--soft);color:var(--teal);display:grid;place-items:center;font-size:1.3rem;line-height:1;transition:.3s}
.faq .wp-block-details[open] summary::after{background:var(--accent);color:#fff;transform:rotate(45deg)}
.faq .wp-block-details p{padding:0 1.4rem 1.2rem;margin:0;color:var(--muted);font-size:.92rem}

/* ===================================================================
   Added entrance & micro-interactions (v2)
   =================================================================== */
.js .reveal-line{opacity:0;transform:translateY(22px);clip-path:inset(0 0 100% 0);transition:opacity .85s cubic-bezier(.22,1,.3,1),transform .85s cubic-bezier(.22,1,.3,1),clip-path .85s cubic-bezier(.22,1,.3,1)}
.js .reveal-line.in{opacity:1;transform:none;clip-path:inset(0 0 -12% 0)}
.js .clip-reveal{clip-path:inset(0 0 100% 0);transition:clip-path 1s cubic-bezier(.22,1,.3,1)}
.js .clip-reveal.in{clip-path:inset(0 0 0 0)}
a.btn--accent:not(:has(svg))::after,a.btn--teal::after,.wp-block-button.btn--accent .wp-block-button__link:not(:has(svg))::after,.wp-block-button.btn--teal .wp-block-button__link::after{content:"\2192";display:inline-block;transition:transform .25s ease}
a.btn--accent:not(:has(svg)):hover::after,a.btn--teal:hover::after,.wp-block-button.btn--accent:hover .wp-block-button__link::after,.wp-block-button.btn--teal:hover .wp-block-button__link::after{transform:translateX(5px)}
.gal figure{position:relative}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;margin:0;background:linear-gradient(transparent,rgba(4,34,47,.92));color:#fff;font-family:"Hanken Grotesk",sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.01em;padding:1.7rem .9rem .75rem;transform:translateY(101%);transition:transform .4s cubic-bezier(.22,1,.3,1);text-align:left}
.gal figure:hover figcaption{transform:none}
.cap .ic{transition:transform .4s cubic-bezier(.34,1.4,.5,1)}
.cap:hover .ic{transform:rotate(-6deg) scale(1.08)}
.scroll-prog{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:70;transition:width .1s linear}
.to-top{position:fixed;right:20px;bottom:96px;width:46px;height:46px;border-radius:50%;background:var(--teal);color:#fff;border:0;cursor:pointer;display:grid;place-items:center;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .3s,transform .3s,background .2s;z-index:70;box-shadow:0 10px 26px -10px rgba(4,34,47,.6)}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:var(--accent)}
@media(prefers-reduced-motion:reduce){.js .reveal-line,.js .clip-reveal{opacity:1!important;transform:none!important;clip-path:none!important}.scroll-prog{display:none}.to-top{transition:none}}
/* ===================================================================
   Mobile nav drawer  topbar map icon  embedded location map (v3)
   =================================================================== */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:0;cursor:pointer;padding:0}
.nav-toggle span{display:block;height:2px;width:24px;background:var(--ink);border-radius:2px;transition:transform .3s,opacity .3s}
.nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.open .nav-toggle span:nth-child(2){opacity:0}
.nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.topbar .tb-map{display:inline-flex;align-items:center;vertical-align:middle;margin-right:.45rem;color:var(--accent)}
.topbar .tb-map svg{width:14px;height:14px}
.topbar .tb-map:hover{color:#fff}
.map-embed{position:relative;line-height:0;background:var(--soft)}
.map-embed iframe{width:100%;height:440px;border:0;display:block}
.map-embed .map-card{position:absolute;top:22px;left:22px;background:#fff;border-radius:var(--radius);box-shadow:0 20px 44px -18px rgba(4,34,47,.5);padding:1.2rem 1.4rem;max-width:300px;line-height:1.55;z-index:2}
.map-embed .map-card .eyebrow2{margin-bottom:.3rem}
.map-embed .map-card h3{font-size:1.15rem;margin-bottom:.3rem}
.map-embed .map-card p{font-size:.86rem;color:var(--muted);margin:0 0 .9rem}
.map-embed .map-card .btn{padding:.6rem 1.1rem;font-size:.85rem}
@media(max-width:560px){.map-embed iframe{height:360px}.map-embed .map-card{position:static;max-width:none;border-radius:0;box-shadow:none;padding:1.2rem 24px}}

/* ===================================================================
   Live-WordPress hardening (v4)
   Neutralizes the .wp-block-group__inner-container wrapper so grids/flex
   see the real children; stops image-intrinsic grid blowout; enforces
   image cropping over WordPress core image styles.
   =================================================================== */
.gal>.wp-block-group__inner-container,.svc-grid>.wp-block-group__inner-container,.caps>.wp-block-group__inner-container,.why-grid>.wp-block-group__inner-container,.steps>.wp-block-group__inner-container,.split>.wp-block-group__inner-container,.contact-grid>.wp-block-group__inner-container,.gallery-page>.wp-block-group__inner-container,.emband-in>.wp-block-group__inner-container,.faq>.wp-block-group__inner-container{display:contents}
.gal figure,.gal .wp-block-image,.svc,.cap,.why,.step,.split-media,.split>.wp-block-group__inner-container>*,.contact-grid>.wp-block-group__inner-container>*{min-width:0}
.gal figure img,.gal .wp-block-image img,.gal img{width:100%!important;height:100%!important;object-fit:cover!important}
.split-media img{width:100%!important;height:auto!important;aspect-ratio:4/5;object-fit:cover!important}

/* v5: WordPress forces margin:0 on group-based .wrap wrappers, breaking the
   centered container. Restore auto side-margins (only affects block groups;
   raw-HTML .wrap elements are unaffected). */
.wp-block-group.wrap{margin-left:auto!important;margin-right:auto!important}

/* v6: the WordPress button WRAPPER (.wp-block-button) shares the btn--X class
   names with the preview buttons, so the preview .btn--X rules paint a square
   box behind the pill (and lift it on hover). All real button styling lives on
   .wp-block-button__link, so neutralize the wrapper entirely. */
.wp-block-button[class*="btn--"]{background:transparent!important;box-shadow:none!important;border:0!important;transform:none!important;padding:0!important}

/* v7: JotForm contact-form container */
.ts-jotform-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ts-jotform-wrap iframe{width:100%;border:0;display:block;min-height:640px}
