@font-face{font-family:"Cardo";src:url(assets/fonts/cardo-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Cardo";src:url(assets/fonts/cardo-400i.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Jost";src:url(assets/fonts/jost.woff2) format("woff2");font-weight:100 900;font-display:swap}

:root{
  --ink:#202020;
  --text:#333;
  --muted:#6a6560;
  --taupe:#ad8a72;
  --taupe-d:#7f604b;
  --sand:#d8d0c5;
  --paper:#f2ede7;
  --line:#ccc;
  --danger:#8f2a14;
  --serif:"Cardo",Georgia,"Times New Roman",serif;
  --sans:"Jost",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.77,0,.18,1);
  --head:106px;
  --sec:clamp(96px,12vw,174px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--head) + 16px)}
body{margin:0;background:#000;color:var(--text);font:400 17px/1.85 var(--sans);letter-spacing:.02em;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
img,svg,canvas{display:block}
img{max-width:100%;height:auto}
button{font:inherit;color:inherit;letter-spacing:inherit}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}

.inner{width:90%;max-width:1600px;margin-inline:auto}
.lead{margin-top:20px;color:var(--muted);max-width:40ch}

.ttl{display:grid;gap:14px;font-weight:400}
.ttl__en{font-family:var(--serif);font-size:clamp(44px,5vw,72px);line-height:1.08;color:var(--ink)}
.ttl__sub{font-family:var(--sans);font-size:14px;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* scroll-in motion */
.js .js-up{opacity:0;translate:0 1rem;transition:opacity .6s ease-out var(--d,0s),translate .6s ease-out var(--d,0s)}
.js .js-up.is-in{opacity:1;translate:0 0}
.js .reveal .img{clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease) var(--d,0s)}
.js .reveal.is-in .img{clip-path:inset(0)}
.js .reveal figcaption{opacity:0;translate:0 1rem;transition:opacity .6s ease-out .45s,translate .6s ease-out .45s}
.js .reveal.is-in figcaption{opacity:1;translate:0 0}

