@charset "UTF-8";

:root{--ink:#111111;--paper:#fafafa;--soft:#f0f0f0;--white:#fff;--muted:#666666;--orange:#f58209;--line:#d8d8d8;--font:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;--body-font:clamp(17px,1.48vw,24px);--control-font:20px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:clamp(62px,5.45vw,78px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}
body.menu-open,body.modal-open{overflow:hidden}
button{font:inherit;cursor:pointer}
a{color:inherit}
img,video{display:block;max-width:100%}
h1,h2,p,figure{margin:0}
em{font-style:normal;font-weight:inherit;letter-spacing:inherit}
::selection{background:var(--orange);color:var(--ink)}
:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
[hidden]{display:none!important}
.skip-link{position:fixed;top:-100px;left:15px;z-index:200;padding:12px 15px;background:#fff;color:#111;text-decoration:none;font-size:14px;font-weight:700}
.skip-link:focus{top:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.site-header{position:sticky;top:0;z-index:30;height:clamp(62px,5.45vw,78px);padding:0 clamp(24px,4.25vw,76px);display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:var(--white);border-bottom:1px solid #2b2b2b}
.brand{width:clamp(82px,7.2vw,104px);display:inline-flex;align-items:center}
.brand img{width:100%;height:auto}
.header-actions{display:flex;align-items:center;gap:clamp(28px,4vw,70px)}
.language-preview{display:flex;align-items:center;gap:14px;font-family:var(--font);font-size:var(--control-font);font-weight:600;letter-spacing:-.025em}
.language-preview span{color:#aaaaaa}
.language-preview strong{font-weight:600}
.menu-trigger{display:inline-flex;align-items:center;gap:15px;padding:12px 0 12px 12px;border:0;background:none;color:inherit;font-family:var(--font);font-size:var(--control-font);font-weight:600;letter-spacing:-.025em}
.menu-trigger i{display:grid;gap:8px;width:45px}
.menu-trigger b{width:100%;height:2px;background:currentColor;transition:transform .25s}
.menu-trigger:hover b:first-child{transform:translateX(-5px)}
.menu-trigger:hover b:last-child{transform:translateX(5px)}

.menu-overlay{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;padding:28px clamp(24px,4.25vw,76px) 23px;background:var(--ink);color:#fff;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s,visibility .35s}
.menu-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto}
.menu-overlay__top{display:flex;align-items:center;justify-content:space-between;gap:20px}
.menu-overlay__top img{width:clamp(150px,15vw,215px);height:auto}
.menu-overlay__top button{width:48px;height:48px;border:0;background:none;color:#fff;font-size:45px;font-weight:200;line-height:1}
.menu-overlay__center{width:min(940px,100%);margin:auto;padding:30px 0}
.menu-overlay nav{display:grid;margin-top:22px}
.menu-overlay nav button{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:baseline;gap:12px;width:100%;padding:11px 0;border:0;border-top:1px solid #3b3b3b;background:none;color:#fff;text-align:left;transition:color .25s,padding-left .25s}
.menu-overlay nav button:last-child{border-bottom:1px solid #3b3b3b}
.menu-overlay nav button:hover{color:var(--orange);padding-left:8px}
.menu-overlay nav span{font-size:clamp(28px,3.5vw,55px);font-weight:500;line-height:1.04;letter-spacing:-.055em}
.menu-overlay nav b{font-size:23px;font-weight:300}

.hero{display:grid;grid-template-columns:48% 52%;min-height:min(840px,calc(100svh - clamp(62px,5.45vw,78px)));background:var(--paper)}
.hero__copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;padding:clamp(45px,6.7vh,78px) clamp(24px,4.25vw,76px)}
.hero h1{margin-top:0;font-size:clamp(58px,6.1vw,108px);font-weight:500;line-height:1.02;letter-spacing:-.06em;white-space:nowrap}
.hero h1 em{display:inline-block}
.orange{color:var(--orange);font-family:var(--font);font-style:normal}
.hero__intro{max-width:640px;margin-top:clamp(35px,5.2vh,80px);font-size:var(--body-font);line-height:1.5;letter-spacing:-.015em}
.hero__intro strong{font-weight:650;color:var(--ink);text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:5px}
.hero__actions{display:flex;flex-wrap:wrap;gap:16px 28px;margin-top:clamp(30px,5vh,55px);width:100%}
.text-action{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-width:175px;min-height:44px;padding:8px 0;border:0;border-bottom:1px solid var(--ink);background:none;color:var(--ink);font-family:var(--font);font-size:var(--control-font);font-weight:600;letter-spacing:-.025em;text-align:left;transition:color .2s,border-color .2s}
.text-action span{font-size:var(--control-font);font-weight:750;line-height:1;-webkit-text-stroke:.7px currentColor}
.text-action:hover,.text-action:focus-visible{color:var(--orange);border-color:var(--orange)}
.text-action:hover span{color:var(--orange)}
.text-action--secondary{min-width:165px}
.hero__visual{position:relative;min-height:680px;overflow:hidden;background:#222222}
.hero__visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:52% center}

.section-pad{padding-left:clamp(24px,4.25vw,76px);padding-right:clamp(24px,4.25vw,76px)}

.products h2{font-size:clamp(53px,5.3vw,94px);font-weight:500;line-height:.98;letter-spacing:-.055em}

.manufacturing{position:relative;display:flex;flex-direction:column;min-height:clamp(760px,88svh,1080px);overflow:hidden;background:#1c1c1c;color:#fff}
.manufacturing::before{content:"";position:absolute;inset:0;background:url("/assets/web-images/workshop-poster.webp") center / cover no-repeat}
.manufacturing__video,.manufacturing__shade{position:absolute;inset:0;width:100%;height:100%}
.manufacturing__video{object-fit:cover;object-position:50% center;opacity:0;transition:opacity .4s ease}
.manufacturing__video.has-frame{opacity:1}
.manufacturing__shade{background:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.34) 57%,rgba(0,0,0,.2)),linear-gradient(0deg,rgba(0,0,0,.5),transparent 35%)}
.manufacturing__content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;flex:1;padding:clamp(80px,7vw,120px) clamp(24px,4.25vw,76px)}
.manufacturing h2{margin-top:0;font-size:clamp(65px,7.2vw,125px);font-weight:500;line-height:.94;letter-spacing:-.055em}
.manufacturing__lower{max-width:600px;margin-top:clamp(55px,7vw,105px)}
.manufacturing__lower p{font-size:clamp(19px,1.55vw,25px);line-height:1.4;letter-spacing:-.025em}
.text-action--light{border-color:#fff;color:#fff}
.text-action--light:hover{color:var(--orange);border-color:var(--orange)}

.products{position:relative;padding-block:clamp(110px,10vw,170px);background:var(--soft);overflow:hidden}
.products__heading{display:flex;align-items:center;justify-content:space-between;gap:50px}
.products h2{margin-top:0}
.products__aside{display:flex;align-items:center}
.rail-controls{display:flex;gap:9px}
.rail-controls button{display:grid;place-items:center;width:62px;height:62px;padding:0;border:0;border-radius:50%;background:var(--ink);color:#fff;transition:background .2s,color .2s,transform .2s}
.rail-controls button svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.rail-controls button:hover:not(:disabled){background:var(--orange);color:var(--ink);transform:translateY(-2px)}
.rail-controls button:disabled{background:#d1d1d1;color:#8a8a8a;cursor:not-allowed}
.product-rail{display:flex;gap:18px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:clamp(24px,4.25vw,76px);scrollbar-width:none;cursor:grab;user-select:none;margin:clamp(60px,6vw,95px) calc(-1 * clamp(24px,4.25vw,76px)) 0;padding:0 clamp(24px,4.25vw,76px) 12px}
.product-rail::-webkit-scrollbar{display:none}
.product-rail.is-dragging{scroll-snap-type:none;cursor:grabbing}
.product-card{flex:0 0 min(60vw,1120px);min-width:0;scroll-snap-align:start}
.product-card__image{height:clamp(360px,33vw,680px);overflow:hidden;background:#d0d0d0}
.product-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.product-card:hover img{transform:scale(1.035)}

.market{padding-top:clamp(110px,10vw,170px);padding-bottom:clamp(110px,10vw,170px);background:var(--paper)}
.market__heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);align-items:center;gap:clamp(45px,8vw,150px)}
.market h2{font-size:clamp(53px,5.3vw,94px);font-weight:500;line-height:.98;letter-spacing:-.055em}
.market__heading p{max-width:680px;font-size:var(--body-font);line-height:1.36;letter-spacing:-.025em}
.market-stat{font-weight:650;color:var(--ink);white-space:nowrap;text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:5px}
.market-map{position:relative;margin-top:clamp(65px,7vw,120px);isolation:isolate}
.market-map__drawing{display:block;width:100%;height:auto;aspect-ratio:5/2;overflow:hidden}
.market-map__land{fill:none;stroke:#c2c2c2;stroke-width:1.1;stroke-linejoin:round;pointer-events:none}
.market-map__hit{fill:transparent;stroke:none;pointer-events:all;cursor:pointer}
.market-map__routes{fill:none;stroke:#aaaaaa;stroke-width:1;pointer-events:none}
.market-map__routes path{vector-effect:non-scaling-stroke;transition:stroke .3s,stroke-width .3s,opacity .3s}
.market-map__routes path.is-active{stroke:var(--orange);stroke-width:1.8}
.market-map.has-active .market-map__routes path:not(.is-active){opacity:.25}
.market-map__nodes{fill:#777777;stroke:var(--paper);stroke-width:2;pointer-events:none}
.market-map__nodes circle{transition:fill .3s}
.market-map__nodes circle.is-active{fill:var(--orange)}
.market-map__source{fill:var(--orange);stroke:var(--paper);stroke-width:1.4;pointer-events:none}
.market-map__source circle:last-child{fill:var(--ink)}
.market-map__origin{position:absolute;left:83.2%;top:45%;padding:5px 8px;background:var(--paper);font-size:clamp(12px,1.1vw,18px);font-weight:500;line-height:1.3;letter-spacing:-.025em;pointer-events:none}
.market-map__origin span{display:block}
.market-map__markets{position:absolute;inset:0;pointer-events:none}
.market-map__market{position:absolute;left:var(--x);top:var(--y);display:flex;align-items:center;justify-content:center;min-height:44px;padding:4px 8px;border:0;background:none;color:var(--ink);font-size:clamp(14px,1.2vw,20px);font-weight:500;line-height:1.2;letter-spacing:-.025em;white-space:nowrap;transform:translateX(-50%);pointer-events:auto}
.market-map__market span{padding:3px 5px;background:var(--paper);transition:color .3s,transform .3s}
.market-map__market.is-active span{color:var(--ink);text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:5px;transform:translateY(-3px)}

@media(min-width:821px){
  .market{
    --market-title-size:clamp(53px,5.3vw,94px);
    --market-space:clamp(28px,4svh,48px);
    --market-gap:clamp(24px,4svh,44px);
    /* Reserve the sticky header, two title lines, spacing and 24px of breathing room. */
    --market-map-height:max(180px,calc(100svh - 78px - 1.96 * var(--market-title-size) - 2 * var(--market-space) - var(--market-gap) - 24px));
    padding-block:var(--market-space);
  }
  .market h2{font-size:var(--market-title-size)}
  .market-map{width:min(100%,1200px,calc(var(--market-map-height) * 2.5));margin:var(--market-gap) auto 0}
}

.inquiry{display:flex;flex-direction:column;min-height:clamp(650px,78svh,950px);padding:0 clamp(24px,4.25vw,76px);background:var(--ink);color:#fff}
.inquiry__inner{display:flex;align-items:center;flex:1;padding-block:clamp(95px,9vw,145px)}
.inquiry__grid{display:grid;width:100%;grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);align-items:center;gap:clamp(70px,10vw,185px)}
.inquiry h2{font-size:clamp(55px,5.8vw,104px);font-weight:500;line-height:.93;letter-spacing:-.055em}
.inquiry__intro p{max-width:500px;margin-top:clamp(45px,5vw,80px);font-size:var(--body-font);line-height:1.36;letter-spacing:-.025em}
.inquiry__cta{display:flex;align-items:center;justify-content:flex-start}
.inquiry__cta .text-action{min-width:280px}
.inquiry-dialog{width:min(780px,calc(100vw - 32px));max-height:calc(100svh - 32px);margin:auto;padding:clamp(24px,4vw,55px);border:1px solid #505050;background:var(--ink);color:#fff;overflow-y:auto;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.inquiry-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(6px)}
.inquiry-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:clamp(38px,5vw,65px)}
.inquiry-dialog h2{font-size:clamp(26px,3.1vw,42px);font-weight:500;line-height:1.12;letter-spacing:-.05em;white-space:nowrap}
.inquiry-dialog__close{flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid #777777;border-radius:50%;background:transparent;color:#fff;font-size:36px;font-weight:300;line-height:1}
.inquiry-dialog__close:hover{background:#fff;color:var(--ink)}
.inquiry-form__row{display:grid;gap:9px;margin-bottom:25px}
.inquiry-form__row label{font-size:clamp(17px,1.3vw,21px);font-weight:650}
.inquiry-form__row label span{color:var(--orange)}
.inquiry-form__row input,.inquiry-form__row textarea{width:100%;padding:13px 0;border:0;border-bottom:1px solid #898989;border-radius:0;outline:0;background:transparent;color:#fff;font:400 clamp(18px,1.45vw,23px)/1.35 var(--font);resize:vertical}
.inquiry-form__row input:focus,.inquiry-form__row textarea:focus{border-color:var(--orange);box-shadow:0 2px 0 var(--orange)}
.inquiry-form__row input::selection,.inquiry-form__row textarea::selection{background:var(--orange);color:#111}
.inquiry-form__submit{min-width:210px;margin-top:18px}
.inquiry-form__status{margin-top:22px;font-size:var(--body-font);line-height:1.4;color:#f5c58d}
.site-footer{--footer-font:clamp(16px,1.3vw,21px);display:grid;grid-template-columns:clamp(105px,10vw,170px) minmax(0,1fr);align-items:center;gap:clamp(35px,6vw,105px);margin-top:clamp(105px,10vw,170px);padding:clamp(45px,5vw,75px) 0;border-top:1px solid #383838}
.site-footer__brand{width:100%;display:block;align-self:center}
.site-footer__brand img{width:100%;height:auto}
.site-footer__content{min-width:0}
.site-footer__details{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:clamp(35px,6vw,110px)}
.site-footer__addresses{display:grid;gap:30px;max-width:680px}
.site-footer__details address{font-size:var(--footer-font);font-style:normal;line-height:1.45;color:#e3e3e3}
.site-footer__details address span{display:block;margin-bottom:12px;color:#b0b0b0;font-weight:700}
.site-footer__contact{display:grid;align-content:center;justify-items:start;gap:14px;font-size:var(--footer-font);line-height:1.45}
.site-footer__contact a{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:#fff;text-decoration:none;white-space:nowrap}
.site-footer__contact svg{flex:0 0 23px;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.site-footer__contact a:hover{color:var(--orange)}

.inquiry .site-footer{margin-top:0}

@media(max-width:1120px){
  .hero{grid-template-columns:48% 52%;min-height:720px}
  .hero__copy{padding-right:28px}
  .hero h1{font-size:clamp(60px,6.6vw,84px)}
  .hero__visual{min-height:720px}
  .hero__intro{font-size:var(--body-font)}
  .site-footer__details{gap:30px}
  .site-footer__contact{gap:12px}
  .site-footer__contact a{gap:8px}
  .site-footer__contact svg{flex-basis:20px;width:20px;height:20px}
}
@media(max-width:820px){
  :root{--body-font:clamp(16px,4vw,21px);--control-font:clamp(15px,3.8vw,18px)}
  html{scroll-padding-top:50px}
  .site-header{height:50px;padding:0 22px}
  .brand{width:72px}
  .header-actions{gap:12px}
  .language-preview{gap:5px;font-size:var(--control-font)}
  .menu-trigger{gap:8px;padding-left:0;font-size:var(--control-font)}
  .menu-trigger i{width:29px;gap:6px}
  .menu-trigger b{height:2px}
  .text-action{min-width:0;font-size:var(--control-font)}
  .text-action span{font-size:var(--control-font)}
  .menu-overlay{padding:22px}
  .menu-overlay__top img{width:135px}
  .menu-overlay__center{padding:15px 0}
  .menu-overlay nav button{grid-template-columns:minmax(0,1fr) 20px;gap:8px;padding:13px 0}
  .menu-overlay nav span{font-size:clamp(25px,6.5vw,43px)}
  .hero{display:flex;flex-direction:column;min-height:0}
  .hero__copy{min-height:560px;padding:46px 23px}
  .hero h1{margin-top:0;font-size:clamp(52px,10.8vw,82px)}
  .hero__intro{max-width:590px;margin-top:36px;font-size:var(--body-font);line-height:1.5}
  .hero__actions{margin-top:26px;gap:10px 24px}
  .hero__actions .text-action{min-width:182px}
  .hero__visual{height:min(112vw,630px);min-height:0}
  .section-pad{padding-left:23px;padding-right:23px}
  .products h2{font-size:clamp(48px,9.6vw,77px)}
  .manufacturing{min-height:750px}
  .manufacturing__video{object-position:38% center}
  .manufacturing__content{padding:72px 23px}
  .manufacturing h2{font-size:clamp(57px,10vw,83px)}
  .manufacturing__lower{margin-top:50px}
  .manufacturing__lower p{font-size:19px}
  .products{padding-block:100px}
  .products__heading{display:block}
  .products h2{margin-top:0}
  .products__aside{justify-content:flex-end;margin-top:38px}
  .rail-controls{margin-top:0}
  .rail-controls button{width:48px;height:48px}
  .rail-controls button svg{width:25px;height:25px}
  .product-rail{gap:11px;margin:48px -23px 0;padding:0 23px 10px;scroll-padding-inline:23px}
  .product-card{flex-basis:min(82vw,515px)}
  .product-card__image{height:min(82vw,515px)}
  .market{padding-block:100px}
  .market__heading{grid-template-columns:1fr;gap:35px}
  .market h2{font-size:clamp(48px,9.6vw,77px)}
  .market__heading p{font-size:var(--body-font)}
  .market-map{margin-top:48px}
  .market-map__origin{position:static;display:flex;justify-content:flex-end;gap:10px;margin-top:14px;padding:0;font-size:14px}
  .market-map__origin span{display:inline}
  .market-map__origin span::before{content:"·";margin-right:10px;color:var(--ink)}
  .market-map__markets{position:static;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:5px 19px;margin-top:25px}
  .market-map__market{position:static;min-height:44px;padding:0;font-size:16px;transform:none}
  .market-map__market span{padding:5px 0;border-bottom:1px solid transparent}
  .market-map__market.is-active span{transform:none;border-bottom-color:var(--orange)}
  .inquiry{min-height:0;padding:0 23px}
  .inquiry__inner{padding-block:95px}
  .inquiry__grid{grid-template-columns:1fr;gap:50px}
  .inquiry h2{font-size:clamp(54px,10.3vw,85px)}
  .inquiry__cta{padding-top:0}
  .site-footer{grid-template-columns:90px minmax(0,1fr);gap:30px;margin-top:110px}
  .site-footer__details{grid-template-columns:1fr}
  .site-footer__contact{gap:10px}
}
@media(max-width:460px){
  .hero__copy{min-height:565px}
  .hero h1{font-size:clamp(52px,12.1vw,63px)}
  .hero__intro{margin-top:40px}
  .hero__actions{display:grid;gap:6px;width:100%}
  .hero__actions .text-action{width:100%;min-width:0}
  .products h2,.market h2{font-size:clamp(47px,11vw,57px)}
  .manufacturing h2{font-size:clamp(51px,11.6vw,63px)}
  .manufacturing__lower p{font-size:17px}
  .inquiry h2{font-size:clamp(50px,11.4vw,62px)}
  .inquiry-form__row{margin-bottom:21px}
  .site-footer{grid-template-columns:1fr;gap:28px}
  .site-footer__brand{width:92px}
  .site-footer__details{gap:28px}
  .inquiry-dialog{width:calc(100vw - 18px);max-height:calc(100svh - 18px);padding:25px 19px}
  .inquiry-dialog__head{gap:12px}
  .inquiry-dialog h2{font-size:clamp(18px,5vw,28px)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .menu-overlay,.menu-trigger b,.text-action,.rail-controls button,.product-card__image img,.market-map__routes path,.market-map__nodes circle,.market-map__market span{transition:none}
}
