/* echoimc.com — site stylesheet (generated by source/build.py; edit there, not here)
   Design tokens live on :root (light) with a dark-mode override. Sections are marked with comment headers. */
:root{
  --bg:#FFFFFF; --surface:#F5F7FB; --card:#FFFFFF; --line:#E3E8F2;
  --fg:#1B2444; --body:#3B4560; --muted:#6E7D99;
  --blue:#4058A0; --cyan:#0090BE; --teal:#2A9688;
  --blue-tint:#EEF2FA; --cyan-tint:#E6F6FB; --teal-tint:#E7F6F4;
  --bnavy:#4058A0; --bteal:#2A9688;
  --btn:#4058A0; --btn-hover:#34497F; --btn-fg:#FFFFFF;
  --ok:#2A7A4B; --err:#B3463E; --ring:#CFD2D3;
  --font-d:'Outfit',var(--font-b);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0E1322; --surface:#151C30; --card:#182138; --line:#2A3450;
    --fg:#EDF1FA; --body:#C4CDE1; --muted:#8C97B5;
    --blue:#97AAE9; --cyan:#53C6EC; --teal:#5CC8B9;
    --blue-tint:#1B2440; --cyan-tint:#12293A; --teal-tint:#123029;
    --bnavy:#33437E; --bteal:#1F6E63;
    --btn:#5B76C9; --btn-hover:#6D87D6; --btn-fg:#FFFFFF;
    --ok:#6FCE97; --err:#E8938C; --ring:#3A4460;
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0E1322; --surface:#151C30; --card:#182138; --line:#2A3450;
  --fg:#EDF1FA; --body:#C4CDE1; --muted:#8C97B5;
  --blue:#97AAE9; --cyan:#53C6EC; --teal:#5CC8B9;
  --blue-tint:#1B2440; --cyan-tint:#12293A; --teal-tint:#123029;
  --bnavy:#33437E; --bteal:#1F6E63;
  --btn:#5B76C9; --btn-hover:#6D87D6; --btn-fg:#FFFFFF;
  --ok:#6FCE97; --err:#E8938C; --ring:#3A4460;
  color-scheme: dark;
}
*{box-sizing:border-box}
html:focus-within{scroll-behavior:smooth}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.22s}
body{margin:0; background:var(--bg); color:var(--body); font-family:var(--font-b);
  font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased;
  word-break:keep-all; overflow-wrap:anywhere}
body::before{content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top,0px); z-index:60; background:var(--bg)}
img{max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--blue); outline-offset:2px; border-radius:4px}
.wrap{max-width:1120px; margin-inline:auto;
  padding-left:max(20px, env(safe-area-inset-left,0px));
  padding-right:max(20px, env(safe-area-inset-right,0px))}
h1,h2,h3{color:var(--fg); text-wrap:balance; margin:0}
.num{font-variant-numeric:tabular-nums}
.t-blue{--ac:var(--blue); --tint:var(--blue-tint)}
.t-cyan{--ac:var(--cyan); --tint:var(--cyan-tint)}
.t-teal{--ac:var(--teal); --tint:var(--teal-tint)}

/* header */
.site-head{position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:var(--bg); border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex; align-items:center; gap:14px; height:80px}
.brand{display:flex; align-items:center; flex:none; text-decoration:none}
.brand img{height:46px; width:auto; display:block}
@media (max-width:1000px){ .brand img{height:40px} .site-head .wrap{height:72px} }
@media (max-width:420px){ .brand img{height:36px} }
img.logo-dark{display:none !important}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) img.logo-light{display:none !important}
  :root:not([data-theme="light"]) img.logo-dark{display:block !important}
}
:root[data-theme="dark"] img.logo-light{display:none !important}
:root[data-theme="dark"] img.logo-dark{display:block !important}
.nav{display:flex; align-items:center; gap:2px; margin-left:auto}
.nav>div>a, .nav>a{font-size:14.5px; font-weight:500; color:var(--body); text-decoration:none; padding:8px 11px; border-radius:8px; white-space:nowrap; display:inline-block}
.nav>div>a:hover, .nav>a:hover{background:var(--surface); color:var(--fg)}
.nav a[aria-current="page"]{color:var(--blue); font-weight:700}
.nav a.cta{background:var(--btn); color:var(--btn-fg); font-weight:700; margin-left:6px; padding:9px 17px; border-radius:999px}
.nav a.cta:hover{background:var(--btn-hover); color:var(--btn-fg)}
.grp{position:relative}
.grp>a::after{content:" ▾"; font-size:10px; color:var(--muted)}
.grp .drop{position:absolute; left:0; top:100%; padding-top:8px; display:none; min-width:200px; z-index:70}
.grp:hover .drop, .grp:focus-within .drop{display:block; animation:dropIn .16s ease}
@keyframes dropIn{from{opacity:0; transform:translateY(-4px)} to{opacity:1; transform:none}}
.drop-in{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:6px; box-shadow:0 10px 30px rgba(20,30,60,.12)}
.drop-in a{display:block; text-decoration:none; font-size:13.5px; padding:9px 12px; border-radius:8px; color:var(--body); white-space:nowrap}
.drop-in a:hover{background:var(--surface); color:var(--fg)}
.lang{position:relative; margin-left:6px}
.lang summary{list-style:none; cursor:pointer; display:flex; align-items:center; gap:5px;
  font-family:var(--font-d); font-size:13px; font-weight:600; color:var(--fg);
  border:1px solid var(--line); border-radius:999px; padding:7px 13px; user-select:none}
.lang summary::-webkit-details-marker{display:none}
.lang summary::after{content:"▾"; font-size:10px; color:var(--muted)}
.lang[open] summary{border-color:var(--blue)}
.lang-menu{position:absolute; right:0; top:calc(100% + 8px); min-width:140px; background:var(--card);
  border:1px solid var(--line); border-radius:12px; padding:6px; box-shadow:0 10px 30px rgba(20,30,60,.12); z-index:70}
.lang-menu a{display:block; text-decoration:none; font-size:13.5px; padding:8px 12px; border-radius:8px; color:var(--body)}
.lang-menu a:hover{background:var(--surface); color:var(--fg)}
.lang-menu a[aria-current="true"]{color:var(--blue); font-weight:700}
.menu-btn{display:none; margin-left:auto; width:42px; height:42px; border:1px solid var(--line); border-radius:10px;
  background:var(--card); color:var(--fg); cursor:pointer; font-size:0; flex:none}
