/* Sections used by the Elementor widgets (home, about, contact, projects). Ported from the HTML version. */
/* home — ported from index.html */
/* Hero */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden}
.hero-media{position:absolute;inset:0;transform:scale(1.25)}
.hero-media video{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.7)}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,.2) 55%,rgba(0,0,0,.85) 100%)}
.hero-inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--gutter) clamp(28px,6vh,64px)}
.hero h1 .ch{transform:translateY(110%)}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-top:clamp(28px,5vh,56px);padding-top:24px;border-top:1px solid var(--line-d)}
.hero-foot p{max-width:360px;font-size:15px;line-height:1.75;color:rgba(255,255,255,.78)}
.hero-cta{display:flex;align-items:center;gap:28px}
.scroll-cue{display:flex;align-items:center;gap:14px;color:rgba(255,255,255,.7)}
.scroll-cue .bar{width:1px;height:46px;background:var(--line-d);position:relative;overflow:hidden}
.scroll-cue .bar::after{content:"";position:absolute;left:0;top:-50%;width:100%;height:50%;background:var(--sand);animation:drip 2.2s var(--ease) infinite}
@keyframes drip{to{top:100%}}
.hero-fade{opacity:0}
@media (max-width:760px){.hero-foot{flex-direction:column;align-items:flex-start}.scroll-cue{display:none}}

/* Manifesto */
.manifesto{padding:clamp(120px,22vh,240px) var(--gutter);display:grid;grid-template-columns:1fr 3fr;gap:40px}
.manifesto .eyebrow{color:var(--olive);padding-top:12px}
.manifesto p{font-weight:300;font-size:clamp(28px,3.9vw,62px);line-height:1.15;letter-spacing:-.04em}
@media (max-width:760px){.manifesto{grid-template-columns:1fr}}

/* Collections */
.collections{position:relative;overflow:hidden}
.coll-head{position:absolute;top:clamp(90px,12vh,120px);left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:flex-end;z-index:2;pointer-events:none}
.coll-progress{width:180px;height:1px;background:var(--line-d);position:relative}
.coll-progress i{position:absolute;inset:0;background:var(--sand);transform-origin:left;transform:scaleX(0)}
.track{display:flex;align-items:flex-end;gap:clamp(24px,4vw,64px);height:100vh;padding:0 var(--gutter) clamp(40px,8vh,80px);width:max-content}
.ccard{position:relative;flex:none;width:clamp(260px,min(32vw,44vh),520px);display:block}
.ccard:nth-child(odd){margin-bottom:10vh}
.ccard-img{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--ink-2);border-radius:0 var(--arch) 0 0}
.ccard-img img{transform:scale(1.15);transition:filter 1.2s var(--ease);filter:brightness(.92)}
.ccard:hover .ccard-img img{filter:brightness(1.05)}
.ccard-meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:20px}
.ccard-meta span{color:var(--muted-d)}
.track-intro{flex:none;width:clamp(260px,26vw,400px);align-self:center}
.track-intro .h-m{margin-bottom:22px}
@media (max-width:860px){
  .coll-head{position:static;padding:110px 0 40px}
  .collections{padding:0 var(--gutter) 80px}
  .track{flex-direction:column;align-items:stretch;height:auto;width:auto;padding:0;gap:56px}
  .ccard,.track-intro{width:100%}.ccard:nth-child(odd){margin-bottom:0}
  .coll-progress{display:none}
}

