/* Proformance Floors — site.css
   One spacing token governs section rhythm. Off white and black alternate.
   Archivo throughout, weight carries the hierarchy. */

:root{
  --paper:#F2F0EB; --paper-2:#EAE7E0;
  --black:#0F1011; --black-2:#17191B;
  --ink:#131A22; --ink-2:#47525F; --mute:#77828F; --line:rgba(19,26,34,0.13);
  --ink-on-dark:#F3F2EF; --ink-on-dark-2:#B9BFC3; --mute-on-dark:#8A9196; --line-on-dark:#2A2E31;
  --orange:#F95311; --orange-deep:#D9430C;
  --font:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  --col:1240px;
  --gap-y:140px;
  --radius:4px;
}
@media (max-width:860px){:root{--gap-y:88px}}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-stretch:100%;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-stretch:125%;font-weight:800;letter-spacing:-.03em;line-height:1.02;text-wrap:balance}
p{margin:0}
.col{width:min(var(--col),calc(100% - 48px));margin-inline:auto}

/* sections: one token, no per section overrides */
.band{padding-block:var(--gap-y)}
.band.paper{background:var(--paper)}
.band.dark{background:var(--black);color:var(--ink-on-dark)}
.band.dark .lede,.band.dark .body{color:var(--ink-on-dark-2)}
.band.dark .mute{color:var(--mute-on-dark)}
.lede{font-size:clamp(18px,1.5vw,21px);color:var(--ink-2);max-width:62ch;line-height:1.5}
.body{color:var(--ink-2);max-width:60ch}
.mute{color:var(--mute)}
.h2{font-size:clamp(34px,4.4vw,60px);max-width:16ch}
.h3{font-size:clamp(24px,2.4vw,32px);letter-spacing:-.02em}
.stack{display:grid;gap:22px}
.stack-lg{display:grid;gap:56px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:17px 30px;border-radius:999px;font-weight:600;font-size:16px;line-height:1;white-space:nowrap;transition:background .18s,transform .18s,color .18s}
.btn-primary{background:var(--orange);color:#fff}
.btn-primary:hover{background:var(--orange-deep)}
.btn-primary:active{transform:translateY(1px)}
.btn-ghost{color:var(--ink);padding-inline:6px}
.btn-ghost:hover{color:var(--orange)}
.band.dark .btn-ghost{color:var(--ink-on-dark)}
.band.dark .btn-ghost:hover{color:var(--orange)}
.btn-row{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px}

/* header: brand left, tabs centered, one CTA right */
.header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:saturate(1.2) blur(12px)}
.header .col{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:104px;gap:24px;width:calc(100% - 72px);max-width:none}
.brand{display:flex;align-items:center;gap:14px;font-weight:800;font-size:23px;letter-spacing:-.022em;justify-self:start}
.brand img{width:48px;height:48px}
.nav{display:flex;align-items:center;gap:36px;font-size:17px;font-weight:500;justify-self:center}
.nav a:hover{color:var(--orange)}
.header .cta{justify-self:end}
.header .cta .btn{padding:17px 30px;font-size:16.5px}
.nav-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer;justify-self:center}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0}
@media (max-width:920px){
  .header .col{grid-template-columns:auto 1fr auto;height:80px;width:calc(100% - 32px)}
  .brand{font-size:19px}
  .brand img{width:40px;height:40px}
  .nav{position:fixed;inset:76px 0 auto 0;background:var(--paper);flex-direction:column;align-items:center;padding:22px 24px 30px;gap:18px;transform:translateY(-12px);opacity:0;pointer-events:none;transition:opacity .18s,transform .18s}
  .nav.open{transform:none;opacity:1;pointer-events:auto}
  .nav-toggle{display:block}
  .header .cta .btn{padding:12px 18px;font-size:14px}
}

