/* Custom Flooring Projects — shared design system */
:root{
  --bg:oklch(0.155 0.012 58);
  --bg-2:oklch(0.195 0.016 58);
  --panel:oklch(0.225 0.018 58);
  --cream:oklch(0.955 0.013 85);
  --muted:oklch(0.70 0.018 75);
  --faint:oklch(0.52 0.02 65);
  --gold:oklch(0.78 0.115 75);
  --gold-deep:oklch(0.60 0.10 68);
  --brass:oklch(0.72 0.085 72);
  --clay:oklch(0.585 0.185 30);
  --steel:oklch(0.62 0.13 250);
  --sun:oklch(0.84 0.155 92);
  --line:oklch(0.34 0.02 60 / .6);
  --line-soft:oklch(0.34 0.02 60 / .35);
  --e-out:cubic-bezier(0.16,1,0.3,1);
  --e-io:cubic-bezier(0.76,0,0.24,1);
  --maxw:1280px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}
body{background:var(--bg);color:var(--cream);font-family:"Plus Jakarta Sans",system-ui,sans-serif;line-height:1.6;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.serif{font-family:"Plus Jakarta Sans",system-ui,sans-serif}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}
::selection{background:var(--gold);color:var(--bg)}

/* cursor */
.cur,.cur-d{display:none}
.cur{width:40px;height:40px;border:1px solid oklch(0.9 0 0);margin:-20px 0 0 -20px;transition:width .3s var(--e-out),height .3s var(--e-out),margin .3s var(--e-out),background .3s var(--e-out)}
.cur-d{width:6px;height:6px;background:oklch(0.95 0 0);margin:-3px 0 0 -3px}
.cur.grow{width:74px;height:74px;margin:-37px 0 0 -37px;background:oklch(0.9 0 0)}
@media (hover:none),(pointer:coarse){.cur,.cur-d{display:none}}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:200;transition:background .4s var(--e-out),border-color .4s,padding .4s var(--e-out)}
nav.scrolled{background:color-mix(in oklch,var(--bg) 72%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:84px;transition:height .4s var(--e-out)}
nav.scrolled .wrap{height:68px}
.brand{display:flex;align-items:center;gap:12px;font-weight:500;font-size:15px;letter-spacing:.04em;text-transform:uppercase}
.logo-img{height:46px;width:auto;object-fit:contain;flex:none}
.nlinks{display:flex;gap:34px;font-size:14px;color:var(--muted);letter-spacing:.02em;align-items:center}
.nlinks a{position:relative;transition:color .3s var(--e-out)}
.nlinks a::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--gold);transition:width .35s var(--e-out)}
.nlinks a:hover,.nlinks a.active{color:var(--cream)} .nlinks a:hover::after,.nlinks a.active::after{width:100%}
.ncta{border:1px solid var(--line);padding:10px 20px;border-radius:100px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;transition:.35s var(--e-out)}
.ncta:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.burger span{width:24px;height:2px;background:var(--cream);transition:.3s var(--e-out)}
.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* mobile menu */
.mobile-menu{position:fixed;inset:0;z-index:190;background:var(--bg);display:flex;flex-direction:column;justify-content:center;padding:96px 34px 44px;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .4s var(--e-out),transform .4s var(--e-out),visibility .4s}
.menu-open .mobile-menu{opacity:1;visibility:visible;transform:none}
.mobile-menu a{display:flex;align-items:center;justify-content:space-between;font-family:"Plus Jakarta Sans",sans-serif;font-weight:500;font-size:clamp(20px,5.5vw,27px);letter-spacing:-.01em;padding:17px 2px;color:var(--cream);border-bottom:1px solid var(--line-soft);transition:color .25s var(--e-out)}
.mobile-menu a::after{content:"↗";font-size:.62em;color:var(--gold);opacity:.6;transition:transform .25s var(--e-out),opacity .25s}
.mobile-menu a:hover,.mobile-menu a:active{color:var(--gold)}
.mobile-menu a:hover::after{opacity:1;transform:translateX(3px)}
.mobile-menu .mm-contact{margin-top:30px;font-size:14px;line-height:1.6;color:var(--muted);letter-spacing:.01em}
.mobile-menu .mm-contact a{font-size:14px;color:var(--gold);border:0;padding:0;display:inline}
.mobile-menu .mm-contact a::after{content:none}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:12px;background:var(--cream);color:var(--bg);
  padding:17px 30px;border-radius:100px;font-size:15px;font-weight:500;letter-spacing:.01em;overflow:hidden;will-change:transform;cursor:pointer;border:0}
.btn span{position:relative;z-index:2;transition:color .4s var(--e-out)}
.btn::before{content:"";position:absolute;inset:0;background:var(--gold);transform:translateY(101%);border-radius:100px;transition:transform .5s var(--e-out)}
.btn:hover::before{transform:translateY(0)}
.btn .ar{transition:transform .4s var(--e-out)} .btn:hover .ar{transform:translate(4px,-4px)}
.btn-ghost{background:transparent;color:var(--cream);border:1px solid var(--line)}
.btn-ghost::before{background:var(--cream)}
.btn-ghost:hover span{color:var(--bg)}

