/*
Theme Name: AVVA Construction
Theme URI: https://avvaconstructionfl.com
Author: AVVA Construction
Description: Premium remodeling theme with an animated 3D kitchen-build hero. Dark and light sections, navy and orange palette.
Version: 1.0.1
Requires at least: 5.8
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: avva
*/
:root{
  --navy-950:#060d1a;--navy-900:#0a1428;--navy-800:#0f1d3a;--navy-700:#16284d;
  --orange:#f28a1e;--orange-2:#ff6a13;--gold:#c8964a;
  --cream:#f6f1e9;--paper:#fbf8f3;--sand:#ece3d4;--ink:#12203d;--ink-mute:#5b6781;
  --mute:#9aa8c4;--line:rgba(255,255,255,.10);--line-l:rgba(18,32,61,.12);
  --serif:'Cormorant Garamond',Georgia,serif;--sans:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--navy-950);color:#e9eef8;font-family:var(--sans);font-weight:300;line-height:1.7;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.wrap{width:min(1336px,100% - 48px);margin-inline:auto}
section{position:relative;padding:130px 0}
.dark{background:var(--navy-900);color:#e9eef8}
.light{background:var(--paper);color:var(--ink)}
.light .lead,.light p{color:var(--ink-mute)}
.dark .lead{color:var(--mute)}
.eyebrow{font-size:.74rem;letter-spacing:.32em;text-transform:uppercase;color:var(--orange);font-weight:500;display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:42px;height:1px;background:var(--orange)}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.05}
h2{font-size:clamp(2.4rem,5vw,4.2rem);margin:18px 0 20px}
h2 em,h1 em{font-style:italic;color:var(--orange);font-weight:500}
.lead{max-width:620px;font-size:1.05rem}
#bar{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--orange),var(--gold));z-index:100}