/* hero: centered, giant, one clear action */
.hero{padding-top:clamp(12px,3vh,40px);padding-bottom:0;text-align:center;display:flex;flex-direction:column;min-height:calc(100vh - 104px);min-height:calc(100svh - 104px);background:linear-gradient(to bottom,var(--paper) 0,var(--paper) calc(100% - 96px),color-mix(in srgb,var(--paper) 70%,var(--black)) calc(100% - 72px),color-mix(in srgb,var(--paper) 30%,var(--black)) calc(100% - 44px),color-mix(in srgb,var(--paper) 8%,var(--black)) calc(100% - 18px),var(--black) 100%)}
@media (max-width:920px){.hero{min-height:calc(100vh - 80px);min-height:calc(100svh - 80px)}}
.hero > .col{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;min-height:0}
.hero.notiles > .col{flex:0 0 auto}
.hero h1{font-size:clamp(46px,6.6vw,100px);letter-spacing:-.022em;line-height:1.08;margin-inline:auto}
.hero h1 em{font-style:normal;color:var(--orange)}
.hero:not(.sub) h1 em{white-space:nowrap}
.hero.sub h1{font-size:clamp(40px,5.2vw,80px)}
.hero .lede{margin:28px auto 0;max-width:46ch;text-align:center}
.hero .btn-row{margin-top:26px;justify-content:center}
.hero .btn-row .btn{font-size:18.4px;padding:20px 35px}
.hero .btn-row .btn-ghost{font-weight:600;padding-inline:7px}

@media (max-height:820px){.hero{padding-top:12px}.hero h1{font-size:clamp(44px,6vw,88px)}.hero .lede{margin-top:16px}.hero .btn-row{margin-top:24px}.tiles .tile{aspect-ratio:16/9}}
.hero + .band.dark{padding-top:calc(var(--gap-y) * .6)}

.hero.notiles{min-height:0;padding-bottom:calc(var(--gap-y) * .4);background:var(--paper)}
.hero.notiles + .band.dark{padding-top:calc(var(--gap-y) * .4)}

/* ticker: copied from Sitework */
.tickerbox{padding-top:calc(var(--gap-y) * .2);overflow:hidden}
.ticker{display:flex;width:max-content;animation:tick 32s linear infinite}
.ticker a{flex:none;font-size:13.5px;font-weight:500;text-transform:lowercase;color:var(--mute);border:1px solid rgba(19,26,34,.17);border-radius:999px;padding:5px 13px;margin-right:9px;background:transparent;transition:color .15s ease,border-color .15s ease}
.ticker a:hover{color:var(--ink);border-color:rgba(19,26,34,.4)}
@keyframes tick{to{transform:translateX(-25%)}}
@media (prefers-reduced-motion:reduce){.ticker{animation:none}}

/* media tiles: equal, edge to edge */
.tiles{margin-top:14px;margin-bottom:0;display:grid;grid-template-columns:repeat(6,1fr);gap:12px;padding-inline:12px;position:relative;z-index:1}
.tiles .tile{aspect-ratio:16/10;overflow:hidden;border-radius:6px;background:var(--paper-2);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.tiles .tile:hover{transform:translateY(-4px)}
.tiles .tile img,.tiles .tile video{width:100%;height:100%;object-fit:cover}
@media (max-width:1100px){.tiles{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.tiles{grid-template-columns:repeat(2,1fr);gap:8px;padding-inline:8px}}
@media (prefers-reduced-motion:reduce){.tiles .tile:hover{transform:none}}

/* statement */
.statement{font-size:clamp(28px,3.6vw,52px);font-weight:700;letter-spacing:-.03em;line-height:1.12;max-width:22ch}
.statement em{font-style:normal;color:var(--orange)}
.clients{margin-top:44px;font-size:clamp(17px,1.4vw,20px);color:var(--ink-on-dark-2);max-width:60ch;line-height:1.5}
.clients b{color:var(--ink-on-dark);font-weight:600}

/* services: photo beside every service, alternating, no cards */
.services{display:grid;gap:calc(var(--gap-y) * .55);margin-top:calc(var(--gap-y) * .5)}
.service{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center}
.service:nth-child(even) .service-media{order:2}
.service-media{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}
.service-media img{width:100%;height:100%;object-fit:cover}
.service-text{display:grid;gap:16px;max-width:46ch}
.service-text ul{margin:6px 0 0;padding-left:18px;color:var(--ink-2);display:grid;gap:6px}
@media (max-width:860px){.service{grid-template-columns:1fr;gap:22px}.service:nth-child(even) .service-media{order:0}}

/* thesis with portrait video */
.thesis{display:grid;grid-template-columns:1fr .62fr;gap:64px;align-items:center}
.thesis-text{display:grid;gap:24px}
.thesis-text .h2{max-width:20ch}
.thesis-media{aspect-ratio:9/16;max-height:640px;justify-self:end;width:100%;max-width:360px;overflow:hidden;border-radius:var(--radius);background:var(--black-2)}
.thesis-media video{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.thesis{grid-template-columns:1fr}.thesis-media{justify-self:start;max-width:280px}}

/* work: uniform grid only */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:calc(var(--gap-y) * .4)}
.grid .tile{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}
.grid .tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.grid .tile:hover img{transform:scale(1.04)}
@media (max-width:860px){.grid{grid-template-columns:repeat(2,1fr);gap:8px}}
@media (prefers-reduced-motion:reduce){.grid .tile:hover img{transform:none}}

/* garage */
.garage{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.garage-media{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius)}
.garage-media img{width:100%;height:100%;object-fit:cover}
.swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin-top:28px}
.swatches .sw{aspect-ratio:1/1;overflow:hidden;border-radius:3px}
.swatches .sw img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.garage{grid-template-columns:1fr;gap:22px}.swatches{grid-template-columns:repeat(4,1fr)}}