/* hero (home) */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:120px 0 60px;overflow:hidden}
.hero-photo{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hero-veil{position:absolute;inset:0;z-index:2;background:linear-gradient(to bottom, oklch(0.14 0.012 58 / .62) 0%, oklch(0.14 0.012 58 / .4) 40%, oklch(0.14 0.012 58 / .9) 100%)}
.hero-bg{position:absolute;inset:0;z-index:3;background:radial-gradient(80% 60% at 75% 15%, oklch(0.78 0.115 75 / .14), transparent 60%),radial-gradient(50% 55% at 6% 16%, oklch(0.62 0.13 250 / .12), transparent 62%),radial-gradient(48% 52% at 94% 90%, oklch(0.585 0.185 30 / .10), transparent 60%),radial-gradient(70% 70% at 12% 95%, oklch(0.30 0.02 60 / .4), transparent 55%)}
.grain{position:absolute;inset:0;z-index:4;opacity:.5;pointer-events:none;background-image:radial-gradient(oklch(1 0 0 / .04) 1px, transparent 1px);background-size:3px 3px}
.hero .wrap{position:relative;z-index:5}
.hero h1{font-size:clamp(34px,6.3vw,82px);line-height:1.04;text-wrap:balance;text-shadow:0 2px 30px oklch(0.1 0.012 60 / .55)}
.hero .htop p,.hero .tagline{text-shadow:0 1px 18px oklch(0.1 0.012 60 / .5)}
.htop{display:flex;justify-content:space-between;align-items:flex-start;gap:48px;margin-bottom:clamp(28px,4vw,48px);padding-bottom:26px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.tagline{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);white-space:nowrap;padding-top:4px}
.htop p{max-width:42ch;color:var(--muted);font-size:clamp(15px,1.3vw,17px);line-height:1.55;text-align:right;margin-left:auto}
h1{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:clamp(44px,8.4vw,128px);line-height:.94;letter-spacing:-.03em}
h1 .ln{display:block;overflow:hidden}
h1 .ln > span{display:block;will-change:transform}
h1 em{font-style:italic;font-weight:400;color:var(--gold)}
.hero-foot{display:flex;justify-content:space-between;align-items:center;margin-top:48px;flex-wrap:wrap;gap:24px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.scrollcue{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;letter-spacing:.04em}
.scrollcue .bar{width:54px;height:1px;background:var(--line);position:relative;overflow:hidden}
.scrollcue .bar::after{content:"";position:absolute;inset:0;background:var(--gold);transform:translateX(-100%);animation:slide 2.2s var(--e-io) infinite}
@keyframes slide{50%{transform:translateX(0)}100%{transform:translateX(100%)}}

/* page hero (subpages) */
.phero{position:relative;padding:170px 0 70px;border-bottom:1px solid var(--line);overflow:hidden}
.phero::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(70% 80% at 85% 0%, oklch(0.78 0.115 75 / .1), transparent 60%),radial-gradient(50% 60% at 4% 8%, oklch(0.62 0.13 250 / .12), transparent 62%),radial-gradient(48% 58% at 96% 96%, oklch(0.585 0.185 30 / .1), transparent 60%)}
.phero.has-photo{padding-top:190px}
.phero.has-photo .pbg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center 88%}
.phero.has-photo .pbg::after{content:"";position:absolute;inset:0;background:linear-gradient(to right, oklch(0.14 0.012 58 / .92) 0%, oklch(0.14 0.012 58 / .72) 55%, oklch(0.14 0.012 58 / .55) 100%)}
.phero .wrap{position:relative;z-index:2}
.phero .wrap{position:relative;z-index:2}
.phero .crumb{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
.phero h1{font-size:clamp(40px,7vw,96px)}
.phero p{max-width:54ch;color:var(--muted);font-size:clamp(17px,1.6vw,20px);margin-top:26px;text-wrap:pretty}

/* marquee */
.marq{border-block:1px solid var(--line);padding:26px 0;overflow:hidden;white-space:nowrap;background:var(--bg-2)}
.marq-in{display:inline-flex;gap:54px;align-items:center;animation:marq 32s linear infinite}
.marq span{font-family:"Plus Jakarta Sans",sans-serif;font-style:italic;font-weight:400;font-size:clamp(22px,3vw,34px);color:var(--cream)}
.marq .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);flex:none;opacity:.85}
.marq i.dot:nth-of-type(3n+2){background:var(--steel)}
.marq i.dot:nth-of-type(3n+3){background:var(--clay)}
@keyframes marq{to{transform:translateX(-50%)}}