/* Featured */
.featured{background:var(--white);padding:clamp(110px,18vh,200px) var(--gutter)}
.tabs{display:flex;gap:10px;flex-wrap:wrap}
.featured .pcard-img{background:#F7F4EE}
.featured-foot{display:flex;justify-content:center;margin-top:clamp(60px,10vh,100px)}

/* Materials */
.materials{padding:clamp(110px,18vh,200px) var(--gutter)}
.mat-top{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:clamp(50px,8vh,90px)}
.mat-top .lead{justify-self:end}
.mat-list{list-style:none;border-top:1px solid var(--line)}
.mat-list li{border-bottom:1px solid var(--line);position:relative;z-index:0}
.mat-list a{display:grid;grid-template-columns:70px 1fr auto;align-items:center;padding:clamp(18px,3vh,32px) 0;position:relative}
.mat-list .n{font-size:12px;letter-spacing:.2em;color:var(--muted)}
.mat-list .name{font-weight:300;font-size:clamp(34px,5.4vw,90px);line-height:1;letter-spacing:-.05em;transition:transform .8s var(--ease),color .6s}
.mat-list .tag{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);transition:color .6s;font-weight:500}
.mat-list a::before{content:"";position:absolute;inset:0 calc(var(--gutter)*-1);background:var(--ink);transform:scaleY(0);transform-origin:bottom;transition:transform .7s var(--ease);z-index:-1}
.mat-list a:hover::before{transform:scaleY(1);transform-origin:top}
.mat-list a:hover .name{transform:translateX(24px);color:var(--sand)}
.mat-list a:hover .tag,.mat-list a:hover .n{color:var(--olive-soft)}
.mat-float{position:fixed;top:0;left:0;width:clamp(220px,20vw,320px);aspect-ratio:3/4;pointer-events:none;z-index:60;overflow:hidden;opacity:0;transform:scale(.6);border-radius:0 80px 0 0;background:var(--white)}
.mat-float img{position:absolute;inset:0;opacity:0;transition:opacity .5s}
.mat-float img.on{opacity:1}
@media (max-width:760px){.mat-top{grid-template-columns:1fr}.mat-top .lead{justify-self:start}.mat-list a{grid-template-columns:40px 1fr}.mat-list .tag{display:none}}

/* Stage */
.stage{position:relative;height:130vh;overflow:hidden}
.reveal-frame{position:absolute;inset:0;clip-path:inset(18% 22% 18% 22% round 0 160px 0 0)}
.stage-media{position:absolute;inset:-15% 0}
.stage-media img{filter:brightness(.5)}
.stage-mask{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 var(--gutter)}
.stage blockquote{font-weight:300;font-size:clamp(30px,4.4vw,72px);line-height:1.1;letter-spacing:-.045em;max-width:1100px}
.stage cite{display:block;margin-top:36px;font-style:normal;color:var(--muted-d)}

/* Visualizer promo */
.viz-promo{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(40px,6vw,100px);align-items:center;padding:clamp(100px,16vh,180px) var(--gutter)}
.vp-media{position:relative;aspect-ratio:5/3;overflow:hidden;border-radius:0 var(--arch) 0 0}
.vp-media img{position:absolute;inset:0}
.vp-after{position:absolute;inset:0;clip-path:inset(0 0 0 100%)}
.vp-tag{position:absolute;right:16px;bottom:16px;background:var(--sand);color:var(--ink);padding:8px 12px}
.vp-line{position:absolute;top:0;bottom:0;left:100%;width:2px;background:var(--sand)}
@media (max-width:860px){.viz-promo{grid-template-columns:1fr}}

/* Brands */
.brands{background:var(--white);padding:clamp(100px,16vh,170px) var(--gutter)}
.brand-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:clamp(40px,7vh,70px)}
.brand-grid span{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(28px,5vh,48px) 24px;font-size:clamp(17px,1.5vw,22px);letter-spacing:-.02em;text-align:center;transition:background .6s var(--ease),color .6s}
.brand-grid span:hover{background:var(--sand)}
@media (max-width:760px){.brand-grid{grid-template-columns:1fr 1fr}}

/* Reviews */
.reviews{padding:clamp(110px,18vh,200px) var(--gutter);display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:start}
.reviews .eyebrow{color:var(--olive)}
.rev-stage{position:relative;min-height:clamp(280px,36vh,380px)}
.rev{position:absolute;inset:0;opacity:0;pointer-events:none}
.rev.on{pointer-events:auto}
.rev q{display:block;font-weight:300;font-size:clamp(26px,3.2vw,50px);line-height:1.18;letter-spacing:-.04em;quotes:"«" "»"}
.rev .who{margin-top:32px;display:flex;align-items:center;gap:16px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:500}
.rev .who::before{content:"";width:40px;height:1px;background:var(--olive)}
.rev-ctrl{display:flex;align-items:center;gap:20px;margin-top:40px}
.rev-ctrl button{width:56px;height:56px;border-radius:50%;border:1px solid var(--line);background:none;cursor:pointer;font-size:16px;transition:background .5s,color .5s,border-color .5s}
.rev-ctrl button:hover{background:var(--ink);color:var(--sand);border-color:var(--ink)}
.rev-count{font-size:18px;font-weight:300}
.stars{color:var(--olive);letter-spacing:.3em;font-size:13px;margin-top:16px}
@media (max-width:760px){.reviews{grid-template-columns:1fr}.rev-stage{min-height:340px}}

