/* ============================================================
   NGG — base layout (shared across concepts)
   Color/type tokens are set by each concept theme file.
   ============================================================ */

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

/* subtle triangle motif layer (logo colors) — sits behind all content */
.bg-motif{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.bg-motif svg{ width:100%; height:100%; display:block; transform-origin:center; }
main, .cta-band, .site-footer{ position:relative; z-index:1; }
html[data-concept="b"] .bg-motif{ opacity:1; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--body-font);
  font-size:18px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  transition:background .4s ease, color .4s ease;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }

/* Authoritative page background — beats the preview's injected
   `html,body{background:transparent}` via higher specificity,
   so light concepts (A, C) don't fall through to a dark default. */
html[data-concept]{ background-color:var(--bg); transition:background-color .4s ease; }

:root{
  --maxw: 1280px;
  --gut: clamp(20px, 5vw, 80px);
  --sec-pad: clamp(72px, 11vh, 150px);
}

.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); }
section{ padding-block:var(--sec-pad); position:relative; }

/* ---------- headings / type helpers ---------- */
.eyebrow{
  display:none !important;
}
.eyebrow--keep{
  font-family:var(--mono-font);
  font-size:13px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent-ink); margin:0 0 22px;
  display:inline-flex; align-items:center; gap:.7em;
}
html[dir=rtl] .eyebrow--keep{ letter-spacing:.06em; }
.h-display{
  font-family:var(--head-font);
  font-weight:var(--head-weight);
  font-size:clamp(40px, 6vw, 92px);
  line-height:1.02; letter-spacing:var(--head-tracking);
  margin:0;
}
.amp{
  font-family:"Playfair Display","Frank Ruhl Libre",Georgia,serif;
  font-style:italic; font-weight:500;
  color:inherit;
  padding:0 .04em;
}
.h-section{
  font-family:var(--head-font);
  font-weight:var(--head-weight);
  font-size:clamp(32px, 4.4vw, 60px);
  line-height:1.05; letter-spacing:var(--head-tracking);
  margin:0 0 .5em;
}
.h-card{
  font-family:var(--head-font);
  font-weight:var(--head-weight-2, 600);
  font-size:clamp(20px, 1.7vw, 26px);
  line-height:1.15; margin:0 0 .4em;
  letter-spacing:var(--head-tracking);
}
.lede{ font-size:clamp(19px, 1.5vw, 24px); line-height:1.55; color:var(--ink); max-width:62ch; margin:0 0 22px; }
.muted{ color:var(--ink-soft); }
p{ margin:0 0 18px; max-width:64ch; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--mono-font); font-size:14px; letter-spacing:.04em;
  padding:15px 28px; border-radius:var(--btn-radius);
  border:1px solid transparent; cursor:pointer;
  transition:transform .18s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--accent); color:var(--accent-on); }
.btn-primary:hover{ background:var(--accent-2); }
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--rule-strong); }
.btn-ghost:hover{ border-color:var(--accent); color:var(--accent-ink); }
.arrow::after{ content:"→"; }
html[dir=rtl] .arrow::after{ content:"←"; }

/* ---------- header / nav ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--header-bg); backdrop-filter:blur(12px);
  border-bottom:1px solid var(--rule);
  transition:background .4s ease, border-color .4s ease;
}
.nav{ display:flex; align-items:center; justify-content:space-between; height:124px; gap:24px; }
.brand{ display:flex; align-items:center; gap:10px; font-family:var(--head-font); }
.brand-logo{ height:100px; width:auto; flex:none; display:block; }
.brand .logo-light{ display:none; }
html[data-concept="b"] .site-header .brand .logo-dark{ display:none; }
html[data-concept="b"] .site-header .brand .logo-light{ display:block; }
.brand .mark{ font-weight:800; font-size:26px; letter-spacing:.02em; color:var(--ink); }
.brand .mark b{ color:var(--accent-ink); }
.brand .sub{ font-family:var(--mono-font); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); border-inline-start:1px solid var(--rule); padding-inline-start:11px; max-width:22ch; }
html[dir=rtl] .brand .sub{ letter-spacing:.04em; }
.nav-links{ display:flex; gap:30px; align-items:center; }
.nav-links a{
  font-size:15px; color:var(--ink-soft); position:relative; padding:6px 0;
  transition:color .18s ease;
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a::after{
  content:""; position:absolute; inset-inline:0; bottom:-2px; height:2px;
  background:var(--accent); transform:scaleX(0); transform-origin:inline-start;
  transition:transform .22s ease;
}
.nav-links a:hover::after{ transform:scaleX(1); }
.nav-links a.active{ color:var(--ink); }
.nav-links a.active::after{ transform:scaleX(1); }
.nav-drop{ position:relative; display:flex; align-items:center; }
.nav-drop > a::before{ content:""; }
.nav-submenu{ position:absolute; top:100%; inset-inline-start:50%; transform:translateX(-50%) translateY(8px); background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius); padding:8px; min-width:170px; display:flex; flex-direction:column; gap:2px; opacity:0; visibility:hidden; transition:opacity .18s ease, transform .18s ease; box-shadow:var(--card-shadow); z-index:120; }
html[dir=rtl] .nav-submenu{ transform:translateX(50%) translateY(8px); }
.nav-drop:hover .nav-submenu, .nav-drop:focus-within .nav-submenu{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
html[dir=rtl] .nav-drop:hover .nav-submenu, html[dir=rtl] .nav-drop:focus-within .nav-submenu{ transform:translateX(50%) translateY(0); }
.nav-submenu a{ padding:9px 14px; border-radius:6px; font-size:14px; color:var(--ink-soft); white-space:nowrap; transition:background .15s ease, color .15s ease; }
.nav-submenu a::after{ display:none; }
.nav-submenu a:hover{ background:var(--panel-2); color:var(--accent-ink); }
.nav-right{ display:flex; align-items:center; gap:18px; }
.lang-btn{
  font-family:var(--mono-font); font-size:12px; letter-spacing:.1em;
  background:none; border:1px solid var(--rule-strong); color:var(--ink);
  padding:8px 12px; border-radius:var(--btn-radius); cursor:pointer; transition:all .18s ease;
}
.lang-btn:hover{ border-color:var(--accent); color:var(--accent-ink); }
.lang-select{
  font-family:var(--mono-font); font-size:12px; letter-spacing:.06em;
  background:transparent; border:1px solid var(--rule-strong); color:var(--ink);
  padding:8px 30px 8px 12px; border-radius:var(--btn-radius); cursor:pointer; transition:all .18s ease;
  -webkit-appearance:none; appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 16px) 52%, calc(100% - 11px) 52%;
  background-size:5px 5px, 5px 5px; background-repeat:no-repeat;
}
html[dir=rtl] .lang-select{ padding:8px 12px 8px 30px; background-position:14px 52%, 19px 52%; }
.lang-select:hover{ border-color:var(--accent); color:var(--accent-ink); }
.lang-select:focus{ outline:none; border-color:var(--accent); }
.lang-select option{ color:#16202f; background:#fff; }
@media (max-width:880px){ .nav-links{ display:none; } }

/* ---------- HERO ---------- */
.hero{ padding-top:clamp(48px,7vh,90px); padding-bottom:0; overflow:hidden; }
.hero-inner{ display:grid; gap:40px; }
.hero h1{ margin:18px 0 26px; }
.hero h1 .l2{ color:var(--accent-ink); display:block; }
.hero .sub{ font-size:clamp(18px,1.55vw,23px); max-width:54ch; color:var(--ink-soft); line-height:1.55; }
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-top:34px; }
.hero-figure{
  position:relative; border-radius:var(--img-radius); overflow:hidden;
  border:1px solid var(--rule); background:var(--panel);
}
.hero-figure img{ width:100%; height:100%; object-fit:contain; }
.scroll-cue{
  display:flex; align-items:center; gap:12px; margin-top:46px; padding-bottom:46px;
  font-family:var(--mono-font); font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-soft);
}
html[dir=rtl] .scroll-cue{ letter-spacing:.04em; }
.scroll-cue .dash{ width:46px; height:1px; background:var(--rule-strong); }