.menu-btn span,.menu-btn::before,.menu-btn::after{content:""; display:block; width:18px; height:2px; background:currentColor; margin:4px auto; border-radius:2px}
@media (max-width:1020px){
  .menu-btn{display:block}
  .nav{position:absolute; left:0; right:0; top:100%; flex-direction:column; align-items:stretch;
    background:var(--bg); border-bottom:1px solid var(--line); padding:10px 20px 18px; gap:2px; display:none;
    max-height:calc(100vh - 80px); overflow:auto}
  .site-head.open .nav{display:flex}
  .nav>div>a, .nav>a{padding:12px 10px; font-size:16px; display:block}
  .grp .drop{display:block; position:static; padding:0}
  .drop-in{border:0; box-shadow:none; background:none; padding:0 0 4px 16px}
  .drop-in a{font-size:14.5px; color:var(--muted); padding:8px 10px}
  .nav a.cta{margin:10px 0 0; text-align:center}
  .lang{margin:10px 0 0}
  .lang summary{justify-content:center}
  .lang-menu{position:static; margin-top:6px; box-shadow:none}
}

/* hero (home) */
.hero{position:relative; overflow:hidden; border-bottom:1px solid var(--line)}
.hero .wrap{padding-block:84px 68px; position:relative}
.hero-mark{position:absolute; right:-40px; top:-60px; width:330px; height:auto; opacity:.55; pointer-events:none}
.hero-mark circle{fill:none; stroke:var(--ring); stroke-width:26}
.kicker{font-family:var(--font-d); font-weight:600; letter-spacing:.04em; color:var(--muted); font-size:15px; margin:0 0 14px}
.badge{display:inline-block; font-family:var(--font-d); font-size:12.5px; font-weight:700; color:var(--blue);
  background:var(--blue-tint); border-radius:999px; padding:6px 14px; margin-bottom:18px}
.hero h1{font-family:var(--font-d); font-weight:700; font-size:clamp(40px,7vw,66px); line-height:1.06; letter-spacing:-.01em}
.hero h1 .b{color:var(--blue)}
.hero .lead{font-size:clamp(16px,2.4vw,19px); margin:22px 0 0; max-width:36em}
.hero-links{display:flex; flex-wrap:wrap; gap:10px; margin-top:30px}
.hero-links a{text-decoration:none; font-size:14px; font-weight:700; padding:10px 16px; border-radius:999px;
  border:1px solid var(--line); background:var(--card); color:var(--fg)}
.hero-links a{transition:border-color .15s, background .15s, transform .15s}
.hero-links a:hover{border-color:currentColor; transform:translateY(-1px)}
.hero-links a.c1{color:var(--blue)} .hero-links a.c2{color:var(--cyan)} .hero-links a.c3{color:var(--teal)}
.hero-links a.go{background:var(--btn); border-color:var(--btn); color:var(--btn-fg)}
.hero-links a.go:hover{background:var(--btn-hover)}

/* page hero */
.page-hero{border-bottom:1px solid var(--line); background:var(--surface)}
.page-hero .wrap{padding-block:62px 54px}
.eyebrow{display:flex; align-items:center; gap:10px; font-size:14px; font-weight:700; color:var(--muted); margin:0}
.eyebrow i{width:10px; height:10px; border-radius:999px; background:var(--ac,var(--blue)); flex:none}
.page-hero h1{font-size:clamp(30px,5vw,44px); font-weight:700; margin-top:12px; line-height:1.2}
.page-hero .en{font-family:var(--font-d); font-weight:600; font-size:14px; letter-spacing:.03em; color:var(--muted); margin-top:8px}
.page-hero .lead{font-size:clamp(15.5px,2.2vw,18px); margin:16px 0 0; max-width:40em}

/* sections */
.sec .wrap{padding-block:72px}
.sec.alt{background:var(--surface); border-block:1px solid var(--line)}
.sec h2{font-size:clamp(26px,4vw,34px); font-weight:700}
.sec .sub{margin:12px 0 0; max-width:38em; color:var(--body)}
.cards{display:grid; gap:18px; margin-top:34px}
.cards.two{grid-template-columns:repeat(2,1fr)}
.cards.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:920px){ .cards.two,.cards.three{grid-template-columns:1fr} }
.card{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:28px; min-width:0}
.card h3{font-size:20px; font-weight:700}
.card .cap{font-family:var(--font-d); font-size:13px; font-weight:600; color:var(--ac,var(--blue)); letter-spacing:.02em; margin:0 0 8px}
.card p{margin:10px 0 0; font-size:15px}
.card ul{margin:16px 0 0; padding:0; list-style:none; display:grid; gap:9px}
.card li{position:relative; padding-left:16px; font-size:15px}
.card li::before{content:""; position:absolute; left:0; top:.62em; width:6px; height:6px; border-radius:99px; background:var(--ac,var(--blue))}
a.card{display:block; text-decoration:none}
a.card{transition:transform .18s, border-color .18s, box-shadow .18s}
a.card:hover{border-color:var(--ac,var(--blue)); transform:translateY(-3px); box-shadow:0 12px 30px rgba(20,30,60,.08)}
a.card .more{display:inline-block; margin-top:18px; font-size:14px; font-weight:700; color:var(--ac,var(--blue))}
.tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px}
.tag{font-size:12.5px; font-weight:700; color:var(--ac,var(--blue)); background:var(--tint,var(--blue-tint)); border-radius:999px; padding:5px 12px}
.ext-btn{display:inline-block; margin-top:28px; text-decoration:none; font-weight:700; font-size:15px;
  color:var(--ac,var(--blue)); border:1.5px solid var(--ac,var(--blue)); border-radius:999px; padding:11px 24px}
.ext-btn:hover{background:var(--tint,var(--blue-tint))}
.kw-band{margin-top:34px; background:var(--tint,var(--blue-tint)); border-radius:18px; padding:26px 28px}
.kw-band h3{font-size:18px}
.kw-band p{margin:8px 0 0; font-size:14px; color:var(--body)}

