/* ============================================================
   MERIDIAN — clean-energy & grid infrastructure (corporate)
   Calm · trustworthy · Swiss grid · deep-teal brand
   Plain CSS · GSAP/ScrollTrigger only · reveal fail-safe
   ============================================================ */

:root{
  --paper:#f7f8fa;          /* cool light ground */
  --paper-2:#eef1f5;        /* faint band */
  --card:#ffffff;
  --ink:#14202b;            /* primary text */
  --ink-70:rgba(20,32,43,.70);
  --ink-55:rgba(20,32,43,.55);
  --ink-40:rgba(20,32,43,.40);
  --ink-14:rgba(20,32,43,.14);
  --ink-08:rgba(20,32,43,.08);
  --brand:#0c6b61;          /* deep teal */
  --brand-2:#0a544c;        /* darker teal */
  --brand-tint:#e2f0ee;     /* teal fill */
  --brand-tint-2:#d0e7e3;
  --sky:#3f8cff;            /* data secondary only */
  --line:rgba(20,32,43,.12);
  --maxw:1200px;
  --pad:clamp(20px,5vw,64px);
  --r:12px;
  --r-sm:8px;
  --shadow:0 1px 2px rgba(20,32,43,.05), 0 8px 28px rgba(20,32,43,.06);
  --shadow-lg:0 2px 6px rgba(20,32,43,.07), 0 20px 48px rgba(20,32,43,.10);
  --ease:cubic-bezier(.22,.61,.36,1);
  --font-jp:"Zen Kaku Gothic New","Noto Sans JP",system-ui,sans-serif;
  --font-lat:"Inter",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-jp);
  color:var(--ink);
  background:var(--paper);
  line-height:1.75;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3,p,dl,dd,ul,figure{margin:0}
ul{list-style:none;padding:0}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:2px}