/* ---------- proof strip ---------- */
.proof{ border-block:1px solid var(--rule); background:var(--panel-2); padding-block:clamp(34px,5vh,56px); }
.proof-grid{ display:grid; grid-template-columns:auto 1fr 1fr 1fr; gap:40px; align-items:center; }
.proof .tag{
  font-family:var(--head-font); font-weight:var(--head-weight);
  font-size:clamp(18px,1.5vw,24px); color:var(--accent-ink); letter-spacing:var(--head-tracking);
}
.proof .stat .k{ font-family:var(--head-font); font-weight:700; font-size:clamp(24px,2.2vw,34px); color:var(--ink); }
.proof .stat .v{ font-size:14px; color:var(--ink-soft); margin-top:4px; max-width:24ch; }
@media (max-width:880px){ .proof-grid{ grid-template-columns:1fr 1fr; gap:26px; } }

/* proof layout: stat cards + value logos */
.proof-layout{ display:grid; grid-template-columns:1fr 2.2fr; gap:clamp(28px,4vw,56px); align-items:stretch; }
.proof-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.proof-stats .astat{ position:relative; overflow:hidden; background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius); padding:30px 26px; min-height:150px; display:flex; flex-direction:column; justify-content:center; transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.proof-stats .astat:hover{ transform:translateY(-4px); border-color:var(--accent); box-shadow:var(--card-shadow); }
a.proof-stats .astat, .proof-stats a.astat{ text-decoration:none; color:inherit; }
.proof-stats .astat-bg{ position:absolute; inset:0; display:block; opacity:.3; pointer-events:none; }
.proof-stats .astat--years .astat-bg img{ object-position:right bottom; }
html[dir=rtl] .proof-stats .astat--years .astat-bg img{ object-position:left bottom; }
.proof-stats .astat-bg img{ width:100%; height:100%; object-fit:contain; }
html[data-concept="b"] .proof-stats .astat-bg{ filter:invert(1) brightness(1.7); opacity:.22; }
.proof-stats .an{ position:relative; z-index:1; font-family:var(--head-font); font-weight:800; font-size:clamp(28px,3vw,46px); line-height:1.05; color:var(--accent-ink); letter-spacing:var(--head-tracking); }
.proof-stats .astat--projects .an{ font-size:clamp(20px,2vw,30px); }
.proof-stats .al{ position:relative; z-index:1; font-family:var(--mono-font); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-top:10px; }
html[dir=rtl] .proof-stats .al{ letter-spacing:0; text-transform:none; font-size:14px; }
.proof-values{ order:-1; display:flex; flex-direction:row; align-items:center; justify-content:center; gap:clamp(18px,2vw,32px); border-inline-end:1px solid var(--rule); padding-inline-end:clamp(20px,3vw,40px); }
.proof-values .pv{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; cursor:pointer; color:inherit; text-decoration:none; transition:transform .2s ease; }
.proof-values .pv:hover{ transform:translateY(-4px); }
.proof-values .pv:hover .pv-name{ color:var(--accent-ink); }
.proof-values .pv-logo{ height:88px; width:88px; flex:none; display:flex; align-items:center; justify-content:center; }
.proof-values .pv-logo img{ max-height:100%; max-width:100%; object-fit:contain; }
.proof-values .pv-name{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(16px,1.3vw,20px); letter-spacing:var(--head-tracking); color:var(--ink); }
@media (max-width:900px){ .proof-layout{ grid-template-columns:1fr; } .proof-values{ border-inline-start:0; padding-inline-start:0; border-top:1px solid var(--rule); padding-top:24px; } }; padding-top:24px; gap:24px; } }
@media (max-width:560px){ .proof-stats{ grid-template-columns:1fr; } }

/* ---------- four forces (pillars) ---------- */
.forces-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:48px; background:var(--rule); border:1px solid var(--rule); border-radius:var(--card-radius); overflow:hidden; }
.force{
  background:var(--card); padding:40px 30px 34px;
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  transition:transform .25s ease, background .25s ease;
}
.force:hover{ transform:translateY(-4px); background:var(--panel-2); }
.force{ color:inherit; text-decoration:none; cursor:pointer; }
.force .force-ic{ height:64px; display:flex; align-items:center; margin-bottom:14px; }
.force .force-ic img{ height:100%; width:auto; filter:drop-shadow(0 8px 18px rgba(120,30,140,.18)); }
.force .ft{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(19px,1.6vw,24px); letter-spacing:var(--head-tracking); }
.ft-en{ display:block; font-family:var(--mono-font); font-size:.62em; font-weight:500; letter-spacing:.08em; color:var(--ink-soft); margin-top:4px; text-transform:uppercase; }
.force .fd{ color:var(--ink-soft); font-size:15px; line-height:1.5; margin:0; }
@media (max-width:880px){ .forces-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .forces-grid{ grid-template-columns:1fr; } }