/* mission band */
.mission-band{background:var(--bnavy); border-radius:20px; padding:44px 36px; margin-top:34px; color:#fff}
.mission-band .k{font-family:var(--font-d); font-size:13px; font-weight:700; letter-spacing:.06em; opacity:.8; margin:0}
.mission-band p.q{font-size:clamp(19px,3vw,25px); font-weight:700; line-height:1.55; margin:12px 0 0; color:#fff; text-wrap:balance}
.mission-band .vis{margin-top:28px; padding-top:24px; border-top:1px solid rgba(255,255,255,.25)}
.mission-band .vis p.q{font-size:clamp(16px,2.4vw,20px)}

/* values */
.values{display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:34px}
@media (max-width:980px){ .values{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .values{grid-template-columns:1fr} }
.value{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:22px 20px; min-width:0}
.value b{display:block; font-size:17px; color:var(--fg)}
.value .en{font-family:var(--font-d); font-size:11.5px; font-weight:600; color:var(--blue); letter-spacing:.04em}
.value p{margin:10px 0 0; font-size:13.5px; color:var(--muted); line-height:1.6}

/* CI section */
.ci-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:28px; margin-top:34px; align-items:start}
@media (max-width:920px){ .ci-grid{grid-template-columns:1fr} }
.ci-card{background:var(--card); border:1px solid var(--line); border-radius:18px; padding:34px}
.ci-card .logo-box{padding:10px 0 26px; border-bottom:1px solid var(--line)}
.ci-card .logo-box img{width:min(420px,100%); height:auto; display:block}
.ci-core{display:grid; grid-template-columns:auto 1fr; gap:24px; margin-top:26px; align-items:center}
.ci-core svg{width:56px; height:auto; flex:none}
.ci-core .k{font-family:var(--font-d); font-size:12.5px; font-weight:700; color:var(--blue); letter-spacing:.05em; margin:0}
.ci-core h3{font-size:22px; margin-top:4px}
.ci-core p{margin:10px 0 0; font-size:14px; color:var(--muted); line-height:1.7}
.ci-core p b{color:var(--body)}
.swatch-t{font-family:var(--font-d); font-size:13px; font-weight:700; letter-spacing:.08em; color:var(--blue); margin:0 0 6px}
.swatch{display:grid; grid-template-columns:44px 1fr; gap:16px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line)}
.swatch:last-child{border-bottom:0}
.swatch i{width:44px; height:44px; border-radius:999px; display:block}
.swatch b{font-family:var(--font-d); font-size:15px; color:var(--fg)}
.swatch .hex{font-family:var(--font-d); font-size:12px; color:var(--muted); margin-left:8px}
.swatch p{margin:3px 0 0; font-size:13px; color:var(--muted)}

/* echo ripple */
.echo-grid{display:grid; grid-template-columns:1fr 1fr; gap:36px; margin-top:34px; align-items:center}
@media (max-width:920px){ .echo-grid{grid-template-columns:1fr} }
.ripple{width:min(440px,100%); height:auto; display:block; margin-inline:auto}
.ripple text{font-family:var(--font-b)}
.esteps{display:grid; gap:0; min-width:0}
.estep{position:relative; display:grid; grid-template-columns:40px 1fr; gap:18px; padding:0 0 26px}
.estep:last-child{padding-bottom:0}
.estep::before{content:""; position:absolute; left:19px; top:40px; bottom:0; width:2px; background:var(--line)}
.estep:last-child::before{display:none}
.estep i{width:40px; height:40px; border-radius:999px; background:var(--bnavy); color:#fff;
  font-style:normal; font-family:var(--font-d); font-weight:700; font-size:15px;
  display:flex; align-items:center; justify-content:center; flex:none}
.estep b{display:block; font-size:16.5px; color:var(--fg); line-height:1.5; padding-top:7px}
.estep b span{color:var(--blue)}
.estep p{margin:6px 0 0; font-size:13.5px; color:var(--muted); line-height:1.6}
.echo-quote{margin:30px 0 0; font-size:clamp(16px,2.4vw,19px); font-weight:700; color:var(--blue); text-align:center}

/* ideology framework */
.frame-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:36px; margin-top:34px; align-items:center}
@media (max-width:920px){ .frame-grid{grid-template-columns:1fr} }
.balance{width:min(460px,100%); height:auto; display:block; margin-inline:auto}
.balance text{font-family:var(--font-b)}
.frame-values{margin:18px 0 0; text-align:center; font-weight:700; font-size:14.5px; color:var(--fg)}
.frame-values span{color:var(--blue)}
.frame-list{background:var(--card); border:1px solid var(--line); border-radius:18px; padding:10px 28px; min-width:0}
.frame-item{display:grid; grid-template-columns:64px 1fr; gap:18px; padding:20px 0; border-bottom:1px solid var(--line)}
.frame-item:last-child{border-bottom:0}
.frame-item .w{font-family:var(--font-d); font-size:13px; font-weight:700; letter-spacing:.08em; color:var(--blue); padding-top:3px}
.frame-item b{display:block; font-size:16.5px; color:var(--fg)}
.frame-item p{margin:6px 0 0; font-size:13.5px; color:var(--muted); line-height:1.6}
.frame-quote{margin:26px 0 0; font-size:15px; font-weight:700; color:var(--blue); text-align:center}

/* timeline */
.timeline{margin:34px 0 0; padding:0; list-style:none; display:grid; gap:0}
.timeline li{position:relative; display:grid; grid-template-columns:86px 1fr; gap:18px; padding:14px 0 18px; min-width:0}
.timeline li::before{content:""; position:absolute; left:103px; top:0; bottom:0; width:2px; background:var(--line)}
.timeline li::after{content:""; position:absolute; left:98px; top:24px; width:12px; height:12px; border-radius:99px;
  background:var(--bg); border:3px solid var(--blue)}
.timeline b{font-family:var(--font-d); font-size:19px; color:var(--blue); font-variant-numeric:tabular-nums}
.timeline span{padding-left:28px; align-self:center; font-size:15.5px; color:var(--body)}
@media (max-width:560px){
  .timeline li{grid-template-columns:62px 1fr}
  .timeline li::before{left:79px} .timeline li::after{left:74px}
  .timeline span{padding-left:24px}
}