/* long bar buttons: colour sweeps across on hover, the arrow loops */
.bar{position:relative;display:flex;align-items:center;justify-content:center;width:min(468px,100%);min-height:88px;padding:16px 72px;border:0;cursor:pointer;font:500 15px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;text-align:center;background-size:300% 100%;background-position:100% 0;transition:background-position .6s var(--ease);color:#fff}
.bar::after{content:"";position:absolute;right:30px;top:50%;width:30px;height:10px;margin-top:-5px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 10'%3E%3Cpath d='M0 9h28L20 1' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 10'%3E%3Cpath d='M0 9h28L20 1' fill='none' stroke='%23000' stroke-width='1.2'/%3E%3C/svg%3E") center/contain no-repeat}
.bar:hover{background-position:0 0}
.bar:hover::after{animation:arrow .5s ease-out}
@keyframes arrow{0%{transform:none;opacity:1}45%{transform:translateX(14px);opacity:0}46%{transform:translateX(-14px);opacity:0}100%{transform:none;opacity:1}}
.bar--ink{background-image:linear-gradient(100deg,#57504a 0 33.3%,#202020 66.6%)}
.bar--taupe{background-image:linear-gradient(100deg,#5e4636 0 33.3%,var(--taupe-d) 66.6%)}
.bar--white{background-image:linear-gradient(100deg,var(--sand) 0 33.3%,#fff 66.6%);color:var(--ink)}

/* header */
.header{position:fixed;inset:0 0 auto;z-index:60;height:var(--head);display:flex;align-items:center;justify-content:space-between;gap:24px;padding-inline:56px;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--ink);transition:height .4s ease-out,background-color .4s ease-out,color .4s ease-out,opacity .8s ease-out .5s}
.header.is-top{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;color:#fff}
.js:not(.is-ready) .header{opacity:0;pointer-events:none}
.logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--serif);font-size:25px;line-height:1;letter-spacing:.01em;white-space:nowrap}
.gnav{display:flex;gap:clamp(18px,2.4vw,40px);font-size:15px;letter-spacing:.06em}
.gnav a:hover,.header__tel a:hover{opacity:.65}
.header__act{display:flex;align-items:center;gap:28px}
.header__tel{display:grid;line-height:1.3;text-align:right;white-space:nowrap}
.header__tel a{font-size:19px;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.header__tel span{font-size:12px;letter-spacing:.1em;text-transform:uppercase;opacity:.75}
.header__btn{display:inline-flex;align-items:center;height:48px;padding-inline:32px;background:var(--ink);color:#fff;border:1px solid var(--ink);font-size:14px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;transition:background-color .4s ease-out,color .4s ease-out}
.header__btn:hover{background:var(--taupe-d);border-color:var(--taupe-d)}
.header.is-top .header__btn{background:transparent;border-color:#fff}
.header.is-top .header__btn:hover{background:#fff;color:var(--ink)}
.header__menu{display:none;height:44px;padding:0 4px;background:none;border:0;cursor:pointer;font-size:14px;letter-spacing:.14em;text-transform:uppercase}
.header__menu:hover{color:var(--taupe)}

.menu{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--ink)}
.menu::backdrop{background:transparent}
.menu__close{position:absolute;top:10px;right:5%;height:44px;background:none;border:0;cursor:pointer;font-size:14px;letter-spacing:.14em;text-transform:uppercase}
.menu__in{width:90%;margin-inline:auto;padding-block:84px 48px;display:grid;gap:28px}
.menu__say{font-family:var(--serif);font-size:24px;line-height:1.4}
.menu__nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;font-size:18px;letter-spacing:.06em}
.menu__nav a{padding-block:13px;border-bottom:1px solid var(--line)}
.menu__tel{font-family:var(--serif);font-size:38px;line-height:1.2}

/* hero: stays fixed while the page rises over it */
.hero{position:fixed;inset:0;height:100vh;height:100lvh;z-index:0;background:#000;color:#fff;overflow:hidden}
.hero__media{position:absolute;inset:0;transition:clip-path 1.4s var(--ease)}
.js .hero__media{clip-path:inset(calc(50% - 7.3vw) calc(50% - 13vw))}
.js.is-ready .hero__media{clip-path:inset(0)}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:74% 100%;transition:transform 1.8s var(--ease)}
.js .hero__media img{transform:scale(1.2)}
.js.is-ready .hero__media img{transform:none}
.hero__snow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.34),rgba(0,0,0,0) 62%),linear-gradient(0deg,rgba(0,0,0,.42),rgba(0,0,0,0) 44%)}
.no-intro .hero__media,.no-intro .hero__media img,.no-intro .hero__txt,.no-intro .hero__cta,.no-intro .scrollline{transition:none}
.loader{display:none}
.js .loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding-block:58px 120px;transition:opacity 1.2s,visibility 0s 1.2s}
.js.is-ready .loader{opacity:0;visibility:hidden}
.loader__copy{font-family:var(--serif);font-size:20px;letter-spacing:.12em;text-align:center;padding-inline:24px}
.loader__num{font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.hero__txt{position:absolute;left:5%;bottom:clamp(92px,15vh,170px);transition:opacity 1s ease-out .9s,translate 1s ease-out .9s}
.hero__cta{position:absolute;right:5%;bottom:30px;display:flex;gap:36px;font-size:14px;letter-spacing:.1em;text-transform:uppercase;transition:opacity 1s ease-out 1.2s}
.hero__cta a:hover{opacity:.7}
.js:not(.is-ready) .hero__txt{opacity:0;translate:0 1rem}
.js:not(.is-ready) .hero__cta,.js:not(.is-ready) .scrollline{opacity:0}
.deg{margin-left:-.14em}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(38px,min(4.8vw,8.6vh),76px);line-height:1.26;letter-spacing:.01em}
.hero__sub{margin-top:18px;font-size:14px;letter-spacing:.1em;text-transform:uppercase}
.scrollline{position:absolute;left:50%;bottom:0;width:1px;height:4rem;background:#fff;animation:line 2.5s infinite;transition:opacity 1s ease-out 1.2s}
@keyframes line{0%{clip-path:inset(0 0 100% 0)}45%{clip-path:inset(0)}55%{clip-path:inset(0)}100%{clip-path:inset(100% 0 0 0)}}

main,.foot{position:relative;z-index:1}
.spacer{height:100vh;height:100lvh}

/* over the fixed hero */
.intro{position:relative;padding-block:clamp(110px,16vh,200px) var(--sec);color:#fff;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.78) 240px,rgba(0,0,0,.9))}
.intro__top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(32px,6vw,120px);align-items:end}
.intro__say{font-family:var(--serif);font-size:clamp(28px,3.4vw,52px);line-height:1.42}
.intro__desc{font-size:18px;line-height:2}
.values{margin-top:clamp(64px,8vw,128px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,72px)}
.values li{padding-top:26px;border-top:1px solid rgba(255,255,255,.28)}
.values__n{display:block;font-family:var(--serif);font-style:italic;font-size:32px;line-height:1.2}
.values h2{margin-top:14px;font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.3}
.values p{margin-top:10px;color:#d9d3cc}
.intro__cta{margin-top:clamp(56px,7vw,104px);display:flex;flex-wrap:wrap;gap:16px;justify-content:center}

/* works */
.works{background:var(--paper);padding-block:var(--sec);overflow:hidden}
.works__head{display:grid;grid-template-columns:360px minmax(0,1fr);gap:clamp(40px,11vw,275px);align-items:start}
.w .img{overflow:hidden}
.w img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:scale .9s ease-out}
.w:hover img{scale:1.04}
.w figcaption{display:grid;gap:2px;margin-top:14px}
.w strong{font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.3;color:var(--ink)}
.w span{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.works__body{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;row-gap:clamp(64px,8vw,128px);margin-top:clamp(64px,8vw,128px)}
.w--2{width:43.07%}
.w--3{width:31.93%;margin-top:clamp(64px,11vw,180px);margin-right:7%}
.w--4{width:23.75%;margin-left:6%;display:flex;gap:18px;align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end}
.w--4 .img{flex:1 1 0;min-width:0}
.w--4 img{aspect-ratio:3/4}
.w--4 figcaption{writing-mode:vertical-rl;margin-top:0}
.w--5{width:41.67%;margin-right:14%}

/* events */
.events{background:#e9e2d8;padding-top:var(--sec)}
.events__grid{display:grid;grid-template-columns:400px minmax(0,1fr);gap:clamp(40px,7vw,120px);align-items:start}
.events__left{position:sticky;top:calc(var(--head) + 24px)}
.pickup{display:grid;grid-template-columns:minmax(0,432px) minmax(0,1fr);gap:clamp(24px,3.4vw,56px);background:#fff;padding:clamp(24px,3.4vw,48px) clamp(24px,4vw,64px)}
.pickup__img img,.ev__img img,.shop__img img,.sys__img img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:scale .6s ease-out}
.pickup__img,.ev__img,.shop__img,.sys__img{overflow:hidden;position:relative}
.pickup:hover img,.ev:hover img,.shop:hover img,.sys:hover img{scale:1.1}
.pickup__label{font-family:var(--serif);font-size:20px;line-height:1.3;color:var(--taupe-d)}
.pickup h3,.ev h3,.sys h3,.shop h3{font-family:var(--serif);font-weight:400;color:var(--ink);line-height:1.3}
.pickup h3{margin-top:6px;font-size:32px}
.pickup p:last-child{margin-top:12px}
.ev{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;align-items:center;padding-block:32px;border-bottom:1px solid #c9c0b3}
.ev h3{font-size:24px}
.meta{margin-top:10px;display:grid;gap:4px;font-size:15px;line-height:1.5}
.meta li{position:relative;padding-left:24px}
.meta li::before{content:"";position:absolute;left:0;top:.24em;width:15px;height:15px;background:var(--taupe-d);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.meta--date{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Crect x='1.5' y='3' width='13' height='11.5'/%3E%3Cpath d='M1.5 6.5h13M5 1v3.5M11 1v3.5'/%3E%3C/svg%3E")}
.meta--pin{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Cpath d='M8 15S2.8 9.8 2.8 6.2a5.2 5.2 0 0 1 10.4 0C13.2 9.8 8 15 8 15z'/%3E%3Ccircle cx='8' cy='6.2' r='1.8'/%3E%3C/svg%3E")}
.strip{margin-top:var(--sec);overflow:hidden}
.strip__track{display:flex;width:max-content;animation:strip 80s linear infinite}
.strip img{height:clamp(240px,36vw,560px);object-fit:cover;margin-right:clamp(12px,1.4vw,24px)}
.strip .wide{width:auto;aspect-ratio:3/2}
.strip .narrow{width:auto;aspect-ratio:3/4}
@keyframes strip{to{transform:translateX(-50%)}}

.band{position:relative;height:clamp(320px,52vw,800px);overflow:hidden;background:var(--sand)}
[data-parallax]{position:absolute;left:0;top:-100px;width:100%;height:calc(100% + 200px);max-width:none;object-fit:cover;object-position:50% 100%;will-change:transform}

/* line-up */
.lineup{background:var(--paper);padding-block:var(--sec)}
.lineup__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:end}
.lineup__head .lead{justify-self:end;margin-top:0}
.ltabs{margin-top:clamp(40px,5vw,72px);display:flex;gap:4px}
.ltabs button{width:min(320px,50%);height:56px;background:var(--sand);border:0;cursor:pointer;font-family:var(--serif);font-size:21px;color:var(--ink);transition:background-color .4s ease-out,color .4s ease-out}
.ltabs button:hover{background:#c9bfb2}
.ltabs button[aria-selected=true]{background:var(--ink);color:#fff}
#lp-sys,#lp-rep{padding-top:clamp(40px,5vw,72px)}
.systems{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(40px,4vw,64px) clamp(24px,5vw,78px)}
.sys h3{margin-top:18px;font-size:26px}
.sys p{margin-top:4px}
.tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
.tags li{padding:2px 12px;border:1px solid var(--taupe-d);color:var(--taupe-d);font-size:14px;line-height:1.7;font-variant-numeric:tabular-nums}
.sys__sold{position:absolute;inset:0;display:grid;place-items:center;background:rgba(32,32,32,.55);color:#fff;font-family:var(--serif);font-size:28px}
.repairs__note{max-width:64ch}
.repairs{margin-top:32px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,56px)}
.repairs dt{font-family:var(--serif);font-size:26px;line-height:1.3;color:var(--ink);padding-bottom:12px;border-bottom:1px solid var(--ink)}
.repairs div{display:flex;justify-content:space-between;gap:16px;padding-block:12px;border-bottom:1px solid var(--line)}
.repairs dd{white-space:nowrap;font-variant-numeric:tabular-nums}
.repairs dd:first-child{white-space:normal}

/* urgent */
.urgent{background:#fff;padding-block:var(--sec)}
.urgent__grid{display:grid;grid-template-columns:400px minmax(0,1fr);gap:clamp(40px,7vw,120px);align-items:start}
.urgent__left{position:sticky;top:calc(var(--head) + 24px)}
.tabs{display:flex;flex-wrap:wrap;gap:8px}
.tab{padding:10px 18px;background:var(--paper);border:1px solid transparent;cursor:pointer;font-size:16px;line-height:1.3;transition:background-color .4s ease-out,color .4s ease-out}
.tab:hover{background:var(--sand)}
.tab[aria-selected=true]{background:var(--ink);color:#fff}
.tab--danger{border-color:var(--danger);color:var(--danger);background:#fff}
.tab--danger:hover{background:#f6e6e0}
.tab--danger[aria-selected=true]{background:var(--danger);color:#fff}
.panels{margin-top:24px;min-height:500px}
.panel{background:var(--paper);padding:clamp(24px,3.4vw,48px)}
.panel + .panel{margin-top:16px}
.js .panel + .panel{margin-top:0}
.panel[hidden]{display:none}
.panel h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.8vw,36px);line-height:1.25;color:var(--ink);text-wrap:balance}
.panel ol{margin-block:22px 26px;counter-reset:n}
.panel li{counter-increment:n;position:relative;padding:12px 0 12px 40px;border-top:1px solid var(--line);line-height:1.65}
.panel li::before{content:counter(n);position:absolute;left:0;top:10px;font-family:var(--serif);font-style:italic;font-size:20px;color:var(--taupe-d)}
.more{display:inline-block;font-size:14px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid currentColor;color:var(--ink)}
.more:hover{color:var(--taupe-d)}
.panel--danger{background:var(--danger);color:#fff}
.panel--danger h3{color:#fff}
.panel--danger h3 a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.12em}
.panel--danger ol{margin-bottom:0}
.panel--danger li{border-top-color:rgba(255,255,255,.3)}
.panel--danger li::before{color:#fff}

/* company */
.company{display:flex;flex-direction:row-reverse;align-items:stretch;background:var(--paper)}
.company__content{width:37.5%;min-height:760px;padding:clamp(56px,6vw,96px) clamp(32px,6vw,120px);display:flex;flex-direction:column;justify-content:center}
.company__img{width:62.5%;background:var(--line)}
.company__img .img,.company__img img{width:100%;height:100%}
.company__img img{object-fit:cover;object-position:40% 60%}
.company__lead{margin-top:28px}
.company__list{margin-top:28px;display:grid;gap:20px}
.company__list div{padding-top:16px;border-top:1px solid var(--line)}
.company__list dt{font-family:var(--serif);font-size:24px;line-height:1.3;color:var(--ink)}
.company__list dd{margin-top:4px}
.company__list a{border-bottom:1px solid currentColor;color:var(--taupe-d);white-space:nowrap}

/* shops */
.shops{background:#fff;padding-block:var(--sec)}
.shops__grid{margin-top:clamp(40px,5vw,72px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,64px)}
.shop h3{margin-top:18px;font-size:30px}
.shop p{margin-top:4px}
.shop__img--flip img{transform:scaleX(-1)}

/* news */
.news{background:var(--paper);padding-block:var(--sec)}
.news__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(40px,8vw,128px);align-items:start}
.news__list li{display:grid;grid-template-columns:130px 110px minmax(0,1fr);gap:16px;align-items:baseline;padding-block:22px;border-bottom:1px solid var(--line)}
.news__list li:first-child{border-top:1px solid var(--line)}
.news__list time{font-size:15px;font-variant-numeric:tabular-nums}
.news__list span{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--taupe-d)}

/* contact */
.contact{background:#fff;padding-block:var(--sec) calc(var(--sec) + 120px)}
.contact__grid{display:grid;grid-template-columns:400px minmax(0,1fr);gap:clamp(40px,7vw,120px);align-items:start}
.contact__left{position:sticky;top:calc(var(--head) + 24px)}
.contact__tel{display:block;margin-top:28px;font-family:var(--serif);font-size:clamp(34px,3vw,40px);line-height:1.2;color:var(--ink);white-space:nowrap}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}
.field--w{grid-column:1/-1}
.field label{display:block;margin-bottom:6px;font-size:15px;color:var(--muted)}
.field input,.field select,.field textarea{display:block;width:100%;padding:13px 14px;background-color:var(--paper);border:1px solid var(--paper);border-radius:0;font:inherit;font-size:16px;color:var(--ink);appearance:none}
.field select{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23202020' stroke-width='1.2'%3E%3Cpath d='m3.5 6 4.5 4.5L12.5 6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}
.field textarea{resize:vertical}
.field ::placeholder{color:var(--muted);opacity:1}
.field input:focus,.field select:focus,.field textarea:focus{outline:1px solid var(--ink);outline-offset:0;border-color:var(--ink)}
.field [aria-invalid=true]{border-color:var(--danger);outline:1px solid var(--danger)}
.err{margin-top:6px;font-size:15px;line-height:1.4;font-weight:500;color:var(--danger)}
.form__end{display:flex;align-items:center;gap:28px;margin-top:6px}
.form__end .bar{flex:0 1 380px}
.form__legal{font-size:14px;line-height:1.5;color:var(--muted)}
.form__msg{background:var(--paper);padding:16px 20px;font-size:16px;line-height:1.5}
.area{margin-top:clamp(64px,8vw,120px);padding-top:32px;border-top:1px solid var(--line);display:grid;grid-template-columns:400px minmax(0,1fr);gap:clamp(24px,7vw,120px)}
.area h3{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.3;color:var(--ink)}
.area__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px clamp(24px,4vw,64px)}
.area__list dt{font-weight:500;color:var(--ink)}

/* footer */
.foot{background:var(--ink);color:#e9e2d8;padding-bottom:40px}
.foot__bg{position:relative;height:clamp(240px,27vw,397px);overflow:hidden}
.foot__cta{position:relative;margin-top:-120px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:32px clamp(32px,5.5vw,88px);padding:clamp(32px,5.5vw,80px);background:rgba(239,233,227,.96);color:var(--ink)}
.foot__ttl{font-family:var(--serif);font-size:clamp(38px,4vw,56px);line-height:1.1}
.foot__say{margin-top:10px}
.foot__actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px clamp(24px,4vw,56px);flex:0 1 auto}
.foot__actions .bar{width:280px;max-width:100%}
.foot__tel{display:grid;line-height:1.3}
.foot__tel a{font-family:var(--serif);font-size:40px;line-height:1.15;white-space:nowrap}
.foot__tel span{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.foot__main{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.2fr) minmax(0,1fr);gap:40px;padding-block:clamp(56px,6vw,88px)}
.foot__brand p{margin-top:16px;font-size:15px;line-height:1.9}
.foot__brand a:hover,.foot__nav a:hover{opacity:.7}
.foot__addr h3{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.4;color:#fff}
.foot__addr p{font-size:15px}
.foot__addr p + h3{margin-top:16px}
.foot__nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;font-size:15px;letter-spacing:.06em;align-content:start}
.foot__demo{padding-top:20px;border-top:1px solid rgba(255,255,255,.25);font-size:14px;color:#c7bfb4}

.dock{display:none}

/* narrower desktops */
@media (max-width:1320px){
  .gnav{display:none}
  .header__menu{display:block}
}
@media (max-width:1080px){
  :root{--head:64px}
  .header{padding-inline:5%}
  .header__tel{display:none}
  .events__grid,.urgent__grid,.contact__grid,.area{grid-template-columns:minmax(0,1fr)}
  .events__left,.urgent__left,.contact__left{position:static}
  .works__head{grid-template-columns:minmax(0,1fr)}
  .company{flex-direction:column}
  .company__content,.company__img{width:100%}
  .company__content{min-height:0}
  .company__img img{aspect-ratio:3/2}
  .panels{min-height:0}
}
@media (max-width:767px){
  body{font-size:16px;padding-bottom:56px}
  .inner{width:86%}
  .ttl__en{font-size:42px}
  .bar{min-height:72px;padding:16px 56px}
  .bar::after{right:20px}
  .header__btn{display:none}
  .br-d,.d{display:none}
  .hero__media img{object-position:92% 100%}
  .hero__cta{display:none}
  .hero__txt{left:7%;right:7%;top:96px;bottom:auto}
  .intro__top,.values{grid-template-columns:minmax(0,1fr)}
  .works__body{row-gap:56px}
  .w--2,.w--3,.w--4,.w--5{width:100%;margin:0}
  .w--3{margin-left:14%;width:86%}
  .w--4{display:block;width:72%}
  .w--4 figcaption{writing-mode:horizontal-tb;margin-top:14px}
  .pickup{grid-template-columns:minmax(0,1fr)}
  .ev{grid-template-columns:120px minmax(0,1fr);gap:18px;padding-block:22px}
  .ev h3{font-size:21px}
  .lineup__head{grid-template-columns:minmax(0,1fr);gap:0}
  .lineup__head .lead{justify-self:start;margin-top:20px}
  .ltabs button{font-size:17px}
  .systems,.repairs,.shops__grid{grid-template-columns:minmax(0,1fr)}
  .news__grid{grid-template-columns:minmax(0,1fr)}
  .news__list li{grid-template-columns:110px minmax(0,1fr);gap:4px 12px}
  .news__list p{grid-column:1/-1}
  .form{grid-template-columns:minmax(0,1fr)}
  .form__end{flex-direction:column;align-items:stretch;gap:12px}
  .form__end .bar{flex:none;width:100%}
  .area__list{grid-template-columns:minmax(0,1fr)}
  .foot__cta{width:92%}
  .foot__tel a{font-size:34px}
  .foot__actions .bar{width:100%}
  .foot__main{grid-template-columns:minmax(0,1fr)}
  .dock{position:fixed;inset:auto 0 0;z-index:40;display:grid;grid-template-columns:1fr 1fr;height:56px;background:var(--ink);color:#fff;font-size:14px;letter-spacing:.08em;text-transform:uppercase;text-align:center}
  .dock a{display:grid;place-items:center}
  .dock a:last-child{background:var(--taupe-d)}
  .js:not(.is-ready) .dock{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .strip__track,.scrollline{animation:none}
  .js .js-up,.js .reveal .img,.js .reveal figcaption{opacity:1;translate:0 0;clip-path:none;transition:none}
  .bar,.w img,.pickup img,.ev img,.shop img,.sys img{transition:none}
  .bar:hover::after{animation:none}
}