/* craig */
.craig{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
.craig-media{aspect-ratio:3/4;overflow:hidden;border-radius:var(--radius);background:var(--paper-2);position:sticky;top:110px}
.craig-media img{width:100%;height:100%;object-fit:cover}
.craig-text{display:grid;gap:22px}
.quote{font-size:clamp(20px,1.8vw,24px);font-weight:500;letter-spacing:-.015em;line-height:1.35;color:var(--ink);max-width:36ch;padding-left:20px;border-left:3px solid var(--orange)}
.creds{margin-top:14px;display:grid;gap:12px;padding-top:26px;border-top:1px solid var(--line)}
.creds div{display:grid;grid-template-columns:200px 1fr;gap:16px;font-size:16px}
.creds dt{color:var(--mute);font-weight:500}
.creds dd{margin:0;color:var(--ink)}
@media (max-width:860px){.craig{grid-template-columns:1fr;gap:28px}.craig-media{position:static;max-width:420px}.creds div{grid-template-columns:1fr;gap:2px}}

/* reviews: plain text columns, no boxes */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:48px 40px;margin-top:calc(var(--gap-y) * .45)}
.review{display:grid;gap:14px;align-content:start}
.review .stars{color:var(--orange);letter-spacing:2px;font-size:15px}
.review p{font-size:18px;line-height:1.5;color:var(--ink-on-dark)}
.review .who{font-size:15px;color:var(--mute-on-dark)}
.review .who b{color:var(--ink-on-dark-2);font-weight:600}
.review-note{margin-top:calc(var(--gap-y) * .45);padding-top:28px;border-top:1px solid var(--line-on-dark);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center;color:var(--ink-on-dark-2)}
.review-note a{color:var(--orange);font-weight:600}
@media (max-width:860px){.reviews{grid-template-columns:1fr;gap:34px}}