/* Visit */
.visit{padding:clamp(100px,18vh,200px) var(--gutter);display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,120px);align-items:center}
.visit-img{aspect-ratio:4/5;overflow:hidden;clip-path:inset(100% 0 0 0);border-radius:0 var(--arch) 0 0}
.visit-img img{transform:scale(1.3)}
.visit .h-l{margin:22px 0 46px}
.info{display:grid;grid-template-columns:1fr 1fr;gap:32px 28px;border-top:1px solid var(--line-d);padding-top:32px}
.info h4{color:var(--sand);margin-bottom:12px}
.info p,.info a{font-size:14px;line-height:1.8;color:var(--muted-d)}
.visit .btn{margin-top:50px}
@media (max-width:860px){.visit{grid-template-columns:1fr}.info{grid-template-columns:1fr}}

/* about — ported from about.html */
.a-hero-img{margin:0 var(--gutter);aspect-ratio:21/9;overflow:hidden;border-radius:0 var(--arch) 0 0;position:relative;background:var(--ink-2)}
.a-hero-img img{position:absolute;inset:-10% 0;height:120%}
.since{display:flex;align-items:baseline;gap:20px}
.since b{font-weight:300;font-size:clamp(80px,14vw,240px);line-height:.85;letter-spacing:-.07em;color:var(--olive)}
.story{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(40px,7vw,120px);align-items:start}
.story-text p{font-size:17px;line-height:1.85;color:var(--muted);margin-bottom:22px;max-width:620px}
.story-text p:first-child{font-size:clamp(22px,2vw,30px);line-height:1.4;letter-spacing:-.025em;color:var(--ink)}
.timeline{position:relative}
.tl-track{display:flex;gap:clamp(24px,4vw,64px);padding:0 var(--gutter);width:max-content}
.tl-item{width:clamp(280px,30vw,440px);flex:none;border-top:1px solid var(--line-d);padding-top:28px}
.tl-item .yr{font-weight:300;font-size:clamp(48px,5vw,84px);letter-spacing:-.05em;line-height:1;color:var(--sand)}
.tl-item h3{font-weight:400;font-size:20px;letter-spacing:-.02em;margin:22px 0 12px}
.tl-item p{font-size:14.5px;line-height:1.8;color:var(--muted-d)}
.tl-head{padding:clamp(90px,14vh,140px) var(--gutter) 60px;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.tl-wrap{padding-bottom:clamp(90px,14vh,140px);overflow:hidden}
.values{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.value{padding:36px 28px 40px 0;border-right:1px solid var(--line)}
.value:not(:first-child){padding-left:28px}
.value:last-child{border-right:0}
.value .n{font-size:12px;letter-spacing:.2em;color:var(--olive);font-weight:500}
.value h3{font-weight:300;font-size:clamp(24px,2.2vw,34px);letter-spacing:-.035em;margin:40px 0 14px}
.value p{font-size:14px;line-height:1.75;color:var(--muted)}
.kat{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:center}
.kat-imgs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.kat-imgs div{overflow:hidden;aspect-ratio:3/4;background:var(--white)}
.kat-imgs div:first-child{grid-row:span 2;aspect-ratio:auto;border-radius:0 var(--arch) 0 0}
.kat-imgs img{transition:transform 1.4s var(--ease)}
.kat-imgs div:hover img{transform:scale(1.05)}
.sec .brand-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.sec .brand-grid span{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(26px,4.5vh,44px) 20px;font-size:clamp(16px,1.4vw,21px);letter-spacing:-.02em;text-align:center;transition:background .6s var(--ease)}
.sec .brand-grid span:hover{background:var(--white)}
@media (max-width:960px){.story,.kat{grid-template-columns:1fr}.values{grid-template-columns:1fr 1fr}.value{border-bottom:1px solid var(--line)}.value:nth-child(2){border-right:0}.value:nth-child(3){padding-left:0}}
@media (max-width:860px){.tl-track{flex-direction:column;width:auto}.tl-item{width:auto}}
@media (max-width:560px){.values{grid-template-columns:1fr}.value{padding-left:0!important;border-right:0}.sec .brand-grid{grid-template-columns:1fr 1fr}}

/* contact — ported from contact.html */
.open-now{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;font-size:12px;letter-spacing:.04em;margin-top:30px}
.open-now i{width:8px;height:8px;border-radius:50%;background:#b2513b;position:relative}
.open-now.open i{background:var(--olive)}
.open-now.open i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--olive);animation:ping 1.8s var(--ease) infinite}
@keyframes ping{from{transform:scale(.6);opacity:1}to{transform:scale(1.8);opacity:0}}
.c-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,24px);padding:0 var(--gutter)}
.c-card{background:var(--white);padding:clamp(28px,3vw,44px);display:flex;flex-direction:column;gap:14px;min-height:260px;transition:border-radius .8s var(--ease),background .6s}
.c-card:hover{border-radius:0 60px 0 0}
.c-card h3{font-weight:300;font-size:clamp(22px,2vw,32px);letter-spacing:-.035em;line-height:1.15}
.c-card p{font-size:14px;line-height:1.7;color:var(--muted)}
.c-card .arrow-link{margin-top:auto}
.c-card.dark{background:var(--ink);color:var(--white)}
.c-card.dark p{color:var(--muted-d)}
.hours{list-style:none;margin-top:6px}
.hours li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-d);font-size:14px}
.hours li.today{color:var(--sand)}
.hours li span:last-child{text-align:right;color:var(--muted-d)}
.hours li.today span:last-child{color:var(--sand)}
.c-form-wrap{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(40px,7vw,120px)}
.topics{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px}
.c-form .btn{justify-self:start}
.sent{display:none;padding:40px 0}
.sent .h-m{margin-bottom:14px}
.map{position:relative;height:clamp(380px,60vh,620px);margin:0 var(--gutter);overflow:hidden;border-radius:0 var(--arch) 0 0;background:var(--ink-2)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.05) brightness(.95)}
.map-card{position:absolute;left:24px;bottom:24px;background:var(--sand);padding:24px 28px;max-width:320px;z-index:2}
.map-card p{font-size:14px;line-height:1.7;color:var(--muted);margin:8px 0 16px}
.faq{display:grid;grid-template-columns:1fr 1.6fr;gap:clamp(40px,7vw,120px)}
@media (max-width:960px){.c-cards{grid-template-columns:1fr}.c-form-wrap,.faq{grid-template-columns:1fr}}