.skip-link{
  position:fixed;left:12px;top:-60px;z-index:200;
  background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--r-sm);
  font-size:13px;transition:top .2s;
}
.skip-link:focus{top:12px}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--font-jp);font-weight:700;font-size:14px;letter-spacing:.02em;
  padding:12px 20px;border-radius:999px;line-height:1;white-space:nowrap;
  border:1.5px solid transparent;cursor:pointer;
  transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease);
}
.btn__arw{transition:transform .25s var(--ease)}
.btn:hover .btn__arw{transform:translateX(3px)}
.btn--primary{background:var(--brand);color:#fff}
.btn--primary:hover{background:var(--brand-2);transform:translateY(-2px);box-shadow:0 8px 20px rgba(12,107,97,.28)}
.btn--ghost{border-color:var(--line);color:var(--ink);background:transparent}
.btn--ghost:hover{border-color:var(--ink);background:var(--card)}
.btn--cta{background:var(--brand);color:#fff;padding:11px 18px;font-size:13.5px}
.btn--cta:hover{background:var(--brand-2)}
.btn--lg{padding:15px 26px;font-size:15px}

/* ============ HEADER ============ */
.hdr{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(247,248,250,.72);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid transparent;
  transition:background .3s,border-color .3s,box-shadow .3s;
}
.hdr.is-solid{
  background:rgba(247,248,250,.9);
  border-bottom-color:var(--line);
  box-shadow:0 1px 20px rgba(20,32,43,.05);
}
.hdr__inner{
  max-width:var(--maxw);margin:0 auto;padding:14px var(--pad);
  display:flex;align-items:center;gap:24px;
}
.brand{display:inline-flex;align-items:center;gap:10px}
.brand__mark{width:28px;height:28px;color:var(--brand);flex:none}
.brand__name{
  font-family:var(--font-lat);font-weight:700;font-size:20px;letter-spacing:.14em;
  color:var(--ink);
}
.hdr__nav{display:flex;gap:6px;margin-left:8px}
.hdr__nav a{
  font-weight:500;font-size:15px;padding:8px 14px;border-radius:var(--r-sm);
  color:var(--ink-70);transition:color .18s,background .18s;
}
.hdr__nav a:hover{color:var(--brand);background:var(--brand-tint)}
.hdr .btn--cta{margin-left:auto}
.hdr__menu{
  display:none;margin-left:auto;width:42px;height:42px;
  background:transparent;border:1px solid var(--line);border-radius:var(--r-sm);
  flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;
}
.hdr__menu span{display:block;width:18px;height:1.6px;background:var(--ink);transition:transform .25s,opacity .2s}
.hdr__menu[aria-expanded="true"] span:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
.hdr__menu[aria-expanded="true"] span:nth-child(2){opacity:0}
.hdr__menu[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}
.hdr__mobile{
  display:flex;flex-direction:column;
  padding:8px var(--pad) 20px;border-top:1px solid var(--line);
  background:rgba(247,248,250,.96);
}
.hdr__mobile a{
  display:flex;align-items:baseline;gap:10px;
  padding:14px 4px;font-weight:700;font-size:17px;
  border-bottom:1px solid var(--ink-08);
}
.hdr__mobile a:last-child{border-bottom:0}
.hdr__mobile em{font-family:var(--font-lat);font-style:normal;font-size:12px;letter-spacing:.1em;color:var(--ink-40)}

/* ============ HERO ============ */
.hero{
  position:relative;padding:calc(76px + 5vh) 0 0;
  background:
    radial-gradient(1200px 500px at 82% -6%, var(--brand-tint) 0%, rgba(226,240,238,0) 60%),
    linear-gradient(180deg,#fbfcfd 0%,var(--paper) 100%);
  overflow:hidden;
}
.hero__inner{
  max-width:var(--maxw);margin:0 auto;padding:clamp(28px,6vh,60px) var(--pad) clamp(40px,6vh,60px);
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center;
}
.hero__eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;
  color:var(--brand);font-weight:500;margin-bottom:22px;
}
.hero__eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px var(--brand-tint)}
.hero__title{
  font-weight:900;letter-spacing:.01em;line-height:1.28;
  font-size:clamp(30px,5vw,52px);color:var(--ink);
}
.hero__title-accent{color:var(--brand);position:relative}
.hero__sub{
  margin-top:22px;max-width:34em;font-size:clamp(15px,1.6vw,17px);
  color:var(--ink-70);line-height:1.95;font-weight:400;
}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero__kpi{display:flex;flex-wrap:wrap;gap:clamp(20px,4vw,44px);margin-top:38px;padding-top:26px;border-top:1px solid var(--line)}
.hero__kpi-cell dt{font-size:12px;letter-spacing:.06em;color:var(--ink-55);margin-bottom:6px}
.hero__kpi-cell dd{
  font-family:var(--font-mono);font-weight:600;font-size:clamp(24px,3.4vw,32px);
  color:var(--ink);line-height:1;display:flex;align-items:baseline;gap:3px;
}
.hero__kpi-cell .unit{font-size:14px;color:var(--ink-55);font-weight:500}

/* --- hero energy-network card --- */
.hero__figure{margin:0}
.netcard{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow-lg);padding:18px 18px 14px;
}
.netcard__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.netcard__label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-55)}
.netcard__live{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--brand);font-weight:600}
.netcard__dot{width:7px;height:7px;border-radius:50%;background:var(--brand);animation:blink 1.8s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.net{width:100%;height:auto}
.net__link{stroke:var(--ink-14)}
.net__flow .net__pulse{
  stroke-dasharray:26 320;stroke-dashoffset:346;
  animation:flow 2.6s linear infinite;
}
@keyframes flow{to{stroke-dashoffset:0}}
.net__node circle,.net__node rect{fill:var(--card);stroke:var(--brand);stroke-width:1.6}
.net__glyph{stroke:var(--brand);stroke-width:1.6}
.net__node--hub circle{stroke:var(--brand);stroke-width:1.8}
.net__node--hub .net__hubdot{fill:var(--brand);stroke:none;animation:hubpulse 2.6s ease-in-out infinite}
@keyframes hubpulse{0%,100%{opacity:.9}50%{opacity:.45}}
.net__node--out rect{fill:var(--brand-tint);stroke:var(--brand)}
.netcard__foot{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;padding-top:12px;border-top:1px solid var(--ink-08);font-size:12px;color:var(--ink-55)}
.netcard__foot span{display:inline-flex;align-items:center;gap:7px}
.lg{width:11px;height:11px;border-radius:3px;flex:none}
.lg--src{border:1.6px solid var(--brand);border-radius:50%;background:var(--card)}
.lg--hub{background:var(--brand)}
.lg--out{background:var(--brand-tint);border:1.6px solid var(--brand)}

/* --- ticker --- */
.hero__ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.5);overflow:hidden;padding:11px 0}
.hero__ticker-track{display:inline-flex;white-space:nowrap;animation:ticker 34s linear infinite;will-change:transform}
.hero__ticker-track span{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--ink-40);padding:0 14px}
.hero__ticker-track span:nth-child(2n){color:var(--brand);padding:0}
@keyframes ticker{to{transform:translateX(-50%)}}