/* pricing */
.pricing{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.price{font-size:clamp(40px,5.4vw,76px);font-weight:800;letter-spacing:-.04em;line-height:1}
.price small{display:block;font-size:clamp(16px,1.3vw,19px);font-weight:500;letter-spacing:0;color:var(--mute);margin-top:12px}
.guarantee{margin-top:36px;padding:28px;background:var(--black);color:var(--ink-on-dark);border-radius:var(--radius);display:grid;gap:8px}
.guarantee b{font-size:22px;letter-spacing:-.02em;font-weight:700}
.guarantee span{color:var(--ink-on-dark-2)}
@media (max-width:860px){.pricing{grid-template-columns:1fr;gap:34px}}

/* faq */
.faq-wrap{margin-top:var(--gap-y)}
.faq{margin-top:calc(var(--gap-y) * .4);border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:24px 0;font-size:clamp(18px,1.5vw,22px);font-weight:600;letter-spacing:-.015em;display:flex;justify-content:space-between;gap:24px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:28px;color:var(--orange);line-height:1;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 0 26px;color:var(--ink-2);max-width:66ch;line-height:1.6}

/* quote form */
.quote-wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.quote-side{display:grid;gap:22px}
.quote-side .big{font-size:clamp(24px,2.4vw,32px);font-weight:700;letter-spacing:-.02em}
.quote-side a.tel{color:var(--orange)}
.form{display:grid;gap:14px}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form label{display:grid;gap:8px;font-size:14px;font-weight:600;color:var(--ink-on-dark-2)}
.form input,.form select,.form textarea{width:100%;padding:15px 16px;border:1px solid var(--line-on-dark);background:var(--black-2);color:var(--ink-on-dark);border-radius:var(--radius);font:inherit;font-size:16px}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--orange);outline-offset:0;border-color:transparent}
.form textarea{min-height:120px;resize:vertical}
.form .btn{justify-self:start;margin-top:6px}
@media (max-width:860px){.quote-wrap{grid-template-columns:1fr;gap:34px}.form .two{grid-template-columns:1fr}}

/* footer */
.
/* ---------- service area pages ---------- */
.hero.sub{min-height:0}
.hero.sub .col{padding-bottom:calc(var(--gap-y) * .5)}
.tiles.three{grid-template-columns:repeat(3,1fr)}
.tiles.three .tile{aspect-ratio:16/9}
@media (max-width:640px){.tiles.three{grid-template-columns:repeat(2,1fr)}}
.crumbs{display:flex;justify-content:center;gap:10px;font-size:14px;color:var(--mute);margin-bottom:26px}
.crumbs a:hover{color:var(--orange)}
.two{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr;gap:34px}}
.facts{margin:0;display:grid;gap:14px;padding-top:6px}
.facts div{display:grid;grid-template-columns:150px 1fr;gap:16px;font-size:16px;padding-bottom:14px;border-bottom:1px solid var(--line-on-dark)}
.facts div:last-child{border-bottom:none}
.facts dt{color:var(--mute-on-dark);font-weight:500}
.facts dd{margin:0;color:var(--ink-on-dark)}
@media (max-width:860px){.facts div{grid-template-columns:1fr;gap:2px}}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px 40px;margin-top:calc(var(--gap-y) * .4)}
.svc{display:grid;gap:12px;align-content:start}
.svc-media{aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}
.svc-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.svc:hover .svc-media img{transform:scale(1.04)}
.svc:hover .h3{color:var(--orange)}
.svc .h3{transition:color .18s}
@media (max-width:860px){.svc-grid{grid-template-columns:1fr;gap:34px}}
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px;margin-top:calc(var(--gap-y) * .35)}
.areas a{display:block;padding:15px 0;border-bottom:1px solid var(--line);font-size:18px;font-weight:600;letter-spacing:-.01em}
.areas a:hover{color:var(--orange)}
.band.dark .areas a{border-bottom-color:var(--line-on-dark)}
@media (max-width:860px){.areas{grid-template-columns:1fr 1fr;gap:0 24px}}
@media (max-width:520px){.areas{grid-template-columns:1fr}}
.more{color:var(--orange);font-weight:600}
.area-list{display:grid;margin-top:calc(var(--gap-y) * .35);border-top:1px solid var(--line-on-dark)}
.area-row{display:grid;grid-template-columns:220px 1fr 160px;gap:24px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--line-on-dark);color:var(--ink-on-dark-2)}
.area-row b{font-size:20px;letter-spacing:-.015em;color:var(--ink-on-dark);transition:color .18s}
.area-row:hover b{color:var(--orange)}
.area-row .dist{text-align:right;color:var(--mute-on-dark);font-size:15px}
@media (max-width:860px){.area-row{grid-template-columns:1fr;gap:4px}.area-row .dist{text-align:left}}

