*{box-sizing:border-box}
body{margin:0;background:var(--c-bg);color:var(--c-ink);font:17px/1.62 var(--f-body);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--f-heading);font-weight:500;line-height:1.03;letter-spacing:-.02em;margin:0;font-variation-settings:"SOFT" 40,"WONK" 1}
h1,h2{text-transform:uppercase;font-weight:300;letter-spacing:.005em}
h2{font-size:clamp(1.9rem,3.2vw,3rem);line-height:1.15}
h3{font-weight:300}
p{margin:0}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--c-accent);outline-offset:3px}
.wrap{width:min(1320px,100%);margin:0 auto;padding:0 clamp(16px,4vw,56px)}
.button{display:inline-block;background:var(--c-accent);color:var(--c-ink);padding:.9em 1.6em;border:0;border-radius:2px;font:inherit;font-weight:650;text-decoration:none;cursor:pointer;transition:background-color .2s}
.button:hover{background:#fff}
.wb-hp{position:absolute;left:-9999px}

.demobar{background:var(--c-accent);color:var(--c-ink);text-align:center;padding:.45em 1em;font-size:.92rem;position:relative;z-index:40}
.demobar a{font-weight:700}
.top{position:relative;z-index:20;display:flex;align-items:center;gap:1.5rem;padding:22px clamp(16px,4vw,56px);color:var(--c-ink)}
.top__brand{font-family:var(--f-heading);font-size:1.4rem;text-decoration:none;margin-right:auto}
.top__logo{max-height:48px;width:auto}
.is-home .top__phone{display:none}
.top__nav{display:flex;gap:1.6rem}
.top nav a{text-decoration:none;border-bottom:2px solid transparent;padding:.15em 0}
.top nav a:hover,.top nav a[aria-current]{border-color:var(--c-accent)}
.top__menu{display:none}
.pagehero{position:relative;height:clamp(420px,66vh,680px);overflow:hidden;display:flex;align-items:flex-end;padding:clamp(20px,4vw,56px)}
.pagehero__bg{position:absolute;inset:-14% 0}
.pagehero__bg img{width:100%;height:100%;object-fit:cover}
.pagehero__card{position:relative;background:rgba(255,255,255,.92);padding:clamp(22px,3vw,44px);width:min(640px,100%)}
.pagehero h1{font-size:clamp(2.2rem,4.4vw,4rem);line-height:1.05}
.pagehero p{margin-top:.7rem}
.values{padding:clamp(56px,7vw,104px) clamp(16px,4vw,56px);background:var(--c-soft);text-align:center}
.values__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,44px);max-width:1280px;margin:clamp(28px,4vw,52px) auto 0}
.values h3{font-size:1.45rem;text-transform:uppercase;line-height:1.2}
.values p{margin-top:.5rem}
.faq{padding:clamp(56px,7vw,104px) clamp(16px,4vw,56px);text-align:center}
.faq__list{max-width:820px;margin:clamp(24px,3vw,40px) auto 0;text-align:left}
.faq details{border-top:1px solid var(--c-primary);padding:1rem 0}
.faq summary{cursor:pointer;font-size:1.2rem;font-weight:500}
.faq details p{margin-top:.6rem}
.cta{background:var(--c-primary);color:#fff;text-align:center;padding:clamp(56px,7vw,104px) clamp(16px,4vw,56px)}
.cta__row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem 2.5rem;margin-top:1.8rem}
.cta__phone{font-size:clamp(1.5rem,2.6vw,2.3rem);font-weight:300;text-decoration:none}
.info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px);max-width:1160px;margin:0 auto;padding:clamp(48px,6vw,88px) clamp(16px,4vw,56px)}
.info h2{font-size:1.35rem;margin-bottom:.5rem}
.top__phone{font-weight:650;text-decoration:none;white-space:nowrap;border-bottom:2px solid var(--c-accent)}