/* ---------- pillars with topic lists (solutions) ---------- */
.pillars{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:48px; background:var(--rule); border:1px solid var(--rule); border-radius:var(--card-radius); overflow:hidden; }
.pillar{ background:var(--card); padding:34px 28px 30px; display:flex; flex-direction:column; gap:22px; }
.pillar-head{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; color:inherit; text-decoration:none; transition:transform .2s ease; }
a.pillar-head:hover{ transform:translateY(-3px); }
a.pillar-head:hover .ft{ color:var(--accent-ink); }
.pillar-head .force-ic{ height:56px; display:flex; align-items:center; }
.pillar-head .force-ic img{ height:100%; width:auto; filter:drop-shadow(0 8px 18px rgba(120,30,140,.18)); }
.pillar-head .ft{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(19px,1.6vw,24px); letter-spacing:var(--head-tracking); }
.pillar-topics{ list-style:none; margin:0; padding:0; border-top:1px solid var(--rule); }
.pillar-topics li{ border-bottom:1px solid var(--rule); }
.pillar-topics li:last-child{ border-bottom:0; }
.pillar-topics a{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:14px 0; font-size:15.5px; color:var(--ink); transition:color .18s ease, padding-inline-start .2s ease; }
.pillar-topics a::after{ content:"→"; font-family:var(--mono-font); color:var(--accent-ink); opacity:0; transform:translateX(-4px); transition:opacity .18s ease, transform .18s ease; }
html[dir=rtl] .pillar-topics a::after{ content:"←"; transform:translateX(4px); }
.pillar-topics a:hover{ color:var(--accent-ink); padding-inline-start:6px; }
.pillar-topics a:hover::after{ opacity:1; transform:none; }
.pillar-soon{ font-family:var(--mono-font); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); opacity:.6; margin:0; padding-top:8px; border-top:1px solid var(--rule); }
html[dir=rtl] .pillar-soon{ letter-spacing:.04em; text-transform:none; font-size:14px; }
@media (max-width:880px){ .pillars{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .pillars{ grid-template-columns:1fr; } }

/* ---------- topic page ---------- */
.topic{ padding-top:clamp(40px,7vh,90px); }
.topic-back{ font-family:var(--mono-font); font-size:13px; letter-spacing:.06em; color:var(--ink-soft); display:inline-block; margin-bottom:30px; transition:color .18s ease; }
.topic-back:hover{ color:var(--accent-ink); }
.topic .h-display{ margin:14px 0 26px; }

/* ---------- pillar pages (hero + topic nav + blocks) ---------- */
.pillar-hero{ padding-top:clamp(38px,6vh,80px); padding-bottom:clamp(28px,4vh,46px); border-bottom:1px solid var(--rule); background:var(--panel-2); }
.pillar-hero .topic-back{ font-family:var(--mono-font); font-size:13px; letter-spacing:.06em; color:var(--ink-soft); display:inline-block; margin-bottom:26px; transition:color .18s ease; }
.pillar-hero .topic-back:hover{ color:var(--accent-ink); }
.pillar-topnav{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; margin-bottom:28px; font-family:var(--mono-font); font-size:13px; letter-spacing:.06em; }
.pillar-topnav a{ color:var(--ink-soft); transition:color .18s ease; }
.pillar-topnav a:hover{ color:var(--accent-ink); }
.pillar-topnav a.active{ color:var(--accent-ink); font-weight:500; }
.pillar-topnav .sep{ width:1px; height:13px; background:var(--rule-strong); }
.pillar-hero .force-ic.big{ height:88px; display:flex; align-items:center; margin-bottom:22px; }
.pillar-hero .force-ic.big img{ height:100%; width:auto; filter:drop-shadow(0 10px 22px rgba(120,30,140,.18)); }
.pillar-hero .h-display{ margin:0 0 30px; font-size:clamp(40px,5.5vw,80px); }
.pillar-hero-row{ display:flex; align-items:center; gap:clamp(28px,4vw,60px); flex-wrap:wrap; }
.pillar-hero-main{ flex:1 1 340px; }
.pillar-hero-main .h-display{ margin-bottom:24px; }
.pillar-statement{ position:relative; overflow:hidden; flex:1 1 360px; background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius); padding:clamp(24px,3vw,38px); box-shadow:var(--card-shadow); }
.pillar-statement .ps-bg{ position:absolute; inset-inline-end:-6%; bottom:-10%; width:62%; max-width:340px; opacity:.07; pointer-events:none; z-index:0; }
.pillar-statement .ps-title, .pillar-statement .ps-body{ position:relative; z-index:1; }
.pillar-statement .ps-title{ font-family:var(--head-font); font-weight:var(--head-weight); font-size:clamp(22px,2vw,30px); line-height:1.15; letter-spacing:var(--head-tracking); color:var(--accent-ink); margin:0 0 16px; }
.pillar-statement .ps-body{ color:var(--ink-soft); font-size:clamp(15px,1.15vw,17px); line-height:1.7; margin:0; max-width:none; }
@media (max-width:760px){ .pillar-statement{ flex-basis:100%; } }
/* unified secondary nav — subtle text links, identical in all languages */
.topic-nav{ display:flex; flex-wrap:wrap; gap:8px 26px; margin-block:clamp(18px,3vh,30px) clamp(26px,4vh,42px); }
.topic-nav a{ font-family:var(--body-font); font-size:14px; letter-spacing:0; text-transform:none; color:var(--ink-soft); padding:4px 0; border:0; border-bottom:2px solid transparent; border-radius:0; background:none; transition:color .18s ease, border-color .18s ease; }
.topic-nav a:hover{ color:var(--accent-ink); border-bottom-color:var(--accent); background:none; }
.topic-block{ scroll-margin-top:124px; padding-block:clamp(44px,6vh,82px); border-bottom:1px solid var(--rule); }
.topic-block:last-child{ border-bottom:0; }
.topic-block .eyebrow{ color:var(--accent-ink); }

/* ---------- challenge ---------- */
.split{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(34px,5vw,76px); align-items:center; }
.challenge .figure{ border-radius:var(--img-radius); overflow:hidden; border:1px solid var(--rule); background:var(--panel); }
.wave-figure{ margin-top:clamp(40px,6vh,72px); }
.wave-figure .figure img{ width:100%; height:auto; display:block; }
.figure-cap{ font-family:var(--mono-font); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-top:12px; }
html[dir=rtl] .figure-cap{ letter-spacing:.02em; }
@media (max-width:880px){ .split{ grid-template-columns:1fr; } }

/* ---------- approach / SOU ---------- */
.approach{ background:var(--panel-band); }
.sou{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; }
.sou .axis{
  padding:36px 30px; border:1px solid var(--rule); border-radius:var(--card-radius);
  background:var(--card); position:relative; overflow:hidden;
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.sou .axis:hover{ transform:translateY(-4px); border-color:var(--accent); box-shadow:var(--card-shadow); }
.sou .axis .k{ font-family:var(--mono-font); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-ink); }
.sou .axis .d{ color:var(--ink-soft); font-size:16px; margin-top:8px; }
.sou .axis .num{
  position:absolute; inset-inline-end:22px; top:18px; font-family:var(--head-font);
  font-weight:800; font-size:64px; line-height:1; color:var(--accent-faint); opacity:.5;
}
.sou-core{
  margin-top:24px; padding:22px 30px; border:1px dashed var(--rule-strong); border-radius:var(--card-radius);
  font-family:var(--mono-font); font-size:13px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-soft); text-align:center; background:var(--card);
}
html[dir=rtl] .sou-core{ letter-spacing:.02em; }
@media (max-width:880px){ .sou{ grid-template-columns:1fr; } .sou .axis .num{ font-size:48px; } }