/* sections */
section{position:relative}
.pad{padding:clamp(84px,12vw,168px) 0}
.eyebrow{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:14px;margin-bottom:30px}
.eyebrow::before{content:"";width:38px;height:1px;background:var(--gold-deep)}
.big{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:clamp(32px,5.2vw,72px);line-height:1.04;letter-spacing:-.025em;max-width:16ch}
.big em{font-style:italic;color:var(--gold)}
.reveal-line{overflow:hidden}
.reveals .reveal-line{display:inline-block;vertical-align:top}
.reveals .reveal-line > span{display:inline-block;opacity:0;transform:translateY(38%);transition:opacity .7s var(--e-out),transform .7s var(--e-out)}
.reveals .reveal-line.in > span{opacity:1;transform:none}
.lead-p{color:var(--muted);font-size:clamp(17px,1.5vw,20px);max-width:50ch;text-wrap:pretty}

/* intro split */
.intro{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,7vw,110px);align-items:center}
.intro-r p{color:var(--muted);font-size:clamp(17px,1.5vw,20px);max-width:46ch}
.intro-r p + p{margin-top:22px}
.intro-r .sig{margin-top:30px;font-family:"Plus Jakarta Sans",sans-serif;font-style:italic;font-size:22px;color:var(--cream)}
.figure{aspect-ratio:4/5;border-radius:14px;overflow:hidden;position:relative}
.figure .img{position:absolute;inset:0;background-position:center;background-size:cover}
.figure .fig-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.feature .figure.has-video{aspect-ratio:4/5}

/* text-left / image-right feature block */
.feature{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(40px,6vw,84px);align-items:center}
.feature .eyebrow{margin-bottom:24px}
.feature .figure{aspect-ratio:5/6;align-self:stretch}

/* horizontal pinned gallery */
.carousel{overflow:hidden}
.car-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}
.car-nav{display:flex;gap:10px}
.car-btn{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--cream);font:inherit;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s var(--e-out),color .3s var(--e-out),border-color .3s var(--e-out),opacity .3s}
.car-btn:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}
.car-btn:disabled{opacity:.3;pointer-events:none}
.htrack{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:40px;padding:4px 40px 18px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.htrack::-webkit-scrollbar{display:none}
.mat{position:relative;flex:0 0 auto;scroll-snap-align:start;width:min(82vw,500px);height:clamp(360px,46vw,500px);border-radius:16px;overflow:hidden}
.mat .ph{position:absolute;inset:0;background-position:center;background-size:cover;transition:transform 1s var(--e-out)}
.mat:hover .ph{transform:scale(1.05)}
.mat .cap{position:absolute;left:28px;bottom:26px;z-index:2}
.mat .cap .ix{font-family:"Plus Jakarta Sans",sans-serif;font-size:14px;color:var(--gold)}
.mat .cap h3{font-family:"Plus Jakarta Sans",sans-serif;font-weight:400;font-size:clamp(26px,2.6vw,40px);letter-spacing:-.02em;margin-top:4px}
.mat .cap p{color:oklch(0.92 0.01 80);font-size:14px;max-width:34ch;margin-top:6px}
.mat::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,oklch(0.12 0.01 60 / .7),transparent 55%)}

/* services cards */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:54px}
.svc-card{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:34px;transition:transform .4s var(--e-out),border-color .4s var(--e-out)}
.svc-card:hover{transform:translateY(-6px);border-color:var(--gold)}
.svc-card .num{font-family:"Plus Jakarta Sans",sans-serif;font-style:italic;font-size:15px;color:var(--gold)}
.svc-card h3{font-family:"Plus Jakarta Sans",sans-serif;font-weight:400;font-size:25px;letter-spacing:-.01em;margin:14px 0 10px}
.svc-card p{color:var(--muted);font-size:15px}

/* services detailed rows */
.srow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:center;padding:clamp(40px,6vw,72px) 0;border-top:1px solid var(--line)}
.srow:first-child{border-top:0;padding-top:0}
.srow:nth-child(even) .srow-media{order:-1}
.srow-media{aspect-ratio:4/3;border-radius:14px;overflow:hidden;position:relative}
.srow-media .img{position:absolute;inset:0;background-position:center;background-size:cover;transition:transform 1s var(--e-out)}
.srow-media:hover .img{transform:scale(1.05)}
.srow .num{font-family:"Plus Jakarta Sans",sans-serif;font-style:italic;font-size:16px;color:var(--gold)}
.srow h2{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:clamp(28px,3.6vw,46px);letter-spacing:-.02em;margin:10px 0 16px}
.srow p{color:var(--muted);font-size:16px;max-width:46ch}
.srow ul{list-style:none;margin-top:20px;display:flex;flex-wrap:wrap;gap:10px}
.srow li{font-size:13px;color:var(--cream);border:1px solid var(--line);border-radius:100px;padding:7px 15px}
@media(max-width:820px){.srow{grid-template-columns:1fr;gap:26px}.srow:nth-child(even) .srow-media{order:0}}