.hero{position:relative;height:calc(100svh - 118px);min-height:640px;display:flex;flex-direction:column;padding:0 clamp(16px,4vw,56px) clamp(20px,3vh,36px)}
@media (min-width:901px){.hero{margin-bottom:118px}}
.hero__intro{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}
.hero__title{font-size:clamp(2.8rem,7vw,7.2rem);font-weight:300;line-height:1.02;letter-spacing:-.02em;max-width:13ch}
.hero__side{display:flex;flex-direction:column;align-items:flex-end;gap:.7rem;text-align:right;flex:none;width:min(340px,30%)}
.hero__phone{font-family:var(--f-heading);font-weight:600;font-size:clamp(1.4rem,2.3vw,2.2rem);text-decoration:none;white-space:nowrap;background:var(--c-primary);color:#fff;padding:.4em .75em}
.pic{position:relative;flex:1;min-height:0;margin:44px 0 0 44px;z-index:5}
.pic__frame{position:absolute;inset:0;overflow:hidden}
.pic__img{width:100%;height:100%;object-fit:cover}
.dim{position:absolute;display:flex;align-items:center;justify-content:center;color:var(--c-primary);font-weight:600;font-size:1.05rem;white-space:nowrap}
.dim i{position:absolute;background:var(--c-primary)}
.dim b{position:relative;background:var(--c-bg);padding:0 .8em;font-weight:600;font-variant-numeric:tabular-nums}
.dim--w{left:0;right:0;top:-30px;height:24px}
.dim--w i{left:0;right:0;top:50%;height:2px;transform-origin:left}
.dim--h{top:0;bottom:0;left:-36px;width:24px}
.dim--h i{top:0;bottom:0;left:50%;width:2px;transform-origin:top}
.dim--h b{transform:rotate(-90deg)}
.tabs{position:fixed;right:0;top:44%;z-index:35;display:flex;flex-direction:column;gap:2px}
.tabs a{display:flex;align-items:center;gap:.7rem;background:var(--c-accent);color:var(--c-ink);padding:12px;text-decoration:none;font-weight:700;transform:translateX(calc(100% - 48px));transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.tabs a:hover,.tabs a:focus-visible{transform:none}
.tabs svg{flex:none}
.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.strip figure{margin:0;aspect-ratio:4/3;overflow:hidden}
.strip img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.strip figure:hover img{transform:scale(1.07)}
.marquee{padding:clamp(20px,2.6vw,36px) 0;overflow:hidden;background:var(--c-primary);color:var(--c-bg)}
.marquee__track{display:flex;width:max-content;gap:1.2em;font-family:var(--f-heading);font-weight:300;font-size:clamp(2rem,4.4vw,4.4rem);line-height:1;text-transform:uppercase;white-space:nowrap}
.marquee__track span:nth-child(even){color:var(--c-accent)}

.statement{padding:clamp(64px,7vw,104px) clamp(16px,4vw,56px)}
.statement__inner{max-width:980px;margin:0 auto;text-align:center}
.statement__text{font-size:clamp(1.3rem,2vw,1.75rem);line-height:1.4;font-weight:300;margin-top:1.3rem}
.statement__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,56px);margin-top:2.2rem;text-align:left}

.services__head{text-align:center;padding:0 clamp(16px,4vw,56px) clamp(32px,4vw,56px);margin:0 auto}
.service{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:min(78vh,720px);background:var(--c-soft)}
.service:nth-of-type(even){background:var(--c-bg)}
.service:nth-of-type(even) .service__media{order:2}
.service__media{overflow:hidden;position:relative;min-height:320px}
.service__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.service__copy{display:flex;align-items:center;padding:clamp(32px,6vw,96px)}
.service__copy>div{max-width:30rem}
.service h3{font-size:clamp(1.8rem,2.8vw,2.7rem);line-height:1.15;text-transform:uppercase}
.service p{margin-top:.9rem}
.service__link{display:inline-block;margin-top:1.1rem;color:#B55F00;font-weight:600;font-style:italic;text-underline-offset:4px}

.gallery{background:var(--c-primary);color:#fff;padding:clamp(64px,8vw,104px) 0;overflow:hidden}
.gallery__head{padding:0 clamp(16px,4vw,56px);margin-bottom:clamp(24px,3vw,44px)}
.gallery__track{display:flex;gap:clamp(14px,2vw,28px);padding:0 clamp(16px,4vw,56px);width:max-content}
.gallery figure{margin:0;width:min(62vw,62vh*1.5)}
.gallery__frame{aspect-ratio:3/2;overflow:hidden}
.gallery img{width:118%;max-width:none;height:100%;object-fit:cover}
.gallery figcaption{margin-top:.6rem;color:var(--c-soft)}

.process{padding:clamp(80px,11vw,160px) 0}
.process{position:relative;background:var(--c-bg)}
.process__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,6vw,96px);align-items:center}
.process ol{list-style:none;counter-reset:s;padding:0;margin:clamp(28px,4vw,48px) 0 0}
.process li{counter-increment:s;border-top:2px solid var(--c-soft);padding:.9rem 0;opacity:.42;transition:opacity .3s}
.process li.is-on{opacity:1;border-color:var(--c-primary)}
.process li::before{content:counter(s);font-size:1rem;font-weight:700;color:var(--c-primary)}
.process h3{font-size:clamp(1.9rem,3vw,2.9rem);margin-top:.1rem}
.process p{margin-top:.3rem}
@media (min-width:901px){.process li p{max-height:0;overflow:hidden;transition:max-height .35s}.process li.is-on p{max-height:6em}.process li{padding:.6rem 0}}
.process__inline{display:none}
.process__stage{position:relative;aspect-ratio:4/5;max-height:76vh;width:100%;overflow:hidden}
.process__stage div{position:absolute;inset:0}
.process__stage img{width:100%;height:100%;object-fit:cover}
.process__bar{position:absolute;left:0;right:0;bottom:0;height:8px;background:var(--c-accent);transform-origin:left;transform:scaleX(.25);z-index:3}

