/* NEOTERIC GROUP — site styles (hand-written, no framework) */
@font-face{font-family:Poppins;font-weight:300;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Poppins;font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/poppins-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:Garamond;font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/eb-garamond-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:Garamond;font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/eb-garamond-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+1E00-1EFF}
@font-face{font-family:Garamond;font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/eb-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:Garamond;font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/eb-garamond-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:Garamond;font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/eb-garamond-latin-ext-400-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+1E00-1EFF}

:root{
  --bg:#f9f9f9; --paper:#ffffff; --ink:#111111; --text:#5c5c5c; --muted:#8a8a8a;
  --line:#dcdcdc; --line-strong:#bdbdbd; --tint:#eeeeee;
  --rust:#c8401a; --rust-deep:#a8301a; --terra:#cf7b47; --night:#120d0b;
  --sans:Poppins,"Helvetica Neue",Arial,sans-serif; --serif:Garamond,"EB Garamond",Georgia,serif;
  --nav-h:120px; --wrap:1200px; --gutter:clamp(20px,4vw,48px); --ease:cubic-bezier(.55,.02,.1,.9);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
section[id],article[id],.world[id]{scroll-margin-top:var(--nav-h)}
body{margin:0;background:var(--bg);color:var(--text);font:300 16px/1.75 var(--sans);letter-spacing:.2px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{color:var(--ink);font-weight:600;line-height:1.2;margin:0;letter-spacing:1px}
p{margin:0 0 1em}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:100%;max-width:calc(var(--wrap) + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter)}
.section{padding:clamp(80px,11vw,150px) 0;position:relative}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;z-index:999}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--rust);outline-offset:3px}