/* photo band */
.photo-band{margin-top:40px; border-radius:20px; overflow:hidden; border:1px solid var(--line)}
.photo-band img{display:block; width:100%; height:auto}
.photo-cap{font-size:13px; color:var(--muted); margin:12px 0 0}
.info-photo{border-radius:14px; overflow:hidden; border:1px solid var(--line); margin-bottom:20px}
.info-photo img{display:block; width:100%; height:auto}

/* affiliates */
.aff-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:34px}
@media (max-width:980px){ .aff-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:520px){ .aff-grid{grid-template-columns:1fr} }
.aff{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:24px 22px; min-width:0; display:flex; flex-direction:column}
.aff .loc{font-family:var(--font-d); font-size:11.5px; font-weight:700; letter-spacing:.05em; color:var(--muted)}
.aff b{display:block; margin-top:10px; font-size:18px; color:var(--fg)}
.aff .en{font-family:var(--font-d); font-size:12.5px; font-weight:600; color:var(--blue); margin-top:2px}
.aff p{margin:10px 0 0; font-size:13.5px; color:var(--muted); line-height:1.6; flex:1}
.aff a{margin-top:14px; font-size:13px; font-weight:700; color:var(--blue); text-decoration:none}
.aff a:hover{text-decoration:underline}

/* IT pipeline */
.pipe-band{margin-top:34px; background:var(--tint,var(--cyan-tint)); border-radius:18px; padding:30px 28px}
.pipe-band .cap{font-family:var(--font-d); font-size:13px; font-weight:600; color:var(--ac,var(--cyan)); margin:0 0 8px}
.pipe-band h3{font-size:24px}
.pipe-band>p{margin:10px 0 0; font-size:15px; max-width:44em}
.pipe{display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:22px}
.pipe .node{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px 18px; font-weight:700; font-size:15px; color:var(--fg)}
.pipe .node small{display:block; font-weight:500; font-size:12px; color:var(--muted); margin-top:2px}
.pipe .arr{color:var(--ac,var(--cyan)); font-weight:700}
.pipe-band .ext-btn{margin-top:22px}

/* flow line */
.flowline{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:26px}
.flowline .step{font-size:13.5px; font-weight:700; color:var(--fg); background:var(--surface); border:1px solid var(--line); border-radius:999px; padding:7px 14px}
.flowline .step.last{background:var(--ac,var(--teal)); border-color:var(--ac,var(--teal)); color:#fff}
.flowline .arr{color:var(--muted)}
.sec.alt .flowline .step{background:var(--card)}

/* cases */
.filter{display:flex; flex-wrap:wrap; gap:8px; margin-top:28px}
.filter button{font:inherit; font-size:13.5px; font-weight:700; cursor:pointer; color:var(--body);
  background:var(--card); border:1px solid var(--line); border-radius:999px; padding:8px 16px}
.filter button[aria-pressed="true"]{background:var(--btn); border-color:var(--btn); color:var(--btn-fg)}
.case-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:26px}
@media (max-width:860px){ .case-grid{grid-template-columns:1fr} }
.case{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:26px; min-width:0}
.case .meta{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.case .meta time{font-family:var(--font-d); font-size:12.5px; color:var(--muted); font-variant-numeric:tabular-nums}
.case h3{font-size:18px; margin-top:12px; line-height:1.45}
.case p{margin:10px 0 0; font-size:14px; color:var(--muted)}
.case .read{display:inline-block; margin-top:16px; font-size:13.5px; font-weight:700; color:var(--blue); text-decoration:none}
.case .read:hover{text-decoration:underline}
.case[hidden]{display:none}
.case h3 a{color:inherit; text-decoration:none}
.case h3 a:hover{color:var(--blue)}
/* post page (cases/<slug>.html) */
.wrap.narrow{max-width:820px}
.post-meta{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 6px; font-size:13px; color:var(--muted)}
.post-meta time{font-family:var(--font-d); font-variant-numeric:tabular-nums}
.post-page .page-hero h1{font-size:clamp(26px,4.2vw,38px); margin-top:14px}
.post-page .sec .wrap{padding-block:56px 72px}
.keypoints{background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--blue); border-radius:14px; padding:20px 26px; margin-bottom:34px}
.keypoints h2{font-size:14px; margin:0 0 10px; color:var(--blue); letter-spacing:.04em; text-transform:uppercase}
.keypoints ul{margin:0; padding-left:1.2em; font-size:15.5px; line-height:1.85}
.keypoints li+li{margin-top:4px}
.post-page .post-body{margin-top:0; font-size:16.5px; line-height:1.9}
.post-page .post-body h2{font-size:24px; margin:1.6em 0 .6em}
.post-page .post-body h3{font-size:19px}
.faq{margin-top:46px; border-top:1px solid var(--line); padding-top:30px}
.faq h2{font-size:21px; margin:0 0 14px}
.faq details{border:1px solid var(--line); border-radius:12px; padding:0 18px; margin-top:10px; background:var(--card)}
.faq summary{cursor:pointer; font-weight:700; padding:14px 30px 14px 0; list-style:none; position:relative; color:var(--fg)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; position:absolute; right:0; top:10px; font-size:22px; line-height:1; color:var(--muted)}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 0 16px; font-size:15px; line-height:1.8; color:var(--body)}
.faq .a p{margin:0}
.share{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:40px; font-size:13.5px}
.share span{color:var(--muted); font-weight:700; margin-right:4px}
.share a,.share button{font:inherit; font-size:13px; font-weight:700; color:var(--body); background:var(--card); border:1px solid var(--line); border-radius:999px; padding:7px 14px; text-decoration:none; cursor:pointer}
.share a:hover,.share button:hover{border-color:var(--blue); color:var(--blue)}
.post-page .pnav{margin-top:40px}

/* CTA band */
.cta-band{background:var(--surface); border-top:1px solid var(--line)}
.cta-band .wrap{padding-block:64px; text-align:center}
.cta-band h2{font-size:clamp(24px,4vw,32px)}
.cta-band p{margin:12px auto 0; max-width:34em}
.cta-band a.go{display:inline-block; margin-top:26px; text-decoration:none; font-weight:700; font-size:16px;
  background:var(--btn); color:var(--btn-fg); border-radius:999px; padding:14px 34px}
.cta-band a.go{transition:background .15s, transform .15s}
.cta-band a.go:hover{background:var(--btn-hover); transform:translateY(-1px)}