/* ---------- thinking / frameworks ---------- */
.fw-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:48px; }
.fw{
  padding:30px 28px; border:1px solid var(--rule); border-radius:var(--card-radius);
  background:var(--card); transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  position:relative;
}
.fw:hover{ transform:translateY(-4px); border-color:var(--accent); box-shadow:var(--card-shadow); }
.fw .dot{ width:9px; height:9px; border-radius:50%; background:var(--accent); margin-bottom:20px; }
.fw .d{ color:var(--ink-soft); font-size:15.5px; line-height:1.55; margin:0; }
@media (max-width:880px){ .fw-grid{ grid-template-columns:1fr; } }

/* ---------- industries ---------- */
.ind-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:48px; background:var(--rule); border:1px solid var(--rule); border-radius:var(--card-radius); overflow:hidden; }
.ind{
  background:var(--card); padding:38px 30px; min-height:160px;
  display:flex; flex-direction:column; justify-content:space-between;
  transition:background .22s ease, color .22s ease;
}
.ind:hover{ background:var(--accent); color:var(--accent-on); }
.ind .n{ font-family:var(--mono-font); font-size:12px; letter-spacing:.12em; color:var(--ink-soft); }
.ind:hover .n{ color:var(--accent-on); }
.ind .t{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(19px,1.7vw,25px); letter-spacing:var(--head-tracking); }
@media (max-width:880px){ .ind-grid{ grid-template-columns:1fr; } }

/* ---------- industries page: cards + detail ---------- */
.ind-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:clamp(40px,6vh,64px); }
.ind-card{ display:flex; flex-direction:column; gap:10px; padding:28px 24px 24px; background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius); position:relative; transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.ind-card:hover{ transform:translateY(-4px); border-color:var(--accent); box-shadow:var(--card-shadow); }
.ind-ico{ width:46px; height:46px; color:var(--accent-ink); display:flex; align-items:center; justify-content:center; }
.ind-ico svg{ width:100%; height:100%; }
.ind-card .ind-name{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(17px,1.4vw,21px); letter-spacing:var(--head-tracking); }
.ind-card .ind-tag{ font-size:14px; line-height:1.45; color:var(--ink-soft); }
.ind-card .ind-go{ font-family:var(--mono-font); font-size:13px; color:var(--accent-ink); margin-top:6px; opacity:0; transition:opacity .2s ease; }
.ind-card:hover .ind-go{ opacity:1; }
@media(max-width:980px){ .ind-cards{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .ind-cards{ grid-template-columns:1fr; } }

.ind-detail{ scroll-margin-top:120px; padding-block:clamp(50px,7vh,90px); border-top:1px solid var(--rule); }
.ind-detail:nth-of-type(even){ background:var(--panel-band); }
.ind-detail-head{ display:flex; align-items:center; gap:18px; }
.ind-detail-head .ind-ico.big{ width:60px; height:60px; flex:none; }
.ind-detail .lede{ margin-top:16px; }
.fin-segments{ display:grid; grid-template-columns:1fr 1fr; gap:26px 40px; margin-top:36px; }
.fin-segments .fseg{ border-inline-start:3px solid var(--accent); padding-inline-start:18px; }
.fin-segments .fseg-t{ font-family:var(--head-font); font-weight:700; font-size:clamp(17px,1.4vw,21px); letter-spacing:var(--head-tracking); color:var(--ink); margin:0 0 8px; }
.fin-segments .fseg-d{ font-size:15.5px; line-height:1.6; color:var(--ink-soft); margin:0; max-width:none; }
.seg-names li{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(16px,1.3vw,20px); color:var(--ink); letter-spacing:var(--head-tracking); }
.co-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:clamp(34px,5vh,52px); }
.co-card{ display:block; text-decoration:none; background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius); padding:24px 22px; transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
main section[id]{ scroll-margin-top:120px; }
.co-subnav{ margin-top:clamp(30px,5vh,52px); margin-bottom:clamp(22px,3.5vh,36px); }
.co-card:hover{ transform:translateY(-4px); border-color:var(--accent); box-shadow:var(--card-shadow); }
.co-card .co-t{ font-family:var(--head-font); font-weight:700; font-size:clamp(16px,1.3vw,19px); letter-spacing:var(--head-tracking); color:var(--accent-ink); margin:0 0 8px; }
.co-card .co-d{ font-size:14.5px; line-height:1.55; color:var(--ink-soft); margin:0; max-width:none; }
@media(max-width:880px){ .co-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .co-grid{ grid-template-columns:1fr; } }
@media(max-width:760px){ .fin-segments{ grid-template-columns:1fr; } }
.ind-cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); margin-top:36px; }
.ind-sub{ font-family:var(--mono-font); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-ink); margin:0 0 18px; font-weight:500; }
html[dir=rtl] .ind-sub{ letter-spacing:.04em; text-transform:none; font-size:15px; }
.ind-bul{ list-style:none; margin:0; padding:0; }
.ind-bul li{ position:relative; padding-inline-start:22px; margin-bottom:14px; color:var(--ink-soft); font-size:16px; line-height:1.55; }
.ind-bul li:empty{ display:none; }
.ind-bul li::before{ content:""; position:absolute; inset-inline-start:0; top:.62em; width:7px; height:7px; background:var(--accent); transform:rotate(45deg); }
@media(max-width:760px){ .ind-cols{ grid-template-columns:1fr; gap:32px; } }