/* trust strip (real credentials, not invented metrics) */
.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.trust .t{background:var(--bg);padding:38px 30px}
.trust .t .ico{color:var(--gold);font-size:22px;margin-bottom:14px;display:block}
/* logo-colour accents rotated across numbered items & icons */
.svc-grid .svc-card:nth-child(4n+2) .num{color:var(--steel)}
.svc-grid .svc-card:nth-child(4n+3) .num{color:var(--clay)}
.svc-grid .svc-card:nth-child(4n+4) .num{color:var(--sun)}
.srow:nth-child(3n+2) .num{color:var(--steel)}
.srow:nth-child(3n+3) .num{color:var(--clay)}
.trust .t:nth-child(2) .ico{color:var(--steel)}
.trust .t:nth-child(3) .ico{color:var(--clay)}
.trust .t:nth-child(4) .ico{color:var(--sun)}
.htrack .mat:nth-child(2) .cap .ix{color:var(--steel)}
.htrack .mat:nth-child(3) .cap .ix{color:var(--clay)}
.htrack .mat:nth-child(4) .cap .ix{color:var(--sun)}
.trust .t h3{font-family:"Plus Jakarta Sans",sans-serif;font-weight:400;font-size:22px;letter-spacing:-.01em}
.trust .t p{color:var(--muted);font-size:14px;margin-top:6px}
@media(max-width:820px){.trust{grid-template-columns:repeat(2,1fr)}}

/* video / social */
.vid-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px;align-items:start}
.vid-grid .tiktok-embed{margin:0!important;min-width:0!important;width:100%!important;border-radius:14px;overflow:hidden}
.tt-card{position:relative;display:block;width:100%;aspect-ratio:4/5;border:0;padding:0;margin:0;border-radius:14px;overflow:hidden;cursor:pointer;background:var(--bg-2)}
.tt-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--e-out)}
.tt-card:hover img{transform:scale(1.05)}
.tt-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, oklch(0.12 0.01 60 / .55), transparent 55%)}
.tt-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:oklch(1 0 0 / .92);display:flex;align-items:center;justify-content:center;z-index:2;transition:transform .3s var(--e-out),background .3s var(--e-out)}
.tt-play::before{content:"";border-left:17px solid var(--bg);border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:4px}
.tt-card:hover .tt-play{transform:translate(-50%,-50%) scale(1.08);background:var(--gold)}
.tt-views{position:absolute;left:13px;bottom:13px;z-index:2;display:inline-flex;align-items:center;gap:6px;color:var(--cream);font-size:14px}
.tt-views b{color:var(--gold);font-weight:700;font-size:16px}
/* video / reel carousels (TikTok + Instagram) */
.vtrack .tt-card,.vtrack .ig-card{flex:0 0 auto;width:min(66vw,256px);aspect-ratio:9/16;scroll-snap-align:start}
.ig-card{position:relative;display:block;border-radius:14px;overflow:hidden;background:var(--bg-2);text-decoration:none}
.ig-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--e-out)}
.ig-card:hover img{transform:scale(1.05)}
.ig-card:hover .tt-play{transform:translate(-50%,-50%) scale(1.08);background:var(--gold)}
.ig-card .tt-views,.vtrack .tt-card .tt-views{white-space:nowrap;font-size:12.5px}
.ig-card .tt-views b,.vtrack .tt-card .tt-views b{font-size:15px}
.eyebrow svg{flex:none;margin-right:-4px}
/* project photo carousels */
.htrack.ptrack{padding:4px 0 16px;scroll-padding-left:0;gap:16px}
.ptrack > a{flex:0 0 auto;width:min(80vw,380px);aspect-ratio:4/3;scroll-snap-align:start;border-radius:14px;overflow:hidden;display:block;background:var(--bg-2)}
.ptrack > a > img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--e-out)}
.ptrack > a:hover > img{transform:scale(1.04)}
.project .car-nav{margin:6px 0 20px}
.csub{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:8px 0 10px;display:flex;align-items:center;gap:12px}
.csub svg{flex:none}
.vtrack-land video{flex:0 0 auto;width:min(66vw,256px);aspect-ratio:9/16;object-fit:cover;border-radius:14px;background:#000;scroll-snap-align:start;display:block}
.vid{display:flex;flex-direction:column;gap:12px}
.vviews{display:inline-flex;align-items:center;gap:9px;align-self:flex-start;background:var(--bg-2);border:1px solid var(--line);color:var(--cream);font-size:15px;padding:9px 16px 9px 10px;border-radius:100px}
.vviews .pl{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:50%;background:var(--gold);color:var(--bg);font-size:9px;padding-left:2px}
.vviews b{color:var(--gold);font-weight:700;font-size:16px}
.vstats{display:flex;gap:8px;flex-wrap:nowrap;margin-top:22px}
.vstats span{font-size:clamp(11px,3vw,14px);color:var(--cream);border:1px solid var(--line);border-radius:100px;padding:8px 12px;white-space:nowrap;flex:0 1 auto}
.vstats span b{color:var(--gold);font-weight:700}
@media(max-width:980px){.vid-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.vid-grid{grid-template-columns:1fr;max-width:380px;margin-inline:auto}}

/* gallery grid */
.gal{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;grid-auto-flow:dense}
.gal a{position:relative;border-radius:13px;overflow:hidden;display:block;min-height:200px}
.gal a img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--e-out)}
.gal a:hover img{transform:scale(1.06)}
.gal a::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,oklch(0.12 0.01 60 / .4),transparent 50%);opacity:0;transition:opacity .4s}
.gal a:hover::after{opacity:1}
.gal .tall{grid-row:span 2}
.col-6{grid-column:span 6} .col-5{grid-column:span 5} .col-7{grid-column:span 7} .col-4{grid-column:span 4} .col-8{grid-column:span 8}
@media(max-width:820px){.gal{grid-template-columns:repeat(2,1fr)}.col-6,.col-5,.col-7,.col-4,.col-8{grid-column:span 1}.gal .tall{grid-row:span 1}}