header{position:fixed;inset:0 0 auto 0;z-index:90;transition:.4s}
header.solid{background:rgba(6,13,26,.86);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:84px}
.logo{display:flex;flex-direction:column;line-height:1;color:#fff}
.logo b{font-family:var(--serif);font-size:2rem;letter-spacing:.12em;font-weight:700}
.logo small{font-size:.55rem;letter-spacing:.5em;color:var(--orange);margin-top:3px;text-transform:uppercase}
nav ul{display:flex;gap:36px;list-style:none}
nav a{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;position:relative;padding:6px 0;color:#fff}
nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--orange);transition:.35s}
nav a:hover::after{width:100%}
.btn{display:inline-flex;align-items:center;gap:12px;padding:16px 32px;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;border:1px solid var(--orange);color:#fff;background:linear-gradient(120deg,var(--orange),var(--orange-2));position:relative;overflow:hidden;transition:.4s;cursor:pointer;font-family:var(--sans)}
.btn::before{content:"";position:absolute;inset:0;background:#fff;transform:translateX(-101%);transition:.5s cubic-bezier(.2,.8,.2,1)}
.btn:hover::before{transform:none}
.btn span,.btn svg{position:relative;z-index:1;transition:.4s}
.btn:hover span,.btn:hover svg{color:var(--navy-900)}
.btn.ghost{background:transparent;border-color:rgba(255,255,255,.35)}
.light .btn.ghost{border-color:var(--ink);color:var(--ink)}
.burger{display:none;background:none;border:0;color:#fff;font-size:1.8rem;cursor:pointer}

/* HERO */
#hero{height:100vh;min-height:760px;padding:0;overflow:hidden;background:radial-gradient(110% 90% at 65% 45%,#1b3263,var(--navy-950) 72%)}
#c{position:absolute;inset:0;width:100%;height:100%}
#hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,13,26,.92) 0%,rgba(6,13,26,.5) 38%,transparent 62%);pointer-events:none}
.hero-in{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;padding-bottom:120px;pointer-events:none}
.hero-in>*{pointer-events:auto}
h1{font-size:clamp(3rem,7vw,6.6rem);margin:22px 0 24px;max-width:760px;color:#fff}
h1 .ln{display:block;overflow:hidden}
h1 .ln>span{display:block;transform:translateY(110%);animation:up 1.2s cubic-bezier(.2,.8,.2,1) forwards}
h1 .ln:nth-child(2)>span{animation-delay:.15s}h1 .ln:nth-child(3)>span{animation-delay:.3s}
@keyframes up{to{transform:none}}
.hero-in p{max-width:470px;color:#c3cde2;font-size:1.08rem;opacity:0;animation:fade 1s .8s forwards}
.cta{display:flex;gap:16px;margin-top:36px;flex-wrap:wrap;opacity:0;animation:fade 1s 1s forwards}
@keyframes fade{to{opacity:1}}
/* stage console */
.console{position:absolute;z-index:3;left:0;right:0;bottom:28px}
.console .wrap{display:flex;gap:20px;align-items:stretch;justify-content:space-between}
.stage-info{min-width:290px;max-width:360px;padding:18px 22px;border:1px solid var(--line);background:rgba(10,20,40,.65);backdrop-filter:blur(14px)}
.stage-info small{color:var(--orange);letter-spacing:.28em;font-size:.65rem;text-transform:uppercase}
.stage-info h4{font-size:1.6rem;margin:2px 0 4px;color:#fff}
.stage-info p{font-size:.82rem;line-height:1.5;color:#aebbd6;opacity:1;animation:none;max-width:none}
.pills{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}
.pill{padding:12px 16px;border:1px solid var(--line);background:rgba(10,20,40,.6);backdrop-filter:blur(10px);color:#c3cde2;font:500 .68rem var(--sans);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;position:relative;overflow:hidden;transition:.3s}
.pill b{color:var(--orange);margin-right:8px;font-family:var(--serif);font-size:1rem}
.pill:hover{border-color:var(--orange);color:#fff}
.pill.on{background:var(--orange);border-color:var(--orange);color:#fff}.pill.on b{color:#fff}
.pill i{position:absolute;left:0;bottom:0;height:2px;background:#fff;width:0}
.drag-hint{position:absolute;z-index:3;right:max(24px,calc((100vw - 1336px)/2));top:110px;font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;color:#8fa0c4}

.marq{background:linear-gradient(180deg,#d4d7db,#b9bdc3);border-block:1px solid rgba(255,255,255,.35);overflow:hidden;padding:20px 0}
.marq div{display:flex;gap:60px;white-space:nowrap;width:max-content;animation:mq 40s linear infinite;font-family:var(--serif);font-size:1.9rem;font-style:italic;color:#1e2a44}
.marq span::after{content:"✦";margin-left:60px;font-style:normal;font-size:.9rem;color:#6b7280}
@keyframes mq{to{transform:translateX(-50%)}}

.rv{opacity:0;transform:translateY(50px);transition:1s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}

/* services (light) */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:70px;perspective:1400px}
.card{position:relative;padding:44px 36px;background:#fff;border:1px solid var(--line-l);box-shadow:0 20px 50px rgba(18,32,61,.07);transform-style:preserve-3d;transition:transform .25s,box-shadow .4s;overflow:hidden}
.card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(242,138,30,.14),transparent 45%);opacity:0;transition:.4s}
.card:hover{box-shadow:0 30px 70px rgba(18,32,61,.16)}.card:hover::before{opacity:1}
.card .n{font-family:var(--serif);font-size:4.5rem;color:rgba(18,32,61,.06);position:absolute;right:24px;top:6px;line-height:1}
.card svg{width:46px;height:46px;stroke:var(--orange);fill:none;stroke-width:1.2;transform:translateZ(50px)}
.card h3{font-size:1.9rem;margin:26px 0 12px;transform:translateZ(40px);color:var(--ink)}
.card p{font-size:.95rem;transform:translateZ(25px)}
.card ul{list-style:none;margin-top:20px;font-size:.85rem;color:var(--ink)}
.card li{padding:7px 0;border-top:1px solid var(--line-l)}
.card li::before{content:"—";color:var(--orange);margin-right:10px}

/* kitchen detail (dark) */
.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.steps-list{margin-top:36px}
.sl{display:grid;grid-template-columns:56px 1fr;gap:18px;padding:22px 0;border-top:1px solid var(--line);cursor:pointer;transition:.3s}
.sl b{font-family:var(--serif);font-size:2rem;color:var(--orange);line-height:1}
.sl h4{font-family:var(--sans);font-weight:500;font-size:1.02rem;color:#fff;margin-bottom:2px}
.sl p{font-size:.9rem;color:var(--mute)}
.sl:hover{padding-left:10px}
.spec{background:linear-gradient(160deg,var(--navy-700),var(--navy-950));border:1px solid var(--line);padding:46px;position:relative}
.spec::before{content:"";position:absolute;inset:14px;border:1px solid rgba(242,138,30,.3);pointer-events:none}
.spec h3{font-size:2.2rem;margin-bottom:6px;color:#fff}
.spec table{width:100%;border-collapse:collapse;margin-top:22px}
.spec td{padding:13px 0;border-top:1px solid var(--line);font-size:.9rem}
.spec td:first-child{color:var(--orange);letter-spacing:.14em;text-transform:uppercase;font-size:.68rem;width:42%}
.spec td:last-child{color:#d6deee}

/* before after (light) */
.ba{position:relative;height:min(62vw,560px);margin-top:60px;overflow:hidden;box-shadow:0 30px 80px rgba(18,32,61,.2);cursor:ew-resize;user-select:none;touch-action:none}
.ba .pane{position:absolute;inset:0}
.ba .after{background:linear-gradient(180deg,transparent 62%,rgba(0,0,0,.3) 62%),linear-gradient(90deg,#d9c7a8 0 8%,#f3ece0 8% 92%,#d9c7a8 92%)}
.ba .after::before{content:"";position:absolute;left:12%;right:12%;top:12%;height:38%;background:linear-gradient(135deg,#9fc3e6,#e8f3ff 60%,#bcd6ee);box-shadow:0 0 0 10px #fff,0 30px 60px rgba(0,0,0,.25)}
.ba .after::after{content:"";position:absolute;left:10%;right:10%;bottom:8%;height:26%;background:repeating-linear-gradient(90deg,#16284d 0 14%,#1d3563 14% 15%);box-shadow:0 -14px 0 #f5f2ec,0 20px 40px rgba(0,0,0,.4)}
.ba .before{clip-path:inset(0 50% 0 0);background:linear-gradient(180deg,transparent 62%,rgba(0,0,0,.5) 62%),#6c6a66;filter:saturate(.2) contrast(.9)}
.ba .before::before{content:"";position:absolute;left:12%;right:12%;top:12%;height:38%;background:#4a4a48;box-shadow:inset 0 0 40px #000}
.ba .before::after{content:"";position:absolute;left:10%;right:10%;bottom:8%;height:26%;background:repeating-linear-gradient(90deg,#55524d 0 9%,#4a4743 9% 10%);transform:skewX(-6deg)}
.tag{position:absolute;top:24px;padding:8px 16px;background:rgba(6,13,26,.78);color:#fff;font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;z-index:3}
.tag.l{left:24px}.tag.r{right:24px;background:var(--orange)}
.handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;z-index:4}
.handle::after{content:"↔";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:#fff;color:var(--navy-900);display:grid;place-items:center;font-size:1.3rem;box-shadow:0 8px 30px rgba(0,0,0,.4)}

/* process (dark) */
.steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:80px;position:relative}
/* connector runs from the centre of node 1 to the centre of node 4 only (4 equal columns, 68px nodes) */
.steps::before{content:"";position:absolute;top:34px;left:12.5%;width:75%;height:1px;background:rgba(255,255,255,.14)}
.steps::after{content:"";position:absolute;top:34px;left:12.5%;height:1px;width:calc(var(--p,0%) * .75);background:linear-gradient(90deg,#8d939c,#e3e5e8);transition:width .2s}
.step{padding:0 18px;text-align:center}
.step i{display:grid;place-items:center;margin:0 auto;width:68px;height:68px;border-radius:50%;background:var(--navy-950);border:1px solid var(--line);font-family:var(--serif);font-style:normal;font-size:1.6rem;color:#c9ccd1;position:relative;z-index:1;transition:.5s}
.step.on i{background:linear-gradient(180deg,#e3e5e8,#aeb3ba);color:#1e2a44;border-color:#d4d7db;box-shadow:0 0 36px rgba(212,215,219,.35)}
.step h4{font-size:1.7rem;margin:28px 0 8px;color:#fff}
.step p{color:var(--mute);font-size:.92rem}

/* projects (light) */
.proj{display:grid;grid-template-columns:repeat(12,1fr);gap:26px;margin-top:70px}
.pj{position:relative;min-height:380px;overflow:hidden;display:flex;align-items:flex-end;padding:34px;color:#fff}
.pj:nth-child(1){grid-column:span 7}.pj:nth-child(2){grid-column:span 5}
.pj:nth-child(3),.pj:nth-child(4),.pj:nth-child(5){grid-column:span 4}
.pj .art{position:absolute;inset:0;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.pj:hover .art{transform:scale(1.12) rotate(1deg)}
.pj::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(6,13,26,.9))}
.pj .t{position:relative;z-index:2;transform:translateY(14px);transition:.5s}.pj:hover .t{transform:none}
.pj small{color:var(--orange);letter-spacing:.28em;text-transform:uppercase;font-size:.68rem}
.pj h3{font-size:2rem;margin:6px 0;color:#fff}
.pj p{color:#d6deee!important;font-size:.9rem;opacity:0;max-height:0;transition:.5s}.pj:hover p{opacity:1;max-height:80px}
.a1{background:radial-gradient(circle at 70% 30%,#f28a1e66,transparent 40%),linear-gradient(135deg,#16284d,#0a1428)}
.a2{background:repeating-linear-gradient(45deg,#16284d 0 20px,#122243 20px 40px)}
.a3{background:radial-gradient(circle at 30% 70%,#c8964a66,transparent 45%),linear-gradient(200deg,#1f3560,#0a1428)}
.a4{background:linear-gradient(90deg,#0f1d3a 0 33%,#16284d 33% 66%,#1c3260 66%)}
.a5{background:radial-gradient(circle at 50% 20%,#ff6a1355,transparent 50%),#0f1d3a}

/* stats + about (light sand) */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center;padding:20px 0 90px}
.stats b{display:block;font-family:var(--serif);font-size:clamp(3rem,6vw,5.4rem);color:var(--orange);line-height:1}
.stats span{font-size:.75rem;letter-spacing:.25em;text-transform:uppercase;color:var(--ink-mute)}
.about ul{list-style:none;margin-top:30px}
.about li{padding:14px 0;border-top:1px solid var(--line-l);display:flex;gap:14px;color:var(--ink)}
.about li::before{content:"◆";color:var(--orange);font-size:.7rem;padding-top:6px}
.frame{position:relative;height:540px;background:linear-gradient(160deg,var(--navy-700),var(--navy-900));overflow:hidden;box-shadow:0 40px 80px rgba(18,32,61,.3)}
.frame::before{content:"";position:absolute;inset:30px;border:1px solid rgba(242,138,30,.45)}
.frame b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:9rem;color:rgba(255,255,255,.07);letter-spacing:.1em}
.frame em{position:absolute;left:50px;bottom:50px;font-family:var(--serif);font-size:2.4rem;font-style:italic;max-width:280px;line-height:1.1;color:#fff}
.frame .lic{position:absolute;right:50px;top:50px;text-align:right;font-size:.72rem;letter-spacing:.25em;color:var(--orange);text-transform:uppercase}

/* contact (dark) */
.ct{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;margin-top:20px}
.info p{padding:22px 0;border-top:1px solid var(--line)}
.info small{display:block;color:var(--orange);letter-spacing:.25em;font-size:.68rem;text-transform:uppercase}
.info a,.info span{font-family:var(--serif);font-size:1.7rem;color:#fff}
form{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:44px;background:var(--paper);box-shadow:0 40px 80px rgba(0,0,0,.4)}
form .full{grid-column:1/-1}
label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);display:block;margin-bottom:6px}
input,select,textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-l);color:var(--ink);padding:10px 0;font:inherit;font-weight:400;outline:0;transition:.3s}
input:focus,select:focus,textarea:focus{border-color:var(--orange)}
footer{background:var(--navy-950);border-top:1px solid var(--line);padding:40px 0;color:var(--mute);font-size:.82rem}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

@media(max-width:980px){
  nav{position:fixed;inset:84px 0 auto 0;background:rgba(6,13,26,.97);padding:24px;display:none}
  nav.open{display:block}nav ul{flex-direction:column;gap:20px}
  .burger{display:block}.nav>.btn{display:none}
  .svc-grid{grid-template-columns:1fr 1fr}.steps,.stats{grid-template-columns:1fr 1fr}
  .split,.ct{grid-template-columns:1fr;gap:50px}
  .proj{grid-template-columns:1fr}.pj{grid-column:auto!important;min-height:300px}
  .steps::before,.steps::after{display:none}.steps{gap:40px 20px}
  section{padding:90px 0}
  #hero::after{background:linear-gradient(180deg,rgba(6,13,26,.85),rgba(6,13,26,.2) 55%,rgba(6,13,26,.7))}
  .hero-in{justify-content:flex-start;padding-top:120px}.stage-info{display:none}.console .wrap{justify-content:center}.pills{justify-content:center}.drag-hint{display:none}
  .pill{padding:10px 12px}.pill span{display:none}
}
@media(max-width:620px){.svc-grid,.steps,.stats{grid-template-columns:1fr}form{grid-template-columns:1fr;padding:26px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}h1 .ln>span{transform:none}.hero-in p,.cta{opacity:1}}
body.admin-bar header{top:32px}@media(max-width:782px){body.admin-bar header{top:46px}}

/* ===== Inner pages & shared parts ===== */
nav a.current::after{width:100%}
.form-msg{padding:14px 18px;margin-bottom:18px;font-size:.92rem;border-left:3px solid}
.form-msg.ok{background:rgba(63,122,82,.15);border-color:#3f7a52;color:#cfe9d7}
.form-msg.bad{background:rgba(217,79,58,.15);border-color:#d94f3a;color:#f5c9c1}
.light .form-msg.ok{color:#245c37}.light .form-msg.bad{color:#8f2a1b}
footer{padding:70px 0 30px}
footer .foot{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:50px;padding-bottom:40px}
footer .foot p{max-width:340px;margin-top:16px}
footer h5{font:500 .7rem var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--orange);margin-bottom:14px}
footer .foot a,footer .foot span{display:block;padding:3px 0;color:var(--mute);transition:.3s}
footer .foot a:hover{color:#fff}
footer .foot a.logo{display:flex;color:#fff;padding:0}
footer .legal{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

.ph{position:relative;padding:190px 0 110px;overflow:hidden;background:radial-gradient(90% 120% at 80% 0%,#1b3263,var(--navy-950) 70%)}
.ph::before{content:"";position:absolute;inset:-40%;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:60px 60px;transform:perspective(700px) rotateX(62deg) translateY(-20%);animation:grid 14s linear infinite;mask-image:linear-gradient(transparent,#000 40%,transparent)}
@keyframes grid{to{background-position:0 60px}}
.ph .wrap{position:relative}
.ph h1{font-size:clamp(3rem,7vw,6rem);margin:20px 0 22px;color:#fff;max-width:900px}
.ph h1 em{font-style:italic;color:var(--orange);font-weight:500}
.ph p{color:#c3cde2;max-width:600px;font-size:1.1rem}
.crumb{font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:var(--mute);margin-bottom:10px}
.crumb a:hover{color:var(--orange)}

.row{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:70px 0;border-top:1px solid var(--line-l)}
.row:first-of-type{border-top:0}
.dark .row{border-color:var(--line)}
.row.flip>:first-child{order:2}
.row h3{font-size:clamp(2rem,3.6vw,3rem);margin:12px 0 14px}
.row ul{list-style:none;margin-top:20px}
.row li{padding:11px 0;border-top:1px solid var(--line-l);display:flex;gap:12px;font-size:.95rem}
.dark .row li{border-color:var(--line);color:#d6deee}
.row li::before{content:"◆";color:var(--orange);font-size:.6rem;padding-top:7px}
.tile{position:relative;height:380px;overflow:hidden;box-shadow:0 30px 70px rgba(18,32,61,.22);background:linear-gradient(150deg,var(--navy-700),var(--navy-950))}
.tile::before{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.18)}
.tile b{position:absolute;right:30px;bottom:6px;font-family:var(--serif);font-size:9rem;line-height:1;color:rgba(255,255,255,.08)}
.tile svg{position:absolute;left:50%;top:50%;width:150px;height:150px;transform:translate(-50%,-50%);stroke:#c9ccd1;fill:none;stroke-width:.9;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.tile:hover svg{transform:translate(-50%,-50%) rotate(8deg) scale(1.1)}
.tile.t2{background:linear-gradient(150deg,#2a3a5e,#0a1428)}.tile.t3{background:linear-gradient(150deg,#3a3f4a,#12151d)}

.faq{max-width:860px;margin-top:50px}
.faq details{border-top:1px solid var(--line-l);padding:22px 0}
.faq details:last-child{border-bottom:1px solid var(--line-l)}
.faq summary{cursor:pointer;font-family:var(--serif);font-size:1.6rem;list-style:none;display:flex;justify-content:space-between;gap:20px;color:var(--ink)}
.faq summary::after{content:"+";color:var(--orange);font-size:1.8rem;transition:.3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin-top:12px;max-width:700px}

.cta-band{text-align:center;padding:110px 0;background:linear-gradient(120deg,var(--navy-800),var(--navy-950))}
.cta-band h2{margin:0 auto 14px;max-width:760px;color:#fff}
.cta-band p{color:var(--mute);max-width:520px;margin:0 auto 34px}

.chips{display:flex;flex-wrap:wrap;gap:10px;margin:40px 0 10px}
.chip{padding:11px 22px;border:1px solid var(--line-l);background:transparent;color:var(--ink);font:500 .72rem var(--sans);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:.3s}
.chip:hover{border-color:var(--orange)}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:30px}
.pcard{position:relative;min-height:420px;display:flex;align-items:flex-end;padding:30px;overflow:hidden;color:#fff}
.pcard .art{position:absolute;inset:0;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.pcard:hover .art{transform:scale(1.1) rotate(1deg)}
.pcard::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 25%,rgba(6,13,26,.92))}
.pcard .t{position:relative;z-index:2}
.pcard small{color:var(--orange);letter-spacing:.28em;text-transform:uppercase;font-size:.66rem}
.pcard h3{font-size:1.9rem;margin:6px 0;color:#fff}
.pcard p{color:#d6deee!important;font-size:.9rem}
.pcard .meta{display:flex;gap:18px;margin-top:12px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#aebbd6}

.tl{position:relative;margin-top:60px;padding-left:34px}
.tl::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:var(--line)}
.tl div{position:relative;padding:0 0 38px}
.tl div::before{content:"";position:absolute;left:-34px;top:8px;width:13px;height:13px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 6px rgba(242,138,30,.18)}
.tl b{font-family:var(--serif);font-size:2rem;color:#fff}
.tl p{color:var(--mute);max-width:560px}
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:60px}
.vals .card h3{font-size:1.7rem}

.ct-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}
.area{margin-top:30px;padding:26px;border:1px solid var(--line);color:var(--mute);font-size:.92rem}
.area b{display:block;color:#fff;font-family:var(--serif);font-size:1.5rem;margin-bottom:4px}

@media(max-width:980px){
  footer .foot,.row,.ct-wrap{grid-template-columns:1fr;gap:34px}
  .row.flip>:first-child{order:0}
  .pgrid,.vals{grid-template-columns:1fr 1fr}
  .ph{padding:150px 0 80px}
}
@media(max-width:620px){.pgrid,.vals{grid-template-columns:1fr}.tile{height:260px}}
.a6{background:radial-gradient(circle at 25% 30%,#c9ccd155,transparent 45%),linear-gradient(160deg,#2a3a5e,#0a1428)}
.dark .stats span{color:var(--mute)}
.dark .form-msg.ok{color:#cfe9d7}.dark .form-msg.bad{color:#f5c9c1}
form+.x{}

/* ===== Photos ===== */
.art[style],.tile[style],.frame[style],.ph[style],.cimg[style]{background-size:cover;background-position:center;background-repeat:no-repeat}
.ph[style]{background-color:var(--navy-950)}
.ph[style]::before{opacity:.5}
.cimg{height:210px;margin:-44px -36px 26px;background:linear-gradient(150deg,var(--navy-700),var(--navy-950));position:relative;transform:translateZ(0);overflow:hidden}
.cimg::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(255,255,255,.92))}
.card .n{z-index:2}
.cimg+.n{color:rgba(255,255,255,.8);text-shadow:0 2px 14px rgba(0,0,0,.35)}
/* icon sits directly on the photo, inside the soft fade */
.cimg~svg{position:absolute;left:36px;top:152px;width:46px;height:46px;z-index:3;stroke:var(--orange);stroke-width:1.5;filter:drop-shadow(0 1px 6px rgba(255,255,255,.9))}
.cimg~h3{margin-top:0}
.tile.img::after,.frame[style]::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,40,.1),rgba(10,20,40,.6))}
.tile.img svg{display:none}
.tile.img b{z-index:2;color:rgba(255,255,255,.55);font-size:6rem}
.frame[style] b,.frame[style] em,.frame[style] .lic{z-index:2}
.frame[style] em{text-shadow:0 2px 20px rgba(0,0,0,.5)}
.dark .cimg::after{background:linear-gradient(transparent 40%,rgba(10,20,40,.9))}
/* Before/after slider with real photos */
.ba.photo{height:auto;aspect-ratio:16/9;max-height:680px;background:#0a1428}
.ba.photo .pane{background-size:cover;background-position:center;background-repeat:no-repeat}
.ba.photo .pane::before,.ba.photo .pane::after{display:none}
.ba.photo .before{filter:none}
/* 3D logo */
.logo img{height:62px;width:auto;display:block;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}
footer .foot a.logo img{height:80px}
@media(max-width:620px){.logo img{height:52px}}

/* ===== Areas map ===== */
.sr{position:absolute;left:-9999px}
.area-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.atab{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:#d6deee;font:500 .74rem var(--sans);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:.3s}
.atab span{color:var(--mute);letter-spacing:.04em;text-transform:none}
.atab i{width:11px;height:11px;border-radius:50%;display:inline-block}
.atab.b i{background:var(--orange)}.atab.m i{background:#b9c4d8}
.atab:hover{border-color:#d4d7db}
.atab.on{background:linear-gradient(180deg,#e3e5e8,#b9bdc3);color:#1e2a44;border-color:#d4d7db}.atab.on span{color:#3b4660}
.area-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:26px;align-items:stretch}
.area-map{height:680px;border:1px solid var(--line);background:#0a1428;z-index:1}
.area-side{display:flex;flex-direction:column;max-height:680px;border:1px solid var(--line);background:rgba(15,29,58,.55);padding:22px}
.area-side input{width:100%;background:rgba(255,255,255,.06);border:1px solid var(--line);color:#fff;padding:13px 16px;font:inherit;font-weight:300;outline:0;margin-bottom:14px}
.area-side input:focus{border-color:#d4d7db}
.area-list{overflow:auto;flex:1;padding-right:6px;scrollbar-width:thin;scrollbar-color:#59627a transparent}
.area-list h4{font:500 .72rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#fff;margin:14px 0 10px;display:flex;align-items:center;gap:10px}
.area-list h4 i{width:11px;height:11px;border-radius:50%;display:inline-block}
.area-list h4.broward i{background:var(--orange)}.area-list h4.miami i{background:#b9c4d8}
.area-list h4 em{font-style:normal;color:var(--mute);margin-left:auto}
.chips2{display:flex;flex-wrap:wrap;gap:7px}
.chips2 button{padding:8px 13px;border:1px solid var(--line);background:transparent;color:#d6deee;font:400 .82rem var(--sans);cursor:pointer;transition:.25s}
.chips2 button:hover{border-color:#d4d7db;color:#fff}
.chips2 button.on{background:#e3e5e8;color:#1e2a44;border-color:#e3e5e8}
.area-note{font-size:.84rem;color:var(--mute);margin-top:14px}
.area-note a{color:#fff;border-bottom:1px solid var(--orange)}
.leaflet-container{background:#0a1428;font-family:var(--sans)}
.ap-tip{background:#0a1428;color:#fff;border:1px solid #59627a;border-radius:0;font:500 12px var(--sans);box-shadow:none;padding:5px 9px}
.ap-tip:before{display:none}
.ap-pop .leaflet-popup-content-wrapper{background:#0f1d3a;color:#fff;border-radius:0;border:1px solid #59627a}
.ap-pop .leaflet-popup-tip{background:#0f1d3a}
.ap{font-family:var(--sans);line-height:1.5}
.ap b{display:block;font-family:var(--serif);font-size:1.4rem;font-weight:600}
.ap span{display:block;color:#aebbd6;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
.ap a{color:var(--orange);font-weight:500;font-size:.85rem}
.leaflet-control-zoom a{background:#0f1d3a!important;color:#fff!important;border-color:#2a3a5e!important}
@media(max-width:980px){.area-grid{grid-template-columns:1fr}.area-map{height:460px}.area-side{max-height:none}.area-list{max-height:320px}}

/* ===== Legal pages ===== */
.legal-date{color:#c3cde2}
.legal-body{padding:80px 0 110px}
.legal-wrap{display:grid;grid-template-columns:260px 1fr;gap:70px;align-items:start}
.legal-toc{position:sticky;top:110px;font-size:.88rem}
.legal-toc b{display:block;font:500 .7rem var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--orange);margin-bottom:12px}
.legal-toc a{display:block;padding:7px 0;border-top:1px solid var(--line-l);color:var(--ink);transition:.25s}
.legal-toc a:hover{color:var(--orange);padding-left:6px}
.legal-other{margin-top:34px}
.legal-text{max-width:760px}
.legal-intro{font-size:1.15rem;color:var(--ink)!important;margin-bottom:10px}
.legal-text h2{font-size:2.1rem;margin:46px 0 12px;padding-top:12px;border-top:1px solid var(--line-l)}
.legal-text p{margin-bottom:12px}
.legal-text ul{list-style:none;margin:6px 0 14px}
.legal-text li{padding:8px 0 8px 22px;position:relative;color:var(--ink)}
.legal-text li::before{content:"◆";position:absolute;left:0;top:11px;font-size:.55rem;color:var(--orange)}
.legal-foot{margin-top:40px;padding-top:18px;border-top:1px solid var(--line-l);font-size:.85rem}
footer .legal .legal-links{display:flex;flex-wrap:wrap;gap:6px 22px}
footer .legal .legal-links a{color:var(--mute);transition:.3s}
footer .legal .legal-links a:hover{color:#fff}
@media(max-width:980px){.legal-wrap{grid-template-columns:1fr;gap:34px}.legal-toc{position:static}}
/* dark look for the standard OpenStreetMap tiles */
.area-map .leaflet-tile-pane{filter:invert(1) hue-rotate(200deg) brightness(.82) contrast(.95) saturate(.55)}

/* About photo: keep the face and the logo on the shirt in frame */
.frame[style]{background-position:center 18%}
.frame[style] b{display:none}
.frame[style]::after{background:linear-gradient(180deg,rgba(10,20,40,0) 45%,rgba(10,20,40,.72))}

/* footer logo: keep natural proportions (the anchor is a flex column that would stretch the image) */
footer .foot a.logo{display:inline-flex;align-self:flex-start;width:fit-content}
.logo img{align-self:flex-start;max-width:100%;object-fit:contain}

/* Hero: keep the eyebrow clear of the menu and the headline compact on tall and short screens */
#hero .hero-in{padding-top:140px;padding-bottom:170px}
#hero h1{font-size:clamp(2.8rem,5.2vw,5rem);margin:18px 0 20px;line-height:1.04}
#hero .hero-in p{font-size:1.02rem}
@media(max-width:980px){#hero .hero-in{padding-top:130px;padding-bottom:110px}}

/* No decorative divider before the small orange section labels */
.eyebrow::before{content:none;display:none}
.eyebrow{gap:0}
.pj small::before,.pcard small::before{content:none}

/* Hero fits the first screen together with the silver strip (strip is ~68px tall) */
.marq{padding:13px 0}
.marq div{line-height:1.3}
#hero{height:calc(100vh - 68px);height:calc(100svh - 68px);min-height:660px}
body.admin-bar #hero{height:calc(100vh - 100px);height:calc(100svh - 100px)}
#hero .hero-in{padding-top:122px;padding-bottom:140px}
@media(max-width:980px){#hero{height:auto;min-height:calc(100svh - 68px)}}
/* On shorter screens keep the stage panel compact so it never crowds the buttons */
@media(min-width:981px) and (max-height:980px){
  .stage-info p{display:none}
  .stage-info{padding:14px 20px}
  #hero .hero-in{padding-top:112px;padding-bottom:128px}
  #hero h1{font-size:clamp(2.6rem,4.8vw,4.6rem)}
}

/* Service card lists: styled checkmarks instead of dashes */
.card li{display:flex;align-items:center;gap:12px}
.card li::before{content:"";flex:0 0 18px;width:18px;height:18px;margin:0;border-radius:50%;
  background:rgba(242,138,30,.13) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.4 6.2l2.5 2.5 4.7-5.2' fill='none' stroke='%23f28a1e' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px 11px no-repeat;
  box-shadow:inset 0 0 0 1px rgba(242,138,30,.35)}
/* Photo headers: parallax layers (built by site.js) */
.ph-img{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;transform:scale(1.1);will-change:transform;z-index:0}
.ph-shade{position:absolute;inset:0;z-index:1;pointer-events:none}
.ph[style]::before{z-index:2}
.ph .wrap{position:relative;z-index:3}