/* eyebrow label: — Label — (from the original theme) */
.eyebrow{display:inline-flex;align-items:center;gap:14px;font-size:12px;font-weight:400;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.eyebrow::before{content:"";width:50px;height:1px;background:var(--line-strong)}
.eyebrow span{position:relative;padding:2px 8px}
.eyebrow span::after{content:"";position:absolute;inset:0 0 0 45%;background:var(--tint);z-index:-1;transform:skewX(-14deg)}
.center{text-align:center}
.center .eyebrow::after{content:"";width:50px;height:1px;background:var(--line-strong)}
.title{font-size:clamp(28px,3.6vw,44px);letter-spacing:1.5px}
.title-xl{font-size:clamp(34px,5vw,64px);text-transform:uppercase;letter-spacing:2px;line-height:1.08}
.serif{font-family:var(--serif);font-weight:400;letter-spacing:.5px}
.lead{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2vw,26px);color:var(--ink);line-height:1.4;margin:22px 0 18px}
.signature{font-size:13px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--ink)}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--rust)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;color:var(--ink);padding:16px 30px;border:1px solid var(--ink);border-radius:40px;transition:background .3s,color .3s}
.btn:hover{background:var(--ink);color:#fff}
.btn svg{width:16px;height:16px;transition:transform .3s}
.btn:hover svg{transform:translateX(4px)}
.btn-light{color:#fff;border-color:rgba(255,255,255,.7)}
.btn-light:hover{background:#fff;color:var(--ink)}
.link{display:inline-flex;align-items:center;gap:8px;font-weight:500;color:var(--ink);border-bottom:1px solid var(--line-strong);padding-bottom:2px;transition:border-color .3s,color .3s}
.link:hover{color:var(--rust);border-color:var(--rust)}
.link svg{width:14px;height:14px}

/* ===== header: solid white bar ===== */
.header{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--nav-h);background:#fff;box-shadow:0 1px 0 var(--line);transition:box-shadow .4s}
.header.scrolled{box-shadow:0 10px 30px -18px rgba(0,0,0,.35)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;max-width:none;height:100%}
.brand{display:block;height:calc(var(--nav-h)*.92)}
.brand img{height:100%;width:auto}
.tools{display:flex;align-items:center;gap:36px;color:var(--ink)}
.lang{font-size:12px;font-weight:500;letter-spacing:2px}
.lang a{opacity:.7;transition:opacity .3s}
.lang a[aria-current]{opacity:1}
.lang a:hover{opacity:1}
.lang i{font-style:normal;opacity:.4;margin:0 6px}
.menu-btn{display:flex;align-items:center;gap:14px;background:none;border:0;color:inherit;cursor:pointer;font:500 12px var(--sans);letter-spacing:3px;text-transform:uppercase;padding:6px 0}
.burger{width:30px;display:grid;gap:6px}
.burger i{display:block;height:1.5px;background:currentColor;transition:transform .4s var(--ease),width .4s var(--ease),opacity .3s}
.burger i:nth-child(2){width:70%;justify-self:end}
.menu-btn:hover .burger i:nth-child(2){width:100%}

/* full-screen menu */
.menu{position:fixed;inset:0;z-index:40;background:var(--bg);display:grid;grid-template-columns:1.3fr 1fr;align-items:center;padding:calc(var(--nav-h) + 40px) var(--gutter) 60px;clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .7s var(--ease),visibility 0s .7s}
.menu-open .menu{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .7s var(--ease)}
.menu-open .burger i:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.menu-open .burger i:nth-child(2){opacity:0}
.menu-open .burger i:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.menu-open{overflow:hidden}
.menu::before{content:"Menu";position:absolute;left:0;top:50%;transform:translateY(-50%);font:600 clamp(120px,22vw,320px)/1 var(--sans);color:rgba(0,0,0,.035);pointer-events:none}
.menu ol{list-style:none;margin:0;padding:0;position:relative;counter-reset:m}
.menu li{overflow:hidden}
.menu ol a{display:inline-flex;align-items:baseline;gap:12px;font-size:clamp(30px,4.6vw,58px);font-weight:400;color:var(--ink);text-transform:uppercase;letter-spacing:1px;line-height:1.35;transform:translateY(110%);transition:transform .7s var(--ease),color .3s}
.menu ol a::after{counter-increment:m;content:"0" counter(m);font-size:12px;letter-spacing:2px;color:var(--muted)}
.menu ol a:hover{color:var(--rust)}
.menu-open .menu ol a{transform:none}
.menu-open .menu li:nth-child(2) a{transition-delay:.06s}.menu-open .menu li:nth-child(3) a{transition-delay:.12s}.menu-open .menu li:nth-child(4) a{transition-delay:.18s}.menu-open .menu li:nth-child(5) a{transition-delay:.24s}.menu-open .menu li:nth-child(6) a{transition-delay:.3s}
.menu-info{font-size:14px;line-height:1.8;position:relative}
.menu-info .mi-h{font-weight:600;font-size:15px;color:var(--rust);margin:0 0 6px;letter-spacing:1px}
.menu-info div{margin-bottom:28px}
.menu-info a{transition:color .3s}.menu-info a:hover{color:var(--rust)}

/* ===== hero slider ===== */
.hero{position:relative;margin-top:var(--nav-h);height:calc(100vh - var(--nav-h));height:calc(100svh - var(--nav-h));min-height:520px;overflow:hidden;background:var(--night);color:#fff}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.2s var(--ease),visibility 0s 1.2s}
.slide.active{opacity:1;visibility:visible;transition:opacity 1.2s var(--ease)}
.slide picture,.slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slide img{transform:scale(1.12);transition:transform 7s linear}
.slide.active img{transform:scale(1)}
.slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.25) 40%,rgba(0,0,0,.6) 100%)}
.slide-content{position:absolute;left:0;right:0;bottom:clamp(110px,16vh,170px);z-index:2}
.slide-content .wrap{max-width:none}
.metas{display:flex;flex-wrap:wrap;gap:0;margin-bottom:22px}
.metas span{font-size:11px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;padding:0 16px;border-left:1px solid rgba(255,255,255,.5);line-height:1}
.metas span:first-child{border:0;padding-left:0}
.slide h2{color:#fff;font-size:clamp(40px,7vw,96px);font-weight:600;letter-spacing:2px;line-height:1.02;max-width:12ch}
.slide hr{width:min(560px,70%);border:0;border-top:1px solid rgba(255,255,255,.45);margin:26px 0 22px;transform-origin:left;transform:scaleX(0);transition:transform 1.2s .5s var(--ease)}
.slide.active hr{transform:scaleX(1)}
.slide .reveal-line{display:block;overflow:hidden}
.slide .reveal-line>*{display:block;transform:translateY(105%);transition:transform 1.1s .25s var(--ease)}
.slide.active .reveal-line>*{transform:none}
.slide .metas,.slide .slide-cta{opacity:0;transform:translateY(16px);transition:opacity .8s .7s,transform .8s .7s var(--ease)}
.slide.active .metas,.slide.active .slide-cta{opacity:1;transform:none}
.slide-cta{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase}
.slide-cta svg{width:16px;height:16px;transition:transform .3s}
.slide-cta:hover svg{transform:translateX(5px)}
.hero-ui{position:absolute;left:0;right:0;bottom:44px;z-index:3}
.hero-ui .wrap{display:flex;align-items:center;justify-content:space-between;max-width:none}
.signature-hero{font-family:var(--serif);font-size:14px;letter-spacing:5px;text-transform:uppercase;opacity:.85}
.hero-nav{display:flex;align-items:center;gap:22px}
.circle-btn{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:none;color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .3s,color .3s}
.circle-btn:hover{background:#fff;color:var(--ink)}
.circle-btn svg{width:14px;height:14px}
.counter{font-size:14px;letter-spacing:2px;display:flex;align-items:center;gap:10px;font-variant-numeric:tabular-nums}
.counter b{font-weight:500;font-size:18px}
.counter i{display:block;width:40px;height:1px;background:rgba(255,255,255,.4);position:relative;overflow:hidden}
.counter i::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}
.counter i.run::after{animation:prog var(--dur,7s) linear forwards}
@keyframes prog{to{transform:scaleX(1)}}
.scroll-cue{position:absolute;left:50%;bottom:28px;z-index:3;width:1px;height:46px;background:rgba(255,255,255,.35);overflow:hidden}
.scroll-cue::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:#fff;animation:cue 2.2s var(--ease) infinite}
@keyframes cue{to{top:110%}}

/* ===== about ===== */
.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,90px);align-items:center}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:34px}
.stat{border:1px solid var(--line);padding:18px 16px;background:var(--paper)}
.stat b{display:block;font-size:clamp(26px,3vw,38px);font-weight:600;color:var(--ink);line-height:1}
.stat span{display:block;font-size:11px;font-weight:500;letter-spacing:2px;text-transform:uppercase;margin-top:8px;color:var(--muted);line-height:1.5}
.framed{position:relative;padding:20px}
.framed::before,.framed::after{content:"";position:absolute;inset:0;border:1px solid var(--line);pointer-events:none}
.framed::after{inset:20px -20px -20px 20px;border-color:var(--line-strong);z-index:-1}
.framed .media{position:relative;overflow:hidden;aspect-ratio:4/5}
.framed .media img{width:100%;height:118%;object-fit:cover;will-change:transform}
.badge{position:absolute;left:44px;bottom:44px;background:rgba(17,17,17,.82);color:#fff;padding:18px 20px;z-index:2}
.badge b{display:block;font-size:44px;font-weight:600;line-height:1}
.badge span{font-size:11px;letter-spacing:2px;text-transform:uppercase}

/* ===== definition ===== */
.definition{position:relative;padding:clamp(64px,6vw,90px) 0 clamp(110px,10vw,150px);overflow:hidden;text-align:center;color:#fff}
.definition .bg{position:absolute;inset:0;z-index:-1}
.definition .bg img{width:100%;height:100%;object-fit:cover;object-position:center 66%}
.definition .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(120,70,40,.10) 0%,rgba(120,70,40,.14) 70%,rgba(0,0,0,0))}
.definition blockquote{margin:0 auto;max-width:860px;text-shadow:0 1px 16px rgba(110,60,30,.25)}
.definition .eyebrow,.definition .eyebrow span{color:#fff}
.definition .eyebrow span::after{display:none}
.definition .eyebrow::before,.definition .eyebrow::after{background:rgba(255,255,255,.8)!important}
.definition .etym{font-family:var(--serif);font-size:clamp(20px,2.2vw,28px);line-height:1.5;color:#fff}
.definition .meaning{font-size:clamp(15px,1.4vw,18px);color:#fff;letter-spacing:.5px;max-width:760px;margin:26px auto 0}
.definition em{font-style:italic}

/* ===== symbol ===== */
.symbol{background:var(--night);color:#fff;padding:0}
.symbol-top{position:relative;height:clamp(420px,56vw,760px);overflow:hidden;display:grid;place-items:center;text-align:center}
.symbol-top>picture img,.symbol-top>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.95}
.symbol-top .inner{position:relative;z-index:2}
.symbol-top img.mark{width:clamp(130px,16vw,210px);height:auto;margin:0 auto 18px;position:relative;opacity:1}
.symbol-top .eyebrow{color:rgba(255,255,255,.75)}
.symbol-top .eyebrow::before,.symbol-top .eyebrow::after{background:rgba(255,255,255,.45)}
.symbol-top .eyebrow span::after{background:rgba(255,255,255,.12)}
.symbol-band{background:#ad2b14;padding:clamp(60px,7vw,90px) 0}
.symbol-band .intro{max-width:880px;margin:0 auto 50px;text-align:center;font-size:clamp(16px,1.5vw,19px);line-height:1.8;color:#fff}
.parts{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.part{padding:6px 26px;text-align:center;border-left:1px solid rgba(255,255,255,.25)}
.part:first-child{border:0}
.part h3{color:#fff;font-size:14px;font-weight:500;letter-spacing:3px;text-transform:uppercase;margin-bottom:10px}
.part p{font-size:14px;color:rgba(255,255,255,.85);margin:0}
.part svg{width:56px;height:44px;margin:0 auto 14px;opacity:.55;color:#fff}
.symbol-close{padding:34px 0;text-align:center;font-size:15px;color:rgba(255,255,255,.85);letter-spacing:.5px}

/* ===== structure tree ===== */
.tree-root{display:flex;flex-direction:column;align-items:center}
.tree-root .seed{width:120px;height:120px;border-radius:50%;border:1px solid var(--line-strong);background:var(--paper);display:grid;place-items:center;padding:14px}
.tree-root .seed img{width:84px}
.stem{width:1px;height:34px;background:var(--line-strong);margin:0 auto}
.branches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;position:relative;margin-top:0}
.branches::before{content:"";position:absolute;top:0;left:12.5%;right:12.5%;height:1px;background:var(--line-strong)}
.branch{display:flex;flex-direction:column;align-items:center;transition:opacity .4s}
.branches:hover .branch{opacity:.4}
.branches .branch:hover{opacity:1}
.branch .world{font-family:var(--serif);font-size:clamp(18px,1.7vw,23px);color:var(--ink);text-align:center;line-height:1.25;min-height:2.6em;display:flex;align-items:center}
.branch .dot{margin:10px 0 18px}
.co{position:relative;width:100%;background:var(--paper);border:1px solid var(--line);padding:18px 14px;margin-bottom:14px;text-align:center;transition:border-color .3s,transform .4s var(--ease)}
.co:hover{border-color:var(--ink);transform:translateY(-3px)}
.co b{display:block;color:var(--ink);font-weight:600;font-size:14px;letter-spacing:2px}
.co small{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}

/* ===== worlds (company stories) ===== */
.world-head{display:flex;align-items:flex-end;gap:22px;margin:0 0 clamp(36px,4vw,56px)}
.world-head .num{font-size:12px;font-weight:500;letter-spacing:2px;color:#fff;background:var(--rust);border-radius:6px;padding:7px 10px;line-height:1}
.world-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4vw,52px);letter-spacing:.5px;line-height:1}
.world-head::after{content:"";flex:1;height:1px;background:var(--line-strong);margin-bottom:12px}
.world+.world{margin-top:clamp(90px,10vw,140px)}
.company{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;margin-bottom:clamp(40px,5vw,70px)}
.company:last-child{margin-bottom:0}
.company .photo{position:relative;overflow:hidden;aspect-ratio:16/11;grid-column:1;grid-row:1}
.company .photo img{width:100%;height:118%;object-fit:cover;will-change:transform}
.company .card{grid-column:2;grid-row:1;background:var(--paper);border:1px solid var(--line);padding:clamp(28px,3.4vw,48px);margin-left:-70px;position:relative;z-index:2;box-shadow:0 30px 60px -40px rgba(0,0,0,.35)}
.company.flip{grid-template-columns:1fr 1.15fr}
.company.flip .photo{grid-column:2}
.company.flip .card{grid-column:1;margin-left:0;margin-right:-70px}
.card .logo{height:84px;width:auto;max-width:220px;object-fit:contain;object-position:left center;margin-bottom:24px;mix-blend-mode:multiply}
.card .tag{display:flex;align-items:center;gap:14px;font-family:var(--serif);font-style:italic;font-size:19px;color:var(--rust);margin-bottom:6px;line-height:1.3}
.card .focus{font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--ink);margin-bottom:16px}
.card p{font-size:15px}

/* ===== origin ===== */
.origin{position:relative;overflow:hidden;padding-bottom:0}
.origin .bg{position:absolute;inset:0;z-index:-1}
.origin .bg img{width:100%;height:100%;object-fit:cover}
.origin .bg::after{content:"";position:absolute;inset:0;background:rgba(249,249,249,.82)}
.origin-cols{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:50px}
.origin-cols article{background:rgba(207,123,71,.93);color:#fff;padding:clamp(30px,4vw,54px)}
.origin-cols h3{color:#fff;font-size:15px;font-weight:600;letter-spacing:3px;text-transform:uppercase;margin-bottom:6px}
.origin-cols h4{color:rgba(255,255,255,.8);font-size:12px;font-weight:500;letter-spacing:2px;text-transform:uppercase;margin-bottom:18px}
.origin-cols p{font-size:15px;color:rgba(255,255,255,.95)}
.timeline{background:rgba(26,26,26,.9);color:#fff;margin-top:2px}
.timeline ol{list-style:none;margin:0;padding:34px 0;display:grid;grid-template-columns:repeat(3,1fr)}
.timeline li{position:relative;padding-right:20px}
.timeline li:not(:last-child)::after{content:"";position:absolute;top:13px;left:110px;right:24px;height:1px;background:rgba(255,255,255,.5)}
.timeline li:not(:last-child)::before{content:"";position:absolute;top:9px;right:22px;border:4.5px solid transparent;border-left:8px solid rgba(255,255,255,.7)}
.timeline b{display:block;font-size:22px;font-weight:600;letter-spacing:2px}
.timeline span{font-size:15px;color:rgba(255,255,255,.85)}

/* ===== DNA ===== */
.dna{position:relative;padding:0}
.dna .media{height:clamp(460px,86vh,820px);overflow:hidden;position:relative}
.dna .media img{width:100%;height:120%;object-fit:cover;object-position:center 40%;will-change:transform}
.dna .media::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.18)}
.dna .box{position:relative;margin:-260px 0 0 auto;width:min(640px,92%);background:var(--paper);padding:clamp(34px,4.6vw,64px);z-index:2;border:1px solid var(--line)}
.dna .box h2{font-size:clamp(28px,3.4vw,42px);text-transform:uppercase;letter-spacing:2px;margin-bottom:24px}
.dna .box .lead{font-style:normal;color:var(--rust);margin:6px 0 24px;font-size:clamp(24px,2.6vw,34px)}

/* ===== partners ===== */
.partners-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:50px}
.partner{display:grid;place-items:center;aspect-ratio:3/2;padding:26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);transition:background .3s}
.partner img{width:calc(var(--w)*var(--pu,1px));max-width:100%;height:auto;filter:grayscale(1);opacity:.62;transition:filter .4s,opacity .4s,transform .4s var(--ease)}
.partner:hover img{filter:none;opacity:1;transform:scale(1.04)}
.note{font-size:13px;color:#6b6b6b;margin-top:16px}

/* ===== CTA + footer ===== */
.cta{position:relative;overflow:hidden;background:#bab6ac;color:#fff;min-height:clamp(440px,58vh,580px);display:flex;align-items:center}
.cta-img{position:absolute;inset:0}
.cta-img img{width:100%;height:100%;object-fit:cover;object-position:right 58%}
.cta .wrap{position:relative;z-index:2;width:100%}
.cta-inner{max-width:520px;text-shadow:0 1px 14px rgba(0,0,0,.14)}
.cta .eyebrow{color:#fff}.cta .eyebrow span::after{display:none}
.cta .eyebrow::before{background:rgba(255,255,255,.85)}
.cta .title{color:#fff;font-weight:500;font-size:clamp(22px,2.2vw,32px);letter-spacing:clamp(3px,.5vw,7px);text-transform:uppercase;line-height:1.5}
.cta hr{width:110px;border:0;border-top:1px solid #fff;margin:28px 0 36px}
.cta .btn-light{background:#fff;color:var(--ink);border-color:#fff;text-shadow:none}
.cta .btn-light:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.footer{background:#1a1a1a;color:rgba(255,255,255,.7);padding:70px 0 34px;font-size:14px}
.footer a{transition:color .3s}.footer a:hover{color:#fff}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:40px}
.footer .ft-h{color:#fff;font-size:12px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;margin-bottom:16px}
.footer ul{list-style:none;margin:0;padding:0;line-height:2}
.footer .mark{width:84px;margin-bottom:16px}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid rgba(255,255,255,.12);margin-top:50px;padding-top:24px;font-size:12px;letter-spacing:1px}
.social{display:flex;gap:12px}
.social a{width:38px;height:38px;border:1px solid rgba(255,255,255,.3);border-radius:50%;display:grid;place-items:center}
.social a:hover{border-color:#fff}
.social svg{width:16px;height:16px}

/* ===== contact page ===== */
.contact-hero{display:grid;grid-template-columns:1.15fr 1fr;min-height:calc(100svh - var(--nav-h));margin-top:var(--nav-h)}
.contact-hero .visual{position:relative;overflow:hidden;display:grid;place-items:center;color:#fff;text-align:center;padding:60px 30px}
.contact-hero .visual picture{position:absolute;inset:0}
.contact-hero .visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.contact-hero .visual::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.12)}
.contact-hero .visual div{position:relative;z-index:2;text-shadow:0 1px 18px rgba(0,0,0,.18)}
@media (min-width:861px){.contact-hero .visual{align-items:start}.contact-hero .visual div{margin-top:max(8%,calc(31svh - 150px))}}
.contact-hero .visual h1{color:#fff;font-weight:500;font-size:clamp(26px,3vw,40px);letter-spacing:10px;text-transform:uppercase;line-height:1.5}
.contact-hero .visual hr{width:110px;border:0;border-top:1px solid #fff;margin:30px auto}
.contact-hero .visual p{font-size:clamp(16px,1.6vw,20px);letter-spacing:2px}
.contact-hero .panel{background:var(--terra);color:var(--ink);padding:70px clamp(30px,5vw,80px);display:flex;flex-direction:column;justify-content:center}
.contact-hero .panel h2{font-size:clamp(34px,4.4vw,58px);text-transform:uppercase;letter-spacing:2px;margin-bottom:44px}
.contact-list{list-style:none;margin:0;padding:0;display:grid;gap:30px}
.contact-list li{display:flex;gap:18px;align-items:flex-start;font-size:15px;line-height:1.6;color:#1f1f1f}
.contact-list svg{flex:0 0 30px;height:30px;stroke:#1f1f1f}
.contact-list small{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(0,0,0,.6);font-weight:500}
.contact-list a:hover{text-decoration:underline}
.form-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,90px)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:26px 28px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:12px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--ink)}
.field input,.field select,.field textarea{font:300 16px var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line-strong);padding:10px 0;border-radius:0;transition:border-color .3s}
.field select{appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right center/16px}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--rust)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .actions{grid-column:1/-1;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.form button{cursor:pointer;background:none;font-family:var(--sans)}
.form-msg{font-size:14px}
.form-msg.ok{color:#2f7a3a}.form-msg.err{color:var(--rust)}

/* ===== reveal on scroll ===== */
.js .rv{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .rv-d1{transition-delay:.1s}.js .rv-d2{transition-delay:.2s}.js .rv-d3{transition-delay:.3s}

/* ===== responsive ===== */
@media (max-width:1024px){
  .company,.company.flip{grid-template-columns:1fr}
  .company .photo,.company.flip .photo{grid-column:1;grid-row:1;aspect-ratio:16/10}
  .company .card,.company.flip .card{grid-column:1;grid-row:2;margin:-60px 22px 0}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  :root{--nav-h:84px}
  .about-grid,.form-wrap,.contact-hero{grid-template-columns:1fr}
  .framed{max-width:520px}
  .menu{grid-template-columns:1fr;align-content:center;gap:40px;overflow-y:auto}
  .branches{grid-template-columns:1fr;gap:0;max-width:420px;margin:0 auto}
  .branches::before{left:50%;right:auto;width:1px;height:100%}
  .branch{background:var(--bg);position:relative;padding-bottom:26px}
  .branch .world{min-height:0;padding-top:16px}
  .branches:hover .branch{opacity:1}
  .parts{grid-template-columns:1fr 1fr;row-gap:40px}
  .part:nth-child(3){border:0}
  .origin-cols{grid-template-columns:1fr}
  .timeline ol{grid-template-columns:1fr;gap:18px}
  .timeline li::after,.timeline li::before{display:none}
  .contact-hero .visual{min-height:56vh;align-items:start;padding-top:36px}
  .contact-hero .panel{padding-top:70px}
  .dna .box{margin-top:-140px}
  .dna .media img{object-position:34% 40%}
  .cta{display:flex;flex-direction:column-reverse;min-height:0;background:#b9b5aa}
  .definition{padding:64px 0 140px}
  .definition .bg img{position:absolute;top:-8%;height:128%}
  .cta .wrap{padding-top:56px;padding-bottom:24px}
  .cta-img{position:relative}
  .cta-img img{height:auto;aspect-ratio:900/473;-webkit-mask-image:linear-gradient(180deg,transparent,#000 22%);mask-image:linear-gradient(180deg,transparent,#000 22%)}
}
@media (max-width:560px){
  .stats{grid-template-columns:1fr 1fr 1fr;gap:8px}.stat{padding:14px 10px}.stat span{font-size:10px;letter-spacing:1px}
  .form{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .hero-ui .signature-hero{display:none}
  .hero-ui .wrap{justify-content:flex-end}
  .metas span{font-size:10px;letter-spacing:1.5px;padding:0 10px}
  .tools{gap:18px}
  .menu-btn .txt{display:none}
  .badge{left:30px;bottom:30px}
  .partners-grid{grid-template-columns:repeat(2,minmax(0,1fr));--pu:.72px}
  .partner{padding:18px}
  .scroll-cue{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
  html{scroll-behavior:auto}
}
/* tap targets (touch devices): at least 44px high */
@media (hover:none),(max-width:1024px){.link{min-height:44px;padding-bottom:0}.slide-cta{min-height:44px;display:inline-flex;align-items:center}.menu-btn{min-height:44px;padding:0}}
