/* =========================================================
   RAG技術研修 LP — shared styles (index / contact / downloads / thanks / 404)
   Colors carry over the navy-to-cobalt of the former Webflow site.
   ========================================================= */
:root{
  --navy-950:#060F26;
  --navy-900:#0B1A3F;
  --navy-800:#13285A;
  --navy-700:#1A3672;
  --blue-700:#1D45B8;
  --blue-600:#2457D6;
  --blue-500:#3B6FE8;
  --blue-400:#6E95EE;
  --blue-200:#C9D8FA;
  --blue-100:#E4ECFD;
  --blue-50:#F2F6FE;
  --amber:#FFB14C;

  --ink:#0E1A33;
  --ink-2:#3D4A66;
  --ink-3:#66718A;
  --line:#E2E7F0;
  --bg:#FFFFFF;
  --bg-alt:#F4F7FC;

  --f-jp:Arial,'Hiragino Sans','Hiragino Kaku Gothic ProN','Yu Gothic Medium',YuGothic,'Noto Sans JP',sans-serif;

  --shadow-1:0 1px 2px rgba(11,26,63,.05),0 8px 24px -12px rgba(11,26,63,.14);
  --shadow-2:0 1px 2px rgba(11,26,63,.05),0 24px 60px -28px rgba(11,26,63,.30);
  --radius:18px;
  --gutter:clamp(20px,4.5vw,48px);
  --sec-y:clamp(80px,10vw,136px);
  --header-h:72px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--f-jp);color:var(--ink);background:var(--bg);font-size:16px;line-height:1.9;letter-spacing:.02em;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 0}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,dl,figure{margin:0}