/* ---------- articles (insights/resources) ---------- */
.article-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:clamp(40px,6vh,64px); }
.article-card{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; text-align:start; background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius); padding:30px 28px; cursor:pointer; font-family:inherit; transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.article-card:hover{ transform:translateY(-4px); border-color:var(--accent); box-shadow:var(--card-shadow); }
.article-card .ac-meta{ font-family:var(--mono-font); font-size:12px; letter-spacing:.06em; color:var(--accent-ink); }
.article-card .ac-title{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(18px,1.5vw,22px); line-height:1.25; letter-spacing:var(--head-tracking); color:var(--ink); }
.article-card .ac-excerpt{ font-size:15px; line-height:1.55; color:var(--ink-soft); display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.article-card .ac-more{ margin-top:auto; font-family:var(--mono-font); font-size:13px; color:var(--accent-ink); }
@media (max-width:980px){ .article-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .article-grid{ grid-template-columns:1fr; } }

.article-modal{ position:fixed; inset:0; z-index:300; display:flex; align-items:center; justify-content:center; padding:clamp(16px,4vw,48px); }
.article-modal[hidden]{ display:none; }
.am-backdrop{ position:absolute; inset:0; background:rgba(10,15,25,.6); backdrop-filter:blur(4px); }
.am-panel{ position:relative; z-index:1; background:var(--bg); border:1px solid var(--rule); border-radius:var(--card-radius); max-width:760px; width:100%; max-height:86vh; overflow-y:auto; padding:clamp(28px,4vw,56px); box-shadow:0 40px 100px -30px rgba(0,0,0,.5); }
.am-close{ position:absolute; inset-inline-end:18px; top:18px; width:38px; height:38px; border-radius:50%; border:1px solid var(--rule-strong); background:var(--card); color:var(--ink); font-size:15px; cursor:pointer; transition:all .18s ease; }
.am-close:hover{ border-color:var(--accent); color:var(--accent-ink); }
.am-meta{ font-family:var(--mono-font); font-size:13px; letter-spacing:.06em; color:var(--accent-ink); margin-bottom:14px; }
.am-title{ font-family:var(--head-font); font-weight:var(--head-weight); font-size:clamp(26px,3vw,40px); line-height:1.1; letter-spacing:var(--head-tracking); color:var(--ink); margin:0 0 24px; }
.am-body p{ font-size:17px; line-height:1.7; color:var(--ink-soft); margin:0 0 16px; max-width:none; }

/* ---------- per-industry client logos ---------- */
.ind-clients{ margin-top:clamp(34px,5vh,52px); }
.ind-clients .ind-sub{ margin-bottom:20px; }
.ic-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.ic-logo{ background:#fff; border:1px solid var(--rule); border-radius:10px; height:74px; display:flex; align-items:center; justify-content:center; padding:8px 12px; transition:transform .2s ease, box-shadow .2s ease; }
.ic-logo:hover{ transform:translateY(-3px); box-shadow:var(--card-shadow); }
.ic-logo img{ width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
@media (max-width:880px){ .ic-grid{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:520px){ .ic-grid{ grid-template-columns:repeat(3,1fr); } }

/* ---------- solutions ---------- */
.sol-list{ margin-top:40px; border-top:1px solid var(--rule); }
.sol{
  display:grid; grid-template-columns:80px 1.1fr 1.6fr auto; gap:30px; align-items:center;
  padding:30px 6px; border-bottom:1px solid var(--rule);
  transition:padding-inline .25s ease, background .25s ease;
}
.sol:hover{ background:var(--panel-2); padding-inline:24px; }
.sol .num{ font-family:var(--mono-font); font-size:14px; color:var(--accent-ink); }
.sol .t{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(20px,1.9vw,28px); letter-spacing:var(--head-tracking); }
.sol .d{ color:var(--ink-soft); font-size:16px; }
.sol .lk{ font-family:var(--mono-font); font-size:13px; color:var(--accent-ink); white-space:nowrap; opacity:0; transition:opacity .2s ease; }
.sol:hover .lk{ opacity:1; }
@media (max-width:880px){ .sol{ grid-template-columns:50px 1fr; gap:6px 18px; } .sol .d{ grid-column:2; } .sol .lk{ display:none; } }

/* ---------- leadership ---------- */
.leader{ background:var(--panel-band); }
.leader-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(34px,5vw,72px); align-items:center; }
.leader-portrait{ border-radius:var(--img-radius); overflow:hidden; border:1px solid var(--rule); background:var(--panel); aspect-ratio:4/5; position:relative; }
.leader-portrait img{ width:100%; height:100%; object-fit:cover; object-position:top center; }
.leader .role{ font-family:var(--mono-font); font-size:13px; letter-spacing:.1em; color:var(--accent-ink); margin:6px 0 24px; }
html[dir=rtl] .leader .role{ letter-spacing:.02em; }
.book-quote{ border-inline-start:3px solid var(--accent); padding-inline-start:22px; margin-top:28px; color:var(--ink-soft); font-style:italic; }
.team-head{ max-width:62ch; margin-bottom:48px; }
.ds-steps{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; margin-top:clamp(36px,5vh,56px); background:var(--rule); border:1px solid var(--rule); border-radius:var(--card-radius); overflow:hidden; }
.ds-step{ background:var(--card); padding:26px 22px; display:flex; flex-direction:column; gap:12px; transition:background .22s ease, color .22s ease; }
.ds-step:hover{ background:var(--accent); color:var(--accent-on); }
.ds-step .ds-n{ font-family:var(--mono-font); font-size:13px; letter-spacing:.1em; color:var(--accent-ink); }
.ds-step:hover .ds-n{ color:var(--accent-on); }
.ds-step .ds-l{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(15px,1.2vw,18px); line-height:1.2; letter-spacing:var(--head-tracking); }
@media(max-width:760px){ .ds-steps{ grid-template-columns:1fr 1fr; } }
@media(max-width:440px){ .ds-steps{ grid-template-columns:1fr; } }
.sub-nav{ display:flex; flex-wrap:wrap; gap:8px 26px; margin-block:clamp(18px,3vh,30px) clamp(26px,4vh,42px); }
.sub-nav a{ font-family:var(--body-font); font-size:14px; letter-spacing:0; text-transform:none; color:var(--ink-soft); padding:4px 0; border-bottom:2px solid transparent; transition:color .18s ease, border-color .18s ease; }
.sub-nav a:hover{ color:var(--accent-ink); border-color:var(--accent); }
.values-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:clamp(40px,6vh,68px); }
.value-card{ background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius); padding:38px 32px; position:relative; overflow:hidden; text-align:center; transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.value-card:hover{ transform:translateY(-4px); border-color:var(--accent); box-shadow:var(--card-shadow); }
.value-card .value-logo{ display:block; height:104px; margin:0 auto 14px; }
.value-card .value-logo img{ height:100%; width:auto; display:block; margin:0 auto; }
.value-card .h-card{ margin:0 0 12px; text-align:center; }
.value-card .d{ text-align:center; }
.value-card .d{ color:var(--ink-soft); font-size:16px; line-height:1.55; margin:0; }
@media(max-width:880px){ .values-grid{ grid-template-columns:1fr; } }
.about-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:clamp(40px,6vh,68px); }
.about-stats .astat{ position:relative; overflow:hidden; background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius); padding:38px 34px; min-height:190px; display:flex; flex-direction:column; justify-content:flex-end; transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.about-stats .astat::before{ content:none; }
.about-stats .astat-bg{ position:absolute; inset:0; display:block; opacity:.32; pointer-events:none; transition:opacity .25s ease; }
.about-stats .astat-bg img{ width:100%; height:100%; object-fit:contain; object-position:center; }
.about-stats .astat--years .astat-bg img{ object-position:right bottom; }
html[dir=rtl] .about-stats .astat--years .astat-bg img{ object-position:left bottom; }
html[data-concept="b"] .about-stats .astat-bg{ filter:invert(1) brightness(1.7); opacity:.22; }
.about-stats .astat--years::before{ }
html[dir=rtl] .about-stats .astat--years::before{ }
.about-stats .astat--countries::before{ }
.about-stats .astat--projects::before{ }
.about-stats .astat--people::before{ }
.about-stats .astat:hover{ transform:translateY(-4px); border-color:var(--accent); box-shadow:var(--card-shadow); }
.about-stats .astat:hover .astat-bg{ opacity:.5; }
.about-stats .an,.about-stats .al{ position:relative; z-index:1; }
.about-stats .an{ font-family:var(--head-font); font-weight:800; font-size:clamp(44px,5vw,68px); line-height:1; color:var(--accent-ink); letter-spacing:var(--head-tracking); }
.about-stats .al{ font-family:var(--mono-font); font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); margin-top:14px; }
html[dir=rtl] .about-stats .al{ letter-spacing:.02em; text-transform:none; font-size:15px; }
@media(max-width:980px){ .about-stats{ grid-template-columns:1fr 1fr; } }
@media(max-width:480px){ .about-stats{ grid-template-columns:1fr; } }
.team-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(190px,1fr)); gap:20px; }
.member{ background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius); padding:30px 18px 26px; text-align:center; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.member:hover{ transform:translateY(-5px); border-color:var(--accent); box-shadow:var(--card-shadow); }
.member-photo{ width:112px; height:112px; border-radius:50%; background:var(--panel); overflow:hidden; margin:0 auto 18px; border:2px solid var(--rule); }
.member-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 22%; }
.member-info{ padding:0; }
.member-name{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(17px,1.3vw,20px); letter-spacing:var(--head-tracking); }
.member-role{ color:var(--ink-soft); font-size:13.5px; line-height:1.45; margin-top:7px; }
@media(max-width:520px){ .team-grid{ grid-template-columns:1fr 1fr; } }