/* contact */
.contact-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:36px; margin-top:38px; align-items:start}
@media (max-width:920px){ .contact-grid{grid-template-columns:1fr} }
.form-card{background:var(--card); border:1px solid var(--line); border-radius:18px; padding:32px}
.frow{display:grid; grid-template-columns:1fr 1fr; gap:14px}
@media (max-width:560px){ .frow{grid-template-columns:1fr} }
.field{display:flex; flex-direction:column; gap:6px; margin-top:14px; min-width:0}
.field:first-child{margin-top:0}
.field label{font-size:13.5px; font-weight:700; color:var(--fg)}
.field label em{font-style:normal; color:var(--err)}
.field input,.field select,.field textarea{font:inherit; font-size:15px; color:var(--fg); background:var(--bg);
  border:1px solid var(--line); border-radius:10px; padding:11px 14px; width:100%}
.field textarea{min-height:130px; resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--blue); outline-offset:0; border-color:var(--blue)}
.agree{display:flex; gap:10px; align-items:flex-start; margin-top:18px; font-size:13.5px; color:var(--muted)}
.agree input{margin-top:3px; accent-color:var(--btn)}
.submit{margin-top:22px; width:100%; border:0; cursor:pointer; font:inherit; font-weight:700; font-size:16px;
  background:var(--btn); color:var(--btn-fg); border-radius:12px; padding:14px 20px}