.reviews{position:relative;overflow:hidden;min-height:min(86vh,760px);display:flex;align-items:center;padding:clamp(40px,6vw,88px) clamp(16px,8vw,120px)}
.reviews__bg{position:absolute;inset:-12% 0;}
.reviews__bg img{width:100%;height:100%;object-fit:cover}
.reviews__card{position:relative;background:rgba(255,255,255,.9);padding:clamp(26px,3.6vw,52px);width:min(620px,100%)}
.reviews__label{margin-top:.4rem;font-size:.92rem}
.reviews__stack{margin-top:1.3rem}
.reviews blockquote{margin:0 0 1.1rem;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.3;font-weight:300}
.reviews footer{font-size:.96rem;margin-top:.5rem;font-weight:600}
.reviews__stack.is-live{display:grid}
.reviews__stack.is-live blockquote{grid-area:1/1;margin:0}

.contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:var(--c-soft)}
.contact__media{position:relative;overflow:hidden;min-height:320px}
.contact__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.contact__body{padding:clamp(40px,6vw,88px) clamp(16px,6vw,88px)}
.contact__text{margin:1rem 0 1.2rem;max-width:42ch}
.contact__phone{font-family:var(--f-heading);font-size:clamp(2rem,3.4vw,3.2rem);line-height:1.05;margin-bottom:1.6rem;text-decoration:none;display:inline-block;font-weight:600;overflow-wrap:anywhere}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.form__wide,.form__msg{grid-column:1/-1}
.form label span{display:block;font-weight:600;margin-bottom:3px}
.form em{font-style:normal;font-size:.82rem;font-weight:500}
.form input,.form textarea{width:100%;padding:.72em .8em;border:1px solid var(--c-ink);border-radius:2px;background:#fff;color:var(--c-ink);font:inherit}
.form .button{background:var(--c-accent);color:var(--c-ink)}
.form .button:hover{background:var(--c-ink);color:#fff}
.hero__side .button{background:var(--c-accent);color:var(--c-ink)}
.hero__side .button:hover{background:var(--c-ink);color:#fff}
.form__msg{padding:.7em 1em;font-weight:600;border-radius:2px;background:#fff;color:var(--c-ink)}
.form__msg--err{background:#FBE1DA;color:#7F1D0A}
.form__privacy{font-size:.88rem}
.form .button{justify-self:start}

.plain{padding:120px clamp(16px,4vw,56px)}
.plain h1{font-size:clamp(2.6rem,6vw,5rem);margin-bottom:1.5rem}
.wb-legal{padding:clamp(32px,6vw,72px) clamp(16px,4vw,56px) clamp(72px,10vw,120px)}
.wb-legal__inner{max-width:70ch;margin:0 auto}
.wb-legal h1{font-size:clamp(2.6rem,5.4vw,4.4rem);margin-bottom:1.5rem}
.wb-legal h2{font-size:1.5rem;margin:2.2rem 0 .6rem;max-width:none;letter-spacing:-.01em}
.wb-legal p{margin:.35rem 0}

.foot{background:var(--c-ink);color:#fff;padding:56px 0}
.foot__grid{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:32px}
.foot__name{font-family:var(--f-heading);font-size:1.4rem}
.foot nav{display:flex;flex-direction:column;gap:.4rem}
.callbar{display:none}

@media (max-width:900px){
  .values__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .info{grid-template-columns:minmax(0,1fr)}
  .statement__cols{grid-template-columns:minmax(0,1fr)}
  .strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tabs{display:none}
  .service,.contact{grid-template-columns:minmax(0,1fr)}
  .service{min-height:0}
  .service__media{aspect-ratio:3/2}
  .contact__media{aspect-ratio:3/2}
  .service:nth-of-type(even) .service__media{order:0}
  .process__grid{grid-template-columns:minmax(0,1fr)}
  .process__stage{display:none}
  .process__inline{display:block;margin-bottom:.7rem}
  .process__inline img{width:100%;aspect-ratio:3/2;object-fit:cover}
  .process li{opacity:1}
  .hero{height:auto;min-height:0}
  .hero__intro{flex-direction:column}
  .hero__side{align-items:flex-start;text-align:left;width:100%}
  .pic{flex:none;height:60vw;margin-left:34px;margin-top:40px}
  .foot__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery{overflow:visible}
  .gallery__track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .gallery figure{flex:0 0 82vw;width:82vw;scroll-snap-align:center}
}
@media (max-width:640px){
  body{padding-bottom:60px}
  .top__phone,.top__nav{display:none}
  .top__menu{display:block;position:relative}
  .top__menu summary{cursor:pointer;list-style:none;font-weight:600;padding:.3em .9em;border:1px solid var(--c-ink)}
  .top__menu summary::-webkit-details-marker{display:none}
  .top__menu nav{position:absolute;right:0;top:calc(100% + 8px);background:#fff;display:flex;flex-direction:column;gap:.3rem;padding:.9rem 1.2rem;min-width:190px;box-shadow:0 16px 36px -16px rgba(40,25,15,.5);z-index:40}
  .values__grid{grid-template-columns:minmax(0,1fr)}
  .dim{font-size:.85rem}
  .foot__grid{grid-template-columns:minmax(0,1fr)}
  .callbar{display:block;position:fixed;inset:auto 0 0;z-index:30;background:var(--c-accent);color:var(--c-ink);text-align:center;font-weight:700;padding:1em;text-decoration:none}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}