/* ---------- clients marquee ---------- */
.clients{ padding-block:clamp(50px,7vh,90px); border-top:1px solid var(--rule); }
.clients .h-section{ margin-bottom:clamp(34px,5vh,52px); }
.client-marquee{ position:relative; overflow:hidden; width:100%; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.client-track{ display:flex; align-items:center; gap:36px; width:max-content; animation:client-scroll 60s linear infinite; }
.clients:hover .client-track{ animation-play-state:paused; }
.client-logo{ flex:none; width:170px; height:96px; background:#fff; border:1px solid var(--rule); border-radius:12px; display:flex; align-items:center; justify-content:center; padding:12px 16px; transition:transform .2s ease, box-shadow .2s ease; }
.client-logo:hover{ transform:translateY(-4px); box-shadow:var(--card-shadow); }
.client-logo img{ width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
@keyframes client-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
html[dir=rtl] .client-track{ animation-name:client-scroll-rtl; }
@keyframes client-scroll-rtl{ from{ transform:translateX(0); } to{ transform:translateX(50%); } }
@media (prefers-reduced-motion:reduce){ .client-track{ animation:none; flex-wrap:wrap; justify-content:center; } }
@media (max-width:880px){ .leader-grid{ grid-template-columns:1fr; } }

/* ---------- CTA band ---------- */
.cta-band{ background:var(--cta-bg); color:var(--cta-ink); text-align:center; }
.cta-band .h-section{ color:var(--cta-ink); }
.cta-band .sub{ color:var(--cta-soft); max-width:52ch; margin:0 auto 34px; font-size:clamp(18px,1.5vw,22px); }
.cta-band .btn-primary{ background:var(--cta-accent); color:var(--cta-accent-on); }
.cta-wave{ display:block; width:clamp(220px,30%,360px); flex:0 0 auto; margin:0; opacity:.95; mix-blend-mode:screen; }
.cta-head{ display:flex; align-items:center; justify-content:center; gap:clamp(20px,4vw,52px); flex-wrap:nowrap; direction:ltr; }
.cta-head .cta-wave{ order:-1; }
.cta-head .h-section{ margin:0; flex:0 1 auto; min-width:0; }
@media (max-width:640px){ .cta-head{ flex-wrap:wrap; } .cta-head .cta-wave{ order:0; width:min(300px,70%); } }
html[data-concept="c"] .cta-band .cta-wave{ mix-blend-mode:multiply; }
.cta-form{ max-width:640px; margin:0 auto; text-align:start; }
.cta-form .cf-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.cta-form .cf-field{ display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.cta-form .cf-row .cf-field{ margin-bottom:0; }
.cta-form .cf-field span{ font-family:var(--mono-font); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--cta-soft); }
html[dir=rtl] .cta-form .cf-field span{ letter-spacing:.02em; text-transform:none; font-size:14px; }
.cta-form input, .cta-form textarea{ font-family:var(--body-font); font-size:16px; color:var(--cta-ink); background:rgba(255,255,255,.06); border:1px solid var(--cta-soft); border-radius:var(--btn-radius); padding:13px 16px; outline:none; transition:border-color .18s ease, background .18s ease; }
.cta-form input:focus, .cta-form textarea:focus{ border-color:var(--cta-accent); background:rgba(255,255,255,.12); }
.cta-form textarea{ resize:vertical; }
.cta-form .cf-actions{ margin-top:6px; text-align:center; }
.cta-form .cf-actions .btn-primary{ justify-content:center; }
.cta-form .cf-thanks{ font-size:clamp(18px,1.6vw,22px); color:var(--cta-ink); text-align:center; margin:0; }
@media(max-width:600px){ .cta-form .cf-row{ grid-template-columns:1fr; gap:0; } }

/* ---------- footer ---------- */
.site-footer{ background:var(--footer-bg); color:var(--footer-ink); padding-block:64px 36px; }
.footer-grid{ display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:40px; }
.site-footer .brand .mark{ color:var(--footer-ink); }
.site-footer .brand-logo{ height:80px; }
.site-footer .brand .logo-dark{ display:none; }
.site-footer .brand .logo-light{ display:block; }
.site-footer .ft-tag{ color:var(--footer-soft); margin-top:16px; max-width:30ch; }
.ft-col h4{ font-family:var(--mono-font); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--footer-soft); margin:0 0 18px; font-weight:500; }
html[dir=rtl] .ft-col h4{ letter-spacing:.04em; }
.ft-col a, .ft-col p{ display:block; color:var(--footer-ink); opacity:.82; font-size:15px; margin:0 0 12px; max-width:none; }
.ft-col a:hover{ opacity:1; color:var(--accent-ink); }
.footer-base{ margin-top:54px; padding-top:24px; border-top:1px solid var(--footer-rule); font-family:var(--mono-font); font-size:12px; letter-spacing:.04em; color:var(--footer-soft); }
.footer-pillars{ display:flex; gap:18px; align-items:center; margin-top:22px; flex-wrap:wrap; }
.footer-pillars img{ height:34px; width:auto; opacity:.92; }
@media (max-width:880px){ .footer-grid{ grid-template-columns:1fr 1fr; } }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- careers ---------- */
.careers-jobs{ display:grid; gap:18px; margin-top:clamp(24px,3.5vh,40px); }
.job-card{ display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;
  background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius);
  padding:28px 32px; transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.job-card:hover{ transform:translateY(-3px); border-color:var(--accent); box-shadow:var(--card-shadow); }
.job-info{ max-width:62ch; }
.job-t{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(19px,1.6vw,24px); letter-spacing:var(--head-tracking); margin:0 0 6px; color:var(--ink); }
.job-m{ font-family:var(--mono-font); font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-ink); margin:0 0 10px; }
html[dir=rtl] .job-m{ letter-spacing:.02em; text-transform:none; font-size:14px; }
.job-d{ font-size:15.5px; line-height:1.55; color:var(--ink-soft); margin:0; }
.careers-general{ margin-top:clamp(34px,5vh,54px); padding-top:clamp(24px,3.5vh,38px); border-top:1px solid var(--rule); }
.careers-form{ max-width:640px; margin-top:clamp(26px,4vh,42px); }
.careers-form .cf-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.careers-form .cf-field{ display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.careers-form .cf-row .cf-field{ margin-bottom:0; }
.careers-form .cf-field span{ font-family:var(--mono-font); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
html[dir=rtl] .careers-form .cf-field span{ letter-spacing:.02em; text-transform:none; font-size:14px; }
.careers-form input, .careers-form textarea, .careers-form select{
  font-family:var(--body-font); font-size:16px; color:var(--ink);
  background:var(--card); border:1px solid var(--rule-strong); border-radius:var(--btn-radius);
  padding:12px 14px; outline:none; transition:border-color .18s ease; }
.careers-form input:focus, .careers-form textarea:focus, .careers-form select:focus{ border-color:var(--accent); }
.careers-form textarea{ resize:vertical; }
.careers-form input[type=file]{ padding:10px 12px; cursor:pointer; }
.careers-form input[type=file]::file-selector-button{
  font-family:var(--body-font); font-size:14px; border:1px solid var(--rule-strong);
  background:transparent; color:var(--ink); border-radius:999px; padding:7px 16px;
  margin-inline-end:12px; cursor:pointer; transition:all .18s ease; }
.careers-form input[type=file]::file-selector-button:hover{ border-color:var(--accent); color:var(--accent-ink); }
.careers-note{ font-size:14px; color:var(--ink-soft); margin:0 0 18px; }
.careers-form .cf-actions{ margin-top:4px; }
.careers-form .cf-thanks{ font-size:clamp(18px,1.6vw,22px); color:var(--ink); margin:0; }
@media(max-width:640px){ .careers-form .cf-row{ grid-template-columns:1fr; } .job-card{ padding:24px 22px; } }

/* ---------- concept book card ---------- */
.challenge-cols{ display:grid; grid-template-columns:minmax(0,1fr) calc((100% - 36px)/3); gap:clamp(28px,4vw,64px); align-items:start; }
.book-card{ display:block; text-decoration:none; background:var(--card); border:1px solid var(--rule); border-radius:var(--card-radius);
  padding:30px 30px 26px; position:relative; transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.book-card:hover{ transform:translateY(-3px); border-color:var(--accent); box-shadow:var(--card-shadow); }
.bk-t{ font-family:var(--head-font); font-weight:var(--head-weight-2,600); font-size:clamp(19px,1.6vw,23px); letter-spacing:var(--head-tracking); color:var(--ink); margin:0 0 8px; line-height:1.3; }
.bk-by{ font-family:var(--mono-font); font-size:13px; color:var(--accent-ink); margin:0 0 14px; }
.bk-d{ font-size:15px; line-height:1.6; color:var(--ink-soft); margin:0 0 18px; }
.bk-link{ font-size:14.5px; font-weight:600; color:var(--accent-ink); }
.book-card:hover .bk-link{ text-decoration:underline; }
@media(max-width:880px){ .challenge-cols{ grid-template-columns:1fr; } }

/* ===== legal / a11y / consent ===== */
.sr-only{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link{ position:fixed; top:8px; inset-inline-start:8px; z-index:10000; background:var(--accent,#7A1F2B); color:#fff; padding:12px 18px; border-radius:8px; font-family:var(--head-font); font-weight:600; font-size:15px; text-decoration:none; transform:translateY(-150%); transition:transform .18s ease; }
.skip-link:focus{ transform:translateY(0); outline:3px solid #fff; outline-offset:2px; }
/* visible keyboard focus, site-wide */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible, summary:focus-visible{
  outline:3px solid var(--accent,#7A1F2B); outline-offset:2px; border-radius:4px; }
main:focus{ outline:none; }
@media (prefers-reduced-motion:reduce){ .skip-link{ transition:none; } *{ scroll-behavior:auto !important; } }

/* required-field marker + form privacy notices */
.cta-form .cf-lab{ display:flex; flex-direction:row; flex-wrap:wrap; gap:5px; align-items:baseline; }
.req{ color:#ff7ab0; font-weight:700; }
.cf-req-legend{ font-size:13px; color:var(--cta-soft,#9aa); margin:0 0 18px; }
.cf-sensitive{ font-size:13px; line-height:1.5; color:var(--cta-soft,#9aa); margin:14px 0 0; opacity:.9; }
.cf-privacy-note{ font-size:13px; line-height:1.5; color:var(--cta-soft,#9aa); margin:12px 0 0; }
.cf-privacy-note a{ color:var(--cta-ink,#fff); text-decoration:underline; }
.form-privacy-note{ font-size:13.5px; line-height:1.55; color:var(--ink-soft); margin:14px 0 0; }
.form-privacy-note a{ color:var(--accent-ink); text-decoration:underline; }
.form-sensitive{ font-size:13.5px; line-height:1.55; color:var(--ink-soft); margin:10px 0 0; }

/* ---- consent banner ---- */
.consent-banner{ position:fixed; inset-inline:0; bottom:0; z-index:9000; background:var(--card,#fff); border-top:1px solid var(--rule-strong,#ddd); box-shadow:0 -10px 40px rgba(0,0,0,.12); }
.consent-banner-in{ max-width:1200px; margin:0 auto; padding:18px clamp(16px,4vw,40px); display:flex; gap:24px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.consent-copy{ max-width:64ch; }
.consent-copy strong{ display:block; font-family:var(--head-font); font-weight:700; font-size:16px; color:var(--ink); margin-bottom:5px; }
.consent-copy p{ font-size:14px; line-height:1.55; color:var(--ink-soft); margin:0; }
.consent-actions{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.consent-actions .btn{ font-size:14px; padding:10px 18px; }
@media(max-width:640px){ .consent-actions{ width:100%; } .consent-actions .btn{ flex:1 1 auto; justify-content:center; text-align:center; } }

/* ---- consent modal ---- */
.consent-modal-backdrop{ position:fixed; inset:0; z-index:9500; background:rgba(12,18,30,.55); display:flex; align-items:center; justify-content:center; padding:20px; }
.consent-modal{ background:var(--card,#fff); color:var(--ink); width:min(560px,100%); max-height:90vh; overflow:auto; border-radius:16px; border:1px solid var(--rule,#e5e0d8); box-shadow:0 30px 80px rgba(0,0,0,.3); padding:clamp(22px,3vw,34px); }
.consent-modal-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:6px; }
.consent-modal-head h2{ font-family:var(--head-font); font-weight:700; font-size:clamp(20px,2vw,26px); color:var(--ink); margin:0; }
.consent-x{ background:none; border:none; font-size:30px; line-height:1; cursor:pointer; color:var(--ink-soft); padding:4px 8px; border-radius:8px; }
.consent-x:hover{ color:var(--ink); }
.consent-intro{ font-size:14.5px; line-height:1.6; color:var(--ink-soft); margin:0 0 18px; }
.consent-cats{ list-style:none; margin:0 0 22px; padding:0; display:flex; flex-direction:column; gap:14px; }
.consent-cat{ border:1px solid var(--rule,#e5e0d8); border-radius:12px; padding:16px 18px; }
.consent-cat-h{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.consent-cat-t{ font-family:var(--head-font); font-weight:600; font-size:16px; color:var(--ink); }
.consent-cat-d{ font-size:13.5px; line-height:1.55; color:var(--ink-soft); margin:8px 0 0; }
.consent-pill{ font-family:var(--mono-font); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-ink); background:color-mix(in srgb, var(--accent,#7A1F2B) 12%, transparent); padding:4px 10px; border-radius:999px; white-space:nowrap; }
html[dir=rtl] .consent-pill{ letter-spacing:0; text-transform:none; }
.consent-switch{ display:flex; align-items:center; gap:12px; cursor:pointer; flex-direction:row-reverse; }
.consent-switch input{ inline-size:46px; block-size:26px; appearance:none; -webkit-appearance:none; background:var(--rule-strong,#cfc8bd); border-radius:999px; position:relative; cursor:pointer; transition:background .18s ease; flex:0 0 auto; }
.consent-switch input::after{ content:""; position:absolute; top:3px; inset-inline-start:3px; width:20px; height:20px; background:#fff; border-radius:50%; transition:inset-inline-start .18s ease, transform .18s ease; box-shadow:0 1px 3px rgba(0,0,0,.3); }
.consent-switch input:checked{ background:var(--accent,#7A1F2B); }
.consent-switch input:checked::after{ inset-inline-start:calc(100% - 23px); }
.consent-modal-actions{ display:flex; gap:12px; justify-content:flex-end; flex-wrap:wrap; }
@media(max-width:520px){ .consent-modal-actions{ } .consent-modal-actions .btn{ flex:1 1 auto; justify-content:center; } }

/* ---- footer legal row ---- */
.footer-legal{ display:flex; flex-wrap:wrap; gap:10px 22px; align-items:center; padding-top:22px; margin-top:8px; border-top:1px solid var(--rule,rgba(255,255,255,.12)); }
.footer-legal a, .footer-legal-btn{ font-size:13.5px; color:var(--ink-soft); text-decoration:none; background:none; border:none; padding:0; cursor:pointer; font-family:var(--body-font); }
.footer-legal a:hover, .footer-legal-btn:hover{ color:var(--accent-ink); text-decoration:underline; }

/* ---- legal pages ---- */
.legal-page{ max-width:820px; margin:0 auto; padding:clamp(40px,7vh,90px) 0; }
.legal-page .legal-eyebrow{ font-family:var(--mono-font); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink); margin:0 0 14px; }
html[dir=rtl] .legal-page .legal-eyebrow{ letter-spacing:.02em; text-transform:none; font-size:14px; }
.legal-page h1{ font-family:var(--head-font); font-weight:700; font-size:clamp(30px,4vw,46px); letter-spacing:var(--head-tracking); color:var(--ink); margin:0 0 10px; }
.legal-updated{ font-size:14px; color:var(--ink-soft); margin:0 0 38px; }
.legal-page h2{ font-family:var(--head-font); font-weight:600; font-size:clamp(20px,2.1vw,27px); color:var(--ink); margin:38px 0 12px; }
.legal-page h3{ font-family:var(--head-font); font-weight:600; font-size:clamp(17px,1.6vw,20px); color:var(--ink); margin:24px 0 8px; }
.legal-page p, .legal-page li{ font-size:16px; line-height:1.7; color:var(--ink-soft); }
.legal-page p{ margin:0 0 14px; }
.legal-page ul{ margin:0 0 16px; padding-inline-start:22px; display:flex; flex-direction:column; gap:7px; }
.legal-page a{ color:var(--accent-ink); text-decoration:underline; }
.legal-page .legal-todo{ background:color-mix(in srgb, var(--accent,#7A1F2B) 8%, transparent); border:1px dashed color-mix(in srgb, var(--accent,#7A1F2B) 45%, transparent); border-radius:8px; padding:2px 8px; font-family:var(--mono-font); font-size:13px; color:var(--accent-ink); }
.legal-page .legal-note{ background:var(--card,#fff); border:1px solid var(--rule,#e5e0d8); border-inline-start:4px solid var(--accent,#7A1F2B); border-radius:10px; padding:16px 20px; margin:22px 0; }
.legal-page table.legal-table{ width:100%; border-collapse:collapse; margin:0 0 20px; font-size:14.5px; }
.legal-page table.legal-table th, .legal-page table.legal-table td{ border:1px solid var(--rule,#e5e0d8); padding:10px 12px; text-align:start; vertical-align:top; color:var(--ink-soft); }
.legal-page table.legal-table th{ background:color-mix(in srgb, var(--accent,#7A1F2B) 7%, transparent); color:var(--ink); font-weight:600; }
.legal-lang-note{ font-size:13.5px; color:var(--ink-soft); background:var(--card,#fff); border:1px solid var(--rule,#e5e0d8); border-radius:8px; padding:10px 14px; margin:0 0 30px; }

.careers-form .cf-lab{ display:flex; flex-direction:row; flex-wrap:wrap; gap:5px; align-items:baseline; }
.careers-form .cf-req-legend{ font-size:13px; color:var(--ink-soft); margin:0 0 18px; }

.consent-banner[hidden]{ display:none !important; }
.consent-modal-backdrop[hidden]{ display:none !important; }
