/* Fixmate: bright, friendly pages. Logo colors: black, cyan, orange. Real job photos carry the trust. */
:root{
  --bg:#FFFFFF; --soft:#F2F8FC; --soft-2:#FFF4EA; --line:#E2E9EF;
  --ink:#0B0F14; --ink-2:#1A222B; --muted:#4F5B66; --muted-2:#8796A3;
  --cyan:#02C2FF; --cyan-ink:#0679B4; --orange:#F5862A; --orange-ink:#B85A0A; --ok:#14935C;
  --f-head:"Plus Jakarta Sans","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --f-body:"Figtree","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --r:14px; --wrap:1180px;
  color-scheme:light;
}
[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.65 var(--f-body);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--ink)}
img{max-width:100%;display:block}
a{color:var(--cyan-ink)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
h1,h2,h3{font-family:var(--f-head);font-weight:800;line-height:1.1;letter-spacing:-.02em;margin:0;text-wrap:balance}
h1{font-size:clamp(2.3rem,5vw,3.9rem)}
h2{font-size:clamp(1.75rem,3.4vw,2.6rem)}
h3{font-size:1.2rem;letter-spacing:-.01em}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font:700 .82rem/1 var(--f-head);letter-spacing:.06em;text-transform:uppercase;color:var(--cyan-ink)}
.eyebrow::before{content:"";width:22px;height:3px;border-radius:3px;background:var(--orange)}
.lede{font-size:1.18rem;color:var(--muted);max-width:60ch}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hl{color:var(--cyan-ink)}
.hl-o{color:var(--orange-ink)}

/* Offer ribbon */
.ribbon{background:var(--orange);color:var(--ink);font:600 .95rem/1.3 var(--f-body)}
.ribbon .wrap{display:flex;gap:.4rem 1rem;align-items:center;justify-content:center;flex-wrap:wrap;padding-block:.5rem;text-align:center}
.ribbon b{font:800 1rem var(--f-head)}
.ribbon a{color:var(--ink);font-weight:700}