/* projects — ported from projects.html */
.pj-list{padding:0 var(--gutter) clamp(90px,14vh,150px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(50px,9vh,110px) clamp(16px,2vw,32px)}
.pj{display:block;position:relative}
.pj:nth-child(5n+1){grid-column:1/8}
.pj:nth-child(5n+2){grid-column:9/13;margin-top:22vh}
.pj:nth-child(5n+3){grid-column:2/7}
.pj:nth-child(5n+4){grid-column:8/13;margin-top:-10vh}
.pj:nth-child(5n+5){grid-column:3/11}
.pj-img{position:relative;overflow:hidden;aspect-ratio:3/2;background:var(--ink-2);transition:border-radius 1s var(--ease)}
.pj:nth-child(5n+2) .pj-img{aspect-ratio:4/5}
.pj:hover .pj-img{border-radius:0 var(--arch) 0 0}
.pj-img img{position:absolute;inset:-8% 0;height:116%;transition:transform 1.6s var(--ease),filter 1s}
.pj:hover .pj-img img{transform:scale(1.04)}
.pj-list .pj-meta{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-top:20px;border-top:1px solid var(--line);padding-top:16px}
.pj-list .pj-meta h2{font-weight:300;font-size:clamp(24px,2.4vw,38px);letter-spacing:-.04em}
.pj-list .pj-meta h2{transition:color .5s}
.pj:hover .pj-list .pj-meta h2{color:var(--olive)}
.pj-list .pj-meta span{color:var(--muted);white-space:nowrap}
.pj-filters{display:flex;gap:8px;flex-wrap:wrap}
.cta-band{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:end}
@media (max-width:860px){.pj-list .pj-meta{flex-wrap:wrap}.pj-list .pj-meta span{white-space:normal}.pj-list{grid-template-columns:minmax(0,1fr)}.pj{grid-column:1/-1!important;margin-top:0!important}.cta-band{grid-template-columns:1fr}}