/* ============ SECTION SHELL ============ */
.sec{max-width:var(--maxw);margin:0 auto;padding:clamp(64px,11vh,120px) var(--pad)}
.sec__head{margin-bottom:clamp(34px,5vh,54px)}
.sec__idx{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;
  color:var(--brand);font-weight:600;margin-bottom:14px;
}
.sec__idx span{color:var(--ink-40)}
.sec__idx--light{color:#8fd8cf}
.sec__idx--light span{color:rgba(255,255,255,.4)}
.sec__title{font-weight:900;font-size:clamp(26px,4vw,40px);letter-spacing:.02em;line-height:1.3}
.sec__lead{margin-top:16px;max-width:40em;font-size:clamp(15px,1.6vw,17px);color:var(--ink-70);line-height:1.9}
.sec__head--light .sec__title,.sec__head--light .sec__lead{color:#fff}
.sec__head--light .sec__lead{color:rgba(255,255,255,.78)}

/* ============ BUSINESS CARDS ============ */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,22px)}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:26px 24px 28px;box-shadow:var(--shadow);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
  position:relative;overflow:hidden;
}
.card::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--brand);transition:width .4s var(--ease)}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--brand-tint-2)}
.card:hover::after{width:100%}
.card__ico{
  width:52px;height:52px;border-radius:var(--r-sm);
  background:var(--brand-tint);color:var(--brand);
  display:flex;align-items:center;justify-content:center;margin-bottom:22px;
}
.card__ico svg{width:30px;height:30px}
.card__no{font-family:var(--font-mono);font-size:12px;color:var(--ink-40);letter-spacing:.1em;margin-bottom:8px}
.card__title{font-weight:700;font-size:18px;line-height:1.5;letter-spacing:.01em}
.card__en{font-family:var(--font-lat);font-size:12px;letter-spacing:.08em;color:var(--brand);margin-top:4px;font-weight:600}
.card__body{margin-top:14px;font-size:14px;color:var(--ink-70);line-height:1.9}

/* ============ NUMBERS BAND ============ */
.numbers{max-width:none;padding:0}
.numbers__inner{
  max-width:var(--maxw);margin:0 auto;padding:clamp(64px,10vh,110px) var(--pad);
}
.numbers{
  background:
    radial-gradient(900px 480px at 88% 120%, rgba(63,140,255,.18) 0%, rgba(63,140,255,0) 60%),
    linear-gradient(160deg,#0d5a52 0%,#0c6b61 46%,#0a4b45 100%);
  position:relative;
}
.numbers::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:56px 56px;mask-image:linear-gradient(180deg,rgba(0,0,0,.6),transparent 78%);
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.6),transparent 78%);
}
.numbers__inner{position:relative}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,32px)}
.stat{border-top:1.5px solid rgba(255,255,255,.22);padding-top:20px}
.stat__label{font-size:13px;letter-spacing:.04em;color:rgba(255,255,255,.72);margin-bottom:14px}
.stat__num{
  font-family:var(--font-mono);font-weight:600;color:#fff;line-height:1;
  font-size:clamp(34px,5vw,52px);display:flex;align-items:baseline;gap:5px;
}
.stat__unit{font-size:clamp(15px,1.8vw,19px);color:rgba(255,255,255,.7);font-weight:500}
.stat__note{margin-top:14px;font-size:12.5px;color:rgba(255,255,255,.6);line-height:1.7}

/* ============ COMPANY ============ */
.company__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:start}
.company__mission-eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;color:var(--brand);font-weight:600;margin-bottom:16px}
.company__mission-lead{font-size:clamp(18px,2.2vw,23px);font-weight:700;line-height:1.85;letter-spacing:.01em}
.values{margin-top:32px;display:grid;gap:2px;border-top:1px solid var(--line)}
.values li{display:flex;gap:16px;padding:18px 2px;border-bottom:1px solid var(--line)}
.values__k{font-family:var(--font-mono);font-size:13px;color:var(--brand);font-weight:600;flex:none;padding-top:2px}
.values__v{font-size:14px;color:var(--ink-70);line-height:1.8}
.values__v strong{display:block;color:var(--ink);font-size:15px;margin-bottom:3px;font-weight:700}
.company__profile{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:clamp(24px,3vw,34px);box-shadow:var(--shadow)}
.company__profile-title{font-weight:700;font-size:18px;margin-bottom:6px;padding-bottom:16px;border-bottom:2px solid var(--brand)}
.profile th,.profile td{text-align:left;vertical-align:top;padding:15px 4px;border-bottom:1px solid var(--line);font-size:14px}
.profile th{width:34%;font-weight:700;color:var(--ink-70);white-space:nowrap}
.profile td{color:var(--ink);line-height:1.7}
.profile tr:last-child th,.profile tr:last-child td{border-bottom:0}
.profile__en{font-family:var(--font-lat);font-size:12px;color:var(--ink-40);letter-spacing:.04em}