ul,ol{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
svg text{font-family:var(--f-jp)}
.num{font-variant-numeric:tabular-nums;letter-spacing:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--gutter)}
.nowrap{white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:#fff;color:var(--navy-900);padding:8px 14px;border-radius:8px;font-weight:700;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--blue-500);outline-offset:3px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:54px;padding:0 30px;border-radius:999px;font-weight:700;font-size:15px;letter-spacing:.06em;text-decoration:none;border:0;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--blue-600);color:#fff;box-shadow:0 10px 24px -12px rgba(36,87,214,.8)}
.btn-primary:hover{background:var(--blue-700)}
.btn-white{background:#fff;color:var(--navy-900);box-shadow:0 10px 28px -14px rgba(0,0,0,.6)}
.btn-white:hover{background:var(--blue-50)}
.btn-ghost-light{background:rgba(255,255,255,.06);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.btn-ghost-light:hover{background:rgba(255,255,255,.14)}
.btn-ghost{background:#fff;color:var(--navy-900);box-shadow:inset 0 0 0 1px #C7D0E0}
.btn-ghost:hover{background:var(--blue-50)}
.btn-sm{min-height:40px;padding:0 18px;font-size:13px}
.btn{max-width:100%}
@media (max-width:400px){.btn{white-space:normal;text-align:center;line-height:1.5;padding-top:10px;padding-bottom:10px}}
.btn[disabled]{opacity:.55;cursor:wait;transform:none}

/* ---------- header ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);transition:background-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease}
.site-header.is-solid,.site-header.is-scrolled{background:rgba(9,22,54,.9);-webkit-backdrop-filter:saturate(140%) blur(12px);backdrop-filter:saturate(140%) blur(12px);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.site-header .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.brand-orb{width:34px;height:34px}
.brand-type{height:19px;width:auto}
.site-nav{display:flex;align-items:center;gap:clamp(14px,2vw,28px)}
.site-nav a.nav-link{color:rgba(255,255,255,.86);text-decoration:none;font-size:14px;font-weight:700;letter-spacing:.06em;padding:6px 0;position:relative}
.site-nav a.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.site-nav a.nav-link:hover{color:#fff}
.site-nav a.nav-link:hover::after{transform:scaleX(1)}
.nav-cta{display:flex;gap:10px;margin-left:8px}
.menu-toggle{display:none;background:transparent;border:0;color:#fff;font-weight:700;font-size:12px;letter-spacing:.2em;padding:10px 4px;cursor:pointer}
@media (max-width:1020px){
  .menu-toggle{display:block}
  .site-nav{position:fixed;inset:var(--header-h) 0 auto 0;flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gutter) 24px;background:rgba(9,22,54,.97);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .25s ease,transform .25s ease,visibility .25s}
  .site-header.menu-open{background:rgba(9,22,54,.97)}
  .site-header.menu-open .site-nav{opacity:1;transform:none;visibility:visible}
  .site-nav a.nav-link{padding:16px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:15px}
  .site-nav a.nav-link::after{display:none}
  .nav-cta{margin:20px 0 0;flex-direction:column}
  .nav-cta .btn{min-height:50px}
}

/* ---------- section scaffolding ---------- */
.section{padding:var(--sec-y) 0;position:relative}
.section.alt{background:var(--bg-alt)}
.sec-label{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-600);margin-bottom:18px}
.sec-label .no{font-size:13px;letter-spacing:.06em;color:var(--navy-900)}
.sec-label::before{content:"";width:28px;height:2px;background:var(--blue-600);order:1}
.sec-label .no{order:0}
.sec-label .tx{order:2}
.sec-title{font-size:clamp(26px,3.5vw,42px);line-height:1.45;font-weight:700;letter-spacing:.03em;color:var(--navy-900)}
.sec-lead{margin-top:20px;font-size:clamp(15px,1.4vw,17px);color:var(--ink-2);max-width:46em}
.sec-head{margin-bottom:clamp(40px,5vw,64px)}
.sec-head.center{text-align:center}
.sec-head.center .sec-label{justify-content:center}
.sec-head.center .sec-lead{margin-left:auto;margin-right:auto}
.on-dark .sec-label{color:var(--blue-200)}
.on-dark .sec-label .no{color:#fff}
.on-dark .sec-label::before{background:var(--blue-200)}
.on-dark .sec-title{color:#fff}
.on-dark .sec-lead{color:rgba(255,255,255,.78)}

.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-1)}

/* ---------- reveal ---------- */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal.d1{transition-delay:.08s}
.js .reveal.d2{transition-delay:.16s}
.js .reveal.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;overflow:hidden;color:#fff;background:var(--navy-900) url("/services/rag-training/assets/images/hero-wave.webp") center/cover no-repeat;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:calc(var(--header-h) + 28px) 0 72px}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(42% 46% at 28% 42%,rgba(59,111,232,.28),transparent 70%);pointer-events:none}
.hero .wrap{position:relative;text-align:center}
.hero-pill{display:inline-flex;align-items:center;min-height:38px;padding:0 22px;border-radius:999px;background:#fff;color:var(--navy-900);font-weight:700;font-size:clamp(14px,1.4vw,17px);letter-spacing:.08em}
.hero-title{margin:clamp(20px,2.6vw,30px) auto 0;display:flex;align-items:center;justify-content:center;gap:clamp(10px,2vw,26px)}
.hero-orb{width:clamp(64px,10.4vw,152px);height:auto;filter:drop-shadow(0 18px 30px rgba(0,8,40,.5));animation:orb-float 8s ease-in-out infinite}
.hero-type{height:clamp(36px,6.8vw,100px);width:auto}
@keyframes orb-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(-5deg)}}
.hero-lead{margin-top:clamp(18px,2.2vw,26px);font-size:clamp(16px,2vw,24px);font-weight:700;letter-spacing:.06em;line-height:1.7}
.hero-sub{margin:14px auto 0;max-width:40em;font-size:clamp(13px,1.2vw,15px);color:rgba(255,255,255,.74);line-height:1.9}
.hero-cta{margin-top:clamp(22px,2.6vw,30px);display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero-cta .btn{min-width:220px}
.hero-stats{margin:clamp(28px,3.4vw,40px) auto 0;display:grid;grid-template-columns:repeat(3,1fr);max-width:760px}
.hero-stats li{padding:6px 12px;display:flex;flex-direction:column;align-items:center;gap:4px}
.hero-stats li+li{box-shadow:inset 1px 0 0 rgba(255,255,255,.2)}
.hero-stats .k{font-size:clamp(11px,1.1vw,13px);color:rgba(255,255,255,.76);letter-spacing:.1em;font-weight:700}
.hero-stats .v{font-size:clamp(28px,4.6vw,52px);font-weight:700;line-height:1.1;letter-spacing:0;white-space:nowrap}
.hero-stats .v small{font-size:.36em;margin-left:4px;letter-spacing:.04em;font-weight:700}
.hero-note{margin-top:14px;font-size:11px;color:rgba(255,255,255,.5)}
@media (max-width:640px){
  .hero{min-height:auto;padding:calc(var(--header-h) + 40px) 0 56px}
  .hero-cta{flex-direction:column;align-items:stretch;max-width:340px;margin-left:auto;margin-right:auto}
  .hero-cta .btn{min-width:0}
  .hero-stats li{padding:4px 4px}
  .hero-stats .v small{margin-left:2px;font-size:.4em}
}
@media (prefers-reduced-motion:reduce){.hero-orb{animation:none}}

/* =========================================================
   01 REASON (overview)
   ========================================================= */
.reason-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.quotes{display:grid;gap:10px;margin-top:32px}
.quotes li{background:var(--bg-alt);border-radius:12px;padding:14px 18px;font-weight:700;color:var(--navy-900);font-size:15px;line-height:1.7}
.reason-body{margin-top:24px;color:var(--ink-2)}
.reason-body p+p{margin-top:12px}
.topics{margin-top:28px}
.topics h3{font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--ink-3);margin-bottom:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;min-height:32px;padding:0 14px;border-radius:999px;background:var(--blue-50);color:var(--navy-800);font-size:13px;font-weight:700;letter-spacing:.03em;line-height:1.3}
.chip.solid{background:var(--navy-900);color:#fff}
.reason-visual{position:relative}
.reason-visual img{width:100%;height:auto}
.reason-visual figcaption{margin-top:8px;font-size:12px;color:var(--ink-3);text-align:center}
@media (max-width:900px){.reason-grid{grid-template-columns:1fr}.reason-visual{order:-1;max-width:620px;margin:0 auto}}

/* =========================================================
   02 PROBLEM
   ========================================================= */
.pain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.pain{display:flex;flex-direction:column;overflow:hidden}
.pain-head{background:var(--navy-800) url("/services/rag-training/assets/images/pain-head.webp") right center/cover no-repeat;color:#fff;padding:22px 24px;font-size:clamp(17px,1.6vw,19px);font-weight:700;letter-spacing:.04em;display:flex;align-items:center;gap:12px}
.pain-head .n{font-size:12px;letter-spacing:.12em;opacity:.7}
.pain-body{padding:26px 24px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;flex:1}
.pain-k{font-size:15px;font-weight:700;color:var(--navy-900)}
.pain-vis{flex:1;display:flex;align-items:center;justify-content:center;width:100%;margin:14px 0 8px;min-height:190px}
.dg-donut{width:190px;height:auto}
.donut-val{transition:stroke-dashoffset 1.4s cubic-bezier(.3,.7,.2,1) .2s,opacity .2s ease .2s}
.js .pain:not(.in) .donut-val{stroke-dashoffset:var(--len);opacity:0}
.dg-dots{width:100%;max-width:290px;height:auto}
.dg-dots circle{fill:var(--blue-600)}
.js .pain:not(.in) .dg-dots circle{opacity:0}
.js .pain.in .dg-dots circle{animation:dot-in .4s ease both;animation-delay:calc(var(--i) * 6ms + .2s)}
@keyframes dot-in{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
.dg-dots circle{transform-box:fill-box;transform-origin:center}
.pain-big{font-size:clamp(34px,3.6vw,44px);font-weight:700;color:var(--navy-900);line-height:1.1;letter-spacing:0}
.pain-big small{font-size:.42em;margin-left:4px;letter-spacing:.04em}
.pain-note{margin-top:10px;font-size:11px;color:var(--ink-3)}
.measures{position:relative;width:100%;max-height:200px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 62%,transparent);mask-image:linear-gradient(#000 62%,transparent)}
.measures .chips{justify-content:center;gap:6px}
.measures .chip{min-height:26px;padding:0 10px;font-size:11.5px;font-weight:700;background:var(--blue-50);color:var(--ink-2)}
.measures-etc{margin-top:-6px;font-size:13px;font-weight:700;color:var(--ink-3);letter-spacing:.1em}
@media (max-width:900px){.pain-grid{grid-template-columns:1fr;max-width:520px;margin:0 auto}}
@media (prefers-reduced-motion:reduce){.donut-val{transition:none}.js .pain .donut-val{stroke-dashoffset:0;opacity:1}.js .pain .dg-dots circle,.js .pain.in .dg-dots circle{animation:none;opacity:1}}

/* =========================================================
   03 FEATURES
   ========================================================= */
.features{background:#fff;overflow:hidden}
.features::before{content:"";position:absolute;inset:auto -10% 0 -10%;height:60%;background:url("/services/rag-training/assets/images/wave-light.webp") center bottom/100% auto no-repeat;opacity:.9;pointer-events:none}
.features .wrap{position:relative}
.feature{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(24px,3vw,36px)}
.feature-fig{min-width:0}
.feature+.feature{margin-top:clamp(64px,8vw,104px)}
.feature-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(20px,4vw,64px);align-items:end}
.feature-no{display:block;font-size:12px;font-weight:700;letter-spacing:.22em;color:var(--blue-600);margin-bottom:10px}
.feature-no b{font-size:15px;letter-spacing:.04em;margin-left:6px;color:var(--navy-900)}
.feature-title{font-size:clamp(22px,2.6vw,30px);line-height:1.5;font-weight:700;color:var(--navy-900)}
.feature-text{color:var(--ink-2)}
.feature-text p+p{margin-top:10px}
.feature-fig{padding:clamp(20px,3vw,40px);box-shadow:var(--shadow-2)}
@media (max-width:860px){.feature-head{grid-template-columns:1fr;align-items:start}}

/* feature 01 */
.f1-grid{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,44px);align-items:center}
.f1-col{display:flex;flex-direction:column;align-items:center;gap:14px}
.f1-cap{font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--ink-3)}
.dg-flow{width:100%;max-width:220px;height:auto}
.dg-ring{width:100%;max-width:360px;height:auto}
.dg-measures{width:100%;max-width:360px;height:auto}
.ring-seg{transform-origin:180px 180px}
.js .feature-fig:not(.in) .ring-seg{opacity:0;transform:rotate(-14deg) scale(.96)}
.js .feature-fig .ring-seg{transition:opacity .7s ease,transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--k) * .14s + .15s)}
.js .feature-fig:not(.in) .m-tile{opacity:0}
.js .feature-fig .m-tile{transition:opacity .5s ease;transition-delay:calc(var(--i) * .05s + .3s)}
@media (max-width:860px){.f1-grid{grid-template-columns:1fr;gap:28px}.dg-flow{max-width:200px}}

/* feature 02 */
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.scroll-x .dg{min-width:820px}
.dg-stairs{width:100%;height:auto;display:block}
.js .feature-fig:not(.in) .st-block{transform:scaleY(0)}
.js .feature-fig .st-block{transform-box:fill-box;transform-origin:bottom;transition:transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * .12s + .1s)}
.scroll-hint{display:none;font-size:12px;color:var(--ink-3);margin-top:10px;text-align:right}
@media (max-width:860px){.scroll-hint{display:block}}

/* feature 03 */
.f3-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.ice{display:grid;grid-template-columns:clamp(120px,16vw,200px) minmax(0,1fr);gap:clamp(16px,2.4vw,32px);align-items:stretch}
.dg-iceberg{width:100%;height:auto}
.ice-lists{display:grid;grid-template-rows:auto 1fr;gap:18px}
.ice-block h4{display:inline-flex;align-items:center;min-height:30px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.06em}
.ice-block ul{margin-top:10px;display:grid;gap:4px}
.ice-block li{font-size:14px;font-weight:700;line-height:1.6;padding-left:14px;position:relative}
.ice-block li::before{content:"";position:absolute;left:0;top:.72em;width:6px;height:6px;border-radius:50%}
.ice-top h4{background:#E7EBF2;color:var(--ink-2)}
.ice-top li{color:var(--ink-3)}
.ice-top li::before{background:#B8C2D4}
.ice-bottom{align-self:end}
.ice-bottom h4{background:var(--navy-800);color:#fff}
.ice-bottom li{color:var(--navy-900)}
.ice-bottom li::before{background:var(--blue-600)}
.proof{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.proof li{background:var(--blue-50);border-radius:14px;padding:18px 16px;display:flex;flex-direction:column;justify-content:center;gap:6px;min-height:118px}
.proof .k{font-size:12px;font-weight:700;color:var(--ink-2);letter-spacing:.04em;line-height:1.5}
.proof .v{font-size:clamp(28px,3vw,36px);font-weight:700;line-height:1.1;color:var(--navy-900);letter-spacing:0}
.proof .v small{font-size:.42em;margin-left:3px;letter-spacing:.04em}
.proof .v.t{font-size:clamp(17px,1.6vw,20px);line-height:1.35;letter-spacing:.02em}
.proof a{color:var(--blue-700);text-underline-offset:3px}
@media (max-width:960px){.f3-grid{grid-template-columns:1fr}}
@media (max-width:420px){.proof{grid-template-columns:1fr 1fr}.proof li{padding:14px 12px;min-height:104px}}
@media (prefers-reduced-motion:reduce){.js .feature-fig .ring-seg,.js .feature-fig .m-tile,.js .feature-fig .st-block{opacity:1!important;transform:none!important;transition:none}}

/* =========================================================
   04 INSTRUCTORS
   ========================================================= */
.teachers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2.6vw,28px);max-width:1000px;margin:0 auto}
.teacher{display:flex;flex-direction:column;overflow:hidden}
.teacher-photo{background:#C9CDD6;aspect-ratio:396/225;width:100%}
.teacher-photo img{width:100%;height:100%;object-fit:cover}
.teacher-body{padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;justify-content:center}
.teacher-role{font-size:13px;font-weight:700;color:var(--blue-600);letter-spacing:.1em}
.teacher-name{margin-top:4px;font-size:clamp(24px,2.4vw,30px);font-weight:700;color:var(--navy-900);letter-spacing:.12em}
.teacher-name span{display:block;font-size:12px;letter-spacing:.2em;color:var(--ink-3);margin-top:2px;font-weight:700}
.teacher-bio{margin-top:16px;color:var(--ink-2);font-size:15px}
.teacher-bio p+p{margin-top:8px}
@media (max-width:820px){.teachers{grid-template-columns:1fr;max-width:560px}}

/* =========================================================
   05 CURRICULUM
   ========================================================= */
.modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,24px)}
.module{padding:clamp(24px,2.6vw,32px);display:flex;flex-direction:column;background:var(--bg-alt);box-shadow:none}
.module .chip{background:#fff}
.module-time{background:#fff!important}
.module-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.module-no{font-size:38px;font-weight:700;line-height:1;color:var(--blue-200);letter-spacing:0}
.module-time{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border-radius:999px;background:var(--blue-50);color:var(--navy-800);font-size:12px;font-weight:700;letter-spacing:.06em}
.module h3{margin-top:14px;font-size:clamp(19px,1.8vw,22px);font-weight:700;color:var(--navy-900);line-height:1.5}
.module-lead{margin-top:10px;font-size:14px;color:var(--ink-2);line-height:1.85}
.module-part{margin-top:20px;padding-top:18px;box-shadow:inset 0 1px 0 #DCE3EE}
.module-part h4{font-size:14px;font-weight:700;color:var(--navy-900);margin-bottom:10px}
.module-part .chips{gap:6px}
.module-part .chip{min-height:28px;font-size:12px;padding:0 11px}
.module-part .chip.etc{background:transparent;color:var(--ink-3);padding:0 4px}
.module-part p{font-size:14px;color:var(--ink-2);line-height:1.8}
@media (max-width:960px){.modules{grid-template-columns:1fr;max-width:620px;margin:0 auto}}

/* =========================================================
   06 FAQ
   ========================================================= */
/* =========================================================
   07 SUPPORT
   ========================================================= */
.support{position:relative;border-radius:28px;overflow:hidden;color:#fff;background:var(--navy-900) url("/services/rag-training/assets/images/support-city.webp") center/cover no-repeat;padding:clamp(32px,5vw,64px)}
.support::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(6,15,38,.82),rgba(11,26,63,.55));pointer-events:none}
.support>*{position:relative}
.support-pill{display:inline-flex;align-items:center;min-height:34px;padding:0 16px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);font-size:13px;font-weight:700;letter-spacing:.08em}
.support h2{margin-top:20px;font-size:clamp(22px,2.6vw,32px);line-height:1.6;font-weight:700}
.support h2 em{font-style:normal;color:var(--amber)}
.support-grid{margin-top:clamp(28px,3.6vw,44px);display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);align-items:stretch}
.support-box{border-radius:18px;padding:clamp(20px,2.4vw,30px)}
.support-box h3{font-size:16px;font-weight:700;letter-spacing:.04em}
.support-box ul{margin-top:14px;display:grid;gap:10px}
.support-pain{background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.support-pain li{font-size:15px;font-weight:700;color:rgba(255,255,255,.9)}
.support-do{background:#fff;color:var(--navy-900)}
.support-do li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:center;font-size:15px;font-weight:700}
.support-do li .n{width:30px;height:30px;border-radius:50%;background:var(--navy-900);color:#fff;display:grid;place-items:center;font-size:12px;letter-spacing:0}
.support-arrow{display:flex;align-items:center;justify-content:center}
.support-arrow svg{width:40px;height:20px}
.support-act{margin-top:clamp(28px,3.4vw,40px);text-align:center}
@media (max-width:820px){
  .support-grid{grid-template-columns:1fr;grid-template-rows:auto 48px auto}
  .support-arrow svg{transform:rotate(90deg)}
}

/* =========================================================
   CONTACT / FORM
   ========================================================= */
.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:clamp(28px,5vw,72px);align-items:start}
.contact-side .sec-lead{margin-top:16px}
.contact-points{margin-top:28px;display:grid;gap:10px}
.contact-points li{background:#fff;border-radius:12px;padding:14px 18px;font-weight:700;color:var(--navy-900);font-size:15px;box-shadow:var(--shadow-1)}
.contact-alt{margin-top:28px;padding:20px 22px;border-radius:16px;background:var(--blue-50)}
.contact-alt p{font-size:14px;color:var(--ink-2);margin-bottom:12px}
.contact-visual{margin-top:28px}
.form{padding:clamp(24px,3.4vw,44px);box-shadow:var(--shadow-2)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 18px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field.full{grid-column:1/-1}
.field label,.field legend{font-size:14px;font-weight:700;color:var(--navy-900);display:flex;align-items:center;gap:8px}
.req,.opt{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.06em}
.req{background:var(--navy-900);color:#fff}
.opt{background:#EEF1F6;color:var(--ink-3)}
.field input[type=text],.field input[type=email],.field input[type=tel],.field select,.field textarea{width:100%;min-height:52px;padding:12px 16px;border-radius:12px;border:1px solid #CDD5E3;background:#fff;font-size:16px;line-height:1.5;transition:border-color .2s ease,box-shadow .2s ease;-webkit-appearance:none;appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.field textarea{min-height:132px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#9AA4B8}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue-600);box-shadow:0 0 0 4px rgba(36,87,214,.14)}
.field [aria-invalid=true]{border-color:#C8323C;box-shadow:0 0 0 4px rgba(200,50,60,.1)}
.field-error{font-size:13px;color:#B42A33;font-weight:700}
.field-note{font-size:12px;color:var(--ink-3)}
.agree{display:flex!important;align-items:flex-start!important;gap:10px!important;font-weight:400!important;font-size:14px!important;color:var(--ink-2)!important;line-height:1.7;cursor:pointer}
.agree input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--blue-600)}
.agree a{color:var(--blue-700);text-underline-offset:3px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-actions{margin-top:28px;display:flex;flex-direction:column;align-items:center;gap:12px}
.form-actions .btn{width:100%;max-width:360px;min-height:58px;font-size:16px}
.form-status{min-height:1.6em;font-size:14px;font-weight:700;color:var(--ink-2);text-align:center}
.form-status.err{color:#B42A33}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:560px){.form-grid{grid-template-columns:1fr}}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{background:var(--navy-950);color:rgba(255,255,255,.78);padding:clamp(48px,6vw,72px) 0 32px;font-size:14px}
.foot-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:start}
.foot-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.foot-brand .brand-orb{width:44px;height:44px}
.foot-brand .brand-type{height:24px}
.foot-co{margin-top:20px;line-height:1.8}
.foot-co b{display:block;color:#fff;font-size:15px}
.foot-links{display:grid;grid-template-columns:repeat(2,auto);gap:10px 40px}
.foot-links a{color:rgba(255,255,255,.82);text-decoration:none;font-weight:700;font-size:13px}
.foot-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.copy{margin-top:40px;padding-top:20px;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);font-size:12px;color:rgba(255,255,255,.5)}
@media (max-width:720px){.foot-grid{grid-template-columns:1fr}}

/* floating CTA (mobile) */
.float-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 -1px 0 var(--line),0 -10px 30px -18px rgba(11,26,63,.4);display:none;gap:8px;transform:translateY(110%);transition:transform .35s ease}
.float-cta .btn{flex:1;min-height:48px;padding:0 12px;font-size:14px}
.float-cta.show{transform:none}
@media (max-width:760px){.float-cta{display:flex}}
@media (prefers-reduced-motion:reduce){.float-cta{transition:none}}

/* =========================================================
   SUB PAGES (contact / downloads / thanks / 404)
   ========================================================= */
.page-hero{background:var(--navy-900) url("/services/rag-training/assets/images/hero-wave.webp") center/cover no-repeat;color:#fff;padding:calc(var(--header-h) + clamp(40px,6vw,72px)) 0 clamp(48px,6vw,80px)}
.page-hero .crumb{font-size:12px;color:rgba(255,255,255,.6);letter-spacing:.06em}
.page-hero .crumb a{color:rgba(255,255,255,.8);text-underline-offset:3px}
.page-hero h1{margin-top:14px;font-size:clamp(28px,3.6vw,42px);font-weight:700;letter-spacing:.06em;line-height:1.4}
.page-hero p{margin-top:14px;color:rgba(255,255,255,.8);max-width:42em;font-size:clamp(15px,1.4vw,17px)}
.page-main{padding:clamp(48px,6vw,88px) 0 var(--sec-y);background:var(--bg-alt)}
.page-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr);gap:clamp(28px,5vw,64px);align-items:start}
.page-side h2{font-size:18px;font-weight:700;color:var(--navy-900)}
@media (max-width:900px){.page-grid{grid-template-columns:minmax(0,1fr)}.page-side{order:2}}
.page-side{min-width:0}

.thanks{min-height:calc(100svh - 220px);display:flex;align-items:center;background:var(--bg-alt);padding:calc(var(--header-h) + 56px) 0 80px}
.thanks-card{max-width:760px;margin:0 auto;padding:clamp(28px,5vw,56px);text-align:center}
.thanks-card .sec-label{justify-content:center}
.thanks-card h1{font-size:clamp(24px,3vw,34px);font-weight:700;color:var(--navy-900);line-height:1.5}
.thanks-card p{margin-top:16px;color:var(--ink-2)}
.next-steps{margin:32px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:left;max-width:640px}
.next-steps li{background:var(--blue-50);border-radius:14px;padding:16px}
.next-steps .n{font-size:12px;font-weight:700;color:var(--blue-600);letter-spacing:.12em}
.next-steps b{display:block;margin-top:4px;color:var(--navy-900);font-size:15px}
.next-steps span{display:block;margin-top:4px;font-size:13px;color:var(--ink-2);line-height:1.7}
.thanks-acts{margin-top:32px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media (max-width:640px){.next-steps{grid-template-columns:1fr}}

/* =========================================================
   PRINT
   ========================================================= */
@media print{
  .site-header,.float-cta,.menu-toggle,.hero-cta,.hero-more,.kw,.cta-big .acts,.form,.support-act,.seminar-go,.cursor-fx{display:none!important}
  .logos-track{animation:none!important}.logos-track ul[aria-hidden]{display:none}.logos-track ul{flex-wrap:wrap;justify-content:center}
  .faq .ans{display:grid!important}
  .hero,.page-hero{padding:24px 0;min-height:0}
  .js .reveal{opacity:1!important;transform:none!important}
  .js .pain .dg-dots circle,.js .pain.in .dg-dots circle{opacity:1!important;animation:none!important}
  .js .feature-fig .ring-seg,.js .feature-fig .m-tile,.js .feature-fig .st-block{opacity:1!important;transform:none!important}
  .js .pain .donut-val{stroke-dashoffset:0!important;opacity:1!important}
  .section{padding:32px 0}
  .card,.feature-fig{box-shadow:none;outline:1px solid #ddd}
  .scroll-x .dg{min-width:0}
  body{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* line breaks only on narrow screens */
.sp-only{display:none}
@media (max-width:640px){.sp-only{display:inline}.pc-only{display:none}}
/* Japanese headings break at phrase boundaries where supported (Chrome/Edge) */
h1,h2,h3,h4,.sec-title,.hero-lead,.feature-title{word-break:auto-phrase;text-wrap:balance}


/* =========================================================
   2026-11-07 additions (patterns from the FDE training LP)
   ========================================================= */
.mini-label{display:block;font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--blue-600);margin-bottom:8px}

/* ---------- hero: key points, curriculum link, keyword band ---------- */
.hero{padding-bottom:calc(36px + 56px)}
.hero-points{margin-top:14px;display:flex;justify-content:center;flex-wrap:wrap;gap:0}
.hero-points li{display:flex;align-items:center;font-size:clamp(13px,1.2vw,15px);font-weight:700;letter-spacing:.08em;color:#fff}
.hero-points li+li::before{content:"";width:1px;height:14px;background:rgba(255,255,255,.4);margin:0 18px}
.hero-more{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:14px;font-weight:700;letter-spacing:.06em;color:rgba(255,255,255,.82);text-decoration:none;padding:6px 4px;border-bottom:1px solid rgba(255,255,255,.3)}
.hero-more span{font-size:18px;line-height:1}
.hero-more:hover{color:#fff;border-color:#fff}
.kw{position:absolute;left:0;right:0;bottom:0;height:56px;display:flex;align-items:center;background:rgba(6,15,38,.38);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.kw-view{width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 clamp(36px,8vw,140px),#000 calc(100% - clamp(36px,8vw,140px)),transparent);mask-image:linear-gradient(90deg,transparent,#000 clamp(36px,8vw,140px),#000 calc(100% - clamp(36px,8vw,140px)),transparent)}
.kw-track{display:flex;width:max-content;animation:kw-flow 60s linear infinite}
.kw-track ul{display:flex;flex:none;align-items:center}
.kw-track li{display:flex;align-items:center;font-size:13px;font-weight:700;letter-spacing:.06em;color:rgba(255,255,255,.72);white-space:nowrap}
.kw-track li::after{content:"";width:1px;height:11px;background:rgba(255,255,255,.25);margin:0 24px}
.kw:hover .kw-track,.hero.is-off .kw-track{animation-play-state:paused}
@keyframes kw-flow{to{transform:translate3d(-50%,0,0)}}
@media (max-width:640px){.hero{padding-bottom:calc(56px + 48px)}.kw{height:48px}.kw-track li{font-size:12px}.kw-track li::after{margin:0 18px}.hero-points li+li::before{margin:0 12px}}
@media (prefers-reduced-motion:reduce){
  .kw-track{animation:none}.kw-track ul[aria-hidden]{display:none}
  .kw-view{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.kw-track{padding:0 var(--gutter)}
}

/* ---------- trust strip: 200+ companies and client logos ---------- */
.trust{background:#fff;padding:clamp(24px,3vw,36px) 0;box-shadow:0 1px 0 var(--line)}
.trust-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.trust-stat{display:flex;align-items:center;gap:16px}
.trust-stat .v{font-size:clamp(36px,3.6vw,46px);font-weight:700;line-height:1;color:var(--navy-900);letter-spacing:0;white-space:nowrap}
.trust-stat .v small{font-size:.38em;margin-left:4px;letter-spacing:.04em}
.trust-stat .k{font-size:13px;font-weight:700;color:var(--ink-2);line-height:1.6}
.trust-stat .note{display:block;font-size:11px;font-weight:400;color:var(--ink-3)}
.logos{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(90deg,transparent,#000 48px,#000 calc(100% - 48px),transparent)}
.logos-track{display:flex;width:max-content;animation:kw-flow 42s linear infinite}
.logos-track ul{display:flex;flex:none;align-items:center}
.logos-track li{flex:none;padding:0 26px;display:flex;align-items:center;height:40px}
.logos-track img{max-width:none;height:auto}
.logos:hover .logos-track,.trust.is-off .logos-track{animation-play-state:paused}
@media (max-width:760px){.trust-grid{grid-template-columns:1fr;gap:16px}.trust-stat{justify-content:center}}
@media (prefers-reduced-motion:reduce){.logos{-webkit-mask-image:none;mask-image:none}.logos-track{animation:none;width:auto}.logos-track ul[aria-hidden]{display:none}.logos-track ul{flex-wrap:wrap;justify-content:center;row-gap:8px}}

/* ---------- curriculum: time ruler ---------- */
.ruler{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr);gap:16px;align-items:end;margin-bottom:clamp(28px,3.4vw,40px)}
.ruler-pre{background:#fff;border-radius:12px;box-shadow:inset 0 0 0 1px #C7D0E0;padding:10px 16px;min-height:60px;display:flex;flex-direction:column;justify-content:center;line-height:1.4}
.ruler-pre .k{font-size:11px;color:var(--ink-3);font-weight:700;letter-spacing:.08em}
.ruler-pre b{font-size:14px;color:var(--navy-900)}
.ruler-pre .s{font-size:11px;color:var(--ink-3)}
.ruler-ticks{position:relative;height:24px;margin:0 0 6px;box-shadow:inset 0 -1px 0 #C7D0E0}
.ruler-ticks span{position:absolute;bottom:6px;transform:translateX(-50%);font-size:12px;font-weight:700;color:var(--ink-3);letter-spacing:0}
.ruler-ticks span:first-child{transform:none}
.ruler-ticks span:last-child{transform:translateX(-100%)}
.ruler-ticks span::after{content:"";position:absolute;left:50%;bottom:-7px;width:1px;height:7px;background:#AEB9CC}
.ruler-ticks span:first-child::after{left:0}
.ruler-ticks span:last-child::after{left:auto;right:0}
.ruler-row{display:flex;gap:4px}
.ruler-seg{display:flex;align-items:center;gap:10px;min-height:60px;padding:8px 14px;border-radius:10px;color:#fff;font-size:13px;font-weight:700;line-height:1.35;min-width:0}
.ruler-seg .i{font-size:12px;opacity:.75}
.ruler-seg.s1{flex:2.5;background:var(--navy-800)}
.ruler-seg.s2{flex:2.5;background:var(--blue-700)}
.ruler-seg.s3{flex:1;background:var(--blue-500)}
@media (max-width:760px){
  .ruler{grid-template-columns:1fr;gap:10px}
  .ruler-pre{min-height:0}
  .ruler-seg{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:8px 10px;font-size:11.5px}
}

/* ---------- curriculum: outcomes + overview ---------- */
.po-grid{margin-top:clamp(20px,2.6vw,28px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(16px,2vw,24px)}
.outcomes,.overview{padding:clamp(24px,3vw,36px)}
.outcomes h3,.overview h3{font-size:clamp(18px,1.8vw,21px);font-weight:700;color:var(--navy-900);line-height:1.5}
.outcomes ol{margin-top:16px}
.outcomes li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:14px 0;box-shadow:inset 0 1px 0 var(--line);font-size:15px;font-weight:700;color:var(--navy-900);line-height:1.7}
.outcomes li .n{font-size:13px;color:var(--blue-600);padding-top:3px}
.overview dl{margin:16px 0 0}
.overview dl div{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;padding:14px 0;box-shadow:inset 0 1px 0 var(--line)}
.overview dt{font-size:14px;font-weight:700;color:var(--navy-900)}
.overview dd{margin:0;font-size:14px;color:var(--ink-2);line-height:1.8}
@media (max-width:900px){.po-grid{grid-template-columns:1fr}}

/* ---------- curriculum: big consultation block ---------- */
.cta-big{margin-top:clamp(40px,5vw,64px);border-radius:24px;background:var(--navy-900) url("/services/rag-training/assets/images/hero-wave.webp") center/cover no-repeat;color:#fff;padding:clamp(28px,4.4vw,56px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,4vw,56px);align-items:center}
.cta-big .mini-label{color:var(--blue-200)}
.cta-big h3{font-size:clamp(22px,2.6vw,32px);font-weight:700;line-height:1.5}
.cta-big-main>p{margin-top:14px;color:rgba(255,255,255,.8);font-size:15px}
.cta-big .acts{margin-top:28px;display:flex;gap:12px;flex-wrap:wrap}
.cta-big-card{background:#fff;color:var(--navy-900);border-radius:18px;padding:clamp(20px,2.6vw,30px);box-shadow:0 24px 50px -24px rgba(0,0,0,.6)}
.cta-big-card h4{font-size:17px;font-weight:700}
.cta-big .cta-big-card .mini-label{color:var(--blue-600)}
.cta-big-card dl{margin:12px 0 0}
.cta-big-card dl div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;padding:11px 0;box-shadow:inset 0 1px 0 var(--line)}
.cta-big-card dt{font-size:13px;font-weight:700;color:var(--blue-700)}
.cta-big-card dd{margin:0;font-size:14px;color:var(--ink-2);line-height:1.7}
@media (max-width:900px){.cta-big{grid-template-columns:1fr}}
@media (max-width:520px){.cta-big .acts{flex-direction:column}.cta-big .acts .btn{width:100%}}

/* ---------- 05 target ---------- */
.target-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(16px,2vw,24px)}
.target{padding:clamp(24px,3vw,36px);box-shadow:var(--shadow-2)}
.target h3{font-size:20px;font-weight:700;color:var(--navy-900)}
.target ul{margin-top:16px;display:grid;gap:8px}
.target li{background:var(--bg-alt);border-radius:10px;padding:12px 16px 12px 34px;position:relative;font-size:15px;font-weight:700;color:var(--navy-900);line-height:1.7}
.target li::before{content:"";position:absolute;left:16px;top:1.3em;width:6px;height:6px;border-radius:50%;background:var(--blue-600)}
@media (max-width:860px){.target-grid{grid-template-columns:1fr}}

/* ---------- 06 instructors: titles and book ---------- */
.teacher-titles{margin-top:12px;display:grid;gap:2px}
.teacher-titles li{font-size:12px;color:var(--ink-3);font-weight:700;line-height:1.6}
.book{max-width:1000px;margin:clamp(20px,2.6vw,28px) auto 0;display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:clamp(20px,4vw,48px);padding:clamp(24px,3.4vw,40px);align-items:center}
.book-cover{width:100%;height:auto;mix-blend-mode:multiply}
.book h3{font-size:14px;font-weight:700;color:var(--ink-3);letter-spacing:.08em}
.book-title{margin-top:6px;font-size:clamp(18px,2vw,22px);font-weight:700;color:var(--navy-900);line-height:1.55}
.book-meta{margin-top:6px;font-size:13px;color:var(--ink-3)}
.book-gift{margin-top:14px;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;background:var(--blue-50);font-size:14px;font-weight:700;color:var(--navy-900);line-height:1.7}
.book-gift .tag{flex:none;display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;background:var(--navy-900);color:#fff;font-size:11px;letter-spacing:.14em}
.book-gift b{color:var(--blue-700);font-size:1.15em}
.book-text{margin-top:14px;font-size:14px;color:var(--ink-2);line-height:1.85}
.book-toc{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.book-toc li{display:flex;align-items:center;gap:10px;border-radius:10px;padding:10px 14px;background:#F1F3F7;color:var(--ink-3);font-size:13px;font-weight:700;line-height:1.5}
.book-toc li .n{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#fff;font-size:12px}
.book-toc li.hit{background:var(--blue-50);color:var(--navy-900)}
.book-toc li.hit .n{background:var(--navy-900);color:#fff}
.book-legend{margin-top:10px;font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:8px}
.book-legend .sw{width:14px;height:14px;border-radius:4px;background:var(--blue-50);box-shadow:inset 0 0 0 1px var(--blue-200)}
@media (max-width:640px){.book{grid-template-columns:1fr}.book-cover{max-width:160px;margin:0 auto}.book-toc{grid-template-columns:1fr}}

/* ---------- 07 flow ---------- */
.flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;counter-reset:none}
.flow li{padding:22px 20px;position:relative;box-shadow:var(--shadow-2)}
.flow .step{font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--blue-600)}
.flow h3{margin-top:6px;font-size:17px;font-weight:700;color:var(--navy-900);line-height:1.5}
.flow p{margin-top:8px;font-size:13.5px;color:var(--ink-2);line-height:1.8}
@media (max-width:1020px){.flow{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.flow{grid-template-columns:1fr}}

/* ---------- 08 FAQ (accordion) ---------- */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:clamp(28px,5vw,72px);align-items:start}
.faq-list{display:grid;gap:12px}
.faq{padding:0;overflow:hidden}
.faq summary{display:grid;grid-template-columns:32px minmax(0,1fr) 18px;gap:14px;align-items:center;padding:18px 22px;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover .tx{color:var(--blue-700)}
.faq .mk{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;line-height:1}
.faq summary .mk{background:var(--navy-900);color:#fff}
.faq .tx{font-weight:700;color:var(--navy-900);font-size:15.5px;line-height:1.7;transition:color .2s ease}
.faq .pm{position:relative;width:18px;height:18px}
.faq .pm::before,.faq .pm::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;margin:-1px 0 0 -7px;background:var(--ink-3);border-radius:1px;transition:transform .25s ease}
.faq .pm::after{transform:rotate(90deg)}
.faq[open] .pm::after{transform:rotate(0)}
.faq .ans{display:grid;grid-template-columns:32px minmax(0,1fr);gap:14px;padding:0 22px 20px}
.faq .ans .mk{background:var(--blue-50);color:var(--blue-700)}
.faq .ans p{color:var(--ink-2);font-size:15px;line-height:1.85;padding-top:3px}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.faq .pm::before,.faq .pm::after{transition:none}}

/* ---------- seminar card ---------- */
.seminar{margin-top:clamp(20px,2.6vw,28px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:clamp(22px,3vw,34px) clamp(22px,3.4vw,40px);border-radius:20px;background:var(--blue-50);color:inherit;text-decoration:none;transition:background-color .2s ease}
.seminar:hover{background:var(--blue-100)}
.seminar h3{font-size:clamp(19px,2vw,23px);font-weight:700;color:var(--navy-900);line-height:1.5}
.seminar-main>p:last-child{margin-top:6px;font-size:14px;color:var(--ink-2)}
.seminar-go{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-height:56px;padding:6px 26px;border-radius:999px;background:var(--navy-900);color:#fff;font-size:14px;font-weight:700;letter-spacing:.04em;line-height:1.35;white-space:nowrap;transition:background-color .2s ease}
.seminar-go .sub{font-size:10px;letter-spacing:.14em;opacity:.7}
.seminar:hover .seminar-go{background:var(--blue-700)}
@media (max-width:760px){.seminar{grid-template-columns:1fr}.seminar-go{width:100%}}

/* short laptop screens (e.g. 1366x768): keep the keyword band inside the first view */
@media (min-width:641px) and (max-height:820px){
  .hero{padding-top:calc(var(--header-h) + 16px)}
  .hero-pill{min-height:32px;font-size:14px}
  .hero-title{margin-top:16px}
  .hero-type{height:clamp(36px,5.4vw,76px)}
  .hero-orb{width:clamp(56px,8vw,112px)}
  .hero-lead{margin-top:14px;font-size:clamp(16px,1.6vw,20px)}
  .hero-sub{margin-top:8px}
  .hero-cta{margin-top:18px}
  .hero-cta .btn{min-height:48px}
  .hero-more{margin-top:8px}
  .hero-stats{margin-top:20px}
  .hero-stats .v{font-size:clamp(28px,3.4vw,40px)}
}

/* sub pages: the same track record as the landing page */
.side-trust{margin-top:24px;background:#fff;border-radius:16px;padding:20px 22px;box-shadow:var(--shadow-1)}
.side-trust .trust-stat .v{font-size:34px}
/* one row that flows sideways, the same as the strip under the hero (.logos / .logos-track) */
.side-logos{margin:14px -22px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 32px,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,transparent,#000 32px,#000 calc(100% - 32px),transparent)}
.side-logos .logos-track{animation-duration:36s}
.side-logos .logos-track li{padding:0 20px;height:36px}
.side-trust.is-off .logos-track{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.side-logos{margin:14px 0 0;-webkit-mask-image:none;mask-image:none}.side-logos .logos-track li{padding:0 12px}}
@media print{.side-logos{-webkit-mask-image:none;mask-image:none;margin:14px 0 0}}
@media (max-width:640px){
  .flow{gap:8px}
  .flow li{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:12px;padding:16px 18px;box-shadow:var(--shadow-1)}
  .flow .step{grid-row:1/3;padding-top:4px;letter-spacing:.1em}
  .flow h3{margin-top:0;font-size:16px}
  .flow p{margin-top:2px;font-size:13px}
}

/* mouse particles: drawn by site.js on this layer above the page and below the header. It never takes clicks,
   and it is left out on touch screens, with reduced motion and in print */
.cursor-fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:60}