/* project portfolio */
.project{padding:clamp(56px,8vw,104px) 0;border-top:1px solid var(--line)}
.project-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px 60px;flex-wrap:wrap;margin-bottom:42px}
.project-head .pmeta{max-width:54ch}
.project-head .ix{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-style:italic;font-size:15px;color:var(--gold);margin-bottom:12px}
.project-head h2{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:clamp(28px,4vw,52px);line-height:1.05;letter-spacing:-.02em}
.project-head h2 em{font-style:normal;color:var(--gold)}
.project-head .loc{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:15px;margin-top:14px}
.project-head .loc::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
.project-head p{color:var(--muted);font-size:16px;margin-top:16px;text-wrap:pretty}
.chips{display:flex;gap:10px;flex-wrap:wrap;align-content:flex-end}
.chips span{font-size:13px;color:var(--cream);border:1px solid var(--line);border-radius:100px;padding:8px 16px}
.masonry{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-auto-rows:10px;gap:14px}
.masonry a{grid-row-end:span 30;align-self:start;display:block;border-radius:12px;overflow:hidden;position:relative;background:var(--bg-2)}
.masonry img{width:100%;height:auto;display:block;transition:transform .9s var(--e-out)}
.masonry a:hover img{transform:scale(1.045)}
.masonry a::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,oklch(0.12 0.01 60 / .35),transparent 55%);opacity:0;transition:opacity .4s}
.masonry a:hover::after{opacity:1}
.callout{background:var(--bg-2);border:1px solid var(--line);border-radius:18px;padding:clamp(30px,4vw,48px);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.callout .ix{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-style:italic;font-size:14px;color:var(--gold);margin-bottom:10px}
.callout h3{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:clamp(24px,3vw,38px);letter-spacing:-.02em}
.callout p{color:var(--muted);font-size:15px;margin-top:8px;max-width:50ch}
.callout .tag{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--gold);border:1px solid var(--line);border-radius:100px;padding:9px 18px;white-space:nowrap}
@media(max-width:560px){.masonry{grid-template-columns:1fr}}

/* quote / statement */
.qsec{text-align:center}
.qsec blockquote{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-style:italic;font-size:clamp(26px,4vw,56px);line-height:1.18;letter-spacing:-.02em;max-width:22ch;margin:0 auto;text-wrap:balance}
.qsec blockquote b{font-weight:400;font-style:normal;color:var(--gold)}
.qsec cite{display:block;margin-top:34px;font-style:normal;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* contact form */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:start}
.cinfo .citem{padding:22px 0;border-top:1px solid var(--line)}
.cinfo .citem .k{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.cinfo .citem a,.cinfo .citem p{font-family:"Plus Jakarta Sans",sans-serif;font-weight:400;font-size:clamp(17px,1.7vw,21px);color:var(--cream);letter-spacing:-.005em;line-height:1.5}
.cinfo .citem a:hover{color:var(--gold)}
.csocial{display:flex;gap:12px;margin-top:30px}
.csocial a{width:46px;height:46px;border:1px solid var(--line);border-radius:100px;display:flex;align-items:center;justify-content:center;color:var(--cream);transition:.35s var(--e-out)}
.csocial a:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}
form.quote{background:var(--bg-2);border:1px solid var(--line);border-radius:18px;padding:clamp(28px,4vw,44px)}
form.quote .frow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
form.quote label{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
form.quote input,form.quote select,form.quote textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:14px 16px;color:var(--cream);font-family:inherit;font-size:15px;transition:border-color .3s}
form.quote input:focus,form.quote select:focus,form.quote textarea:focus{outline:none;border-color:var(--gold)}
form.quote textarea{min-height:120px;resize:vertical}
form.quote .btn{width:100%;justify-content:center;margin-top:26px}
form.quote .hint{font-size:12.5px;color:var(--faint);margin-top:14px;text-align:center}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}form.quote .frow{grid-template-columns:1fr}}