/* ============ NEWS ============ */
.newslist{border-top:1px solid var(--line)}
.newsitem a{
  display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:22px;
  padding:22px 6px;border-bottom:1px solid var(--line);
  transition:background .2s,padding .25s var(--ease);
}
.newsitem a:hover{background:var(--card);padding-left:14px;padding-right:14px}
.newsitem time{font-family:var(--font-mono);font-size:13px;color:var(--ink-55);letter-spacing:.03em}
.newsitem__cat{font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:5px 11px;border-radius:999px;white-space:nowrap}
.newsitem__cat--pr{background:var(--brand-tint);color:var(--brand-2)}
.newsitem__cat--ir{background:rgba(63,140,255,.12);color:#2f6fd6}
.newsitem__cat--notice{background:var(--ink-08);color:var(--ink-70)}
.newsitem__ttl{font-size:15px;font-weight:500;line-height:1.6;color:var(--ink)}
.newsitem a:hover .newsitem__ttl{color:var(--brand)}
.newsitem__arw{color:var(--brand);font-size:16px;transition:transform .25s var(--ease)}
.newsitem a:hover .newsitem__arw{transform:translateX(4px)}
.news__more{
  display:inline-flex;align-items:center;gap:8px;margin-top:34px;
  font-weight:700;font-size:14px;color:var(--brand);
  border-bottom:1.5px solid transparent;padding-bottom:2px;transition:border-color .2s;
}
.news__more:hover{border-bottom-color:var(--brand)}

/* ============ CAREERS ============ */
.careers{max-width:none;padding:0}
.careers__inner{
  max-width:var(--maxw);margin:0 auto;padding:clamp(48px,8vh,80px) var(--pad);
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,64px);align-items:center;
}
.careers{background:linear-gradient(120deg,#12242f 0%,#14202b 60%,#0e2b28 100%);position:relative;overflow:hidden}
.careers::before{
  content:"";position:absolute;right:-8%;top:-40%;width:60%;height:180%;
  background:radial-gradient(circle,rgba(12,107,97,.5) 0%,rgba(12,107,97,0) 62%);pointer-events:none;
}
.careers__inner{position:relative}
.careers__title{color:#fff;font-weight:900;font-size:clamp(24px,3.4vw,36px);line-height:1.4;margin-top:14px}
.careers__body{color:rgba(255,255,255,.72);font-size:15px;line-height:1.95;margin-top:20px;max-width:36em}
.careers .btn--primary{margin-top:30px;background:#fff;color:var(--brand-2)}
.careers .btn--primary:hover{background:var(--brand-tint);color:var(--brand-2)}
.careers__roles{display:grid;gap:12px}
.careers__roles li{
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-sm);
  padding:18px 20px;color:#fff;font-weight:700;font-size:16px;
  transition:background .2s,border-color .2s,transform .2s;
}
.careers__roles li:hover{background:rgba(255,255,255,.08);border-color:rgba(143,216,207,.5);transform:translateX(4px)}
.careers__roles-k{display:block;font-family:var(--font-lat);font-size:11px;letter-spacing:.1em;color:#8fd8cf;font-weight:600;margin-bottom:5px}

/* ============ CONTACT CTA ============ */
.contact{text-align:center}
.contact__inner{max-width:640px;margin:0 auto}
.contact__eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--brand);font-weight:600;margin-bottom:18px}
.contact__title{font-weight:900;font-size:clamp(26px,4vw,42px);line-height:1.35}
.contact__body{margin-top:20px;color:var(--ink-70);font-size:15px;line-height:1.9}
.contact__actions{margin-top:34px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ============ FOOTER ============ */
.foot{background:var(--paper-2);border-top:1px solid var(--line)}
.foot__inner{
  max-width:var(--maxw);margin:0 auto;padding:clamp(48px,7vh,72px) var(--pad) 40px;
  display:grid;grid-template-columns:1.2fr 2fr;gap:clamp(32px,5vw,64px);
}
.brand--foot .brand__mark{color:var(--brand)}
.foot__tag{margin-top:16px;font-weight:700;font-size:15px;color:var(--ink)}
.foot__addr{margin-top:10px;font-size:13px;color:var(--ink-55);line-height:1.8}
.foot__nav{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
.foot__col-h{font-weight:700;font-size:13px;color:var(--ink);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.foot__col a{display:block;font-size:13.5px;color:var(--ink-70);padding:6px 0;transition:color .18s}
.foot__col a:hover{color:var(--brand)}
.foot__base{
  max-width:var(--maxw);margin:0 auto;padding:20px var(--pad);border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
  font-size:12.5px;color:var(--ink-55);
}
.foot__base-links{display:flex;gap:22px}
.foot__base-links a{transition:color .18s}
.foot__base-links a:hover{color:var(--brand)}

/* ============ REVEAL — fail-safe ============
   Default: fully visible (opacity:1). Only when JS confirms it
   can animate does <html> get .anim-ready, arming the transition.
   IntersectionObserver adds .is-inview; a 1.4s failsafe reveals
   anything missed. No JS / reduced-motion => everything visible. */
[data-reveal]{opacity:1;transform:none}
html.anim-ready [data-reveal]{
  opacity:0;transform:translateY(22px);
  transition:opacity .8s var(--ease) calc(var(--i,0)*.06s),transform .8s var(--ease) calc(var(--i,0)*.06s);
}
html.anim-ready [data-reveal].is-inview{opacity:1;transform:none}

/* ============ BACK-TO-INDEX ============ */
.backlink{
  position:fixed;left:20px;bottom:20px;z-index:120;
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;
  padding:9px 14px;background:var(--card);color:var(--ink);
  border:1px solid var(--line);border-radius:999px;
  box-shadow:var(--shadow);
  transition:background .18s,color .18s,transform .18s,box-shadow .18s,border-color .18s;
}
.backlink__e{font-size:9px;letter-spacing:.18em;color:var(--brand);font-weight:600}
.backlink:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--brand-tint-2)}
.backlink:hover .backlink__t{color:var(--brand)}
@media (max-width:640px){.backlink{left:12px;bottom:12px;padding:8px 12px}.backlink__e{display:none}}

/* ============ JP/EN LANG SWITCH (black text per house rule) ============ */
.lang-switch{
  position:fixed;left:20px;bottom:64px;z-index:121;
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;
  padding:6px 12px;background:var(--card);border:1px solid var(--line);border-radius:999px;
  box-shadow:var(--shadow);color:var(--ink);
}
.lang-switch .ls{color:var(--ink);text-decoration:none;opacity:.5}
.lang-switch a.ls:hover{opacity:1;text-decoration:underline}
.lang-switch .ls.is-on{opacity:1;font-weight:700;color:#000}
.lang-switch .ls-sep{opacity:.35}
@media (max-width:640px){.lang-switch{bottom:56px;left:12px;padding:5px 10px}}

/* ============ RESPONSIVE ============ */
@media (max-width:1080px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr);gap:32px}
}
@media (max-width:900px){
  .hdr__nav{display:none}
  .hdr .btn--cta{display:none}
  .hdr__menu{display:flex}
  .hero__inner{grid-template-columns:1fr;gap:36px}
  .hero__figure{order:-1;max-width:460px}
  .company__grid{grid-template-columns:1fr;gap:40px}
  .careers__inner{grid-template-columns:1fr;gap:32px}
  .foot__inner{grid-template-columns:1fr;gap:36px}
}
@media (max-width:640px){
  .cards{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr;gap:26px}
  .newsitem a{grid-template-columns:auto 1fr;gap:8px 14px;row-gap:6px}
  .newsitem__ttl{grid-column:1 / -1;order:3}
  .newsitem__arw{display:none}
  .foot__nav{grid-template-columns:1fr 1fr;gap:24px}
  .foot__base{flex-direction:column;align-items:flex-start}
  .contact__actions .btn{width:100%;justify-content:center}
}
@media (max-width:420px){
  .foot__nav{grid-template-columns:1fr}
}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  .net__flow .net__pulse{stroke-dasharray:none;stroke-dashoffset:0;opacity:.5}
  .hero__ticker-track{transform:none}
}

/* hide mobile nav cleanly when not open */
.hdr__mobile[hidden]{display:none}
