:root{
  --navy:#0F2B4C; --navy-deep:#0A1F37; --navy-line:#24466D;
  --gold:#C99A3B; --gold-deep:#A67C24; --gold-soft:#F3E7C9;
  --glass:#E4EDF3; --glass-2:#CBDCE7;
  --paper:#FFFFFF; --ink:#16232F; --muted:#546576; --rule:#D8E1E8;
  --wide:"wdth" 118; --cond:"wdth" 80;
  --max:1160px; --gutter:clamp(16px,4vw,40px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Archivo",system-ui,sans-serif;font-size:1.0625rem;line-height:1.6;font-variation-settings:"wdth" 100}
img,svg{max-width:100%;display:block}
a{color:var(--navy);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--gold-deep)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:var(--navy-deep);padding:.6rem 1rem;z-index:100}
.skip:focus{left:var(--gutter)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
h1,h2,h3{font-variation-settings:var(--wide);line-height:1.08;letter-spacing:-.01em;margin:0 0 .6em;color:var(--navy-deep)}
h1{font-size:clamp(2.1rem,5.2vw,3.7rem);font-weight:800}
h2{font-size:clamp(1.6rem,3.2vw,2.35rem);font-weight:750}
h3{font-size:1.2rem;font-weight:700;font-variation-settings:"wdth" 108}
p{margin:0 0 1em;max-width:68ch}
.lead{font-size:clamp(1.1rem,1.8vw,1.28rem);color:var(--muted);max-width:60ch}

/* ---------- header */
.top{background:var(--navy-deep);color:#fff;position:sticky;top:0;z-index:50;border-bottom:1px solid var(--navy-line)}
.top .wrap{display:flex;align-items:center;gap:1.25rem;min-height:68px}
.brand{display:flex;align-items:center;gap:.65rem;color:#fff;text-decoration:none;margin-right:auto}
.brand:hover{color:#fff}
.top .btn.call-top{flex:none;white-space:nowrap}
.brand svg{width:40px;height:40px;flex:none}
.brand b{display:block;font-variation-settings:var(--wide);font-weight:800;font-size:1.05rem;line-height:1.05;letter-spacing:.005em}
.brand small{display:block;color:var(--gold);font-size:.78rem;line-height:1.25;margin-top:.15rem;font-variation-settings:var(--cond);letter-spacing:.02em}
.nav{display:flex;gap:1.35rem;align-items:center}
.nav a{color:#DDE6EF;text-decoration:none;font-size:.97rem;white-space:nowrap}
.nav a:hover,.nav a[aria-current]{color:var(--gold)}
.lang{border:1px solid var(--navy-line);padding:.3rem .7rem;border-radius:999px;font-size:.88rem!important}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.7rem 1.25rem;border-radius:6px;font-weight:700;text-decoration:none;font-variation-settings:"wdth" 105;border:2px solid transparent;cursor:pointer;font-size:1rem;font-family:inherit;line-height:1.1}
.btn svg{width:20px;height:20px;flex:none}
.btn-gold{background:var(--gold);color:var(--navy-deep)}
.btn-gold:hover{background:#D9AC4C;color:var(--navy-deep)}
.btn-line{border-color:rgba(255,255,255,.45);color:#fff}
.btn-line:hover{border-color:var(--gold);color:var(--gold)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-deep);color:#fff}
.btn-ghost{border-color:var(--navy);color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:#fff}
.top .btn{min-height:42px;padding:.5rem 1rem;font-size:.95rem}
.menu{display:none}
@media all{
  .nav{display:none}
  .menu{display:block;position:relative}
  .menu summary{list-style:none;cursor:pointer;color:#fff;border:1px solid var(--navy-line);border-radius:6px;padding:.5rem .8rem;font-size:.95rem}
  .menu summary::-webkit-details-marker{display:none}
  .menu[open] .panel{display:flex}
  .menu .panel{position:absolute;right:0;top:calc(100% + 10px);background:var(--navy-deep);border:1px solid var(--navy-line);border-radius:8px;flex-direction:column;min-width:230px;padding:.5rem}
  .menu .panel a{color:#fff;text-decoration:none;padding:.75rem .9rem;border-radius:6px}
  .menu .panel a:hover{background:var(--navy)}
}
@media (max-width:980px){.top .btn.call-top{display:none}}

/* ---------- hero */
.hero{background:var(--navy-deep);color:#fff;overflow:hidden;position:relative;padding:0}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;padding-top:clamp(2.5rem,6vw,5rem);padding-bottom:clamp(2.5rem,6vw,5rem)}
.hero h1{color:#fff;font-size:clamp(2.3rem,5.6vw,4.1rem)}
.hero .lead{color:#C4D2E0}
.hero .actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.8rem 0 1.4rem}
.facts{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:0;padding:0;list-style:none;color:#E9D7AE;font-size:.96rem}
.facts li{display:flex;align-items:center;gap:.45rem}
.facts li::before{content:"";width:8px;height:8px;background:var(--gold);border-radius:1px;transform:rotate(45deg)}
.hero.sub .wrap{grid-template-columns:1fr;padding-top:clamp(2rem,5vw,3.5rem);padding-bottom:clamp(2rem,5vw,3.5rem)}
.hero.sub h1{max-width:20ch}
.crumbs{font-size:.88rem;color:#9FB3C7;margin-bottom:1rem}
.crumbs a{color:#9FB3C7}
.crumbs a:hover{color:var(--gold)}

/* the door */
.door{position:relative;aspect-ratio:4/4.3;max-width:440px;justify-self:end;width:100%}
.door .opening{position:absolute;inset:0;border:14px solid #B9C7D3;border-bottom-width:20px;border-radius:3px;background:linear-gradient(180deg,#8FC6E6 0%,#BFE0F0 46%,#F2E3B8 47%,#E6CF94 60%,#3E8FB8 61%,#2F7AA3 100%);box-shadow:inset 0 0 0 2px #93A6B7,0 30px 60px -25px rgba(0,0,0,.6)}
.door .track{position:absolute;left:14px;right:14px;bottom:20px;height:6px;background:#93A6B7}
.door .pane{position:absolute;top:14px;bottom:26px;width:calc(50% - 14px);border:10px solid #D2DCE5;background:linear-gradient(115deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,.08) 32%,rgba(255,255,255,0) 55%,rgba(255,255,255,.22) 78%,rgba(255,255,255,.04) 100%),rgba(214,232,242,.28);box-shadow:0 0 0 1px #9AAEBF}
.door .fixed{right:14px}
.door .slide{left:14px;z-index:2;animation:slide 1.6s cubic-bezier(.65,.05,.2,1) .5s both}
.door .slide::after{content:"";position:absolute;right:8px;top:44%;width:7px;height:52px;background:var(--gold);border-radius:3px}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(calc(100% - 22px))}}
@media (prefers-reduced-motion:reduce){.door .slide{animation:none;transform:translateX(calc(100% - 22px))}html{scroll-behavior:auto}}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.door{display:none}}

/* ---------- sections */
section{padding:clamp(3rem,7vw,5.5rem) 0}
.band{background:var(--glass)}
.head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem;align-items:end;margin-bottom:2.2rem}
.head p{color:var(--muted);margin:0}
@media (max-width:780px){.head{grid-template-columns:1fr;gap:.6rem}}

/* service rows: a track rule under each */
.rows{list-style:none;margin:0;padding:0;border-top:3px solid var(--navy-deep)}
.rows li{border-bottom:1px solid var(--rule)}
.rows a{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.5fr) 6.5rem;gap:1.5rem;align-items:baseline;padding:1.35rem .25rem;text-decoration:none;color:var(--ink)}
.rows a:hover{background:linear-gradient(90deg,var(--gold-soft),transparent 70%)}
.rows h3{margin:0;font-size:clamp(1.2rem,2.2vw,1.5rem)}
.rows span{color:var(--muted)}
.rows em{font-style:normal;color:var(--gold-deep);font-weight:700;white-space:nowrap;text-align:right}
.rows em:empty{display:none}
@media (max-width:700px){.rows a{grid-template-columns:1fr;gap:.25rem}.rows em{margin-top:.3rem}}

.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;counter-reset:s}
.steps li{counter-increment:s;border-top:2px solid var(--navy);padding-top:1.1rem}
.steps li::before{content:counter(s);display:block;font-variation-settings:var(--wide);font-weight:800;font-size:2.6rem;line-height:1;color:var(--gold);margin-bottom:.6rem}
.steps p{color:var(--muted);margin:0}
@media (max-width:820px){.steps{grid-template-columns:1fr;gap:1.6rem}}

.why{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem}
.why p{color:var(--muted);margin:0}
@media (max-width:820px){.why{grid-template-columns:1fr;gap:1.6rem}}

.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem)}
@media (max-width:780px){.two{grid-template-columns:1fr}}
.ticks{list-style:none;padding:0;margin:0}
.ticks li{padding:.7rem 0 .7rem 2rem;border-bottom:1px solid var(--rule);position:relative}
.ticks li::before{content:"";position:absolute;left:.2rem;top:1.05rem;width:.8rem;height:.45rem;border-left:2.5px solid var(--gold-deep);border-bottom:2.5px solid var(--gold-deep);transform:rotate(-45deg)}
.dots{list-style:none;padding:0;margin:0}
.dots li{padding:.7rem 0 .7rem 1.6rem;border-bottom:1px solid var(--rule);position:relative}
.dots li::before{content:"";position:absolute;left:.15rem;top:1.25rem;width:8px;height:8px;border:2px solid var(--navy);border-radius:50%}

.price{border-left:5px solid var(--gold);background:var(--gold-soft);padding:1.3rem 1.5rem;border-radius:0 6px 6px 0;margin-top:2.2rem}
.price h2{font-size:1.2rem;margin-bottom:.4rem}
.price p{margin:0}

.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:1.1rem 2.5rem 1.1rem 0;font-weight:700;font-variation-settings:"wdth" 105;font-size:1.08rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.4rem;top:1.45rem;width:10px;height:10px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg);top:1.7rem}
.faq details p{color:var(--muted);padding-bottom:1rem;margin:0}
.faq{max-width:820px}

.reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.5rem}
.review{border-top:3px solid var(--gold);padding-top:1rem}
.review p{margin:0 0 .7rem}
.review footer{color:var(--muted);font-size:.93rem}
.google{display:flex;flex-wrap:wrap;gap:1.2rem 2rem;align-items:center;justify-content:space-between;border:1px solid var(--rule);border-radius:8px;padding:1.5rem 1.6rem;background:#fff}
.google p{margin:0;color:var(--muted);max-width:52ch}
.google strong{display:block;color:var(--navy-deep);font-size:1.25rem;font-variation-settings:var(--wide);margin-bottom:.25rem}

.cities{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 2rem}
.cities li{border-bottom:1px solid var(--rule)}
.cities a{display:flex;justify-content:space-between;align-items:center;padding:.9rem 0;text-decoration:none;font-weight:600;font-variation-settings:"wdth" 108}
.cities a small{color:var(--muted);font-weight:400;font-variation-settings:"wdth" 90}
@media (max-width:900px){.cities{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.cities{grid-template-columns:1fr}}
.note{color:var(--muted);margin-top:1.4rem;font-size:.97rem}

.chips{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:0}
.chips a{display:inline-block;border:1px solid var(--rule);border-radius:999px;padding:.5rem 1rem;text-decoration:none;background:#fff}
.chips a:hover{border-color:var(--gold);color:var(--navy-deep)}

.cta{background:var(--navy);color:#fff}
.cta .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:2rem;align-items:center}
.cta h2{color:#fff}
.cta p{color:#C4D2E0;margin:0}
.cta .actions{display:flex;flex-wrap:wrap;gap:.75rem}
@media (max-width:820px){.cta .wrap{grid-template-columns:1fr}}

.prose p{font-size:1.1rem}

/* ---------- estimate form */
.form{display:grid;gap:1.1rem;max-width:620px}
.form label{display:block;font-weight:700;margin-bottom:.35rem;font-variation-settings:"wdth" 105}
.form input,.form select,.form textarea{width:100%;font:inherit;padding:.8rem .9rem;border:1.5px solid #AFC0CF;border-radius:6px;background:#fff;color:var(--ink);min-height:48px}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--navy);outline:3px solid var(--gold-soft);outline-offset:0}
.form textarea{min-height:110px;resize:vertical}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:560px){.form .row{grid-template-columns:1fr}}
.form .hint{color:var(--muted);font-size:.94rem;margin:0}
.aside{border-left:3px solid var(--gold);padding-left:1.4rem}
.aside h2{font-size:1.3rem}
.aside .btn{margin:.3rem 0 1rem}

/* ---------- footer */
.foot{background:var(--navy-deep);color:#B7C6D5;padding:3.5rem 0 6rem;font-size:.95rem}
.foot .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.foot h2{color:#fff;font-size:1rem;margin-bottom:.8rem;font-variation-settings:"wdth" 108}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{margin:.35rem 0}
.foot a{color:#DDE6EF;text-decoration:none}
.foot a:hover{color:var(--gold)}
.foot .phone{font-size:1.5rem;font-weight:800;font-variation-settings:var(--wide);color:#fff;display:inline-block;margin:.4rem 0}
.foot .legal{border-top:1px solid var(--navy-line);margin-top:2.5rem;padding-top:1.2rem;display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between;color:#8DA2B7;font-size:.88rem}
@media (max-width:900px){.foot .grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot .grid{grid-template-columns:1fr}}
@media (min-width:981px){.foot{padding-bottom:3rem}}

/* ---------- mobile action bar */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;grid-template-columns:repeat(4,1fr);background:var(--navy-deep);border-top:1px solid var(--navy-line);padding:.45rem .45rem calc(.45rem + env(safe-area-inset-bottom));gap:.45rem}
.bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-height:54px;border-radius:6px;text-decoration:none;color:#fff;font-size:.82rem;font-weight:700;background:var(--navy)}
.bar a svg{width:20px;height:20px}
.bar a.gold{background:var(--gold);color:var(--navy-deep)}
@media (max-width:980px){.bar{display:grid}}

.bar a{font-size:.78rem}

.bar a{text-align:center;line-height:1.1}
@media (max-width:600px){.hero .actions .btn-line,.cta .actions .btn-line{flex:1 1 calc(50% - .75rem);padding-left:.6rem;padding-right:.6rem}.hero .actions .btn-gold,.cta .actions .btn-gold{flex:1 1 100%}}

/* ---------- glass partition designer embed */
.designer .wrap>p{color:var(--muted)}
.designer-frame{border:1px solid var(--rule);border-radius:10px;overflow:hidden;background:#F4F7FA;margin-top:1.4rem}
.designer-frame iframe{display:block;width:100%;height:1100px;border:0;scroll-margin-top:84px}
.designer .open{margin-top:.9rem;font-size:.95rem}
@media (max-width:700px){.designer-frame iframe{height:1300px}}