/* CTA */
.cta{text-align:center;position:relative;overflow:hidden}
.cta .glow{position:absolute;left:50%;top:60%;width:120vw;height:120vw;transform:translate(-50%,-50%);z-index:0;background:radial-gradient(circle,oklch(0.78 0.115 75 / .12),transparent 42%),radial-gradient(circle at 30% 40%,oklch(0.64 0.10 250 / .05),transparent 38%);pointer-events:none}
.cta .wrap{position:relative;z-index:2}
.cta h2{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:clamp(40px,8vw,112px);line-height:.96;letter-spacing:-.035em;margin-bottom:24px}
.cta h2 em{font-style:italic;color:var(--gold)}
.cta p{color:var(--muted);font-size:18px;margin-bottom:38px;max-width:48ch;margin-inline:auto}
.cta-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(36px,5vw,72px);align-items:center;text-align:left}
.cta-grid .cta-copy h2{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:clamp(34px,5vw,68px);line-height:1.0;letter-spacing:-.03em;margin-bottom:18px}
.cta-grid .cta-copy h2 em{font-style:italic;color:var(--gold)}
.cta-grid .cta-copy p{color:var(--muted);font-size:18px;margin:0 0 24px;max-width:42ch}
.cta-call{font-size:15px;color:var(--muted)}
.cta-call a{color:var(--gold)}
.cta-quote{background:var(--bg-2);border:1px solid var(--line);border-radius:18px;padding:clamp(24px,3vw,36px)}
.cta-quote .frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cta-quote label{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:14px 0 7px}
.cta-quote input,.cta-quote select,.cta-quote textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:13px 15px;color:var(--cream);font-family:inherit;font-size:15px;transition:border-color .3s}
.cta-quote input:focus,.cta-quote select:focus,.cta-quote textarea:focus{outline:none;border-color:var(--gold)}
.cta-quote textarea{min-height:92px;resize:vertical}
.cta-quote .btn{width:100%;justify-content:center;margin-top:22px}
.cta-quote .hint{font-size:12.5px;color:var(--faint);margin-top:13px;text-align:center}
@media(max-width:860px){.cta-grid{grid-template-columns:1fr;gap:30px;text-align:left}.cta-quote .frow{grid-template-columns:1fr}}

/* footer */
/* footer contact + map section */
.foot-contact{border-top:1px solid var(--line);background:var(--bg-2)}
.fc-grid{display:grid;grid-template-columns:1fr;gap:clamp(36px,5vw,72px);align-items:start;padding:clamp(60px,8vw,100px) 0}
.fc-info{max-width:760px}
.fc-info .eyebrow{margin-bottom:22px}
.fc-info h2{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:clamp(28px,3.8vw,48px);line-height:1.05;letter-spacing:-.02em;margin-bottom:26px}
.fc-info h2 em{font-style:italic;color:var(--gold)}
.fc-rows .fc-row{display:flex;gap:14px;align-items:baseline;padding:13px 0;border-top:1px solid var(--line-soft)}
.fc-rows .fc-row .k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);flex:none;width:64px}
.fc-rows .fc-row a,.fc-rows .fc-row span{color:var(--cream);font-size:16px;line-height:1.5}
.fc-rows .fc-row a{transition:color .3s var(--e-out)}
.fc-rows .fc-row a:hover{color:var(--gold)}
.fc-social{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.fc-social a{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border:1px solid var(--line);border-radius:100px;font-size:14px;color:var(--cream);transition:.3s var(--e-out)}
.fc-social a:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}
.fc-social svg,.csocial svg{flex:none}
.csocial a{display:inline-flex!important;align-items:center;gap:8px}
.fc-map{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
.fc-map iframe{display:block;width:100%;height:clamp(300px,38vw,430px);border:0;filter:grayscale(.35) contrast(1.05) brightness(.96)}
.fc-map .btn{position:absolute;left:18px;bottom:18px;z-index:2}
@media(max-width:860px){.fc-grid{grid-template-columns:1fr;gap:30px}}

footer{border-top:1px solid var(--line);padding:70px 0 40px}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:50px}
.fgrid .fbrand p{color:var(--muted);font-size:15px;max-width:34ch;margin-top:18px}
.fcol h4{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.fcol a,.fcol p{display:block;color:var(--muted);font-size:15px;margin-bottom:11px;transition:color .3s}
.fcol a:hover{color:var(--cream)}
.fbot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;color:var(--faint);font-size:13px;border-top:1px solid var(--line);padding-top:28px}
@media(max-width:820px){.fgrid{grid-template-columns:1fr 1fr}.fgrid .fbrand{grid-column:span 2}}

/* reveal motion */
.reveal-fade{will-change:transform,opacity}
.reveals .reveal-fade{opacity:0;transform:translateY(26px);transition:opacity .7s var(--e-out),transform .7s var(--e-out)}
.reveals .reveal-fade.in{opacity:1;transform:none}