/* Header */
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--ink);color:#fff}
.hdr .wrap{display:flex;align-items:center;gap:1rem;min-height:78px}
.logo{display:flex;align-items:center;flex:none;text-decoration:none}
.logo img{height:70px;width:auto}
.nav{display:flex;align-items:center;gap:.15rem;margin-left:auto}
.nav>a,.nav .dd>button{color:#EEF3F7;background:none;border:0;font:600 1rem var(--f-body);padding:.6rem .8rem;border-radius:10px;text-decoration:none;cursor:pointer;display:flex;align-items:center;gap:.35rem}
.nav>a:hover,.nav .dd>button:hover,.nav .dd.open>button{background:#1E2731;color:#fff}
.nav .dd{position:relative}
.nav .dd>button::after{content:"";width:.42rem;height:.42rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.panel{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);background:#fff;color:var(--ink);border-radius:16px;box-shadow:0 24px 60px -16px rgba(11,15,20,.4);padding:1.1rem;display:none;width:max-content;max-width:min(92vw,820px)}
.dd.open .panel{display:block}
.panel a{color:var(--ink);text-decoration:none;border-radius:10px;padding:.5rem .65rem;display:flex;gap:.6rem;align-items:center;font-size:.98rem;font-weight:500}
.panel a:hover{background:var(--soft)}
.panel .grid{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:.1rem .3rem}
.panel .grid.b{grid-template-columns:repeat(4,minmax(140px,1fr))}
.panel .ico{width:26px;height:26px;color:var(--cyan-ink);flex:none}
.panel .foot{border-top:1px solid var(--line);margin-top:.8rem;padding-top:.8rem;display:flex;justify-content:space-between;gap:1rem;font-size:.92rem;color:var(--muted)}
.panel .foot a{color:var(--cyan-ink);font-weight:700;padding:0}
.call{background:var(--orange);color:var(--ink)!important;font:800 1rem/1 var(--f-head)!important;padding:.85rem 1.1rem!important;border-radius:999px;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}
.call:hover{filter:brightness(1.06)}
.call svg{width:18px;height:18px}
.burger{display:none;margin-left:auto;background:#1E2731;border:0;color:#fff;width:48px;height:48px;border-radius:12px;cursor:pointer}
.burger span,.burger span::before,.burger span::after{display:block;width:20px;height:2px;background:#fff;margin:auto;position:relative;content:""}
.burger span::before{position:absolute;top:-6px}.burger span::after{position:absolute;top:6px}
.mnav{display:none}
@media (max-width:1040px){
  .nav{display:none}.burger{display:block}
  .hdr .call{display:none}
  .logo img{height:56px}
  .mnav.open{display:block;background:var(--ink-2);max-height:calc(100vh - 78px);overflow:auto}
  .mnav .wrap{padding-block:1rem 2rem;display:grid;gap:1.3rem}
  .mnav h4{margin:0 0 .4rem;font:700 .8rem var(--f-head);letter-spacing:.08em;text-transform:uppercase;color:var(--cyan)}
  .mnav .cols{display:grid;grid-template-columns:1fr 1fr;gap:.1rem .8rem}
  .mnav a{color:#fff;text-decoration:none;display:block;padding:.4rem 0;font-size:1.02rem}
}

/* Buttons */
.btns{display:flex;flex-wrap:wrap;gap:.75rem}
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:1rem 1.4rem;border-radius:999px;font:800 1.02rem/1 var(--f-head);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.btn svg{width:19px;height:19px}
.btn.o{background:var(--orange);color:var(--ink);box-shadow:0 10px 22px -10px rgba(245,134,42,.8)}
.btn.c{background:var(--cyan);color:var(--ink)}
.btn.line{border-color:var(--ink);color:var(--ink);background:#fff}
.btn.d{background:var(--ink);color:#fff}
.btn.w{background:#fff;color:var(--ink)}
.btn:hover{transform:translateY(-2px)}

/* Hero */
.hero{background:linear-gradient(180deg,var(--soft),#fff 85%);padding-block:clamp(2rem,5vw,4rem) clamp(2.5rem,5vw,4.5rem);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.hero h1{margin-top:1rem}
.hero .lede{margin-top:1.1rem}
.hero .btns{margin-top:1.7rem}
.checks{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:.6rem 1.6rem;margin-top:1.8rem;padding:0;list-style:none}
.checks li{display:flex;align-items:center;gap:.55rem;font-weight:600}
.checks li::before{content:"";width:22px;height:22px;border-radius:50%;flex:none;background:var(--cyan) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%230B0F14' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
@media (max-width:560px){.checks{grid-template-columns:1fr}}
.hero-photo{position:relative;justify-self:center;width:min(100%,470px)}
.hero-photo .frame{border-radius:28px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 30px 60px -28px rgba(11,15,20,.55);border:6px solid #fff;outline:3px solid var(--cyan)}
.hero-photo .frame img{width:100%;height:100%;object-fit:cover}
.float{position:absolute;background:#fff;border-radius:16px;box-shadow:0 16px 36px -14px rgba(11,15,20,.35);padding:.8rem 1rem;display:flex;gap:.7rem;align-items:center;font-size:.92rem;line-height:1.3}
.float b{font:800 1rem var(--f-head);display:block}
.float.a{left:-28px;bottom:42px}
.float.b{right:-18px;top:28px;background:var(--orange)}
.float .dot{width:40px;height:40px;border-radius:50%;background:var(--soft);display:grid;place-items:center;flex:none}
.float .dot svg{width:22px;height:22px;color:var(--cyan-ink)}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr}.float.a{left:8px}.float.b{right:8px}}

/* Sections */
.sec{padding-block:clamp(3rem,7vw,5.5rem)}
.sec.soft{background:var(--soft)}
.sec.warm{background:var(--soft-2)}
.sec.dark{background:var(--ink);color:#fff}
.sec.dark .lede{color:#B9C4CE}
.sec.dark .eyebrow{color:var(--cyan)}
.shead{display:grid;gap:.8rem;margin-bottom:2.2rem;max-width:760px}
.shead.row{max-width:none;grid-template-columns:minmax(0,1fr) auto;align-items:end}
@media (max-width:700px){.shead.row{grid-template-columns:1fr}}

/* Service cards */
.svc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
@media (max-width:900px){.svc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.svc{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 22px 40px -22px rgba(11,15,20,.4)}
.card .pic{aspect-ratio:16/11;overflow:hidden;background:var(--soft);display:grid;place-items:center}
.card .pic img{width:100%;height:100%;object-fit:cover}
.card .pic svg{width:34%;height:auto;color:var(--cyan-ink)}
.card .pic.dk{background:var(--ink)}.card .pic.dk svg{color:var(--cyan)}
.card .body{padding:1.15rem 1.25rem 1.3rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.card .body p{color:var(--muted);font-size:.98rem}
.card .more{margin-top:auto;padding-top:.5rem;font-weight:700;color:var(--cyan-ink)}

/* Recent repairs */
.jobs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
@media (max-width:900px){.jobs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.job{margin:0;border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column}
.job button{all:unset;cursor:zoom-in;display:block}
.job img{width:100%;aspect-ratio:3/4;object-fit:cover}
.job figcaption{padding:.75rem .9rem .9rem;font-size:.92rem;line-height:1.35;color:var(--muted)}
.job figcaption b{display:block;color:var(--ink);font:700 .98rem/1.3 var(--f-head);margin-bottom:.15rem}
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}
@media (max-width:640px){.gallery{grid-template-columns:1fr}}
.gallery .job img,.jobgrid .job img{aspect-ratio:4/5;object-fit:cover;width:100%}
.gallery .job figcaption,.jobgrid .job figcaption{font-size:1rem;padding:1rem 1.1rem 1.15rem}
.gallery .job figcaption b,.jobgrid .job figcaption b{font-size:1.1rem}
.jobgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
@media (max-width:900px){.jobgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.jobgrid{grid-template-columns:1fr}}
.lb{position:fixed;inset:0;z-index:90;background:rgba(11,15,20,.92);display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.lb img{max-height:82vh;max-width:100%;border-radius:12px}
.lb p{color:#fff;margin-top:.8rem;text-align:center;font-weight:600}
.lb button{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));background:#fff;border:0;border-radius:50%;width:46px;height:46px;font:700 1.4rem/1 var(--f-head);cursor:pointer}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.step{background:#1A222B;border-radius:20px;padding:1.4rem;display:grid;gap:.55rem;align-content:start}
.step .n{width:44px;height:44px;border-radius:50%;background:var(--cyan);color:var(--ink);display:grid;place-items:center;font:800 1.15rem var(--f-head)}
.step:nth-child(even) .n{background:var(--orange)}
.step p{color:#B9C4CE;font-size:.98rem}
@media (max-width:900px){.steps{grid-template-columns:1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* Promise */
.promise{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.pr{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.4rem;display:grid;gap:.5rem;align-content:start}
.pr .ic{width:52px;height:52px;border-radius:14px;background:var(--soft);display:grid;place-items:center}
.pr .ic svg{width:28px;height:28px;color:var(--cyan-ink)}
.pr p{color:var(--muted);font-size:.97rem}
.pr.off{background:var(--orange);border-color:var(--orange)}
.pr.off .ic{background:rgba(255,255,255,.35)}.pr.off .ic svg{color:var(--ink)}
.pr.off p{color:var(--ink)}
.pr .big{font:800 2.2rem/1 var(--f-head)}
@media (max-width:900px){.promise{grid-template-columns:1fr}}
@media (max-width:520px){.promise{grid-template-columns:1fr}}

/* Brands */
.tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.3rem}
.tab{border:2px solid var(--line);background:#fff;border-radius:999px;padding:.5rem 1rem;font:600 .95rem var(--f-body);cursor:pointer;color:var(--ink)}
.tab[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.chips-b{display:flex;flex-wrap:wrap;gap:.6rem}
.bchip{display:inline-flex;align-items:center;gap:.5rem;border:2px solid var(--line);background:#fff;border-radius:999px;padding:.6rem 1.1rem;text-decoration:none;color:var(--ink);font:700 1.02rem var(--f-head);transition:border-color .15s,transform .15s}
.bchip:hover{border-color:var(--cyan);transform:translateY(-2px)}
.bchip i{width:9px;height:9px;border-radius:50%;background:var(--cyan)}
.bchip.lux i{background:var(--orange)}

/* Tools */
.tool{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.4rem;display:grid;gap:1rem}
.field{display:flex;gap:.5rem;flex-wrap:wrap}
.field input,.form select,.form input,.form textarea{flex:1;min-width:0;font:500 1.05rem var(--f-body);padding:.9rem 1.1rem;border:2px solid var(--line);border-radius:12px;background:var(--soft);color:var(--ink)}
.field input.code{font:800 1.3rem var(--f-head);letter-spacing:.08em;text-transform:uppercase;max-width:230px}
.field input:focus,.form :is(input,select,textarea):focus{border-color:var(--cyan);outline:none;background:#fff}
.out{min-height:2.6rem}
.out table{width:100%;border-collapse:collapse;font-size:.97rem}
.out th{text-align:left;font:700 .78rem var(--f-head);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:.4rem .5rem;border-bottom:2px solid var(--line)}
.out td{padding:.6rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}
.out .ok{color:var(--ok);font-weight:700}
.out .no{color:#B4321F;font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:.4rem}
.chip{font:700 .85rem var(--f-head);border:2px solid var(--line);background:#fff;border-radius:999px;padding:.35rem .75rem;cursor:pointer;color:var(--ink)}
.chip:hover{border-color:var(--cyan)}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.4rem;align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr}}
.note{font-size:.9rem;color:var(--muted)}

/* ZIPs */
.zips{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:.6rem}
.zip{display:flex;gap:.7rem;align-items:baseline;padding:.75rem .95rem;background:#fff;border:1px solid var(--line);border-radius:12px}
.zip b{font:800 1.02rem var(--f-head);color:var(--cyan-ink)}
.zip span{font-size:.92rem;color:var(--muted)}
.zip.hit{border-color:var(--ok);box-shadow:0 0 0 2px var(--ok) inset}

/* Reviews */
.rev{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(1.4rem,3vw,2.4rem)}
.gmark{display:flex;gap:.25rem;color:var(--orange)}.gmark svg{width:26px;height:26px}
@media (max-width:700px){.rev{grid-template-columns:1fr}}

/* FAQ */
.faq{display:grid;gap:.7rem;max-width:860px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:16px;padding:0 1.2rem}
.faq summary{cursor:pointer;list-style:none;padding:1.05rem 0;font:700 1.05rem var(--f-head);display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:800 1.4rem/1 var(--f-head);color:var(--orange-ink)}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 0 1.1rem;color:var(--muted);max-width:70ch}

/* CTA */
.cta{background:var(--cyan);color:var(--ink)}
.cta .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding-block:clamp(2.2rem,5vw,3.4rem)}
.cta .num{font:800 clamp(2rem,5vw,3.2rem)/1 var(--f-head);color:var(--ink);text-decoration:none;white-space:nowrap}
@media (max-width:760px){.cta .wrap{grid-template-columns:1fr}}

/* Inner hero */
.phero{background:linear-gradient(180deg,var(--soft),#fff);padding-block:clamp(2rem,5vw,3.6rem)}
.phero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(1.5rem,4vw,3rem);align-items:center}
.phero h1{margin-top:.8rem}
.phero .lede{margin-top:1rem}
.phero .btns{margin-top:1.4rem}
.crumbs{display:flex;gap:.4rem;flex-wrap:wrap;font-size:.9rem;color:var(--muted);margin-bottom:.9rem}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--cyan-ink)}
.phero .pframe{border-radius:24px;overflow:hidden;aspect-ratio:4/5;max-height:520px;box-shadow:0 26px 50px -26px rgba(11,15,20,.5);border:5px solid #fff;outline:3px solid var(--cyan);justify-self:center;width:min(100%,420px)}
.phero .pframe img{width:100%;height:100%;object-fit:cover}
.phero .ptile{border-radius:24px;aspect-ratio:1;background:var(--ink);display:grid;place-items:center;width:min(100%,380px);justify-self:center}
.phero .ptile svg{width:44%;color:var(--cyan)}
@media (max-width:860px){.phero .wrap{grid-template-columns:1fr}.phero .ptile{width:min(100%,240px)}}

/* Facts card */
.facts{background:#fff;border:1px solid var(--line);border-radius:22px;padding:1.4rem;box-shadow:0 22px 44px -28px rgba(11,15,20,.45);justify-self:stretch}
.facts .top{display:flex;align-items:center;gap:.8rem;padding-bottom:.9rem;border-bottom:2px solid var(--line);margin-bottom:.2rem}
.facts .top b{font:800 1.4rem var(--f-head)}
.facts .top span{margin-left:auto;font:700 .78rem var(--f-head);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);background:var(--orange);border-radius:999px;padding:.35rem .7rem}
.facts dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr)}
.facts dt{font-weight:700;color:var(--muted);padding:.65rem 1rem .65rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.facts dd{margin:0;padding:.65rem 0;border-bottom:1px solid var(--line);font-weight:600}
.facts .ok{display:flex;align-items:center;gap:.5rem;margin-top:1rem;font-weight:700;color:var(--ok)}
.facts .ok svg{width:20px;height:20px}

/* Lists */
.faults{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.faults.n4{grid-template-columns:repeat(2,minmax(0,1fr))}
.faults.n5{grid-template-columns:repeat(6,minmax(0,1fr))}
.faults.n5>:nth-child(-n+2){grid-column:span 3}.faults.n5>:nth-child(n+3){grid-column:span 2}
@media (max-width:860px){.faults,.faults.n4,.faults.n5{grid-template-columns:1fr}.faults.n5>*{grid-column:auto!important}}
.fault{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.3rem;display:grid;gap:.45rem;align-content:start}
.fault p{color:var(--muted);font-size:.98rem}
.fault .k{font:700 .78rem var(--f-head);letter-spacing:.05em;text-transform:uppercase;color:var(--orange-ink)}
.pills{display:flex;flex-wrap:wrap;gap:.55rem}
.pill{display:inline-flex;gap:.55rem;align-items:center;border:2px solid var(--line);background:#fff;border-radius:999px;padding:.55rem 1rem .55rem .7rem;text-decoration:none;color:var(--ink);font-weight:600;font-size:.98rem}
.pill svg{width:24px;height:24px;color:var(--cyan-ink)}
.pill:hover{border-color:var(--cyan)}
.callout{border-left:5px solid var(--orange);background:var(--soft-2);padding:1.3rem 1.5rem;border-radius:0 18px 18px 0;display:grid;gap:.5rem;max-width:860px}
.callout p{color:var(--muted)}
.parts{columns:2 220px;gap:2rem;padding:0;margin:0;list-style:none}
.parts li{break-inside:avoid;padding:.6rem 0;border-bottom:1px dashed var(--line);display:flex;gap:.6rem;align-items:center;font-weight:500}
.parts li::before{content:"";width:9px;height:9px;background:var(--cyan);flex:none;border-radius:50%}
.prose{display:grid;gap:1rem;max-width:68ch}
.prose p{color:var(--muted)}
.val{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}
.val>div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.3rem;display:grid;gap:.4rem;align-content:start}
.val p{color:var(--muted);font-size:.97rem}

/* Form */
.form{display:grid;gap:.9rem}
.form .r2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media (max-width:560px){.form .r2{grid-template-columns:1fr}}
.form label{display:grid;gap:.35rem;font:700 .9rem var(--f-head);color:var(--ink)}
.form textarea{min-height:110px;resize:vertical}
.msg{background:var(--soft);border:2px dashed var(--cyan);border-radius:14px;padding:1rem;font:500 1rem/1.55 var(--f-body);white-space:pre-wrap;word-break:break-word}
.bignum{font:800 clamp(2.2rem,6vw,3.6rem)/1 var(--f-head);color:var(--ink);text-decoration:none;display:inline-block}

/* Footer */
.ftr{background:var(--ink);color:#C3CDD6;padding-block:3.2rem 6rem;font-size:.97rem}
.ftr .g{display:grid;grid-template-columns:1.4fr 1fr 1.6fr 1fr;gap:2rem}
.ftr h4{margin:0 0 .8rem;font:700 .82rem var(--f-head);letter-spacing:.08em;text-transform:uppercase;color:var(--cyan)}
.ftr a{color:#EEF3F7;text-decoration:none}.ftr a:hover{color:var(--orange)}
.ftr ul{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}
.ftr .bcols{columns:2;column-gap:1rem;display:block}
.ftr .bcols li{margin-bottom:.4rem}
.ftr .logo img{height:110px}
.ftr .legal{border-top:1px solid #222C36;margin-top:2.4rem;padding-top:1.4rem;font-size:.85rem;color:#8796A3;display:grid;gap:.5rem}
@media (max-width:900px){.ftr .g{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ftr .g{grid-template-columns:1fr}}

/* Mobile call bar */
.mbar{display:none}
@media (max-width:760px){
  .mbar{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--ink);padding:.6rem max(12px,env(safe-area-inset-right,0px)) calc(.6rem + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}
  .mbar a{justify-content:center;padding:.9rem .5rem}
  .ribbon .wrap span.m{display:none}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.vids{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;align-items:start}
@media (max-width:900px){.vids{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.vids{grid-template-columns:1fr}}
.vid video{width:100%;aspect-ratio:3/4;object-fit:contain;background:var(--ink);display:block}

.jobgrid.two-up{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px}
@media (max-width:560px){.jobgrid.two-up{grid-template-columns:1fr}}

/* Robust photo frames (iOS Safari) */
.card .pic,.hero-photo .frame,.phero .pframe{position:relative;display:block}
.card .pic img,.hero-photo .frame img,.phero .pframe img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.card .pic svg{position:absolute;inset:0;margin:auto;width:34%;height:34%}
.job>button{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden}
.job>button img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gallery .job img,.jobgrid .job img{aspect-ratio:auto}
.phero .pframe{max-height:none}

/* Mobile header call button */
.call .cl-short{display:none}
@media (max-width:1040px){
  .hdr .call{display:inline-flex;margin-left:auto;padding:.55rem 1rem!important;gap:.6rem}
  .hdr .call svg{width:22px;height:22px}
  .hdr .call .cl-full{display:none}
  .hdr .call .cl-short{display:grid;line-height:1.1;text-align:left}
  .hdr .call .cl-short small{font:700 .72rem var(--f-body);letter-spacing:.06em;text-transform:uppercase}
  .burger{margin-left:.6rem}
}
@media (max-width:380px){.hdr .call{padding:.5rem .7rem!important;font-size:.9rem!important}.logo img{height:48px}}

/* Brand name beside logo */
.logo{gap:.75rem}
.bname{display:grid;line-height:1;color:#fff}
.bname b{font:800 1.55rem/1 var(--f-head);letter-spacing:.04em}
.bname small{font:700 .78rem/1.2 var(--f-body);color:var(--cyan);margin-top:.3rem;letter-spacing:.02em;white-space:nowrap}
.ftr .bname{display:none}
@media (max-width:1040px){
  .hdr .call{display:none}
  .burger{margin-left:auto}
}
@media (min-width:1041px) and (max-width:1240px){.hdr .bname{display:none}}
@media (max-width:360px){.bname b{font-size:1.3rem}.bname small{font-size:.7rem}}

.svc{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.svc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.svc{grid-template-columns:1fr}}
.card.callcard{background:var(--orange);border-color:var(--orange);justify-content:flex-end}
.card.callcard .body{justify-content:flex-end}
.card.callcard p{color:var(--ink)}
.card.callcard .more{color:var(--ink);font-size:1.15rem}
.card.callcard .eyebrow::before{background:var(--ink)}
.totop{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:56;width:52px;height:52px;border-radius:50%;border:0;background:var(--ink);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 24px -8px rgba(11,15,20,.55);outline:3px solid var(--cyan);outline-offset:-3px}
.totop svg{width:24px;height:24px}
.totop:hover{background:var(--cyan);color:var(--ink)}
@media (max-width:760px){.totop{bottom:calc(92px + env(safe-area-inset-bottom,0px));right:calc(14px + env(safe-area-inset-right,0px));width:48px;height:48px}}

/* Mobile menu v2 */
@media (max-width:1040px){
  .mnav.open{display:block;background:var(--ink-2);max-height:calc(100vh - 78px);max-height:calc(100dvh - 78px - env(safe-area-inset-top,0px));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .mlist{display:flex;flex-direction:column;padding:.4rem max(16px,env(safe-area-inset-right,0px)) calc(110px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
  .mlist>a,.mlist summary{display:flex;align-items:center;justify-content:space-between;color:#fff;text-decoration:none;font:700 1.2rem var(--f-head);padding:1.05rem .2rem;border-bottom:1px solid #2A3540;cursor:pointer;list-style:none}
  .mlist summary::-webkit-details-marker{display:none}
  .mlist>a::after{content:"›";color:var(--cyan);font-size:1.5rem;line-height:1}
  .mlist summary::after{content:"+";color:var(--orange);font-size:1.5rem;line-height:1}
  .mlist details[open] summary::after{content:"–"}
  .msub{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.8rem 0 1rem;border-bottom:1px solid #2A3540}
  .msub a{display:flex;align-items:center;gap:.55rem;background:#24303B;border-radius:12px;padding:.75rem .7rem;color:#fff;text-decoration:none;font:600 .95rem var(--f-body)}
  .msub a svg{width:24px;height:24px;color:var(--cyan);flex:none}
}
@media (max-width:1040px){
  .mnav.open{height:calc(100vh - 78px);height:calc(100dvh - 78px - env(safe-area-inset-top,0px))}
  .msub a:last-child:nth-child(odd){grid-column:1/-1}
}

/* Moving brand strip */
.mq-band{background:var(--ink);padding-block:2.4rem 2.6rem;overflow:hidden}
.mq-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.3rem}
.mq-head h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem)}
.mq-all{color:var(--cyan);font-weight:700;text-decoration:none}
.mq{display:flex;background:#fff;border-radius:18px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.mq-track{display:flex;align-items:center;flex:none;padding-block:1.6rem;animation:mq 55s linear infinite}
.mq:hover .mq-track,.mq:focus-within .mq-track{animation-play-state:paused}
.mq-item{font:800 clamp(1.5rem,3vw,2.1rem)/1 var(--f-head);letter-spacing:-.01em;color:var(--ink);text-decoration:none;white-space:nowrap;padding-inline:2rem;transition:color .15s}
.mq-item:nth-of-type(3n+2){color:var(--cyan-ink)}
.mq-item:hover{color:var(--orange-ink)}
.mq-dot{width:9px;height:9px;border-radius:50%;background:var(--orange);flex:none}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){.mq{overflow-x:auto}.mq-track{animation:none}.mq-track[aria-hidden]{display:none}}

/* Brand page v2 */
.atiles-band{background:var(--ink);padding-block:2.4rem}
.atiles-band h2{color:#fff;font-size:clamp(1.4rem,2.6vw,1.9rem);margin-bottom:1.2rem}
.atiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:.8rem}
.atile{background:#fff;border-radius:16px;padding:1.3rem .8rem 1.1rem;display:grid;justify-items:center;gap:.7rem;text-decoration:none;color:var(--ink);font:700 1rem/1.2 var(--f-head);text-align:center;transition:transform .15s,box-shadow .15s}
.atile svg{width:58px;height:58px;color:var(--cyan-ink)}
.atile:hover{transform:translateY(-3px);box-shadow:0 14px 28px -12px rgba(0,0,0,.5)}
.bsec{scroll-margin-top:90px}
.bsec-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.bsec-head{display:grid;gap:1rem;align-content:start}
.bsec-head h2 a{color:inherit;text-decoration:none}
.bsec-head h2 a:hover{color:var(--cyan-ink)}
.bsec-ico{width:64px;height:64px;border-radius:18px;background:var(--ink);display:grid;place-items:center}
.bsec-ico svg{width:38px;height:38px;color:var(--cyan)}
.bsec-body h3{font-size:1.25rem;margin-bottom:.4rem}
.plist{list-style:none;padding:0;margin:0;display:grid;gap:0}
.plist li{padding:1.1rem 0 1.1rem 1.6rem;border-bottom:1px solid var(--line);position:relative}
.plist li::before{content:"";position:absolute;left:0;top:1.45rem;width:10px;height:10px;border-radius:50%;background:var(--orange)}
.plist h4{margin:0 0 .35rem;font:700 1.08rem var(--f-head)}
.plist p{color:var(--muted)}
@media (max-width:860px){.bsec-grid{grid-template-columns:1fr}}

/* Brand logos */
.mq-logo{display:flex;align-items:center;padding-inline:2.2rem}
.mq-logo img{height:58px;width:auto;max-width:200px;object-fit:contain;display:block}
.blogo-wrap{display:flex;width:max-content;max-width:100%;background:#fff;border:1px solid var(--line);border-radius:16px;padding:.9rem 1.2rem;margin-bottom:1rem;box-shadow:0 10px 24px -18px rgba(11,15,20,.4)}
.blogo{height:64px;width:auto;max-width:260px;object-fit:contain;display:block}
.btiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem}
.btile{background:#fff;border:1px solid var(--line);border-radius:18px;height:120px;display:grid;place-items:center;padding:1rem 1.2rem;text-decoration:none;transition:transform .15s,box-shadow .15s}
.btile:hover{transform:translateY(-3px);box-shadow:0 16px 30px -18px rgba(11,15,20,.45);border-color:var(--cyan)}
.bt-img{max-height:72px;max-width:100%;width:auto;object-fit:contain}
.bt-name{font:800 1.45rem var(--f-head);color:var(--ink);text-align:center}
@media (max-width:560px){.btiles{grid-template-columns:1fr 1fr}.btile{height:96px}.bt-img{max-height:56px}.mq-logo img{height:44px}}

.card .pic.pic-white{background:#fff}
.card .pic.pic-white img{object-fit:contain;padding:.6rem}

.bsec-prod{width:min(100%,260px);aspect-ratio:1;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:18px;padding:.8rem}
.phero .pframe.pf-white{background:#fff}
.phero .pframe.pf-white img{object-fit:contain;padding:1.2rem}
.bsec-prod.wide{aspect-ratio:16/10;width:min(100%,380px);object-fit:cover;padding:0}
.ftr .fmail{margin-top:1.1rem;display:grid;gap:.25rem}
.ftr .fmail span{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan,#02C2FF)}
.ftr .fmail a{color:#fff;text-decoration:none;font-weight:600}
.ftr .fmail a:hover{color:var(--cyan,#02C2FF)}
.phero .pframe.pf-wide{aspect-ratio:16/10;width:min(100%,560px);align-self:center}
.phero .pframe.pf-wide img{padding:.8rem}
.hero .hero-h1{margin:0;font-size:.82rem;letter-spacing:.06em;line-height:1.3}
.hero .hero-title{font-family:var(--f-head);font-weight:800;line-height:1.1;letter-spacing:-.02em;text-wrap:balance;font-size:clamp(2.3rem,5vw,3.9rem);margin-top:1rem;color:var(--ink)}
.ftr .fsoc{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}
.ftr .fsoc a{display:inline-flex;align-items:center;gap:.5rem;color:#fff;text-decoration:none;font-weight:600;padding:.45rem .9rem .45rem .7rem;border:1px solid rgba(255,255,255,.25);border-radius:999px}
.ftr .fsoc a:hover{border-color:var(--cyan,#02C2FF);color:var(--cyan,#02C2FF)}
.rgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;margin-top:2rem}
@media (max-width:900px){.rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.rgrid{grid-template-columns:1fr}}
.rcard{margin:0;background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.4rem 1.5rem;display:grid;gap:1rem;align-content:space-between;box-shadow:0 10px 30px -22px rgba(11,15,20,.35)}
.rstars{display:inline-flex;gap:.15rem;color:#F5A623}.rstars svg{width:18px;height:18px}
.rstars.inline{vertical-align:-3px}
.rcard blockquote{margin:0;font-size:1.05rem;line-height:1.6;color:var(--ink-2);font-style:italic}
.rcard figcaption{display:flex;align-items:center;gap:.75rem}
.rcard figcaption b{display:block;color:var(--ink);font-size:.98rem}
.rcard figcaption small{display:block;color:var(--muted);font-size:.82rem}
.rav{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#E3F6FF;color:var(--cyan-ink);font-weight:700;font-size:.9rem;flex:none}
.rcta{background:var(--orange);border-color:var(--orange);color:#fff;text-decoration:none;align-content:center}
.rcta .eyebrow{color:#fff}
.rcta .rbig{font-family:var(--f-head);font-size:3rem;line-height:1;display:flex;align-items:center;gap:.5rem}
.rcta .rbig .rstars{color:#fff}.rcta .rbig svg{width:30px;height:30px}
.rcta .rgo{font-weight:700;margin-top:.3rem}
.rcta:hover{filter:brightness(1.05)}
.job figcaption .snd{display:inline-block;margin:.15rem 0 .3rem;font-size:.75rem;font-weight:700;color:var(--orange-ink);background:var(--soft-2);border-radius:999px;padding:.15rem .55rem}
.mq-band{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mq-head h2{color:var(--ink)}
.mq-all{color:var(--cyan-ink)}
.mq{border:1px solid var(--line);box-shadow:0 12px 30px -24px rgba(11,15,20,.35)}
