/* Peterson Cabinet Works staging. Fable 5 Web Design 2.0.3 (Route B).
   Brand tokens pulled from the LIVE site (rebuild law: keep the client's palette + fonts):
   gold #c7ab3d / #bf953f / #fcf6ba, black #000 + #161616 surfaces, white text, DM Serif Display + Poppins (+ Figtree UI). */
:root{
  --black:#000000; --bg:#0B0A09; --surface:#161616; --surface-2:#1E1B18; --card:#1C1917; --card-2:#242019;
  --white:#FFFFFF; --text:#FFFFFF; --text-2:#D9D2C5; --muted:#9B9B9B; --line:rgba(255,255,255,.12); --line-2:rgba(255,255,255,.24);
  --gold:#C7AB3D; --gold-deep:#BF953F; --gold-pale:#FCF6BA; --gold-glow:rgba(199,171,61,.38);
  --primary:#C7AB3D; --cta:#BF953F;
  --grad-gold:linear-gradient(161deg,#bf953f 0%,#fcf6ba 50%,#bf953f 100%);
  --grad-gold-text:linear-gradient(120deg,#bf953f 0%,#fcf6ba 45%,#c7ab3d 100%);
  --serif:'DM Serif Display',Georgia,"Times New Roman",serif; --sans:'Poppins',Helvetica,Arial,sans-serif; --ui:'Figtree',Helvetica,Arial,sans-serif;
  --r-lg:22px; --r-md:14px; --r-sm:8px; --r-pill:100px;
  --shadow-soft:0 10px 30px rgba(8,7,6,.35); --shadow-lift:0 30px 70px rgba(8,7,6,.55);
  --gutter:clamp(20px,4vw,56px); --max:1320px; --nav-h:92px;
  --sec:clamp(72px,9vw,120px); --sec-sm:clamp(48px,6vw,80px);
  --h-gap:clamp(12px,1.4vw,18px); --hero-gap:clamp(24px,3vw,40px); --img-gap:clamp(24px,3vw,40px); --cta-gap:20px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:1rem;line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;display:block} a{color:inherit;text-decoration:none} button{font:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.05;letter-spacing:-.01em;margin:0 0 var(--h-gap);color:var(--white)}
h1{font-size:clamp(2.5rem,5.4vw,4.8rem)} h2{font-size:clamp(2rem,3.8vw,3.2rem)} h3{font-size:clamp(1.35rem,2.1vw,1.8rem);line-height:1.15} h4{font-size:1.08rem;font-family:var(--sans);font-weight:600;line-height:1.35}
p{margin:0 0 1.05em;color:var(--text-2)} p:last-child{margin-bottom:0}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.pad{padding-block:var(--sec)} .pad-sm{padding-block:var(--sec-sm)}
.eyebrow{font-family:var(--ui);font-weight:800;font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:.9em;margin:0 0 18px}
.eyebrow::before{content:"";width:34px;height:2px;background:var(--gold);flex:none}
.eyebrow.center{justify-content:center} .eyebrow.center::before{display:none}
.ac{font-style:italic;font-weight:400}
.gtx{background:var(--grad-gold-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:clamp(1.05rem,1.4vw,1.2rem);color:var(--text-2);line-height:1.6}
.muted{color:var(--muted)} .small{font-size:.9rem}
.sec-head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:24px 56px;align-items:end;margin-bottom:clamp(36px,4vw,56px)}
.sec-head .lead{max-width:48ch} .sec-head .right{display:flex;flex-direction:column;gap:var(--cta-gap);align-items:flex-start}
.sec-head.center{grid-template-columns:1fr;text-align:center;justify-items:center}
/* buttons: live-site gold gradient, black text (primary); black outline (secondary) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;width:fit-content;padding:15px 28px;border-radius:var(--r-pill);font-family:var(--ui);font-weight:800;font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;border:2px solid transparent;cursor:pointer;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s,background .25s,color .25s;white-space:nowrap}
.btn svg{width:18px;height:18px;flex:none}
.btn-primary{background:var(--grad-gold);background-color:var(--gold);color:var(--black);border-color:var(--black);box-shadow:0 10px 26px rgba(199,171,61,.25)} .btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(199,171,61,.4)}
.btn-cta{background:var(--grad-gold);background-color:var(--cta);color:var(--black);border-color:var(--black);box-shadow:0 10px 26px rgba(199,171,61,.28)} .btn-cta:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(199,171,61,.45)}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.35);color:var(--white)} .btn-ghost:hover{border-color:var(--gold);color:var(--gold-pale)}
.btn-dark{background:var(--black);color:var(--gold);border-color:var(--gold)} .btn-dark:hover{background:#111;color:var(--gold-pale)}
.light .btn-ghost{border-color:rgba(0,0,0,.3);color:var(--black)} .light .btn-ghost:hover{border-color:var(--black)}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);pointer-events:none}
.btn:hover::after{transition:transform .8s;transform:translateX(120%)}
.link-arrow{display:inline-flex;align-items:center;gap:.5em;font-family:var(--ui);font-weight:800;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border-bottom:2px solid var(--gold);padding-bottom:3px;transition:gap .25s,color .25s} .link-arrow:hover{gap:.9em;color:var(--gold-pale)}
.light .link-arrow{color:var(--black);border-color:var(--gold)} .light .link-arrow:hover{color:var(--gold-deep)}
/* light band variant (white is in the brand palette) */
.light{background:var(--white);color:var(--black)} .light h1,.light h2,.light h3,.light h4{color:var(--black)} .light p,.light .lead{color:#3A3A3A} .light .muted{color:#6B6B6B} .light .eyebrow{color:var(--gold-deep)}
.bg-surface{background:var(--surface)} .bg-black{background:var(--black)} .bg-bg{background:var(--bg)}
.frame{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lift);border:1px solid var(--line);background:var(--card);padding:6px}
.frame img{border-radius:calc(var(--r-lg) - 6px);width:100%;height:100%;object-fit:cover}
.frame.gold{border-color:rgba(199,171,61,.55)}
.light .frame{background:#fff;border-color:rgba(0,0,0,.08);box-shadow:0 20px 50px rgba(0,0,0,.14)}
.ratio-4-3{aspect-ratio:4/3} .ratio-3-4{aspect-ratio:3/4} .ratio-16-10{aspect-ratio:16/10} .ratio-1-1{aspect-ratio:1/1} .ratio-21-9{aspect-ratio:21/9}
.pill{display:inline-flex;align-items:center;gap:.45em;font-family:var(--ui);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:var(--r-pill);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);color:#fff;backdrop-filter:blur(4px)}
.pill.gold{color:var(--gold-pale);border-color:rgba(199,171,61,.5)}
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad-gold);z-index:1200;pointer-events:none}
.skip{position:absolute;left:-999px;top:8px;background:#fff;color:#000;padding:8px 14px;z-index:2000} .skip:focus{left:8px}
/* ---------- HEADER ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-h);background:rgba(8,7,6,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:background .3s,border-color .3s}
.site-header.scrolled{background:rgba(8,7,6,.94);border-bottom-color:var(--line)}
.site-header .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1440px}
.logo{display:flex;align-items:center;height:100%;flex:none} .logo img{height:56px;width:auto}
.nav{display:flex;align-items:center;gap:2px;height:100%;margin:0;padding:0}
.nav>li{list-style:none;position:relative;height:100%;display:flex;align-items:center}
.nav ul{margin:0;padding:0}
.nav-link{display:inline-flex;align-items:center;gap:.35em;padding:10px 12px;font-family:var(--ui);font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:var(--r-pill);color:#fff;transition:color .2s;cursor:pointer;background:none;border:0;position:relative}
.nav-link::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav-link:hover::after,.has-dropdown.open>.nav-link::after,.nav-link.cur::after{transform:scaleX(1)}
.nav-link:hover,.has-dropdown.open>.nav-link{color:var(--gold-pale)}
.nav-link .chev{width:11px;height:11px;transition:transform .25s} .has-dropdown.open .chev{transform:rotate(180deg)}
.has-dropdown{position:relative}
.dropdown-panel{position:absolute;top:100%;left:0;min-width:300px;background:#0F0E0D;border:1px solid rgba(199,171,61,.35);border-radius:var(--r-md);box-shadow:var(--shadow-lift);padding:14px;display:grid;gap:14px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .22s,transform .22s,visibility .22s;z-index:50}
.has-dropdown.open>.dropdown-panel{opacity:1;visibility:visible;transform:none}
.dropdown-panel.mega{grid-template-columns:230px 1fr 1fr;min-width:760px;padding:16px}
.dropdown-panel.mega.two{grid-template-columns:230px 1fr;min-width:540px}
.dropdown-panel .feat{border-radius:var(--r-sm);overflow:hidden;position:relative;aspect-ratio:3/4;background:var(--surface)}
.dropdown-panel .feat img{width:100%;height:100%;object-fit:cover}
.dropdown-panel .feat span{position:absolute;left:12px;right:12px;bottom:12px;color:#fff;font-family:var(--serif);font-size:1.15rem;line-height:1.1;text-shadow:0 2px 10px rgba(0,0,0,.5);z-index:1}
.dropdown-panel .feat::after{content:"";position:absolute;inset:auto 0 0 0;height:55%;background:linear-gradient(to top,rgba(12,9,6,.4),transparent)}
.dd-col h5{margin:0 6px 6px;font-family:var(--ui);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--line);padding-bottom:6px}
.dd-col a{display:flex;align-items:center;min-height:44px;padding:8px 10px;border-radius:var(--r-sm);font-weight:500;font-size:.9rem;color:#fff;white-space:nowrap}
.dd-col a:hover{background:rgba(199,171,61,.12);color:var(--gold-pale)}
.dd-col a.all{color:var(--gold);font-weight:700}
.dd-cols{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}
.header-cta{display:flex;align-items:center;gap:10px;flex:none}
.phone-pill{display:inline-flex;align-items:center;gap:.55em;padding:12px 22px;border-radius:var(--r-pill);background:var(--grad-gold);background-color:var(--gold);color:var(--black);font-family:var(--ui);font-weight:800;font-size:.9rem;letter-spacing:.06em;white-space:nowrap;border:2px solid var(--black);box-shadow:0 8px 22px rgba(199,171,61,.3);transition:transform .2s,box-shadow .2s}
.phone-pill:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(199,171,61,.45)} .phone-pill svg{width:18px;height:18px;flex:none}
.burger{display:none;width:46px;height:46px;border-radius:50%;border:1px solid var(--line-2);background:transparent;align-items:center;justify-content:center;cursor:pointer;flex:none}
.burger span{display:block;width:20px;height:2px;background:#fff;position:relative} .burger span::before,.burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:#fff} .burger span::before{top:-6px} .burger span::after{top:6px}
.mobile-nav{display:none}
@media(max-width:1180px){
  .nav,.phone-pill .lbl{display:none} .burger{display:flex} .phone-pill{padding:12px 14px}
  .mobile-nav{display:block;position:absolute;top:100%;left:0;right:0;background:#0B0A09;border-bottom:1px solid var(--line);max-height:calc(100vh - var(--nav-h));overflow:auto;padding:12px var(--gutter) 28px;transform:translateY(-8px);opacity:0;visibility:hidden;transition:.25s;z-index:60;box-shadow:var(--shadow-lift)}
  body.menu-open .mobile-nav{opacity:1;visibility:visible;transform:none}
  .mobile-nav a,.mobile-nav button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:10px 6px;border:0;border-bottom:1px solid var(--line);background:none;font-weight:600;font-size:1rem;color:#fff;text-align:left}
  .mobile-nav .acc-panel{display:none;padding:4px 0 8px 14px} .mobile-nav .acc.open .acc-panel{display:block} .mobile-nav .acc-panel a{font-weight:400;font-size:.95rem;min-height:44px;color:var(--text-2)}
  .mobile-nav .acc button .chev{width:14px;height:14px;transition:.2s} .mobile-nav .acc.open button .chev{transform:rotate(180deg)}
}
@media(max-width:600px){:root{--nav-h:76px} .logo img{height:46px}}
/* ---------- HERO (layered parallax, 2.0.3): black copy panel left, bright photo bleeding right ---------- */
.hero{position:relative;padding-top:var(--nav-h);min-height:100svh;display:flex;align-items:center;isolation:isolate;overflow:hidden;background:var(--black)}
.hero .plane{will-change:transform}
.plane--back{position:absolute;inset:0;left:34%;z-index:0} .plane--back img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.plane--back::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000 0%,rgba(8,7,6,.9) 8%,rgba(8,7,6,.3) 24%,rgba(8,7,6,0) 40%)}
.hero-grid>*{min-width:0} .hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,460px);gap:clamp(28px,4vw,72px);align-items:center;width:100%;padding-block:clamp(40px,6vw,72px)}
.hero-copy{max-width:640px} .hero-copy h1{margin-bottom:var(--hero-gap);text-shadow:0 2px 24px rgba(0,0,0,.4)} .hero-copy .lead{margin-bottom:26px;max-width:52ch;color:#EDE7DA}
.bullets{list-style:none;margin:0 0 30px;padding:0;display:grid;gap:12px}
.bullets li{display:flex;gap:.8em;align-items:flex-start;font-weight:500;color:#F2EDE2} .bullets li::before{content:"";flex:none;width:12px;height:12px;margin-top:.5em;background:var(--grad-gold);transform:rotate(45deg);border-radius:2px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:26px}
.badge{display:inline-flex;align-items:center;gap:12px;padding:10px 16px 10px 12px;border-radius:var(--r-pill);background:rgba(255,255,255,.08);border:1px solid rgba(199,171,61,.4);backdrop-filter:blur(8px);font-size:.84rem;font-weight:500;color:#fff}
.badge .glyph{width:22px;height:22px;flex:none;color:var(--gold)} .badge .glyph svg{width:100%;height:100%;display:block}
.plane--mid{position:absolute;z-index:1;left:33%;bottom:8%;width:18%;max-width:250px;aspect-ratio:3/4;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-lift);border:4px solid rgba(255,255,255,.9);-webkit-mask-image:linear-gradient(to top,transparent,#000 18%);mask-image:linear-gradient(to top,transparent,#000 18%)}
.plane--mid img{width:100%;height:100%;object-fit:cover}
.plane--front{position:absolute;z-index:3;right:-2%;bottom:-7%;width:25%;max-width:330px;aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-lift);border:5px solid rgba(255,255,255,.92);pointer-events:none;opacity:.96}
.plane--front img{width:100%;height:100%;object-fit:cover}
@media(max-width:1180px){.hero-grid{grid-template-columns:1fr;padding-top:46svh;gap:36px} .plane--back{inset:auto;left:0;right:0;top:var(--nav-h);height:50svh;position:absolute;width:100%} .plane--back::after{background:linear-gradient(to top,#000 0%,rgba(8,7,6,0) 30%)} .plane--back img{object-position:center} .plane--mid,.plane--front{display:none} .hero{min-height:0}}
@media(max-width:600px){.hero-grid{padding-top:42svh} .plane--back{height:46svh;min-height:300px}}
/* ---------- LEAD FORM (glass card on the photo, live-site pattern) ---------- */
.lead-form{position:relative;background:rgba(10,9,8,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#fff;border-radius:24px;padding:clamp(22px,2.6vw,32px);box-shadow:0 0 0 1px rgba(199,171,61,.55),0 0 26px rgba(199,171,61,.22),0 0 80px rgba(199,171,61,.18),0 30px 60px rgba(0,0,0,.5)}
.lead-form h3{font-size:clamp(1.35rem,1.9vw,1.6rem);margin-bottom:6px;color:#fff} .lead-form .sub{font-size:.86rem;color:var(--text-2);margin-bottom:18px}
.lead-form label{display:block;font-family:var(--ui);font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-pale);margin-bottom:5px}
.lead-form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.lead-form input[type=text],.lead-form input[type=tel],.lead-form input[type=email],.lead-form textarea,.lead-form select{width:100%;padding:12px 14px;border:1px solid rgba(255,255,255,.28);border-radius:10px;background:rgba(255,255,255,.08);font:inherit;font-size:.92rem;color:#fff;transition:border-color .2s,box-shadow .2s}
.lead-form input::placeholder,.lead-form textarea::placeholder{color:rgba(255,255,255,.55)}
.lead-form input:focus,.lead-form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(199,171,61,.25)}
.capsules{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 14px}
.capsule{padding:8px 13px;border-radius:var(--r-pill);border:1.5px solid rgba(255,255,255,.3);background:rgba(255,255,255,.06);color:#fff;font-family:var(--ui);font-weight:700;font-size:.8rem;cursor:pointer;position:relative;overflow:hidden;transition:.2s;user-select:none}
.capsule:hover{border-color:var(--gold)} .capsule.on{background:var(--grad-gold);border-color:transparent;color:var(--black);transform:scale(1.04);box-shadow:0 6px 16px rgba(199,171,61,.4)}
.capsule .rip{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);pointer-events:none}
.hint{font-size:.76rem;color:var(--muted);margin:0 0 4px} .picked{font-size:.78rem;color:var(--gold-pale);font-weight:600;min-height:1.2em;margin-bottom:8px}
.capsules.shake{animation:shake .4s}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.74rem;color:var(--muted);line-height:1.45;margin:10px 0 14px} .consent input{margin-top:3px;flex:none;accent-color:var(--gold)}
.lead-form .btn{width:100%} .trust{font-size:.76rem;color:var(--muted);text-align:center;margin-top:12px}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-ok{display:none;margin-top:14px;padding:16px;border-radius:14px;background:rgba(199,171,61,.14);border:1px solid rgba(199,171,61,.5);color:var(--gold-pale);font-weight:500;font-size:.9rem} .form-ok.show{display:block}
/* ---------- FACT BAND (bridges hero into the page) ---------- */
.factband{position:relative;z-index:4;margin-top:-36px}
.factband .wrap>div{background:var(--grad-gold);color:var(--black);border-radius:var(--r-lg);padding:26px clamp(20px,3vw,44px);display:grid;grid-template-columns:repeat(4,1fr);gap:18px 28px;box-shadow:var(--shadow-lift);border:2px solid var(--black)}
.fact{display:flex;gap:14px;align-items:flex-start} .fact svg{width:30px;height:30px;flex:none;color:var(--black)} .fact b{display:block;font-family:var(--serif);font-weight:400;font-size:1.25rem;line-height:1.1;margin-bottom:4px;color:var(--black)} .fact span{font-size:.84rem;color:#2B2609}
@media(max-width:1000px){.factband .wrap>div{grid-template-columns:1fr 1fr}} @media(max-width:560px){.factband .wrap>div{grid-template-columns:1fr;gap:16px}}
/* ---------- TESTIMONIALS ---------- */
.testi{overflow:hidden}
.testi-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:32px}
.testi-track{display:flex;gap:22px;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.review-card{flex:0 0 min(420px,86vw);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px;box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:14px;position:relative}
.review-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad-gold);border-radius:var(--r-lg) var(--r-lg) 0 0}
.review-card .q{font-family:var(--serif);font-style:italic;font-size:1.22rem;line-height:1.4;color:#fff;flex:1}
.review-card .q::before{content:"\201C";font-size:3.2rem;line-height:0;color:var(--gold);vertical-align:-.45em;margin-right:.1em;font-style:normal}
.review-card .who{display:flex;gap:12px;align-items:center} .review-card .av{width:44px;height:44px;border-radius:50%;background:var(--grad-gold);color:var(--black);display:grid;place-items:center;font-family:var(--serif);font-size:1.15rem;flex:none}
.review-card .who b{display:block;font-size:.95rem;color:#fff} .review-card .who span{font-size:.8rem;color:var(--muted)}
.review-card .src{font-family:var(--ui);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:800}
.review-card .stars{color:var(--gold);letter-spacing:.08em}
.testi-nav{display:flex;gap:10px} .carousel-nav{width:46px;height:46px;border-radius:50%;border:1px solid var(--line-2);background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer;transition:.2s} .carousel-nav:hover{border-color:var(--gold);color:var(--gold-pale)} .carousel-nav:disabled{opacity:.3;cursor:default} .carousel-nav svg{width:18px;height:18px}
.light .carousel-nav{color:#000;border-color:rgba(0,0,0,.25)}
.testi-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:40px;align-items:center}
.testi-split .frame{aspect-ratio:4/5}
@media(max-width:1000px){.testi-split{grid-template-columns:1fr} .testi-split .frame{aspect-ratio:16/10}}
/* ---------- BENTO / CARDS ---------- */
.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:270px;gap:18px}
.bcard{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--surface);display:block;box-shadow:var(--shadow-soft);isolation:isolate;border:1px solid var(--line)}
.bcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)} .bcard:hover img{transform:scale(1.05)}
.bcard .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(12,9,6,.9) 0%,rgba(12,9,6,.62) 38%,rgba(12,9,6,.18) 70%,rgba(12,9,6,.08) 100%)}
.bcard .body{position:absolute;left:0;right:0;bottom:0;padding:22px 24px;color:#fff;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.bcard .body .eyebrow{color:var(--gold-pale);margin:0} .bcard .body .eyebrow::before{background:var(--gold)}
.bcard h3{color:#fff;margin:0;font-size:clamp(1.35rem,2vw,1.9rem)} .bcard p{color:rgba(255,255,255,.86);font-size:.9rem;margin:0;max-width:40ch}
.bcard .pills{display:flex;gap:6px;flex-wrap:wrap} .bcard .link-arrow{color:#fff;border-color:var(--gold)}
.span-7{grid-column:span 7} .span-5{grid-column:span 5} .span-4{grid-column:span 4} .span-6{grid-column:span 6} .span-8{grid-column:span 8} .span-3{grid-column:span 3} .row-2{grid-row:span 2}
@media(max-width:1000px){.bento{grid-template-columns:repeat(6,1fr);grid-auto-rows:220px} .span-7,.span-5,.span-4,.span-8,.span-6{grid-column:span 3} .span-3{grid-column:span 3} .row-2{grid-row:span 1}}
@media(max-width:600px){.bento{grid-template-columns:1fr;grid-auto-rows:230px} .bento>*{grid-column:auto!important;grid-row:auto!important}}
/* ---------- DRAGGABLE CAROUSEL (project types) ---------- */
.carousel{position:relative}
.carousel-track{display:flex;gap:clamp(16px,1.8vw,24px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;cursor:grab;user-select:none;padding:6px 2px 18px;scrollbar-width:none;overscroll-behavior-x:contain}
.carousel-track::-webkit-scrollbar{display:none} .carousel-track.dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.carousel-track a,.carousel-track img{-webkit-user-drag:none;user-drag:none}
.dcard{scroll-snap-align:start;flex:0 0 auto;width:clamp(280px,32vw,400px);height:clamp(340px,46vh,470px);position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-soft);display:block;isolation:isolate;background:var(--surface);border:1px solid var(--line)}
.dcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)} .dcard:hover img{transform:scale(1.05)}
.dcard .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(12,9,6,.84) 0%,rgba(12,9,6,.3) 45%,rgba(12,9,6,0) 70%)}
.dcard .num{position:absolute;top:16px;left:16px;font-family:var(--ui);font-size:.7rem;font-weight:800;letter-spacing:.16em;color:#fff;background:rgba(12,9,6,.45);border:1px solid rgba(255,255,255,.25);padding:6px 11px;border-radius:var(--r-pill);backdrop-filter:blur(6px)}
.dcard .body{position:absolute;left:0;right:0;bottom:0;padding:24px;color:#fff;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.dcard h3{color:#fff;margin:0} .dcard p{color:rgba(255,255,255,.86);font-size:.9rem;margin:0} .dcard .link-arrow{color:#fff;border-color:var(--gold)}
.dc-lab{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}
@media(max-width:600px){.dcard{width:82vw}}
/* ---------- CARD STACK (process story) ---------- */
.cardstack{--cs-top:112px;--cs-peek:24px;--cs-h:clamp(440px,66vh,620px);max-width:1080px;margin-inline:auto;padding-inline:var(--gutter)}
.cardstack__card{position:sticky;top:calc(var(--cs-top) + var(--i)*var(--cs-peek));height:var(--cs-h);margin-bottom:clamp(34px,5vh,60px);border-radius:var(--r-lg);overflow:hidden;transform-origin:50% 0%;box-shadow:var(--shadow-lift);background:var(--surface);will-change:transform;display:grid;grid-template-columns:1.1fr .9fr;isolation:isolate;border:1px solid rgba(199,171,61,.3)}
.cardstack__card:last-child{margin-bottom:0}
.cardstack__card::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--grad-gold);z-index:3}
.cardstack__media{position:relative;overflow:hidden} .cardstack__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cardstack__body{padding:clamp(26px,4vw,52px);color:#fff;display:flex;flex-direction:column;justify-content:center;gap:14px;background:var(--surface)}
.cardstack__num{font-family:var(--serif);font-size:3.2rem;line-height:1;color:var(--gold)}
.cardstack__title{font-size:clamp(1.7rem,3vw,2.6rem);margin:0;color:#fff} .cardstack__desc{color:var(--text-2);max-width:46ch;margin:0}
.cardstack__pills{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:760px){.cardstack{--cs-top:86px;--cs-peek:16px;--cs-h:clamp(500px,80vh,640px)} .cardstack__card{grid-template-columns:1fr;grid-template-rows:42% 1fr} .cardstack__body{padding:22px} .cardstack__num{font-size:2.2rem}}
/* ---------- MARQUEE (styles) ---------- */
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);padding-block:6px}
.mq-track{display:flex;gap:18px;width:max-content}
.mq-tile{width:clamp(220px,22vw,320px);aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;position:relative;flex:none;box-shadow:var(--shadow-soft);border:1px solid var(--line)}
.mq-tile img{width:100%;height:100%;object-fit:cover} .mq-tile span{position:absolute;left:14px;bottom:12px;color:#fff;font-family:var(--serif);font-size:1.15rem;text-shadow:0 2px 12px rgba(0,0,0,.6);z-index:1}
.mq-tile::after{content:"";position:absolute;inset:auto 0 0 0;height:50%;background:linear-gradient(to top,rgba(12,9,6,.42),transparent)}
.marquee+.marquee{margin-top:18px}
@media(prefers-reduced-motion:no-preference){.mq-track{animation:mq 46s linear infinite} .marquee.rev .mq-track{animation-direction:reverse} .marquee:hover .mq-track{animation-play-state:paused}}
@keyframes mq{to{transform:translateX(-50%)}}
/* ---------- WORKSHOP BAND (mouse glow) ---------- */
.workshop{position:relative;overflow:hidden;background:var(--black)}
.workshop .glow{position:absolute;width:680px;height:680px;border-radius:50%;background:radial-gradient(circle,rgba(199,171,61,.22),transparent 60%);pointer-events:none;transform:translate(-50%,-50%);left:30%;top:40%;z-index:0}
.workshop .wrap{position:relative;z-index:1}
.ws-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:44px;padding-top:36px;border-top:1px solid rgba(199,171,61,.3)}
.stat b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,3.6vw,3.2rem);line-height:1;background:var(--grad-gold-text);-webkit-background-clip:text;background-clip:text;color:transparent} .stat span{font-size:.8rem;color:var(--text-2);line-height:1.4;display:block;margin-top:6px}
.vs{display:grid;gap:0;margin-top:22px} .vs div{display:grid;grid-template-columns:170px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:.94rem} .vs div b{color:var(--gold-pale);font-family:var(--serif);font-weight:400;font-size:1.05rem} .vs div span{color:var(--text-2)}
@media(max-width:1000px){.ws-grid{grid-template-columns:1fr} .stats{grid-template-columns:1fr 1fr}} @media(max-width:520px){.vs div{grid-template-columns:1fr;gap:4px}}
/* ---------- SPLIT / ABOUT ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.split.rev>.media{order:2}
.split .media{position:relative} .split .media .frame{aspect-ratio:4/5} .split .media .frame.wide{aspect-ratio:4/3}
.split .media .tag{position:absolute;left:-14px;bottom:26px;background:var(--black);border:1px solid rgba(199,171,61,.5);border-radius:var(--r-md);padding:14px 18px;box-shadow:var(--shadow-lift);max-width:240px} .split .media .tag b{display:block;font-family:var(--serif);font-weight:400;font-size:1.25rem;line-height:1.1;color:var(--gold-pale)} .split .media .tag span{font-size:.8rem;color:var(--text-2)}
.light .split .media .tag{background:#fff;border-color:rgba(0,0,0,.1)} .light .split .media .tag b{color:var(--black)} .light .split .media .tag span{color:#555}
.split .copy>.btn,.split .copy>.link-arrow{margin-top:var(--cta-gap)}
.checks{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px} .checks li{display:flex;gap:12px;align-items:flex-start;color:var(--text-2)} .checks li svg{width:22px;height:22px;flex:none;color:var(--gold);margin-top:2px}
.light .checks li{color:#333} .light .checks li svg{color:var(--gold-deep)}
@media(max-width:900px){.split{grid-template-columns:1fr} .split.rev>.media{order:0} .split .media .tag{left:12px}}
/* ---------- TILES (areas) ---------- */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.tile{position:relative;aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;display:block;box-shadow:var(--shadow-soft);isolation:isolate;border:1px solid var(--line)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s} .tile:hover img{transform:scale(1.06)}
.tile::after{content:"";position:absolute;inset:auto 0 0 0;height:60%;background:linear-gradient(to top,rgba(12,9,6,.76),transparent)}
.tile .tbody{position:absolute;left:16px;right:16px;bottom:14px;z-index:1;display:flex;flex-direction:column;gap:4px} .tile h4,.tile .t{color:#fff;font-family:var(--serif);font-weight:400;font-size:1.3rem;margin:0;line-height:1.1}
.tile h4 a{color:#fff}
.tile .sub{color:var(--gold-pale);font-family:var(--ui);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800}
@media(max-width:1000px){.tiles{grid-template-columns:repeat(3,1fr)}} @media(max-width:640px){.tiles{grid-template-columns:repeat(2,1fr);gap:12px} .tile h4,.tile .t{font-size:1.1rem}}
/* ---------- ACCORDION FAQ ---------- */
.faq-list{display:grid;gap:12px}
.faq-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;transition:box-shadow .25s,border-color .25s} .faq-item.open{box-shadow:var(--shadow-soft);border-color:rgba(199,171,61,.55)}
.light .faq-item{background:#fff;border-color:rgba(0,0,0,.1)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;background:none;border:0;text-align:left;cursor:pointer;min-height:56px;color:inherit}
.faq-q h3,.faq-q h4{margin:0;font-family:var(--serif);font-weight:400;font-size:1.15rem;line-height:1.25;color:inherit}
.faq-q .chev{width:26px;height:26px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;flex:none;transition:transform .3s,background .3s;color:inherit} .faq-q .chev svg{width:12px;height:12px} .faq-item.open .chev{transform:rotate(180deg);background:var(--gold);border-color:var(--gold);color:#000}
.light .faq-q .chev{border-color:rgba(0,0,0,.25)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.2,.7,.2,1)} .faq-a>div{overflow:hidden} .faq-item.open .faq-a{grid-template-rows:1fr} .faq-a p{padding:0 22px 20px;margin:0;font-size:.95rem}
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:start}
.faq-grid .sticky{position:sticky;top:calc(var(--nav-h) + 24px)}
@media(max-width:900px){.faq-grid{grid-template-columns:1fr} .faq-grid .sticky{position:static}}
.jumpnav{position:sticky;top:var(--nav-h);z-index:20;background:rgba(11,10,9,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:12px 0}
.jumpnav .wrap{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none} .jumpnav a{flex:none;padding:8px 14px;border-radius:var(--r-pill);border:1px solid var(--line-2);font-family:var(--ui);font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:#fff} .jumpnav a.active,.jumpnav a:hover{background:var(--grad-gold);color:#000;border-color:transparent}
.faq-sec{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:40px;align-items:start;padding-block:var(--sec-sm);border-bottom:1px solid var(--line)}
.faq-sec .frame{aspect-ratio:4/5;position:sticky;top:calc(var(--nav-h) + 80px)}
@media(max-width:900px){.faq-sec{grid-template-columns:1fr} .faq-sec .frame{aspect-ratio:16/10;position:static}}
/* ---------- CTA BAND ---------- */
.cta-band{position:relative;overflow:hidden;isolation:isolate;background:var(--black)}
.cta-band>img{position:absolute;inset:0;height:100%;object-fit:cover;z-index:0;left:28%;width:72%}
.cta-band .wash{position:absolute;inset:0;background:linear-gradient(90deg,#000 0%,#000 30%,rgba(8,7,6,.85) 40%,rgba(8,7,6,.3) 54%,rgba(8,7,6,0) 68%);z-index:1}
.cta-band .wrap{position:relative;z-index:2} .cta-band .inner{max-width:600px;padding-block:var(--sec)}
.cta-band .actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:var(--cta-gap)}
@media(max-width:800px){.cta-band>img{left:0;width:100%;opacity:.55} .cta-band .wash{background:linear-gradient(90deg,rgba(8,7,6,.92),rgba(8,7,6,.72))}}
/* ---------- PAGE HERO (inner pages) ---------- */
.page-hero{padding-top:calc(var(--nav-h) + clamp(36px,5vw,64px));padding-bottom:0;background:var(--black)}
.crumbs{display:flex;flex-wrap:wrap;gap:6px;font-family:var(--ui);font-size:.78rem;color:var(--muted);margin-bottom:18px;list-style:none;padding:0} .crumbs li+li::before{content:"\203A";margin:0 8px 0 2px;color:var(--gold)} .crumbs a:hover{color:var(--gold-pale)}
.page-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,4vw,64px);align-items:end}
.page-hero .sub{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(1.2rem,2vw,1.6rem);color:var(--gold-pale);margin-bottom:22px;line-height:1.3}
.page-hero .banner{aspect-ratio:16/10;border-radius:var(--r-lg) var(--r-lg) 0 0;overflow:hidden;box-shadow:var(--shadow-lift);border:1px solid var(--line);border-bottom:0} .page-hero .banner img{width:100%;height:100%;object-fit:cover}
.page-hero .banner.full{grid-column:1/-1;aspect-ratio:21/8;margin-top:32px}
@media(max-width:900px){.page-hero-grid{grid-template-columns:1fr} .page-hero .banner{border-radius:var(--r-lg)}}
.prose{max-width:66ch}
.feature-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:12px} .feature-list li{display:flex;gap:12px;align-items:flex-start;color:var(--text-2)} .feature-list li::before{content:"";flex:none;width:10px;height:10px;margin-top:.55em;background:var(--grad-gold);transform:rotate(45deg);border-radius:2px} .feature-list li span{flex:1} .feature-list b{color:#fff;font-weight:600}
.light .feature-list li{color:#333} .light .feature-list b{color:#000}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--shadow-soft);position:relative;overflow:hidden}
.step .n{font-family:var(--serif);font-size:2.4rem;color:var(--gold);line-height:1;margin-bottom:12px} .step h3{font-size:1.3rem} .step p{font-size:.94rem;margin:0}
.step::after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(199,171,61,.22),transparent 65%)}
@media(max-width:800px){.steps{grid-template-columns:1fr}}
.two-col>*,.split>*,.contact-grid>*,.faq-grid>*,.ws-grid>*{min-width:0} .two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:center} @media(max-width:900px){.two-col{grid-template-columns:1fr}}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px} .gallery-grid a{display:block;aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-soft);position:relative;border:1px solid var(--line)} .gallery-grid a img{width:100%;height:100%;object-fit:cover;transition:transform .7s} .gallery-grid a:hover img{transform:scale(1.05)}
.gallery-grid a.tall{grid-row:span 2;aspect-ratio:auto}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}} @media(max-width:520px){.gallery-grid{grid-template-columns:1fr} .gallery-grid a.tall{grid-row:auto;aspect-ratio:4/3}}
.lightbox{position:fixed;inset:0;background:rgba(8,7,6,.95);z-index:3000;display:none;align-items:center;justify-content:center;padding:24px} .lightbox.on{display:flex} .lightbox img{max-width:min(1400px,94vw);max-height:88vh;border-radius:12px;box-shadow:var(--shadow-lift)} .lightbox button{position:absolute;top:18px;right:18px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:#fff;font-size:1.4rem;cursor:pointer}
.lightbox .lb-prev,.lightbox .lb-next{top:50%;transform:translateY(-50%);right:auto;left:18px} .lightbox .lb-next{left:auto;right:18px}
/* ---------- MESH MODULES ---------- */
.mesh{border-top:1px solid var(--line);background:var(--bg)}
.mesh-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.mesh-col h3{font-family:var(--ui);font-weight:800;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}
.mesh-col h4{margin:0;font-family:var(--sans);font-weight:400;font-size:.9rem;line-height:1.3} .mesh-col h4 a{display:block;padding:7px 0;color:var(--text-2);transition:color .2s,padding-left .2s} .mesh-col h4 a:hover{color:var(--gold-pale);padding-left:6px} .mesh-col h4 a.cur{color:var(--gold);font-weight:600}
@media(max-width:900px){.mesh-grid{grid-template-columns:1fr 1fr}} @media(max-width:520px){.mesh-grid{grid-template-columns:1fr}}
/* ---------- CONTACT ---------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
.nap{display:grid;gap:14px} .nap-item{display:flex;gap:16px;align-items:flex-start;padding:18px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md)} .nap-item svg{width:24px;height:24px;flex:none;color:var(--gold)} .nap-item b{display:block;font-family:var(--ui);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:4px} .nap-item a:hover{color:var(--gold-pale)}
.hours{width:100%;border-collapse:collapse} .hours td{padding:9px 0;border-bottom:1px solid var(--line);font-size:.94rem;color:var(--text-2)} .hours td:last-child{text-align:right;font-weight:600;color:#fff} .hours tr.today td{color:var(--gold-pale);font-weight:700} .hours tr.today td:first-child::after{content:" (today)";font-size:.72rem;color:var(--gold)}
.map{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-soft);border:1px solid var(--line);aspect-ratio:16/9;background:var(--surface)} .map iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
/* ---------- FOOTER ---------- */
.site-footer{background:var(--black);color:var(--text-2);padding:var(--sec) 0 32px;position:relative;overflow:hidden;border-top:1px solid rgba(199,171,61,.25)}
.site-footer::before{content:"";position:absolute;left:-200px;top:-200px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(199,171,61,.16),transparent 65%);pointer-events:none}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:44px;position:relative}
.site-footer h4,.site-footer h5{color:var(--gold);font-family:var(--ui);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;margin:0 0 16px;font-weight:800}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px} .site-footer li a{color:var(--text-2);transition:color .2s;font-size:.94rem} .site-footer li a:hover{color:var(--gold-pale)}
.site-footer .stacked{height:150px;width:auto;margin-bottom:18px}
.site-footer address{font-style:normal;line-height:1.7;font-size:.94rem} .site-footer address a:hover{color:var(--gold-pale)}
.foot-bottom{margin-top:48px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.8rem;color:var(--muted)}
.foot-bottom a:hover{color:var(--gold-pale)}
.site-footer .phone-pill{margin-top:14px}
@media(max-width:1000px){.foot-grid{grid-template-columns:1fr 1fr}} @media(max-width:560px){.foot-grid{grid-template-columns:1fr;gap:32px}}
.area-list{columns:2;gap:24px} .area-list li{break-inside:avoid}
/* ---------- REVEALS + MOTION ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)} .reveal.visible{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s} .reveal.d2{transition-delay:.2s} .reveal.d3{transition-delay:.3s} .reveal.d4{transition-delay:.4s}
.words .ac-group{white-space:nowrap}
.words .w{display:inline-block;opacity:0;transform:translateY(.4em);transition:opacity .55s cubic-bezier(.2,.7,.2,1),transform .55s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * 45ms)}
.words.in .w,.words.visible .w{opacity:1;transform:none} .words .w.ac{transition-delay:calc(var(--i) * 45ms + 120ms)}
.rise{opacity:0;transform:translateY(18px)} @media(prefers-reduced-motion:no-preference){.rise{animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards} .rise.d1{animation-delay:.25s} .rise.d2{animation-delay:.4s} .rise.d3{animation-delay:.55s} .rise.d4{animation-delay:.7s} .rise.d5{animation-delay:.85s}}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
@media(prefers-reduced-motion:no-preference){.lead-form{animation:breathe 4.5s ease-in-out infinite}}
@keyframes breathe{50%{box-shadow:0 0 0 1px rgba(199,171,61,.7),0 0 34px rgba(199,171,61,.3),0 0 104px rgba(199,171,61,.26),0 30px 60px rgba(0,0,0,.5)}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal,.rise,.words .w{opacity:1!important;transform:none!important} .hero .plane{transform:none!important} .plane--mid,.plane--front{display:none}
  .cardstack__card{position:relative;top:auto;margin-bottom:24px;transform:none!important;filter:none!important}
  .mq-track{animation:none!important} .testi-track{transition:none}
}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tick{display:inline-flex;align-items:center;gap:.5em;font-size:.86rem;font-weight:500;color:var(--text-2)} .tick svg{width:18px;height:18px;color:var(--gold)}
.gold-rule{height:1px;background:linear-gradient(90deg,transparent,rgba(199,171,61,.6),transparent)}
@media(max-width:600px){.btn,.lead-form .btn,.phone-pill{white-space:normal;text-align:center;line-height:1.3} .hero-ctas .btn{width:100%} :root{--sec:56px;--sec-sm:44px;--h-gap:10px;--hero-gap:26px;--img-gap:18px;--cta-gap:16px} body{font-size:.96rem} .sec-head{grid-template-columns:1fr;gap:16px} .lead-form .row{grid-template-columns:1fr} .stats{grid-template-columns:1fr 1fr}}

/* lazy map embeds (CDN policy: iframe loads only on intent) */
.map{position:relative} .map .map-load{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--surface);color:var(--text-2);cursor:pointer;border:0;font:inherit} .map .map-load svg{width:36px;height:36px;color:var(--gold)} .map.loaded .map-load{display:none}