@media(max-width:860px){
  .wrap{padding:0 24px}
  .nlinks{display:none}
  .burger{display:flex}
  .intro{grid-template-columns:1fr;gap:48px}
  .feature{grid-template-columns:1fr;gap:38px}
  .feature .figure{aspect-ratio:16/11}
  .figure{aspect-ratio:16/12}
  .svc-grid{grid-template-columns:1fr}
  .htrack{padding:4px 24px 18px;scroll-padding-left:24px;gap:14px}
  .mat{width:min(86vw,420px);height:clamp(340px,116vw,440px)}
  .car-btn{width:46px;height:46px;font-size:22px}
}
/* How it works */
.how-grid{display:grid;gap:14px;margin-top:46px}
.how-step{display:grid;grid-template-columns:60px 1fr;gap:22px;align-items:start;padding:24px 28px;border:1px solid var(--line);border-radius:18px;background:oklch(0.955 0.013 85 / .018)}
.how-step .hn{font-size:30px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--gold)}
.how-step:nth-child(2) .hn{color:var(--clay)}
.how-step:nth-child(3) .hn{color:var(--steel)}
.how-step:nth-child(4) .hn{color:var(--sun)}
.how-step:nth-child(5) .hn{color:var(--clay)}
.how-step:nth-child(6) .hn{color:var(--steel)}
.how-step h3{font-size:19px;font-weight:600;margin:1px 0 7px;color:var(--cream)}
.how-step p{font-size:15px;line-height:1.6;color:var(--muted);margin:0;max-width:62ch}