/* ---------- inner pages ---------- */
.ba{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:822px;margin:calc(var(--gap-y) * .35) auto 0}
.ba figure{margin:0;position:relative}
.ba img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:6px;background:var(--paper-2);display:block}
.ba figcaption{position:absolute;left:10px;bottom:10px;font-size:12.5px;font-weight:600;color:#fff;background:rgba(11,18,26,.78);border-radius:999px;padding:5px 12px}
.ba-head{text-align:center}
.ba-head .h2,.ba-head .lede{margin-inline:auto}
.ba-cap{margin:12px auto 0;color:var(--ink-2);max-width:822px;font-size:15px;text-align:center}
.band.dark .ba-cap{color:var(--ink-on-dark-2)}
@media (max-width:640px){.ba{gap:8px}}
.spec{border-collapse:collapse;width:100%;min-width:760px;font-size:14.5px}
.spec th{text-align:left;font-size:13px;font-weight:700;color:var(--mute);padding:10px 14px;border-bottom:1px solid var(--line)}
.spec td{padding:14px 14px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink-2)}
.spec td b{display:block;color:var(--ink);font-weight:700}
.spec td span{display:block;font-size:13.5px;color:var(--mute);margin-top:2px}
a.more{color:var(--orange);font-weight:600}
a.more:hover{text-decoration:underline}
.grid.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:860px){.grid.four{grid-template-columns:repeat(2,1fr)}}
.steps{margin:0;padding:0;list-style:none;counter-reset:st;display:grid;gap:0;border-top:1px solid var(--line)}
.band.dark .steps{border-top-color:var(--line-on-dark)}
.steps li{counter-increment:st;display:grid;grid-template-columns:150px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);align-items:baseline}
.band.dark .steps li{border-bottom-color:var(--line-on-dark)}
.steps li b{font-size:17px;font-weight:700;letter-spacing:-.01em}
.steps li b::before{content:counter(st) ". ";color:var(--orange)}
.steps li span{color:var(--ink-2);font-size:15.5px}
.band.dark .steps li span{color:var(--ink-on-dark-2)}
@media (max-width:640px){.steps li{grid-template-columns:1fr;gap:4px}}
.swatches-lg{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:18px}
.swatch{margin:0;display:grid;gap:8px}
.swatch img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius);background:var(--paper-2)}
.swatch figcaption{font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
@media (max-width:1000px){.swatches-lg{grid-template-columns:repeat(4,1fr)}}
@media (max-width:560px){.swatches-lg{grid-template-columns:repeat(3,1fr);gap:8px}}
.facts a{color:var(--orange)}

footer{background:var(--black-2);color:var(--ink-on-dark-2);padding-block:56px;border-top:1px solid var(--line-on-dark);font-size:15px}
.footer .col{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}
.footer .brand{color:var(--ink-on-dark);margin-bottom:14px}
.footer h4{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--mute-on-dark);margin-bottom:12px}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.footer a:hover{color:var(--orange)}
.footer .legal{grid-column:1/-1;margin-top:26px;padding-top:22px;border-top:1px solid var(--line-on-dark);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--mute-on-dark);font-size:14px}
@media (max-width:860px){.footer .col{grid-template-columns:1fr}}
/* flake swatch hover: image grows 10% inside its frame */
.swatch .sw-img{overflow:hidden;border-radius:var(--radius);background:var(--paper-2);aspect-ratio:1/1}
.swatch .sw-img img{display:block;border-radius:0;height:100%;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.swatch:hover .sw-img img{transform:scale(1.10)}
.swatches .sw img{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.swatches .sw:hover img{transform:scale(1.10)}
@media (prefers-reduced-motion:reduce){.swatch:hover .sw-img img,.swatches .sw:hover img{transform:none}}
/* sticky step heading: the intro column rides along while the steps scroll */
.two:has(> .steps) > .stack{position:sticky;top:120px}
@media (max-width:860px){.two:has(> .steps) > .stack{position:static}}
/* same colour bands share one gap instead of stacking two */
.band.paper + .band.paper, .band.dark + .band.dark{padding-top:0}