/* V2: bright work, quiet framing. PCW brand, editorial composition. */
:root{--paper:#F2F0E9;--paper-ink:#24221E;--r-lg:6px;--r-md:4px;--r-sm:3px;--sec:clamp(72px,8vw,116px)}
:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.instagram-link{display:inline-grid;place-items:center;flex:none;width:40px;height:44px;color:var(--gold-pale)}
.instagram-link svg{width:21px;height:21px}.site-footer .instagram-link{margin-top:18px}
.site-header{background:#080808}.header-cta{gap:10px}.nav{gap:clamp(10px,1.2vw,20px)}
.hero-v2{display:block;min-height:0;overflow:clip;background:#080808;padding-top:var(--nav-h)}
.hero-layout{display:grid;grid-template-columns:minmax(0,46%) minmax(0,54%);width:100%;align-items:stretch}
.hero-v2 .hero-copy{padding:clamp(38px,4.3vw,68px) clamp(28px,4vw,64px);max-width:none;position:relative;z-index:2;background:#080808}
.hero-v2 .hero-copy h1{font-size:clamp(2.7rem,4.4vw,4.3rem);line-height:1.02;letter-spacing:-.035em;text-shadow:none;margin-bottom:26px}
.hero-v2 .hero-copy .lead{font-size:clamp(.94rem,1.07vw,1.06rem);line-height:1.7;margin-bottom:24px}
.hero-v2 .eyebrow{font-size:.66rem;letter-spacing:.2em;margin-bottom:24px}
.hero-v2 .bullets{font-size:.84rem;gap:10px;margin-bottom:28px}.hero-v2 .bullets li::before{width:7px;height:7px;margin-top:.6em}
.hero-v2 .hero-ctas{gap:12px;margin-bottom:24px}.hero-v2 .btn{font-size:.72rem;padding:15px 20px;letter-spacing:.1em}
.hero-v2 .badge{font-size:.73rem;line-height:1.6;border-radius:0;padding:14px 0;background:none;border:0;border-top:1px solid #37332A;backdrop-filter:none;max-width:430px}
.hero-stage{position:relative;min-width:0;overflow:hidden;background:#181713;isolation:isolate}
.hero-landscape{position:absolute;inset:0;overflow:hidden}.hero-landscape picture,.hero-landscape img{display:block;width:100%;height:100%}.hero-landscape img{object-fit:cover;object-position:52% center}
@media(prefers-reduced-motion:no-preference){[data-hero=a] .hero-landscape img{animation:hero-push 18s ease-out both}}
@keyframes hero-push{from{transform:scale(1.14) translateX(-1%)}to{transform:scale(1) translateX(0)}}
.hero-films{position:absolute;right:26px;bottom:82px;width:clamp(140px,15vw,216px)}
.loop-frame{margin:0;position:relative;aspect-ratio:3/4;overflow:hidden;border:1px solid rgba(199,171,61,.7);background:#191816;isolation:isolate}
.loop-frame>img,.loop-frame>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.loop-frame>img{z-index:-1}.loop-frame>video{z-index:0}
.loop-frame figcaption{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px;background:#151412;color:#F2F0E9;font:600 .65rem var(--ui);letter-spacing:.025em;z-index:2}
.motion-toggle{color:var(--gold-pale);border:0;border-bottom:1px solid currentColor;background:transparent;padding:4px;cursor:pointer;font:inherit;min-height:28px}
.hero-films .loop-frame{aspect-ratio:9/16;box-shadow:0 12px 34px #0004;border:3px solid var(--paper)}
[data-hero=a] .hero-films .loop-warm-kitchen{display:none}
[data-hero=b] .hero-layout{grid-template-columns:46% 54%}[data-hero=b] .hero-stage{background:#171613;padding:65px 30px}
[data-hero=b] .hero-landscape{display:none}[data-hero=b] .hero-films{position:relative;inset:auto;width:100%;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:22px;height:100%}
[data-hero=b] .hero-films .loop-frame{border:1px solid var(--gold);box-shadow:none;aspect-ratio:9/16;transform:translateY(var(--film-y,0px))}
[data-hero=b] .hero-films .loop-warm-kitchen{margin-top:120px;aspect-ratio:4/5}
.quote-band{background:var(--paper);color:var(--paper-ink);border-bottom:1px solid #D9D5C9}
.quote-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(40px,8vw,112px);align-items:start}
.quote-story h2{color:var(--paper-ink);font-size:clamp(2.2rem,3.6vw,3.6rem);max-width:17ch;margin-bottom:30px}
.quote-story .eyebrow,.featured-project .eyebrow{color:#75601B}.quote-story p{color:#514C42}
.consult-steps{list-style:none;counter-reset:step;padding:0;margin:0;display:grid;gap:22px}.consult-steps li{counter-increment:step;padding-left:48px;position:relative}
.consult-steps li::before{content:"0" counter(step);position:absolute;left:0;top:0;color:#8D7732;font:400 1.5rem var(--serif)}
.consult-steps h3{color:var(--paper-ink);font-size:1.4rem;margin-bottom:8px}.consult-steps p{font-size:.88rem;line-height:1.75}
.quote-detail{margin-top:30px;border-top:1px solid #D5D0C1;padding-top:24px}.quote-detail img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.quote-form-host{padding-top:20px;min-width:0}.quote-band .lead-form{background:#181715;border-radius:6px;padding:clamp(24px,3vw,40px);box-shadow:0 0 0 1px #C7AB3D77,0 10px 60px #C7AB3D33,0 24px 55px #0002}
.quote-band .lead-form h3{color:#fff;font-size:1.8rem}.quote-band .lead-form .sub{color:var(--text-2);margin-bottom:24px}.quote-band .lead-form .hint,.quote-band .lead-form .trust{color:#BBB4A5}
.factband{margin:0;background:var(--paper);padding:0 0 40px}.factband .wrap>div{box-shadow:none;background:transparent;border:0;border-bottom:1px solid #D5D0C1;border-radius:0;padding:24px 0 36px}.fact b{font-size:1.18rem}.fact span{color:#514C42}.fact svg{width:24px;height:24px}
.featured-project{background:var(--paper);color:var(--paper-ink);padding-top:48px}.featured-project h2{color:var(--paper-ink);font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.05;letter-spacing:-.03em}.feature-heading{margin-bottom:52px}.feature-heading em{color:#827037}
.feature-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(36px,6vw,86px);align-items:start}.feature-media{position:relative;padding-bottom:120px}.feature-media>img{width:100%;aspect-ratio:4/5;object-fit:cover}.feature-loop{width:38%;position:absolute;right:-20px;bottom:0;border:8px solid var(--paper)}.feature-loop .loop-frame{aspect-ratio:9/16}
.feature-story{padding-top:18px}.featured-project p{color:#4A463C}.feature-story .lead{font-size:1rem}.editorial-number{display:block;font:700 .65rem var(--ui);letter-spacing:.13em;color:#75601B;margin-bottom:24px}.detail-list{list-style:none;margin:20px 0 30px;padding:0;border-top:1px solid #CEC8B8}.detail-list li{border-bottom:1px solid #D9D3C5;padding:10px 0;font-size:.86rem}.detail-list li::before{content:"+";color:#827037;margin-right:18px}
.feature-story blockquote{margin:24px 0 30px;font:italic 1.6rem/1.35 var(--serif)}cite{display:block;font:600 .68rem/1.5 var(--ui);letter-spacing:.12em;text-transform:uppercase;margin-top:16px}.actions{display:flex;gap:18px;align-items:flex-start;flex-direction:column}.btn-ink{background:#20201B;color:#fff;white-space:normal}.btn-ink:hover{background:#3A3526}.text-link{display:inline-flex;align-items:center;gap:10px;padding:8px 0;border:0;border-bottom:1px solid #A89140;background:none;color:inherit;cursor:pointer;font:700 .84rem/1.5 var(--ui);text-align:left}.text-link svg{width:24px;height:24px;flex:none}
.craft-story{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(36px,7vw,96px);align-items:center;padding-bottom:64px;border-bottom:1px solid var(--line);margin-bottom:64px}.craft-story h2{font-size:clamp(2.5rem,4.3vw,4rem);max-width:17ch}.craft-story .loop-frame{aspect-ratio:4/5;max-height:650px}.craft-note{border-left:1px solid var(--gold);padding-left:24px;margin-top:36px}.craft-note p{font-size:.95rem}.original-details{margin-top:48px}.original-details>div{display:grid;grid-template-columns:1fr 1fr;gap:24px}.original-details img{width:100%;height:220px;object-fit:cover}
.testimony-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:stretch}.testimony-film{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:28px;align-items:center}.testimony-film .reel-meta{display:none}.testimony-film blockquote{margin:0 0 20px;font:italic 1.45rem/1.3 var(--serif)}.credit{font-size:.7rem}.testi-window{overflow:hidden;min-width:0}.testi-window .review-card{flex-basis:100%;box-shadow:none;min-height:340px}.testi-window .testi-track{height:100%}
.media-section{background:#10100F;border-top:1px solid #323026}.media-section .sec-head h2{max-width:19ch}.reel-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.reel-controls>div{display:flex;gap:8px}.reel-controls button{height:44px;width:44px;border:1px solid #625B43;background:none;color:var(--gold-pale);cursor:pointer}.reel-controls button:disabled{opacity:.35}.reel-controls .small{font-size:.76rem;color:#AAA497}
.reel-rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 66px)/4);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#A38A36 #28251D;padding-bottom:22px;overscroll-behavior-x:contain}
.reel-card{display:block;min-width:0;scroll-snap-align:start;padding:0;background:none;border:0;color:#fff;text-align:left;cursor:pointer}.reel-image{display:block;position:relative;aspect-ratio:9/14;overflow:hidden;background:#25231D}.reel-image>img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.reel-card:hover img{transform:scale(1.035)}.reel-play{position:absolute;bottom:14px;left:14px;width:42px;height:42px;border-radius:50%;background:#14130F;color:var(--gold-pale);padding:6px}.reel-play svg{width:100%;height:100%}.reel-meta{display:grid;gap:8px;padding:16px 0;font:400 1.2rem/1.2 var(--serif)}.reel-meta small{font:600 .63rem var(--ui);text-transform:uppercase;letter-spacing:.11em;color:#BDB5A4}
.room-loops{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;margin:40px 0}.room-loops .loop-frame{max-height:520px;aspect-ratio:4/5}.room-loops .loop-frame:only-child{width:100%;max-width:600px;aspect-ratio:4/3}.instagram-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:40px 0}.instagram-photos img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.media-dialog{width:min(1060px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:24px;background:#171614;color:#fff;border:1px solid #9E8944;overflow:auto}.media-dialog::backdrop,.photo-dialog::backdrop{background:#000000}.player-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:20px}.player-toolbar button,.photo-dialog button{height:44px;min-width:44px;padding:8px 14px;border:1px solid #706950;color:#fff;background:#22201B;cursor:pointer}.player-toolbar [data-player-close]{margin-left:auto}.player-toolbar [data-player-count]{font-size:.8rem;padding:0 10px}.player-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.75fr);gap:40px;align-items:center}.player-stage{min-width:0;display:flex;justify-content:center;background:#070707}.player-stage video,.player-stage img{width:100%;max-height:72dvh;object-fit:contain}.player-copy h2{font-size:2.3rem}.player-copy p{font-size:.9rem}.player-copy a{display:inline-block;color:var(--gold-pale);border-bottom:1px solid;margin-bottom:24px}.player-transcript{border-top:1px solid #544D3B;padding-top:18px}.player-transcript summary{cursor:pointer;color:var(--gold-pale);margin-bottom:16px}.player-transcript p{max-height:220px;overflow:auto;white-space:pre-line}.player-transcript[hidden]{display:none}.photo-dialog{width:min(1200px,96vw);max-height:94dvh;border:1px solid var(--gold);padding:16px;background:#151412;color:#fff}.photo-dialog img{margin:12px auto;max-height:76dvh;object-fit:contain}.photo-dialog nav{display:flex;gap:12px;justify-content:center}.photo-dialog p{text-align:center;font-size:.82rem}
/* Real photographs remain bright, with captions on their own solid surfaces. */
.dcard,.bcard{height:auto;border-radius:3px;box-shadow:none;display:flex;flex-direction:column}.dcard img,.bcard>img{position:relative;inset:auto;width:100%;height:280px;object-fit:cover}.dcard .scrim,.bcard .scrim{display:none}.dcard .body,.bcard .body{position:relative;inset:auto;padding:24px;background:var(--surface);flex:1}.dcard .num{background:#14130F;border:0;border-radius:0}.bento{grid-auto-rows:auto;align-items:stretch}.bento .row-2{grid-row:span 1}.bento .span-7{grid-column:span 7}.bento .span-5{grid-column:span 5}.bento .row-2>img{height:360px}.bcard .body p{max-width:55ch}.mq-tile{aspect-ratio:auto;box-shadow:none}.mq-tile img{height:220px}.mq-tile span{position:static;display:block;padding:14px;background:#191816;text-shadow:none}.mq-tile::after{display:none}.marquee{mask-image:none;-webkit-mask-image:none}
.cta-band{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.cta-band>img{position:relative;inset:auto;grid-column:2;grid-row:1;width:100%;height:100%;min-height:420px;object-fit:cover;opacity:1}.cta-band .wash{display:none}.cta-band>.wrap{grid-column:1;grid-row:1;margin:0;width:100%}.cta-band .inner{max-width:none}.page-hero .banner{border-radius:2px;border:0;box-shadow:none}.page-hero-grid{gap:clamp(32px,6vw,88px)}.page-hero h1{font-size:clamp(2.6rem,4.7vw,4.5rem);letter-spacing:-.03em}.review-card{box-shadow:none}.frame{box-shadow:none}.tile::after{display:none}.tile .tbody{background:#171614}
@media(min-width:701px) and (max-width:1100px){.hero-layout,[data-hero=b] .hero-layout{grid-template-columns:50% 50%}.hero-v2 .hero-copy{padding:40px 28px}.hero-v2 .hero-copy h1{font-size:2.65rem}.hero-films{right:18px;width:150px}[data-hero=b] .hero-stage{padding:40px 18px}[data-hero=b] .hero-films{gap:12px}.quote-grid{gap:38px}.testimony-grid{grid-template-columns:1fr}.testi-window .review-card{flex-basis:calc(50% - 11px)}.feature-grid{gap:38px}}
@media(max-width:1200px){.header-cta .instagram-link{width:30px}.nav{gap:10px}}
@media(max-width:700px){
 :root{--gutter:24px;--nav-h:76px}.hero-layout,[data-hero=b] .hero-layout{display:flex;flex-direction:column}.hero-stage{order:0;height:280px;flex:none}[data-hero=a] .hero-stage{height:46svh;min-height:340px;max-height:440px}.hero-v2 .hero-copy{order:1;padding:28px 24px 36px}.hero-v2 .hero-copy h1{font-size:clamp(2.05rem,8.8vw,2.6rem);line-height:1.04;letter-spacing:-.025em;margin-bottom:24px}.hero-v2 .eyebrow{font-size:.6rem;margin-bottom:14px;letter-spacing:.18em}.hero-v2 .hero-copy .lead{font-size:.93rem}.hero-v2 .bullets{font-size:.84rem}.hero-v2 .hero-ctas .btn{width:auto}.hero-v2 .hero-ctas .btn-primary{width:100%}.hero-v2 .badge{font-size:.73rem}.hero-landscape{display:none}.hero-films{inset:0;width:100%;height:100%;position:absolute}.hero-films .loop-frame{width:100%;height:100%;aspect-ratio:auto;border:0;box-shadow:none}.hero-films .loop-frame img,.hero-films .loop-frame video{object-position:center 43%}[data-hero=a] .hero-films .loop-frame img,[data-hero=a] .hero-films .loop-frame video{object-position:50% 40%}.hero-films figcaption{display:none}
 [data-hero=b] .hero-stage{order:1;height:250px;padding:0 24px 24px;background:#080808}[data-hero=b] .hero-copy{order:0;display:contents}[data-hero=b] .hero-copy>.eyebrow{order:-3;padding:30px 24px 0;margin-bottom:14px}[data-hero=b] .hero-copy>h1{order:-2;padding:0 24px;margin-bottom:24px}[data-hero=b] .hero-copy>.lead{order:2;padding:28px 24px 0;margin-bottom:20px}[data-hero=b] .hero-copy>.bullets{order:3;padding:0 24px}[data-hero=b] .hero-copy>.hero-ctas{order:4;padding:0 24px}[data-hero=b] .hero-copy>.badge{order:5;margin:0 24px 28px;max-width:none}[data-hero=b] .hero-films{display:grid;position:static;grid-template-columns:1fr 1fr;gap:12px}[data-hero=b] .hero-films .loop-frame{height:100%;margin:0;aspect-ratio:auto;transform:none}
 .quote-grid,.feature-grid,.craft-story,.testimony-grid{grid-template-columns:1fr;gap:36px}.quote-band{padding-block:52px}.quote-story h2{font-size:2.35rem;max-width:none}.consult-steps{gap:22px}.quote-form-host{padding-top:0}.quote-band .lead-form{padding:24px}.quote-band .lead-form h3{font-size:1.6rem}.factband{padding-bottom:12px}.factband .wrap>div{grid-template-columns:1fr 1fr;gap:24px 18px}.fact{display:block}.fact svg{margin-bottom:12px}.fact b{font-size:1.07rem}.fact span{font-size:.75rem;line-height:1.5}.featured-project{padding-top:42px}.featured-project h2{font-size:2.6rem}.feature-heading{margin-bottom:30px}.feature-media{padding-bottom:90px}.feature-loop{right:0;width:42%;border-width:5px}.feature-media>img{aspect-ratio:4/5}.feature-story{padding-top:0}.feature-story blockquote{font-size:1.5rem}.craft-story{padding-bottom:40px;margin-bottom:40px}.craft-story h2{font-size:2.5rem}.craft-story .loop-frame{aspect-ratio:4/3}.craft-note{padding-left:18px;margin-top:24px}.craft-note .btn{font-size:.72rem;padding:14px}.original-details img{height:170px}.testimony-film{gap:20px;grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}.testimony-film blockquote{font-size:1.18rem}.testimony-film .text-link{font-size:.75rem}.testi-window .review-card{flex-basis:100%}.testimony-grid{gap:30px}.reel-rail{grid-auto-columns:72%;gap:16px}.reel-controls .small{max-width:22ch}.room-loops{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.room-loops .loop-frame{aspect-ratio:3/4}.room-loops .loop-frame:only-child{grid-column:1/-1;max-width:none}.room-loops figcaption{padding:8px;font-size:.57rem}.instagram-photos{grid-template-columns:1fr 1fr;gap:14px}.player-grid{grid-template-columns:1fr;gap:24px}.media-dialog{padding:16px}.player-stage video,.player-stage img{max-height:55dvh}.player-copy h2{font-size:1.8rem}.player-toolbar{gap:6px}.player-toolbar button{padding:8px}.player-copy .eyebrow{font-size:.6rem}.cta-band{grid-template-columns:1fr}.cta-band>img{grid-column:1;grid-row:1;min-height:0;height:260px}.cta-band>.wrap{grid-row:2}.cta-band .inner{padding-block:48px}.bento>*{grid-column:auto!important}.bento{grid-template-columns:1fr;grid-auto-rows:auto}.bcard>img,.bento .row-2>img{height:250px}.dcard{width:82vw}.dcard img{height:260px}.original-details>div{gap:14px}
}
@media(prefers-reduced-motion:reduce){.hero-landscape img,.hero-films .loop-frame{animation:none!important;transform:none!important}.motion-toggle{display:none}.loop-frame video{display:none}.hero-v2 .words .w{opacity:1;transform:none}.reel-card img{transition:none}.reel-rail{scroll-behavior:auto}}

.hero-motion-control{position:absolute;top:18px;right:18px;z-index:4;display:grid;place-items:center;width:44px;height:44px;border:1px solid #D6C891;border-radius:50%;padding:10px;background:#171614;color:#FCF6BA;cursor:pointer}.hero-motion-control svg{width:22px;height:22px}.hero-motion-control .motion-play-icon{display:none}.hero-motion-control[aria-pressed=true] .motion-pause-icon{display:none}.hero-motion-control[aria-pressed=true] .motion-play-icon{display:block}.motion-paused .hero-landscape img{animation-play-state:paused}.motion-paused .mq-track{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.hero-motion-control{display:none}}
/* Captions sit outside the photograph on every linked tile. */
.tile{aspect-ratio:auto;box-shadow:none;display:flex;flex-direction:column}.tile img{position:relative;height:180px;object-fit:cover}.tile .tbody{position:relative;inset:auto;padding:18px;flex:1}.dropdown-panel .feat{display:flex;flex-direction:column;aspect-ratio:auto}.dropdown-panel .feat img{height:220px}.dropdown-panel .feat span{position:static;display:block;padding:16px;background:var(--surface);text-shadow:none}.dropdown-panel .feat::after{display:none}.faq-a .btn{margin:0 22px 22px;max-width:calc(100% - 44px);white-space:normal}
@media(max-width:700px){.tile img{height:140px}.tile .tbody{padding:12px}.player-toolbar{position:sticky;top:-16px;background:#171614;z-index:2;padding-block:8px}}
@media(min-width:1181px){.nav{gap:2px}.nav-link{padding-inline:9px;font-size:.76rem}.header-cta .phone-pill{padding-inline:17px}}

/* Home services: complete rows at each breakpoint. */
#services .bento{grid-template-columns:1fr;grid-auto-rows:auto}
#services .bento>.bcard{grid-column:1/-1!important;grid-row:auto!important}
#services .bento>.bcard>img{height:280px}
@media(min-width:640px) and (max-width:1023px){
 #services .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
 #services .bento>.bcard{grid-column:span 1!important}
 #services .bento>.bcard:last-child{grid-column:1/-1!important}
}
@media(min-width:1024px){
 #services .bento{grid-template-columns:repeat(6,minmax(0,1fr))}
 #services .bento>.bcard{grid-column:span 2!important}
 #services .bento>.bcard:nth-child(n+4){grid-column:span 3!important}
}
@media(max-width:639px){#services .bento>.bcard>img{height:250px}}

/* Compact motion blocks fill the desktop row; smaller layouts retain their stacking. */
@media(min-width:1024px){
 #instagram[data-loop-count="1"]>.wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:40px;align-items:start}
 #instagram[data-loop-count="1"]>.wrap>*{grid-column:1/-1;min-width:0}
 #instagram[data-loop-count="1"] .sec-head{grid-column:1;grid-row:1;grid-template-columns:1fr;align-items:start;gap:24px;margin:0}
 #instagram[data-loop-count="1"] .room-loops{grid-column:2;grid-row:1;grid-template-columns:minmax(0,1fr);margin:0 0 40px}
 #instagram[data-loop-count="1"] .loop-frame{justify-self:end;width:100%;max-width:calc(560px * var(--loop-aspect));max-height:560px;aspect-ratio:var(--loop-aspect)}
 /* Ratios match the supplied media dimensions, including the cropped films. */
 #instagram .loop-flagship-storage,#instagram .loop-rift-oak-hutch,#instagram .loop-walnut-pantry{--loop-aspect:720 / 1280}
 #instagram .loop-warm-kitchen{--loop-aspect:720 / 900}
 #instagram .loop-shop-craft{--loop-aspect:720 / 960}
 #instagram .loop-great-room{--loop-aspect:720 / 806}
 #instagram .loop-media-wall{--loop-aspect:720 / 860}
 #instagram .loop-soft-close{--loop-aspect:720 / 720}
 #instagram[data-loop-count="2"] .room-loops{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Reserved lazy-media cells keep their tile tone before the image arrives. */
.reel-image,.loop-frame:has(>img[loading="lazy"]),img[loading="lazy"][src^="assets/ig/"]{background:var(--card)}

/* V3: film, project archive, client stories and the workshop journal. */
.dropdown-panel.compact{min-width:230px;padding:14px;left:0;right:auto}.dropdown-panel.compact a{display:block;padding:12px 14px;min-height:44px}
@media(min-width:1101px){.site-header>.wrap{max-width:1600px;gap:18px}.nav{gap:0}.nav-link{padding:12px 9px;font-size:12px;white-space:nowrap}.site-header .logo{flex-shrink:0}.header-cta{gap:10px}.header-cta .phone-pill .lbl{display:none}.header-cta .phone-pill{width:44px;height:44px;padding:10px}}
.mobile-nav .mobile-sub{padding-left:32px;font-size:14px}
.hero.hero-v3{display:block;position:relative;padding:0;isolation:isolate;width:100%;height:100svh;min-height:640px;max-height:1000px;background:var(--paper);overflow:clip}
.v3-hero-frame{position:absolute;inset:0;overflow:hidden;transform:scale(var(--hero-scale,1));border-radius:var(--hero-radius,0px);transform-origin:50% 50%;will-change:transform}
.v3-hero-media{position:absolute;inset:-12px;transform:translate3d(var(--pointer-media-x,0px),var(--pointer-media-y,0px),0);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.v3-hero-media picture,.v3-hero-media img,.v3-hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.v3-hero-media video{opacity:0;transition:opacity .5s}.v3-hero-media video.is-playing{opacity:1}
.v3-hero-content{position:relative;z-index:2;display:flex;align-items:center;max-width:1440px;height:100%;margin:auto;padding:calc(var(--nav-h) + 24px) 5vw 32px;pointer-events:none}
.hero-v3 .v3-hero-copy{pointer-events:auto;position:relative;width:min(570px,47vw);max-width:none;background:rgba(242,240,233,.96);padding:clamp(24px,2.6vw,42px);border:1px solid rgba(255,255,255,.7);color:#24221e;border-radius:4px;box-shadow:0 16px 70px #19171318;transform:translate3d(var(--pointer-copy-x,0px),var(--pointer-copy-y,0px),0);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.hero-v3 .hero-copy h1{font-size:clamp(35px,3.65vw,55px);line-height:1.06;letter-spacing:-.035em;text-shadow:none;margin:0 0 20px;color:#24221e}
.hero-v3 .hero-copy .lead{font-size:15px;line-height:1.65;color:#34312b;margin-bottom:18px}
.hero-v3 .eyebrow{font-size:11px;letter-spacing:.14em;margin-bottom:16px;color:#514620}
.hero-v3 .bullets{font-size:13px;gap:8px;margin-bottom:20px;color:#34312b}.hero-v3 .bullets li::before{background:#776422}
.hero-v3 .hero-ctas{gap:10px;flex-wrap:wrap;margin-bottom:18px}.hero-v3 .btn{font-size:11px;padding:13px 17px;letter-spacing:.05em}.hero-v3 .btn-ghost{color:#24221e;border-color:#655d48;background:transparent}
.hero-v3 .badge{display:flex;align-items:center;color:#34312b;font:inherit;font-size:12px;line-height:1.5;text-align:left;max-width:100%;padding:12px 0 0;border:0;border-top:1px solid #a69e89;background:none;border-radius:0;cursor:pointer;backdrop-filter:none}.hero-v3 .badge svg{flex-shrink:0;color:#6b591e}.hero-v3 .badge:hover{text-decoration:underline}
/* v4 (2026-10-06): ?hero=b now shows the v3 left panel unchanged, for side-by-side comparison with the narrative hero (variant A). The old centered variant was retired. */
.v3-intro{padding:calc(var(--nav-h) + 54px) 0 56px;background:linear-gradient(180deg,#171512,var(--bg))}.v3-intro h1{max-width:1100px;font-size:clamp(42px,5.8vw,82px);line-height:1.04;letter-spacing:-.025em}.v3-intro .lead{max-width:78ch;margin:28px 0 0}.v3-crumbs{margin-bottom:34px;font-size:12px;color:var(--muted)}.v3-crumbs ol{display:flex;flex-wrap:wrap;gap:8px 12px;list-style:none;padding:0}.v3-crumbs li+li:before{content:'›';margin-right:12px;color:var(--gold)}.v3-crumbs a:hover{color:var(--gold-pale)}
.v3-section-head{margin-bottom:36px;max-width:800px}.v3-section-head p{margin-top:16px}.v3-split{display:grid;grid-template-columns:1fr 1.3fr;gap:64px;align-items:center}.v3-founder{background:var(--paper);color:var(--paper-ink)}.v3-founder .lead{color:#4a463f;margin-top:24px}.v3-founder .eyebrow{color:#756124}
.yt-facade{width:100%;min-width:0}.yt-facade>button{display:block;width:100%;padding:0;border:0;background:var(--card);color:inherit;text-align:left;cursor:pointer;font:inherit}.yt-picture{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--card)}.yt-picture img{width:100%;height:100%;object-fit:cover;transition:transform .55s}.yt-facade>button:hover .yt-picture img{transform:scale(1.025)}.yt-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:68px;height:68px;padding:14px;display:grid;place-items:center;border-radius:50%;color:#24221e;background:#f2f0e9ed;box-shadow:0 6px 24px #0003}.yt-play svg{width:100%;height:100%}.yt-caption{display:flex;justify-content:space-between;gap:20px;padding:18px 20px;color:#f2f0e9;line-height:1.45;font-size:14px}.yt-caption>span:last-child{flex-shrink:0;color:var(--gold-pale);font-variant-numeric:tabular-nums}.yt-facade iframe{display:block;width:100%;aspect-ratio:16/9;border:0}.yt-short .yt-picture,.yt-short iframe{aspect-ratio:9/16}.yt-facade.is-active{background:#000}.yt-facade.is-active .yt-caption{display:none}
.client-story{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(32px,5vw,80px);align-items:center;border-top:1px solid var(--line);padding:42px 0}.client-story-copy h3{font-size:28px;line-height:1.2}.client-story-copy blockquote{font-family:var(--serif);font-size:clamp(24px,2.3vw,34px);line-height:1.35;margin:24px 0}.client-story-copy .eyebrow{line-height:1.7;letter-spacing:.07em}.shorts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 24px}.shorts-grid article>p{margin-top:12px}.v3-shorts{background:var(--surface)}.v3-form-wrap{max-width:760px}.testimony-film .yt-facade{max-width:none}.media-dialog.youtube-mode{width:min(1180px,calc(100vw - 32px))}.youtube-mode .player-grid{grid-template-columns:minmax(0,1.7fr) minmax(240px,1fr)}.youtube-mode .player-stage{aspect-ratio:16/9;min-height:0;align-self:start}.youtube-mode .player-stage iframe{width:100%;height:100%;border:0}.youtube-mode.youtube-short .player-stage{aspect-ratio:9/16;max-height:75vh}.youtube-mode [data-player-instagram]{display:none}
.gallery-intro{padding-bottom:34px}.gallery-intro h1{max-width:none}.gallery-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.gallery-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 26px}.gallery-card{min-width:0}.gallery-card>a{display:block}.gallery-card img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .6s;background:var(--card)}.gallery-card>a:hover img{transform:translateY(-5px)}.gallery-card-copy{padding:22px 0 12px;border-bottom:1px solid #5c5135;display:grid;grid-template-columns:1fr auto;gap:14px}.gallery-card h2{font-size:clamp(24px,2.1vw,32px);grid-column:1/-1}.gallery-card-copy>span{font-size:13px}.gallery-card-copy .link-arrow{justify-self:end}.gallery-project{padding-bottom:48px}.justified-gallery{display:grid;gap:14px}.gallery-row{display:flex;gap:14px}.gallery-row>a{flex:var(--ratio) 1 0;min-width:0;display:block;aspect-ratio:var(--ratio);overflow:hidden;background:var(--card)}.gallery-row img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s}.gallery-row a:hover img{transform:scale(1.025)}.project-navigation{display:flex;justify-content:space-between;gap:28px;align-items:center;padding-block:40px;border-top:1px solid var(--line)}.project-navigation a{font-family:var(--serif);font-size:22px}.project-navigation small{display:block;font-family:var(--sans);font-size:12px;color:var(--gold);margin-bottom:8px}.v3-gallery-close{background:var(--paper);color:var(--paper-ink);text-align:center}.v3-gallery-close .btn{margin-top:28px}.gallery-archive{border-top:1px solid var(--line)}.photo-dialog .photo-stage{touch-action:pan-y}
.rate-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:34px 0 20px}.rate-card{padding:28px 24px;border:1px solid #655536;background:linear-gradient(145deg,#28231a,var(--card));border-radius:6px}.rate-number{font-family:var(--serif);font-size:34px;line-height:1.15;color:var(--gold-pale);min-height:112px}.rate-card h3{font-family:var(--sans);font-size:17px;line-height:1.5;margin:22px 0 10px}.rate-card>p:last-child{font-size:14px}.rate-note{font-size:14px}.v3-calculator{background:var(--paper);color:var(--paper-ink)}.calculator-panel{border:1px solid #c8beaa;background:#faf9f5;border-radius:8px;overflow:hidden;box-shadow:0 18px 60px #3930230c}.calculator-inputs{padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:16px 38px}.calculator-inputs>label{grid-column:1;font-weight:600}.amount-input{display:flex;align-items:center;border-bottom:2px solid #8f762f;grid-column:1;gap:12px}.amount-input>span{font-size:32px}.amount-input input{width:100%;border:0;background:transparent;border-radius:0;color:#24221e;padding:12px 0;font:inherit;font-size:24px;box-shadow:none}.amount-input input::placeholder{font-size:14px;color:#6d6557}.quick-picks{display:flex;flex-wrap:wrap;gap:8px;grid-column:1}.quick-picks button,.topic-filters button{min-height:44px;border:1px solid #9d927c;border-radius:999px;background:transparent;color:inherit;padding:8px 15px;font:inherit;font-size:13px;cursor:pointer}.quick-picks button:hover{background:#e8e1cf}.term-options{border:0;padding:0;grid-column:2;grid-row:1/4;display:flex;align-content:start;align-items:start;flex-wrap:wrap;gap:10px}.term-options legend{font-weight:600;margin-bottom:20px}.term-options label{cursor:pointer;position:relative}.term-options input{position:absolute;opacity:0;width:100%;height:100%}.term-options span{display:block;border:1px solid #9d927c;border-radius:4px;padding:12px 18px;min-height:44px;font-size:14px}.term-options input:checked+span{background:#24221e;color:#faf9f5;border-color:#24221e}.term-options input:focus-visible+span{outline:3px solid #8f762f;outline-offset:3px}#amount-status{grid-column:1/-1;font-size:14px;min-height:24px}#amount-status a{text-decoration:underline}.table-scroll{overflow-x:auto;max-width:100%}.finance-table{width:100%;border-collapse:collapse;font-size:14px;min-width:710px;color:#24221e;font-variant-numeric:tabular-nums}.finance-table th,.finance-table td{text-align:left;padding:22px 24px;border-top:1px solid #d4cbb9}.finance-table thead{background:#e8e2d4;font-size:12px}.finance-table th label{display:flex;align-items:center;gap:12px;cursor:pointer;max-width:240px}.finance-table input{accent-color:#746020;flex:none;width:18px;height:18px}.finance-table tr:has(input:checked){background:#f0eadb}.finance-table [data-monthly]{font-weight:700;font-size:22px}.calculator-footer{padding:28px 32px;display:grid;gap:18px}.calculator-footer p{max-width:90ch;font-size:14px}.calculator-footer button{justify-self:start}.calculator-footer button:disabled{opacity:.45;cursor:not-allowed}.formula-box{margin-top:28px;padding:28px;border-left:2px solid #9a812f}.formula-box h3{font-size:23px;margin-bottom:12px}.formula-box p{font-size:14px;line-height:1.8}.finance-faq .wrap{max-width:900px}.finance-answer{padding:30px 0;border-bottom:1px solid var(--line)}.finance-answer h3{font-size:25px;margin-bottom:14px}.fine-print{background:var(--surface)}.fine-print p{font-size:14px;line-height:1.85;margin-top:18px;max-width:110ch}
.topic-links{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 56px}.topic-links a{border-bottom:1px solid var(--gold);padding:12px 20px 12px 0;margin-right:18px}.blog-hub-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:60px;align-items:start}.topic-filters{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0}.topic-filters button[aria-pressed=true]{background:var(--gold-pale);color:#24221e}.blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 24px}.blog-card[hidden]{display:none}.blog-card>a{display:block}.blog-card img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:50% 40%;background:var(--card)}.blog-card>a>div{padding:24px 0;border-bottom:1px solid var(--line)}.blog-card h4{font-family:var(--serif);font-size:27px;line-height:1.22;letter-spacing:0;text-transform:none;color:var(--text);margin:12px 0 18px}.blog-card .link-arrow{margin-top:18px;font-size:13px}.topic-posts{margin-top:38px;grid-template-columns:repeat(3,minmax(0,1fr))}.author-bio{padding:28px;background:#242018;border:1px solid #5e5137;border-radius:6px}.author-bio>img{width:96px;height:96px;border-radius:50%;object-fit:cover;margin-bottom:22px}.author-bio h3{font-size:29px}.author-role{color:var(--gold-pale);font-size:12px;margin:10px 0 18px}.author-bio>p:not(.author-role){font-size:13px;line-height:1.9;color:#ddd7cc}.author-socials{display:flex;flex-direction:column;gap:15px;margin-top:24px}.author-socials a{display:flex;align-items:center;gap:12px;font-size:11px}.author-socials svg{width:20px;height:20px;fill:currentColor;flex-shrink:0}
.post-shell{padding-top:calc(var(--nav-h) + 42px);padding-bottom:90px}.post-layout{display:grid;grid-template-columns:minmax(0,800px) 300px;gap:36px 64px;align-items:start}.post-heading{grid-column:1;grid-row:1}.post-heading h1{font-size:clamp(36px,4.5vw,60px);line-height:1.1;letter-spacing:-.02em}.post-layout>.author-bio{grid-column:2;grid-row:1/3;position:sticky;top:calc(var(--nav-h) + 24px)}.post-body{grid-column:1;grid-row:2;min-width:0;font-size:17px;line-height:1.9;color:#e0dcd4}.post-body>img:first-child{width:100%;height:auto;margin:0 0 36px}.post-body p{margin:0 0 24px}.post-body h2{font-size:36px;line-height:1.2;margin:58px 0 26px;color:var(--text)}.post-body h3{font-size:26px;line-height:1.3;margin:36px 0 20px;color:var(--text)}.post-body img{display:block;max-width:100%;height:auto;margin:26px 0;border-radius:3px}.post-body a:not(.blog-card a){text-decoration:underline;text-underline-offset:4px;color:var(--gold-pale)}.post-body ul,.post-body ol{padding-left:24px;margin:24px 0}.post-body li{padding-left:5px;margin:10px 0}.post-body .yt-facade{margin:28px 0 36px}.post-body .yt-picture img{height:100%;margin:0}.post-byline{display:flex;align-items:center;gap:16px;margin-top:26px;font-size:12px;line-height:1.6}.post-byline>img{width:48px;height:48px;border-radius:50%}.post-byline>div{display:flex;gap:6px 16px;flex-wrap:wrap}.post-byline a:first-child{flex-basis:100%;color:var(--gold-pale)}.blog-related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.blog-related .blog-card h4{font-size:20px}.blog-related .blog-card .eyebrow{font-size:10px}.blog-related .blog-card img{margin:0}.more-posts{margin:56px 0}.post-body .more-posts h2{margin-top:36px}
@media(max-width:1100px){.rate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rate-number{min-height:78px}.post-layout,.blog-hub-layout{grid-template-columns:minmax(0,1fr) 260px;gap:32px}.gallery-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shorts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-v3 .v3-hero-copy{width:min(560px,62vw)}.v3-split{gap:32px}.topic-posts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){
 .hero.hero-v3{height:auto;min-height:100svh;max-height:none}.hero-v3 .v3-hero-frame{bottom:auto;height:100svh}.v3-hero-content,[data-hero=b] .v3-hero-content{height:auto;align-items:flex-start;justify-content:center;padding:calc(var(--nav-h) + max(40svh,340px)) 18px 18px}.hero-v3 .v3-hero-copy,[data-hero=b] .hero-v3 .v3-hero-copy{width:100%;padding:22px;display:block;text-align:left;border-radius:4px}.hero-v3 .hero-copy h1,[data-hero=b] .hero-v3 h1{font-size:clamp(29px,8vw,39px);line-height:1.08;margin:0 0 14px;padding:0}.hero-v3 .eyebrow,[data-hero=b] .hero-v3 .hero-copy>.eyebrow{font-size:11px;margin:0 0 12px;padding:0}.hero-v3 .hero-copy .lead,[data-hero=b] .hero-v3 .lead{font-size:12px;line-height:1.65;margin:0 0 12px;padding:0}.hero-v3 .bullets,[data-hero=b] .hero-v3 .bullets{display:grid;font-size:14px;gap:6px;margin:0 0 14px;padding:0;justify-content:start}.hero-v3 .hero-ctas,[data-hero=b] .hero-v3 .hero-ctas{display:flex;justify-content:start;margin:0 0 12px;padding:0;gap:8px}.hero-v3 .btn{font-size:12px;padding:12px 14px;min-height:44px}.hero-v3 .badge,[data-hero=b] .hero-v3 .badge{font-size:12px;line-height:1.5;margin:0;padding:10px 0 0;text-align:left}
 .v3-intro{padding:calc(var(--nav-h) + 30px) 0 40px}.v3-intro h1{font-size:42px}.v3-intro .lead{font-size:15px}.v3-crumbs{font-size:11px;line-height:1.7;margin-bottom:24px}.v3-split,.client-story{grid-template-columns:1fr;gap:28px}.client-story{padding:30px 0}.client-story-copy h3{font-size:26px}.client-story-copy blockquote{font-size:26px}.shorts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}.yt-caption{font-size:12px;padding:14px 12px;gap:8px}.yt-play{width:54px;height:54px;padding:11px}.youtube-mode .player-grid{grid-template-columns:1fr}.gallery-hub-grid{grid-template-columns:1fr;gap:38px}.gallery-card-grid{gap:28px 16px}.gallery-card h2{font-size:23px}.gallery-card-copy{display:block}.gallery-card-copy>span{display:block;margin-top:12px}.gallery-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-row>a{aspect-ratio:var(--ratio)}.gallery-row>a:last-child:nth-child(odd){grid-column:1/-1;max-height:560px}.justified-gallery{gap:10px}.project-navigation{flex-wrap:wrap}.project-navigation a{font-size:19px}.project-navigation a:nth-child(2){order:3;width:100%;text-align:center}.rate-grid{gap:12px}.rate-card{padding:22px 18px}.rate-number{font-size:27px;min-height:94px}.rate-card h3{font-size:15px}.rate-card>p:last-child{font-size:12px}.calculator-inputs{grid-template-columns:1fr;padding:24px;gap:18px}.term-options{grid-column:1;grid-row:auto;margin-top:12px}.term-options span{padding:11px 12px}.calculator-footer{padding:24px}.finance-table th,.finance-table td{padding:18px}.formula-box{padding:22px}.v3-form-wrap{padding-inline:24px}.blog-hub-layout{display:flex;flex-direction:column;gap:40px}.blog-hub-layout>div{width:100%}.blog-grid{grid-template-columns:1fr;gap:28px}.topic-links{gap:8px;margin-bottom:38px}.topic-links a{font-size:14px}.blog-card h4{font-size:27px}.blog-hub-layout .author-bio{width:100%}.post-layout{display:flex;flex-direction:column;gap:28px}.post-layout>.author-bio{position:static;width:100%;padding:24px}.post-layout>.author-bio>img{width:72px;height:72px;float:left;margin:0 18px 14px 0}.post-layout>.author-bio>p:not(.author-role){clear:both}.post-heading h1{font-size:38px}.post-body{font-size:16px;width:100%}.post-body h2{font-size:31px;margin-top:44px}.post-body h3{font-size:24px}.blog-related{grid-template-columns:1fr}.blog-related .blog-card>a{display:grid;grid-template-columns:100px 1fr;gap:18px}.blog-related .blog-card>a>div{padding:0 0 18px}.blog-related .blog-card h4{font-size:21px}.blog-related .blog-card .small,.blog-related .blog-card .link-arrow{display:none}.post-body .blog-related img{height:100px;object-fit:cover}.topic-posts{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.v3-hero-media,.v3-hero-copy,.v3-hero-frame{transform:none!important;transition:none!important}.v3-hero-media video{display:none}.hero-v3 .words .w{opacity:1;transform:none;transition:none}.yt-picture img,.gallery-card img,.gallery-row img{transition:none;transform:none!important}}
@media print{body{background:white!important;color:black!important}.site-header,.site-footer,.progress,.mobile-nav,.quote-band,.finance-faq,.v3-intro,.rate-grid,.steps,.mesh,.skip,.v3-calculator .btn,.quick-picks{display:none!important}body:has(.v3-calculator) main>section:not(.v3-calculator):not(.fine-print){display:none!important}.v3-calculator,.fine-print{display:block!important;background:white!important;color:black!important;padding:18px 0!important}.v3-calculator .wrap,.fine-print .wrap{max-width:none;padding:0}.calculator-panel{box-shadow:none}.calculator-inputs{padding:14px}.finance-table{min-width:0;font-size:10px}.finance-table th,.finance-table td{padding:10px 7px}.finance-table [data-monthly]{font-size:13px}.fine-print p{font-size:14px}.calculator-panel,.fine-print{break-inside:avoid}.table-scroll{overflow:visible}.calculator-footer .small{display:none}.formula-box{padding:12px}.reveal{opacity:1!important;transform:none!important}}
/* Explicit ink on light surfaces; inherited v2 heading colors are white. */
.v3-founder h2,.v3-gallery-close h2,.v3-calculator h2,.v3-calculator h3,.v3-calculator p,.v3-calculator label,.v3-calculator legend{color:#24221e}.hero-v3 .w.ac{color:#735C1E;background:none;-webkit-text-fill-color:currentColor}.hero-v3 .bullets li{color:#34312b}
@media(min-width:1101px){.nav-link{font-size:11.5px;letter-spacing:.04em;padding-inline:7px}.site-header>.wrap{gap:16px}}
.article-table{width:100%;overflow-x:auto;margin:28px 0 36px;border:1px solid var(--line)}.article-table table{width:100%;min-width:580px;border-collapse:collapse;font-size:14px;line-height:1.7}.article-table th,.article-table td{padding:18px 20px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.article-table th{background:#29241b;color:var(--gold-pale)}.article-table p{margin:0}
/* Keep the complete hero invitation inside shorter desktop viewports. */
@media(min-width:769px) and (max-height:800px){
 .v3-hero-content{padding-top:calc(var(--nav-h) + 12px);padding-bottom:20px}
 .hero-v3 .v3-hero-copy{padding:24px}.hero-v3 .hero-copy h1{font-size:34px;line-height:1.04;margin-bottom:14px}
 .hero-v3 .eyebrow{margin-bottom:10px}.hero-v3 .hero-copy .lead{font-size:13px;line-height:1.55;margin-bottom:14px}
 .hero-v3 .bullets{font-size:11.5px;gap:6px;margin-bottom:14px}.hero-v3 .hero-ctas{margin-bottom:12px}
 .hero-v3 .badge{font-size:11px;line-height:1.5;padding-top:10px}
}

/* Home: Brett's film leads the band, with the existing quote carousel below. */
.testimony-grid.testimony-featured{grid-template-columns:minmax(0,1fr)}
.testimony-featured .testimony-film{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:40px}
.testimony-featured .testi-window .review-card{flex-basis:calc(50% - 11px)}
@media(max-width:768px){
 .testimony-featured .testimony-film{grid-template-columns:minmax(0,1fr);gap:24px}
 .testimony-featured .testi-window .review-card{flex-basis:100%}
}

/* ===== v4 narrative hero (2026-10-06, Fable 5.1 Route B). Variant A = narrative hero. ?hero=b keeps the v3 panel. =====
   Beats (desktop): 0.1 s pain line in the copy column -> 1.2 s real logo mark wipes on -> 1.5 s question H1 word reveal
   (accent words in solid brand gold) -> 2.0 to 2.45 s statement, bullets, CTAs, badge.
   Video stays full-bleed at 100% opacity; the only scrim is a cream gradient behind the text column.
   Mobile parity: intro REPLACED (none), scrim REPLACED (panel), mark SAME, word reveal SAME. */
.v4-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(242,240,233,.97) 0%,rgba(242,240,233,.93) 30%,rgba(242,240,233,.62) 47%,rgba(242,240,233,0) 63%)}
[data-hero=b] .v4-scrim,[data-hero=b] .v4-intro,[data-hero=b] .v4-mark{display:none}
[data-hero=a] .hero-v3 .v3-hero-copy{background:none;border:0;box-shadow:none;padding:0;width:min(640px,46vw);position:relative;transform:none}
[data-hero=a] .hero-v3 .hero-copy h1{font-size:clamp(38px,4.1vw,64px);line-height:1.04;margin-bottom:22px}
[data-hero=a] .hero-v3 .hero-copy .lead{font-size:16px;line-height:1.6;max-width:54ch;margin-bottom:20px}
[data-hero=a] .hero-v3 .bullets{font-size:14px;gap:9px;margin-bottom:22px}
[data-hero=a] .hero-v3 .eyebrow{margin-bottom:14px}
[data-hero=a] .hero-v3 .words .w{transition-delay:calc(var(--i) * 55ms + 1500ms)}
[data-hero=a] .hero-v3 .words .w.ac{transition-delay:calc(var(--i) * 55ms + 1640ms);color:#735C1E;-webkit-text-fill-color:currentColor;background:none;padding-bottom:.06em}
[data-hero=a] .hero-v3 .v3-hero-copy>.eyebrow,[data-hero=a] .hero-v3 .v3-hero-copy>.lead,[data-hero=a] .hero-v3 .v3-hero-copy>.bullets,[data-hero=a] .hero-v3 .v3-hero-copy>.hero-ctas,[data-hero=a] .hero-v3 .v3-hero-copy>.badge{opacity:0;animation:v4-up .7s cubic-bezier(.2,.7,.2,1) both}
[data-hero=a] .hero-v3 .v3-hero-copy>.eyebrow{animation-delay:1.4s}
[data-hero=a] .hero-v3 .v3-hero-copy>.lead{animation-delay:2s}
[data-hero=a] .hero-v3 .v3-hero-copy>.bullets{animation-delay:2.15s}
[data-hero=a] .hero-v3 .v3-hero-copy>.hero-ctas{animation-delay:2.3s}
[data-hero=a] .hero-v3 .v3-hero-copy>.badge{animation-delay:2.45s}
@keyframes v4-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.v4-mark{display:block;width:54px;height:auto;margin:0 0 18px;overflow:visible;clip-path:inset(100% 0 0 0);animation:v4-wipe .8s cubic-bezier(.2,.7,.2,1) 1.2s forwards}
.v4-mark path{fill:var(--gold-deep)}
@keyframes v4-wipe{to{clip-path:inset(0 0 0 0)}}
.v4-intro{position:absolute;left:0;top:50%;transform:translateY(-50%);width:100%;pointer-events:none;z-index:5}
.v4-intro p{font-family:var(--serif);font-size:clamp(34px,3.7vw,58px);line-height:1.08;letter-spacing:-.02em;color:#24221e;margin:0;opacity:0;animation:v4-intro 1.6s cubic-bezier(.2,.7,.2,1) .1s forwards}
.v4-intro em{font-style:italic;color:var(--gold-deep)}
@keyframes v4-intro{0%{opacity:0;transform:translateY(16px)}16%{opacity:1;transform:none}70%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-22px)}}
@media(max-width:768px){.v4-scrim,.v4-intro{display:none}[data-hero=a] .hero-v3 .v3-hero-copy{background:rgba(242,240,233,.96);border:1px solid rgba(255,255,255,.7);padding:22px;width:100%}[data-hero=a] .hero-v3 .hero-copy h1{font-size:clamp(29px,8vw,39px);margin-bottom:14px}[data-hero=a] .hero-v3 .hero-copy .lead{font-size:13px;margin-bottom:12px}[data-hero=a] .hero-v3 .bullets{font-size:14px;gap:6px;margin-bottom:14px}[data-hero=a] .hero-v3 .words .w{transition-delay:calc(var(--i) * 45ms + 250ms)}[data-hero=a] .hero-v3 .words .w.ac{transition-delay:calc(var(--i) * 45ms + 370ms)}.v4-mark{width:40px;margin-bottom:12px;animation-delay:.1s}[data-hero=a] .hero-v3 .v3-hero-copy>.eyebrow{animation-delay:.2s}[data-hero=a] .hero-v3 .v3-hero-copy>.lead{animation-delay:.8s}[data-hero=a] .hero-v3 .v3-hero-copy>.bullets{animation-delay:.95s}[data-hero=a] .hero-v3 .v3-hero-copy>.hero-ctas{animation-delay:1.1s}[data-hero=a] .hero-v3 .v3-hero-copy>.badge{animation-delay:1.25s}}
@media(prefers-reduced-motion:reduce){.v4-intro{display:none}.v4-mark{clip-path:none;animation:none}[data-hero=a] .hero-v3 .v3-hero-copy>*{opacity:1!important;animation:none!important;transform:none!important}[data-hero=a] .hero-v3 .words .w{transition-delay:0s}}

/* V5: keyboard access to background playback, after the hero badge. */
.v5-motion-key{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;pointer-events:none}
.v5-motion-key:focus-visible{right:24px;top:calc(var(--nav-h) + 20px);z-index:6;width:auto;height:auto;min-height:44px;padding:10px 16px;margin:0;overflow:visible;clip:auto;clip-path:none;border:1px solid #735c1e;border-radius:999px;background:#f2f0e9;color:#24221e;font:600 13px/1.4 var(--sans);outline:3px solid #735c1e;outline-offset:3px;pointer-events:auto}

/* === QC fixes 2026-10-02 (WordPress port; markup side in fixes.py) === */
/* FAQ: the question heading now wraps the toggle button (valid HTML, heading exposed to assistive tech).
   The wrapper passes through exactly what the button inherited before; .faq-t carries the old .faq-q h3/h4 type. */
.faq-item .faq-h{margin:0;font:inherit;line-height:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
.faq-q .faq-t{display:block;margin:0;font-family:var(--serif);font-weight:400;font-size:1.15rem;line-height:1.25;letter-spacing:-.01em;color:inherit}
/* Lead-form CTA: the pill is nowrap + overflow:hidden, so a long label was clipped below 1100px
   ("T MY DESIGN CONSULTATION" at 768px, the arrow cut at 1024px). Desktop is untouched; at 601-1100px the side
   padding tightens so the label fits on one line where it can, and wraps (centered) where it cannot. */
@media (min-width:601px) and (max-width:1100px){
  .lead-form .btn{padding:calc(15px + .2em) 22px;white-space:normal;text-align:center;line-height:1.3}
}
/* Stacked .split sections at tablet widths: the 4:5 frame at full width turned landscape photos into ~880px-tall,
   1.6x-upscaled crops. Landscape frames go 16:10 (as .testi-split/.faq-sec frames already do when stacked);
   portrait/square frames keep 4:5 but stop at 520px wide. Frames are tagged with their photo's orientation. */
@media (min-width:601px) and (max-width:900px){
  .split .media .frame.is-landscape{aspect-ratio:16/10}
  .split .media .frame.is-portrait,.split .media .frame.is-square{max-width:520px}
}

/* === QC fixes, pass 2 (2026-10-05): visual review of all 43 pages at 1440/768/390, every finding re-measured by an
   independent verifier before it was fixed. Markup side in fixes.py. === */
/* Arrow links: the inline <svg> had no size, so it rendered anywhere from 0 to 190px (a 125px arrow squeezed
   "Book a design consultation" onto 3 lines; the card "Explore" arrows vanished). */
.link-arrow svg{width:1.1em;height:1.1em;flex:none}
/* Bento card grids (inline 300px rows removed in fixes.py): complete rows for 5- and 7-card span-4 grids. */
@media(min-width:1001px){
  .bento>.bcard.span-4:nth-child(3n+1):nth-last-child(2),
  .bento>.bcard.span-4:nth-child(3n+2):last-child,
  .bento>.bcard.span-4:nth-child(3n+1):nth-last-child(4),
  .bento>.bcard.span-4:nth-child(3n+1):nth-last-child(4)~.bcard{grid-column:span 6}
}
@media(min-width:701px) and (max-width:1000px){.bento>.bcard.span-4:last-child:nth-child(odd){grid-column:1/-1}}
/* Careers "Why work with us": 5 cards as 3 + 2, each the width of a 3-card .steps row. */
@media(min-width:801px){.steps.steps-5{grid-template-columns:repeat(6,1fr)}.steps.steps-5>.step{grid-column:span 2}.steps.steps-5>.step:nth-child(4){grid-column:2/span 2}}
/* Home "How it works" cards had a fixed height + overflow:hidden, cutting off the bottom pills on phones/tablets. */
.cardstack__card{height:auto;min-height:var(--cs-h)}
@media(max-width:760px){.cardstack__card{grid-template-rows:calc(var(--cs-h)*.42) auto}}
@media(max-width:760px),(max-height:780px){.cardstack__card{position:relative;top:auto;margin-bottom:24px;transform:none!important;filter:none!important}}
/* Testimonial avatars: the subtitle rule (.review-card .who span) also hit the initials, turning them grey on gold. */
.review-card .who .av{color:var(--black);font-size:1.15rem}
/* Reel cards: <button> cards centred their content, so one-line titles sat 12px lower than two-line ones. */
.reel-rail{align-items:start}
/* Centred section heads: the lead paragraph sat at the left edge under a centred heading. */
.sec-head.center .lead{margin-inline:auto}
/* CTA band copy started 60px left of every other section above 1320px. */
@media(min-width:701px){.cta-band>.wrap{padding-left:max(var(--gutter),calc(100% - var(--max) / 2 + var(--gutter)))}}
/* Header: mega-panel column heading no longer wraps (columns out of step), the feature photo fills its card (no empty
   block under it), and the nav wrapper takes the header height so open panels start below the phone pill. */
.dropdown-panel.mega .dd-col h5{white-space:nowrap}
.dropdown-panel .feat img{height:220px;flex-grow:1}
.site-header .wrap>nav{height:100%}
/* Mobile menu: the burger turns into a close (X) while the menu is open (main.js updates its label). */
.burger span,.burger span::before,.burger span::after{transition:transform .2s,top .2s,background-color .2s}
body.menu-open .burger span{background:transparent}
body.menu-open .burger span::before{top:0;transform:rotate(45deg)}
body.menu-open .burger span::after{top:0;transform:rotate(-45deg)}
/* Home featured kitchen at tablet: the photo column stays in view instead of leaving ~480px of empty cream. */
@media(min-width:701px) and (max-width:900px){#featured-kitchen .feature-media{position:sticky;top:calc(var(--nav-h) + 24px)}}
/* Home written testimonials: cards no longer stretch to the video column's height (short quote, big empty card). */
@media(min-width:1101px){.testimony-grid{align-items:center}.testi-window .review-card{min-height:0}}
/* Home video testimonial on small phones: one column instead of a 143px video beside 4-word lines. */
@media(max-width:479px){#testimonials .testimony-film{grid-template-columns:minmax(0,1fr);gap:20px}#testimonials .testimony-film>.reel-card{max-width:260px}}
/* Area pages: "Popular areas we serve" used 1 of 4 columns (930px empty block); the 5 service links left one alone on
   row 2 and were spaced twice as far apart as the same list elsewhere. */
.mesh-grid>.mesh-col:only-child{grid-column:1/-1;columns:200px 4;column-gap:32px}
.mesh-grid>.mesh-col:only-child h4{break-inside:avoid}
@media(min-width:901px){section.pad-sm:not(.mesh)>.wrap>.mesh-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:900px){section.pad-sm.bg-bg>.wrap>.mesh-grid{row-gap:0}}
/* Instagram band: the photo strip sizes to its photo count (a lone photo left two empty cells); an odd last loop on
   phones spans the row; the two-film pages centre the pair instead of hugging the left. */
.instagram-photos:has(>:only-child){grid-template-columns:minmax(0,1fr)}
.instagram-photos:has(>:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:701px){.instagram-photos>:only-child img{aspect-ratio:21/9}}
@media(max-width:700px){.room-loops .loop-frame:last-child:nth-child(2n+3){grid-column:1/-1;aspect-ratio:4/3}}
@media(min-width:1024px){#instagram[data-loop-count="2"] .room-loops{grid-template-columns:repeat(2,minmax(0,416px));justify-content:center}}
.loop-media-wall>img,.loop-media-wall>video{object-position:50% 12%}
@media(min-width:601px) and (max-width:900px){#instagram .sec-head{grid-template-columns:1fr;align-items:start}}
/* Home styles head at narrow tablets: the nowrap "Browse cabinet styles" button ran through the page gutter. */
@media(min-width:601px) and (max-width:860px){#styles .sec-head{grid-template-columns:1fr;gap:16px}}
/* Quote-band form at 701-1180px: one field per row, so phone/email placeholders are no longer cut mid-string. */
@media(min-width:701px) and (max-width:1180px){.quote-band .lead-form .row{grid-template-columns:1fr}}
/* Lead forms: the SMS consent sentence took the uppercase gold field-label style; "Selected:" reserves a full line;
   a missing project type now shows a message (main.js); a sent form's button looks disabled. */
.lead-form label.consent{display:flex;font-family:var(--sans);font-size:.74rem;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--muted);margin-bottom:14px}
.picked{line-height:1.7;min-height:1.7em}
.lead-form .picked.err{color:#F4A38C}
.btn:disabled{opacity:.55;cursor:default;box-shadow:none;transform:none;pointer-events:none}
/* Primary CTAs on phones: same compact sizing as the hero buttons so "Book my design consultation" fits one line. */
@media(max-width:600px){.btn-primary[href^="/contact"],.cta-band .actions .btn{font-size:.72rem;letter-spacing:.1em;padding-inline:20px}}
/* Footer phone pill kept its number at <=1180px (the header's icon-only rule leaked into the footer). */
@media(max-width:1180px){.site-footer .phone-pill{padding:12px 18px}.site-footer .phone-pill .lbl{display:inline}}
/* Contact hours table: day and hours no longer run together; the table fills its card. */
.nap-item>div{flex:1;min-width:0}
.hours td:first-child{padding-right:16px}
@media(min-width:380px){.hours td:last-child{white-space:nowrap}}
/* Careers open-roles list: one column on phones (two 165px columns broke every role name). */
@media(max-width:520px){.feature-list[style*="grid-template-columns"]{grid-template-columns:1fr!important}}
/* FAQ page: each category's left column (image or intro) stays in view beside its question list. */
@media(min-width:901px){.faq-sec>:first-child{position:sticky;top:calc(var(--nav-h) + 80px)}}
/* FAQ/Gallery category bar: on mouse desktops the pills wrap to a second row instead of clipping "Whole-home
   remodels"; anchor jumps land below the bar. */
@media (min-width:1024px) and (hover:hover) and (pointer:fine){
  .jumpnav .wrap{flex-wrap:wrap;overflow:visible;row-gap:8px}
  .jumpnav ~ section[id],.jumpnav ~ * section[id]{scroll-margin-top:150px}
}
/* Overlay badge description on split photos: its own line height instead of 27px gaps between 12.8px lines. */
.split .media .tag span{display:block;margin-top:6px;font-size:.8rem;line-height:1.45;color:var(--text-2)}
/* Skye Canyon hero banner: keep the copper pendants (the focal point) in the 21:8 crop. */
.page-hero .banner.full img[data-slot="custom-cabinets-skye-canyon-las-vegas-nv-photo-004"]{object-position:50% 12%}
/* Breadcrumbs: the chevron trails the previous crumb, so a wrapped line never starts with one. */
.crumbs li+li::before{content:none}
.crumbs li:not(:last-child)::after{content:"\203A";margin:0 2px 0 8px;color:var(--gold)}
/* Phones: reel rail caption and loop captions (9px) legible; caption no longer strands its last word. */
@media(max-width:700px){
  .reel-controls .small{max-width:none;text-wrap:balance}
  .room-loops figcaption{padding:8px;font-size:.65rem;gap:4px}
  .room-loops .motion-toggle{padding:4px 2px}
  .room-loops .loop-frame:only-child figcaption{padding:9px 11px;gap:8px}
  .room-loops .loop-frame:only-child .motion-toggle{padding:4px}
}
/* Single-word last lines and split names in headings ("…designers / trust", "Spanish / Trail"). */
h1,h2,h3,.lead-form h3,.hero-v2 .bullets li,.lead-form .trust{text-wrap:balance}
.page-hero .sub,.sec-head .lead{text-wrap:pretty}

/* 2026-10-09 (v29 port): the hero H1 keeps the designer's line breaks; the orphan-balance rule above reflowed it. */
.hero-v3 .hero-copy h1{text-wrap:wrap}