/* FAQ */
.faq-list{display:grid;gap:10px;margin-top:46px;max-width:920px}
.faq-item{border:1px solid var(--line);border-radius:18px;background:oklch(0.955 0.013 85 / .018);overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 26px;font-size:17px;font-weight:600;color:var(--cream);transition:color .2s}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{color:var(--gold)}
.faq-item[open] summary{color:var(--gold)}
.faq-item summary .fic{flex:none;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:24px;line-height:0;transition:transform .25s}
.faq-item[open] summary .fic{transform:rotate(45deg)}
.faq-item .faq-a{padding:0 26px 23px;font-size:15px;line-height:1.65;color:var(--muted);max-width:70ch}
@media (max-width:640px){
  .how-step{grid-template-columns:46px 1fr;gap:16px;padding:20px 20px}
  .how-step .hn{font-size:25px}
  .faq-item summary{padding:18px 20px;font-size:15.5px}
  .faq-item .faq-a{padding:0 20px 19px}
}
/* Testimonials */
.tm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-top:46px}
.tm-card{border:1px solid var(--line);border-radius:18px;background:oklch(0.955 0.013 85 / .018);padding:28px;display:flex;flex-direction:column;gap:18px}
.tm-quote{font-size:16px;line-height:1.62;color:var(--cream);margin:0;flex:1}
.tm-who{display:flex;align-items:center;gap:13px}
.tm-avatar{width:46px;height:46px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;color:#241d0f;background:linear-gradient(135deg,var(--gold),var(--clay));background-size:cover;background-position:center;overflow:hidden}
.tm-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.tm-name{font-weight:600;font-size:14.5px;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-src{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.tm-src svg{flex:none}
a.mat{text-decoration:none;color:inherit;cursor:pointer}
.project{scroll-margin-top:96px}
.legal-doc{max-width:820px}
.legal-doc .legal-updated{color:var(--muted);font-size:13px;letter-spacing:.04em;margin:0 0 30px}
.legal-doc h2{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:clamp(19px,2.3vw,25px);letter-spacing:-.01em;margin:38px 0 12px;color:var(--cream)}
.legal-doc p{color:var(--muted);font-size:16px;line-height:1.72;margin:0 0 14px;max-width:70ch}
.legal-doc a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(200,164,81,.3)}
.legal-doc a.btn{border-bottom:0;color:inherit}
.fbot .flegal{display:flex;gap:20px}
.fbot .flegal a{color:var(--muted);text-decoration:none;transition:color .2s}
.fbot .flegal a:hover{color:var(--gold)}
@media (max-width:640px){.fbot .flegal{gap:16px}}
@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .hero-video{display:none}
}
/* credentials (About) */
.creds{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:34px 38px;background:var(--bg-2)}
.cred-badge{background:#fff;border-radius:14px;padding:26px 30px;display:flex;align-items:center;justify-content:center;min-width:230px;min-height:150px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.cred-badge img{display:block;max-width:240px;width:100%;height:auto}
.cred-badge-fallback{display:none;text-align:center;line-height:1.05;font-family:"Plus Jakarta Sans",sans-serif}
.cred-badge.nofile .cred-badge-fallback{display:block}
.cred-badge-fallback b{display:block;font-size:46px;font-weight:800;letter-spacing:-.03em;color:#5b4327}
.cred-badge-fallback span{display:block;font-size:11.5px;font-weight:600;color:#6f8a3a;margin-top:5px}
.cred-badge-fallback em{display:block;font-style:normal;letter-spacing:.3em;font-size:12px;font-weight:700;color:#5b4327;margin-top:9px;border-top:1px solid #ddd2c0;padding-top:7px}
.cred-list{list-style:none;margin:0;padding:0;display:grid;gap:20px}
.cred-list li{display:grid;gap:3px;position:relative;padding-left:24px}
.cred-list li:before{content:"";position:absolute;left:0;top:6px;width:13px;height:13px;border-radius:50%;background:var(--gold);opacity:.9}
.cred-list .cl-t{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;font-size:16px;color:var(--cream)}
.cred-list .cl-d{color:var(--muted);font-size:14px;line-height:1.62;max-width:60ch}
@media(max-width:720px){.creds{grid-template-columns:1fr;gap:28px;padding:26px}.cred-badge{justify-self:start;min-width:0;width:100%;max-width:300px}}
/* credentials — Home compact band */
.creds-home{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:30px 36px;background:var(--bg-2)}
.creds-home .cred-badge{min-width:200px;min-height:132px;padding:22px 26px}
.creds-home .cred-badge img{max-width:200px}
.creds-home-txt h3{font-family:"Plus Jakarta Sans",sans-serif;font-weight:400;font-size:clamp(18px,2.1vw,23px);letter-spacing:-.01em;color:var(--cream);margin:0 0 8px;max-width:28ch}
.creds-home-txt p{color:var(--muted);font-size:14.5px;line-height:1.62;max-width:60ch;margin:0}
@media(max-width:720px){.creds-home{grid-template-columns:1fr;gap:22px;padding:24px}.creds-home .cred-badge{justify-self:start;width:100%;max-width:280px}}
/* Instagram preview modal */
.ig-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px}
.ig-modal.open{display:flex}
.ig-modal-backdrop{position:absolute;inset:0;background:oklch(0.1 0.01 60 / .82);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.ig-modal-inner{position:relative;z-index:2;width:min(94vw,400px)}
.ig-modal-close{position:absolute;top:-46px;right:0;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--bg-2);color:var(--cream);font-size:23px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}
.ig-modal-close:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}
.ig-modal-body{background:#000;border-radius:16px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.55)}
.ig-modal-body:empty{display:none}
.ig-modal-body video{display:block;width:100%;height:min(82vh,720px);object-fit:contain;background:#000;border:0}
.ig-modal-link{display:block;text-align:center;margin-top:16px;color:var(--cream);font-size:14px;letter-spacing:.02em;text-decoration:none;opacity:.85;transition:opacity .2s,color .2s}
.ig-modal-link:hover{color:var(--gold);opacity:1}
/* founder quote with portrait photo */
.founder-quote{display:grid;grid-template-columns:minmax(240px,340px) 1fr;gap:clamp(30px,5vw,66px);align-items:center;text-align:left}
.founder-photo{margin:0;width:100%;aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:var(--bg-2)}
.founder-photo img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}
.founder-quote blockquote{max-width:20ch;margin:0}
.founder-quote cite{margin-top:28px}
.founder-quote.no-photo{display:block;text-align:center}
.founder-quote.no-photo .founder-photo{display:none}
.founder-quote.no-photo blockquote{max-width:22ch;margin:0 auto}
@media(max-width:760px){
  .founder-quote{grid-template-columns:1fr;justify-items:center;text-align:center;gap:30px}
  .founder-photo{width:min(72vw,300px)}
  .founder-quote blockquote{max-width:22ch;margin:0 auto}
}
/* reviews carousel */
.tm-track{margin-top:10px}
.tm-track > .tm-card{flex:0 0 auto;width:min(84vw,400px);scroll-snap-align:start}
.reveals .tm-track .reveal-fade{opacity:1;transform:none}
/* training & certifications (About credentials) */
.csub2{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:44px 0 16px}
.cert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.cert{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg-2);transition:transform .35s var(--e-out),border-color .3s}
.cert:hover{transform:translateY(-4px);border-color:var(--gold)}
.cert img{width:100%;height:auto;display:block;background:#fff}
.cert-cap{display:block;padding:13px 15px;font-size:12.5px;color:var(--muted);line-height:1.5}
.cert-cap b{display:block;color:var(--cream);font-weight:600;font-size:13.5px;margin-bottom:3px}
/* work van filmstrip (About) */
.van-track{padding-top:6px}
.van-track > .van-shot{flex:0 0 auto;height:clamp(230px,44vw,360px);border-radius:14px;overflow:hidden;background:var(--bg-2);border:1px solid var(--line);display:block;scroll-snap-align:start}
.van-shot img{height:100%;width:auto;display:block;transition:transform .6s var(--e-out)}
.van-shot:hover img{transform:scale(1.05)}