.submit{transition:background .15s}
.submit:hover{background:var(--btn-hover)}
.submit[disabled]{opacity:.6; cursor:default}
.form-note{display:none; margin-top:16px; border-radius:12px; padding:14px 16px; font-size:14px; line-height:1.6}
.form-note.show{display:block}
.form-note.ok{background:var(--teal-tint); color:var(--ok); font-weight:600}
.form-note.err{background:var(--blue-tint); color:var(--body)}
.form-note.err b{color:var(--err)}
.info-card{background:var(--card); border:1px solid var(--line); border-radius:18px; padding:28px}
.info-card h3{font-size:18px}
.info-list{margin:18px 0 0; display:grid; gap:16px}
.info-item{display:grid; gap:3px; padding-bottom:16px; border-bottom:1px solid var(--line); min-width:0}
.info-item:last-child{border-bottom:0; padding-bottom:0}
.info-item .k{font-size:12.5px; font-weight:700; color:var(--muted)}
.info-item .v{font-size:15.5px; font-weight:600; color:var(--fg); user-select:text}
.copy-row{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.copy-btn{font:inherit; font-size:12px; font-weight:700; color:var(--blue); background:var(--blue-tint);
  border:0; border-radius:999px; padding:5px 12px; cursor:pointer}

/* photo hero & cta */
.ph-media{position:absolute; inset:0; z-index:0}
.ph-media img{width:100%; height:100%; object-fit:cover; object-position:center 40%; display:block}
.ph-media::after{content:""; position:absolute; inset:0}
.page-hero.photo{position:relative; overflow:hidden; background:#121A34; border-bottom:0}
.page-hero.photo .ph-media::after{background:linear-gradient(100deg, rgba(13,19,38,.94) 0%, rgba(13,19,38,.74) 48%, rgba(13,19,38,.34) 100%)}
.page-hero.photo .wrap{position:relative; z-index:1; padding-block:100px 92px}
.page-hero.photo h1{color:#fff}
.page-hero.photo .lead{color:#DEE5F5}
.page-hero.photo .badge{background:rgba(255,255,255,.16); color:#fff}
.ph-cap{position:absolute; right:0; bottom:12px; z-index:1; margin:0; font-size:11.5px; color:rgba(255,255,255,.72);
  padding-right:max(20px, env(safe-area-inset-right,0px))}
.cta-band.photo{position:relative; overflow:hidden; background:#121A34; border-top:0}
.cta-band.photo .ph-media::after{background:linear-gradient(180deg, rgba(13,19,38,.84), rgba(13,19,38,.7))}
.cta-band.photo .wrap{position:relative; z-index:1}
.cta-band.photo h2{color:#fff}
.cta-band.photo p{color:#D7DEF0}
.cta-band.photo a.go{background:#fff; color:#2A3A6E}
.cta-band.photo a.go:hover{background:#E6ECFA}

/* cases empty & post modal */
.case-empty{margin-top:34px; padding:52px 24px; text-align:center; color:var(--muted);
  background:var(--card); border:1px dashed var(--line); border-radius:16px}
.pmodal{position:fixed; inset:0; z-index:90; display:none; align-items:flex-start; justify-content:center;
  padding:24px max(16px, env(safe-area-inset-right,0px)) 24px max(16px, env(safe-area-inset-left,0px));
  overflow:auto; background:rgba(10,15,30,.55)}
.pmodal.open{display:flex}
.pmodal-card{background:var(--bg); border:1px solid var(--line); border-radius:18px;
  max-width:780px; width:100%; padding:34px; margin-block:4vh; min-width:0}
.pmodal-top{display:flex; justify-content:space-between; gap:16px; align-items:flex-start}
.pmodal-close{font:inherit; font-size:13px; font-weight:700; color:var(--muted); background:var(--surface);
  border:1px solid var(--line); border-radius:999px; padding:7px 16px; cursor:pointer; flex:none}
.pmodal-close:hover{color:var(--fg)}
.pmodal h2{font-size:24px; line-height:1.4; margin-top:14px}
.post-body{margin-top:20px; font-size:15.5px; line-height:1.85}
.post-body h2,.post-body h3{margin:1.4em 0 .5em}
.post-body p{margin:.8em 0}
.post-body img{max-width:100%; border-radius:12px; display:block; margin:1em 0}
.post-body blockquote{margin:1em 0; padding:10px 18px; border-left:3px solid var(--blue); background:var(--surface); border-radius:0 10px 10px 0}
.post-body ul,.post-body ol{padding-left:1.3em}
.post-body a{color:var(--blue)}

/* UX: skip link, header shadow, breadcrumbs, page nav, back-to-top */
.skip{position:absolute; left:16px; top:-60px; z-index:100; background:var(--btn); color:#fff; font-weight:700;
  padding:10px 16px; border-radius:10px; text-decoration:none; transition:top .15s}
.skip:focus{top:calc(12px + env(safe-area-inset-top,0px))}
.site-head{transition:box-shadow .2s}
.site-head.scrolled{box-shadow:0 6px 24px rgba(20,30,60,.08)}
.crumbs{display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:13px; color:var(--muted); margin:0 0 18px; padding:0; list-style:none}
.crumbs a{color:var(--muted); text-decoration:none}
.crumbs a:hover{color:var(--blue); text-decoration:underline}
.crumbs li+li::before{content:"›"; margin-right:6px; color:var(--line); font-weight:700}
.crumbs [aria-current]{color:var(--fg); font-weight:700}
.page-hero.photo .crumbs, .page-hero.photo .crumbs a{color:rgba(255,255,255,.72)}
.page-hero.photo .crumbs [aria-current]{color:#fff}
.page-hero.photo .crumbs li+li::before{color:rgba(255,255,255,.4)}
.pnav{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:44px}
@media (max-width:640px){ .pnav{grid-template-columns:1fr} }
.pnav a{display:block; text-decoration:none; background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:18px 22px; min-width:0; transition:border-color .18s, transform .18s, box-shadow .18s}
.pnav a:hover{border-color:var(--blue); transform:translateY(-2px); box-shadow:0 10px 26px rgba(20,30,60,.07)}
.pnav .k{display:block; font-size:12px; font-weight:700; color:var(--muted); letter-spacing:.02em}
.pnav .t{display:block; margin-top:4px; font-size:16px; font-weight:700; color:var(--fg)}
.pnav a.next{text-align:right}
.totop{position:fixed; right:calc(18px + env(safe-area-inset-right,0px)); bottom:calc(18px + env(safe-area-inset-bottom,0px));
  width:44px; height:44px; border-radius:999px; border:1px solid var(--line); background:var(--card); color:var(--fg);
  cursor:pointer; z-index:45; box-shadow:0 8px 24px rgba(20,30,60,.12); font-size:18px; line-height:1;
  opacity:0; transform:translateY(10px); pointer-events:none; transition:opacity .2s, transform .2s, background .15s}
.totop.show{opacity:1; transform:none; pointer-events:auto}
.totop:hover{background:var(--surface)}
.pmodal{opacity:0; transition:opacity .18s}
.pmodal.open{opacity:1}
.pmodal-card{transform:translateY(8px); transition:transform .22s}
.pmodal.open .pmodal-card{transform:none}

/* footer */
.adm-link{margin-left:auto; font-weight:700; color:var(--blue) !important; background:var(--blue-tint); border-radius:999px; padding:5px 12px}
footer{border-top:1px solid var(--line); background:var(--bg)}
footer .wrap{padding-block:42px; display:grid; gap:18px}
.foot-top{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap}
.foot-top img{height:36px; width:auto; display:block}
.foot-top nav{display:flex; gap:16px; flex-wrap:wrap}
.foot-top nav a{font-size:13.5px; color:var(--muted); text-decoration:none}
.foot-top nav a:hover{color:var(--fg)}
.foot-info{font-size:13px; color:var(--muted); line-height:1.9}
.foot-info b{color:var(--body); font-weight:600}
.foot-langs{display:flex; gap:12px; flex-wrap:wrap; font-size:12.5px}
.foot-langs a{color:var(--muted); text-decoration:none}
.foot-langs a:hover{color:var(--fg)}

@media (prefers-reduced-motion: reduce){
  html:focus-within{scroll-behavior:auto}
  @view-transition{navigation:none}
  *{transition:none !important; animation:none !important}
}

/* ---- infographics & HR pages ---- */
.split{display:grid; grid-template-columns:minmax(0,420px) 1fr; gap:48px; align-items:center}
.split.rev{grid-template-columns:1fr minmax(0,420px)}
.split.rev .fig{order:2}
.split .fig svg{width:100%; height:auto; display:block}
@media (max-width:900px){ .split,.split.rev{grid-template-columns:1fr; gap:28px} .split.rev .fig{order:0} .split .fig{max-width:420px; margin-inline:auto; width:100%} }
.pts{list-style:none; margin:26px 0 0; padding:0; display:grid; gap:14px}
.pts li{display:grid; gap:4px; padding-left:18px; border-left:3px solid var(--blue)}
.pts b{font-size:16px; color:var(--fg)}
.pts span{font-size:14.5px; color:var(--body)}
.tests{list-style:none; margin:24px 0 0; padding:0; display:grid; gap:8px; counter-reset:t}
.tests li{display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:10px 14px; counter-increment:t}
.tests li b{font-size:13px; color:var(--blue); background:var(--blue-tint); border-radius:999px; padding:4px 10px; white-space:nowrap}
.tests li b::before{content:counter(t) " · "; font-family:var(--font-d)}
.tests li span{font-size:14.5px; color:var(--body)}
.note-line{margin:16px 0 0; font-size:13.5px; font-weight:700; color:var(--muted)}
.vgrid{display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:30px}
@media (max-width:1000px){ .vgrid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .vgrid{grid-template-columns:1fr} }
.vcard{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:22px 20px; min-width:0}
.vcard .en{display:block; font-family:var(--font-d); font-size:12.5px; font-weight:600; letter-spacing:.03em; color:var(--blue)}
.vcard b{display:block; font-size:19px; color:var(--fg); margin-top:6px}
.vcard .df{margin:6px 0 0; font-size:14px; color:var(--body)}
.vcard .dok{margin:16px 0 6px; font-family:var(--font-d); font-size:11px; font-weight:700; letter-spacing:.14em; color:var(--muted)}
.vcard ul{margin:0; padding-left:1.1em; font-size:13.5px; color:var(--body); line-height:1.7}
.vcard li+li{margin-top:4px}
.credo-quote{margin:34px 0 0; padding:28px 32px; border-radius:18px; background:var(--bnavy); color:#fff}
.credo-quote p{margin:0; font-size:clamp(17px,2.4vw,22px); font-weight:700; line-height:1.55}
.credo-quote cite{display:block; margin-top:12px; font-style:normal; font-family:var(--font-d); font-size:12.5px; letter-spacing:.08em; color:#BFEFFF}
.rituals{list-style:none; margin:24px 0 0; padding:0; display:grid; gap:10px}
.rituals li{display:grid; grid-template-columns:64px 1fr; gap:14px; align-items:start}
.rituals .p{font-family:var(--font-d); font-size:12.5px; font-weight:700; color:var(--blue); background:var(--blue-tint); border-radius:999px; padding:5px 0; text-align:center; margin-top:2px}
.rituals b{font-size:16px; color:var(--fg)}
.rituals p{margin:3px 0 0; font-size:14px; color:var(--body)}
.hands{display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:30px}
@media (max-width:1000px){ .hands{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .hands{grid-template-columns:1fr} }
.hand{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:22px 20px; text-align:center; min-width:0}
.hand .ic,.acard .ic{display:inline-flex; width:56px; height:56px; border-radius:16px; background:var(--blue-tint); color:var(--blue); align-items:center; justify-content:center}
.ico{width:28px; height:28px}
.hand b{display:block; font-size:17px; color:var(--fg); margin-top:14px}
.hand p{margin:8px 0 0; font-size:14px; color:var(--body)}
.hand .link{display:inline-block; margin-top:12px; font-size:12px; font-weight:700; color:var(--muted); background:var(--surface); border-radius:999px; padding:4px 10px}
.credo{list-style:none; margin:30px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 28px}
@media (max-width:760px){ .credo{grid-template-columns:1fr} }
.credo li{display:grid; grid-template-columns:44px 1fr; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--line)}
.credo .n{font-family:var(--font-d); font-size:22px; font-weight:700; color:var(--blue); font-variant-numeric:tabular-nums}
.credo p{margin:0; font-size:15px; color:var(--fg); font-weight:500}
.join-band .wrap{text-align:center; padding-block:64px}
.join-band h2{font-size:clamp(24px,3.6vw,32px)}
.join-band p{margin:12px auto 0; max-width:40em; color:var(--body)}
.join-band .go,.hero-btns .go,.case-empty .go{display:inline-block; margin-top:22px; background:var(--btn); color:var(--btn-fg); font-weight:700; text-decoration:none; border-radius:999px; padding:13px 26px}
.join-band .go:hover,.hero-btns .go:hover,.case-empty .go:hover{background:var(--btn-hover)}
.hero-btns{display:flex; gap:10px; flex-wrap:wrap; margin-top:4px}
.hero-btns .ghost{display:inline-block; margin-top:22px; font-weight:700; text-decoration:none; color:var(--blue); border:1.5px solid var(--blue); border-radius:999px; padding:12px 24px}
.cards.numbered .card{position:relative; padding-top:30px}
.cards.numbered h3{padding-right:52px}
.cards.numbered .num{position:absolute; top:18px; right:22px; font-family:var(--font-d); font-size:30px; font-weight:700; color:var(--blue-tint); line-height:1}
.more-line{margin:22px 0 0}
.more-line a{font-weight:700; color:var(--blue); text-decoration:none}
.more-line a:hover{text-decoration:underline}
.gbox{margin-top:30px; background:var(--card); border:1px solid var(--line); border-radius:20px; padding:30px 30px 26px}
.gbox h3{font-size:21px; margin:0}
.gbox>.sub{margin-top:8px; font-size:14.5px}
.tl90{list-style:none; margin:26px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:12px; position:relative}
.tl90::before{content:""; position:absolute; left:4%; right:4%; top:11px; height:3px; background:var(--line); border-radius:3px}
.tl90 li{position:relative; padding-top:34px; min-width:0}
.tl90 li::before{content:""; position:absolute; left:0; top:4px; width:18px; height:18px; border-radius:99px; background:var(--blue); box-shadow:0 0 0 4px var(--bg)}
.tl90 li:last-child::before{background:var(--teal)}
.tl90 .wk{display:block; font-family:var(--font-d); font-size:12.5px; font-weight:700; color:var(--blue); letter-spacing:.02em}
.tl90 b{display:block; font-size:16px; color:var(--fg); margin-top:4px}
.tl90 p{margin:6px 0 0; font-size:13.5px; color:var(--body)}
@media (max-width:860px){
  .tl90{grid-template-columns:1fr; gap:0; padding-left:30px}
  .tl90::before{left:8px; right:auto; top:8px; bottom:8px; width:3px; height:auto}
  .tl90 li{padding:10px 0 18px}
  .tl90 li::before{left:-30px; top:14px}
}
.lsteps{list-style:none; margin:22px 0 0; padding:0; display:grid; gap:8px; counter-reset:s}
.lsteps li{display:grid; grid-template-columns:92px 1fr; gap:12px; align-items:center; counter-increment:s; border-bottom:1px solid var(--line); padding:8px 0}
.lsteps b{font-size:15px; color:var(--fg)}
.lsteps b::before{content:counter(s); display:inline-grid; place-items:center; width:22px; height:22px; border-radius:99px; background:var(--blue); color:#fff; font-size:12px; margin-right:8px; font-family:var(--font-d)}
.lsteps span{font-size:14px; color:var(--body)}
.acards{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:22px}
@media (max-width:760px){ .acards{grid-template-columns:1fr} }
.acard{display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center; background:var(--surface); border-radius:14px; padding:16px 18px}
.acard b{display:block; font-size:16px; color:var(--fg)}
.acard p{margin:4px 0 0; font-size:13.5px; color:var(--body)}
.sgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:30px}
@media (max-width:860px){ .sgrid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:520px){ .sgrid{grid-template-columns:1fr} }
.scard{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:20px 22px; border-top:4px solid var(--blue)}
.scard b{display:block; font-size:16px; color:var(--fg)}
.scard p{margin:6px 0 0; font-size:14px; color:var(--body)}
.steps{list-style:none; margin:30px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:10px}
@media (max-width:860px){ .steps{grid-template-columns:1fr} }
.steps li{position:relative; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:18px 18px 16px; min-width:0}
.steps .n{display:inline-grid; place-items:center; width:30px; height:30px; border-radius:99px; background:var(--blue); color:#fff; font-family:var(--font-d); font-weight:700}
.steps b{display:block; margin-top:12px; font-size:16px; color:var(--fg)}
.steps .d{display:block; margin-top:4px; font-size:13.5px; color:var(--body)}
.steps li:not(:last-child)::after{content:"→"; position:absolute; right:-12px; top:50%; transform:translateY(-50%); color:var(--muted); font-weight:700; background:var(--bg); z-index:1}
@media (max-width:860px){ .steps li:not(:last-child)::after{content:"↓"; right:auto; left:50%; top:auto; bottom:-14px; transform:translateX(-50%)} }
.iq{margin-top:30px; background:var(--blue-tint); border-radius:16px; padding:22px 26px}
.iq b{display:block; color:var(--blue); font-size:15px}
.iq ul{margin:12px 0 0; padding-left:1.2em; color:var(--body); font-size:14.5px; line-height:1.8}
.case-empty .go{margin-top:18px}
#job-list .case{border-left:4px solid var(--blue)}
.jbox{margin-top:34px; background:var(--card); border:1px solid var(--line); border-radius:20px; padding:28px 30px 26px}
.jbox h3{font-size:21px; margin:0}
.jbox>.sub{margin-top:8px; font-size:14.5px}
.journey{list-style:none; margin:26px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:12px; position:relative; counter-reset:j}
.journey::before{content:""; position:absolute; left:10%; right:10%; top:28px; height:3px; background:var(--line)}
.journey li{position:relative; text-align:center; min-width:0; counter-increment:j}
.journey .ic{display:inline-flex; width:56px; height:56px; border-radius:99px; background:var(--blue); color:#fff; align-items:center; justify-content:center; box-shadow:0 0 0 6px var(--card); position:relative}
.journey .ic::after{content:counter(j); position:absolute; right:-4px; top:-4px; width:20px; height:20px; border-radius:99px; background:var(--cyan); color:#fff; font-size:11px; font-weight:700; display:grid; place-items:center; font-family:var(--font-d)}
.journey b{display:block; margin-top:12px; font-size:15.5px; color:var(--fg)}
.journey p{margin:6px 0 0; font-size:13px; color:var(--body); line-height:1.6}
@media (max-width:860px){
  .journey{grid-template-columns:1fr; gap:14px; padding-left:70px}
  .journey::before{left:27px; right:auto; top:10px; bottom:10px; width:3px; height:auto}
  .journey li{text-align:left}
  .journey .ic{position:absolute; left:-70px; top:-2px}
  .journey b{margin-top:0}
}
.flowsteps{grid-template-columns:repeat(var(--n,4),1fr); margin-top:30px}
@media (max-width:860px){ .flowsteps{grid-template-columns:1fr} }
.flowsteps li{padding:16px 16px 14px}
.flowsteps b{margin-top:10px; font-size:15.5px}
.flowsteps li.last{background:var(--bnavy); border-color:var(--bnavy)}
.flowsteps li.last b{color:#fff}
.flowsteps li.last .n{background:#fff; color:var(--bnavy)}

/* culture v2 */
.tg{list-style:none; margin:24px 0 0; padding:0; display:grid; gap:12px}
.tg li{display:grid; grid-template-columns:72px 1fr; gap:4px 14px; align-items:baseline; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:14px 18px}
.tg li b{font-size:17px; color:var(--fg); grid-row:span 2; align-self:start; padding-top:2px}
.tg li:nth-child(1) b{color:var(--blue)} .tg li:nth-child(2) b{color:var(--cyan)} .tg li:nth-child(3) b{color:var(--teal)}
.tg .h{font-weight:700; color:var(--fg); font-size:15px}
.tg p{margin:0; font-size:14px; color:var(--body)}
.tq{margin-top:30px; background:var(--bnavy); color:#fff; border-radius:18px; padding:24px 28px; display:grid; grid-template-columns:auto 1fr; gap:10px 30px; align-items:center}
.tq b{font-size:16px; color:#BFEFFF}
.tq ol{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
.tq li{display:grid; grid-template-columns:26px 1fr; gap:8px; align-items:start; font-size:14.5px; font-weight:600; line-height:1.55}
.tq .n{display:inline-grid; place-items:center; width:24px; height:24px; border-radius:99px; background:#fff; color:var(--bnavy); font-family:var(--font-d); font-size:12px; font-weight:700}
@media (max-width:900px){ .tq{grid-template-columns:1fr} .tq ol{grid-template-columns:1fr} }
.rituals3{list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
@media (max-width:760px){ .rituals3{grid-template-columns:1fr} }
.rituals3 li{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:22px 22px 20px}
.rituals3 .p{display:inline-block; font-family:var(--font-d); font-size:12px; font-weight:700; letter-spacing:.06em; color:var(--blue); background:var(--blue-tint); border-radius:999px; padding:4px 11px}
.rituals3 b{display:block; font-size:18px; color:var(--fg); margin-top:12px}
.rituals3 p{margin:6px 0 0; font-size:14px; color:var(--body)}
.hands.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){ .hands.four{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .hands.four{grid-template-columns:1fr} }
.roles{list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; counter-reset:r}
@media (max-width:860px){ .roles{grid-template-columns:1fr} }
.roles li{position:relative; background:var(--card); border:1px solid var(--line); border-radius:18px; padding:24px 24px 22px; counter-increment:r; min-width:0}
.roles li:nth-child(2){border-color:var(--blue)}
.roles li:nth-child(3){background:var(--bnavy); border-color:var(--bnavy)}
.roles li:nth-child(3) b,.roles li:nth-child(3) p{color:#fff}
.roles li:nth-child(3) .k{background:rgba(255,255,255,.16); color:#fff}
.roles .k{display:inline-block; font-size:12px; font-weight:700; color:var(--blue); background:var(--blue-tint); border-radius:999px; padding:4px 11px}
.roles b{display:block; font-size:24px; color:var(--fg); margin-top:12px}
.roles b::before{content:counter(r) "  "; font-family:var(--font-d); font-size:14px; color:var(--muted); vertical-align:middle}
.roles li:nth-child(3) b::before{color:#BFEFFF}
.roles p{margin:8px 0 0; font-size:14.5px; color:var(--body)}
.roles li:not(:last-child)::after{content:"→"; position:absolute; right:-14px; top:50%; transform:translateY(-50%); color:var(--muted); font-weight:700; background:var(--bg); z-index:1}
@media (max-width:860px){ .roles li:not(:last-child)::after{content:"↓"; right:auto; left:50%; top:auto; bottom:-15px; transform:translateX(-50%)} }
.flowsteps .d{display:block; margin-top:4px; font-size:13px; color:var(--body)}
.flowsteps li.last .d{color:#BFEFFF}
