/* ============================================================
   ryugakuassistant.com — shared styles for every page
   Brand: orange #E4914C + slate #39485C, Noto Sans JP
   Action color #C2531A is used ONLY for things you can click to
   convert, and passes 4.5:1 contrast with white text.
   ============================================================ */
:root{
  --orange:#e4914c;        /* brand: header, accents, icons */
  --action:#c2531a;        /* primary buttons (4.6:1 with white) */
  --action-hover:#a84716;
  --action-ink:#a84716;    /* orange-toned text on light backgrounds (5.8:1) */
  --slate:#39485c;         /* text (9.3:1) */
  --slate-2:#5a6779;       /* secondary text (5.7:1) */
  --slate-deep:#2b3645;
  --line-green:#00833d;    /* LINE button, darkened so white text passes 4.5:1 */
  --paper:#fff8f2;         /* warm section tint */
  --rule:#ecdfd3;
  --rule-cool:#e1e5ea;
  --white:#fff;
  --font:"Noto Sans JP","Noto Sans CJK JP","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font);font-size:15px;line-height:1.85;letter-spacing:.03em;color:var(--slate);background:var(--white);word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.4;letter-spacing:.02em;font-feature-settings:"palt";text-wrap:balance}
p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
:focus-visible{outline:3px solid var(--action);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;z-index:300;padding:8px 16px;border-radius:6px;background:#fff;color:var(--slate)}
.skip:focus{top:8px}

.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 20px}
.sec{padding:56px 0}
.sec--paper{background:var(--paper)}
.sec-head{max-width:720px;margin:0 auto 28px;text-align:center}
.sec-head h2{font-size:clamp(22px,5.6vw,32px)}
.sec-head p{margin-top:10px;color:var(--slate-2)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:14px 18px;border:0;border-radius:6px;font:inherit;font-size:clamp(15px,4.4vw,17px);font-weight:700;letter-spacing:.04em;line-height:1.35;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.btn:active{transform:translateY(1px)}
.btn i{font-size:1.1em}
.btn-main{background:var(--action);color:#fff;box-shadow:0 10px 20px -10px rgba(194,83,26,.7)}
.btn-main:hover{background:var(--action-hover)}
.btn-line{background:var(--line-green);color:#fff}
.btn-line:hover{background:#006b32}
.btn-quiet{background:#fff;color:var(--slate);border:1.5px solid var(--rule-cool)}
.btn-quiet:hover{border-color:var(--slate)}
.btn-quiet .fa-line{color:#06c755}
.cta-block{margin-top:36px;text-align:center}
.cta-block .cta-group{margin-top:0}
.page-hero .cta-block{max-width:520px;margin:22px auto 0}
.cta-micro{margin-top:10px;font-size:13px;color:var(--slate-2)}

/* CTA group: brochure first, then the two free consultations */
.cta-group{display:grid;gap:10px;margin-top:22px}
.cta-group .btn-main{width:100%}
.cta-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cta-pair .btn{min-height:48px;padding:10px 12px;font-size:14.5px}
.cta-note{font-size:12.5px;text-align:center;color:var(--slate-2)}
.btn-slate{background:var(--slate);color:#fff}
.btn-slate:hover{background:#2e3a4b}

/* ---------- Header ---------- */
.hdr{position:relative;z-index:50;background:var(--orange)}
.hdr :focus-visible{outline-color:#fff}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px}
.logo img{width:clamp(200px,58vw,250px)}
.nav ul{display:flex;align-items:center;gap:2px}
.nav a{display:block;padding:8px 12px;color:#fff;font-size:14.5px;font-weight:700;letter-spacing:.04em;text-decoration:none;white-space:nowrap}
.nav a:hover{text-decoration:underline;text-underline-offset:6px}
.nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px}
.nav .nav-cta{margin-left:10px;padding:9px 18px;border-radius:999px;background:#fff;color:var(--action-ink)}
.nav .nav-cta:hover{text-decoration:none;background:#fff3e8}
.menu-btn{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;background:none;color:#fff;cursor:pointer}
.bars,.bars::before,.bars::after{display:block;width:20px;height:2px;border-radius:1px;background:currentColor;transition:transform .15s,background-color .15s}
.bars{position:relative}
.bars::before,.bars::after{content:"";position:absolute;left:0}
.bars::before{top:-6px}.bars::after{top:6px}
.menu-btn[aria-expanded="true"] .bars{background:transparent}
.menu-btn[aria-expanded="true"] .bars::before{top:0;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars::after{top:0;transform:rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{background:var(--paper)}
.hero-grid{display:grid}
.hero-media{position:relative;z-index:0;order:-1;margin:0 -20px;background:none}
.hero-media img{width:100%;height:auto;aspect-ratio:1640/930;object-fit:cover;object-position:50% 100%;color:transparent;-webkit-mask-image:linear-gradient(180deg,#000 82%,transparent 100%);mask-image:linear-gradient(180deg,#000 82%,transparent 100%)}
.no-photo .hero-media{display:none}
.hero-copy{padding:24px 0 34px}
.hero-label{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--action-ink)}
.hero-label::before{content:"";width:18px;height:2px;background:currentColor}
.hero h1{margin-top:10px;font-size:clamp(26px,7.2vw,46px);font-weight:900;line-height:1.35}
.hero-lead{margin-top:12px;font-size:clamp(14.5px,3.9vw,17px);line-height:1.8}
.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:24px 0 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.hero-stats div{padding:12px 6px;text-align:center}
.hero-stats div + div{border-left:1px solid var(--rule)}
.hero-stats dt{font-size:11px;font-weight:700;line-height:1.4;color:var(--slate-2)}
.hero-stats dd{margin:4px 0 0;font-size:clamp(20px,5.6vw,26px);font-weight:900;line-height:1.2;color:var(--action-ink)}

/* ---------- Benefits: the five reasons, shown together ---------- */
.bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tile{position:relative;display:flex;flex-direction:column;min-width:0;padding:20px 18px 22px;border:1px solid var(--rule);border-radius:16px;background:#fff}
.tile--cost,.tile--salary,.tile--jobs{grid-column:span 2}
.tile-label{font-size:14px;font-weight:700;letter-spacing:.06em;color:var(--slate-2)}
.tile-figure{margin-top:4px;font-size:clamp(44px,12vw,64px);font-weight:900;line-height:1.1;letter-spacing:0;font-feature-settings:"palt"}
.tile-figure .unit{margin:0 .06em;font-size:.42em;font-weight:700;letter-spacing:.02em}
.tile-source{margin-top:4px;font-size:12px;font-weight:700;opacity:.9}
.tile-text{margin-top:12px;font-size:13.5px;line-height:1.75;color:var(--slate-2)}
.tile-icon{margin-bottom:10px;font-size:24px}
.meter{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 12px;margin-top:16px;font-size:12.5px;font-weight:700}
.meter-row{display:contents}
.meter-bar{height:12px;border-radius:6px;background:#f1ebe5}
.meter-bar i{display:block;width:var(--w);height:100%;border-radius:6px;background:#b8c1cc}
.meter-row.is-us .meter-bar i{background:var(--orange)}
.meter b{font-size:14px;font-weight:900;color:var(--action-ink)}
.js .meter-bar i{width:0;transition:width 1s cubic-bezier(.2,.7,.2,1)}
.js .bento.is-in .meter-bar i{width:var(--w)}
.js .bento.is-in .is-us .meter-bar i{transition-delay:.45s}
.tile--rank{border-color:var(--slate);background:var(--slate);color:#fff}
.tile--rank .tile-label,.tile--rank .tile-text{color:rgba(255,255,255,.88)}
.tile--rank .tile-icon{color:var(--orange)}
.tile--refund{border-color:var(--orange);background:var(--orange);color:#242e3b}
.tile--refund .tile-label,.tile--refund .tile-text{color:#242e3b}
.tile--rank .tile-figure,.tile--refund .tile-figure{font-size:clamp(30px,8vw,46px)}
.tile--rank .tile-figure .unit{font-size:.55em}
.tile--jobs{background:var(--paper)}
.tile-lead{margin-top:4px;font-size:clamp(18px,4.8vw,22px);font-weight:900;line-height:1.4}
.jobs-videos,.profile-videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:18px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chips li{padding:5px 14px;border:1px solid var(--rule);border-radius:999px;background:#fff;font-size:14px;font-weight:700}
.all-jobs{margin-top:16px}
.all-jobs summary{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:var(--action-ink);cursor:pointer;list-style:none}
.all-jobs summary::-webkit-details-marker{display:none}
.all-jobs summary i{font-size:11px;transition:transform .2s}
.all-jobs[open] summary i{transform:rotate(180deg)}
.jobs-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px;margin-top:10px;font-size:13px;line-height:1.9}

/* ---------- Thank-you / resource page ---------- */
.tp-hero{padding:32px 0 8px;text-align:center}
.tp-hero .lead{max-width:640px;margin:12px auto 0}
.tp-note{margin-top:14px;font-size:13.5px;color:var(--slate-2)}
.dl-cards{display:grid;gap:14px;max-width:820px;margin:26px auto 0;text-align:left}
.dl-card{display:flex;flex-direction:column;padding:20px;border:1px solid var(--rule);border-top:6px solid var(--orange);border-radius:16px;background:#fff}
.dl-card-plan{font-size:12.5px;font-weight:700;color:var(--action-ink)}
.dl-card h2{margin-top:4px;font-size:clamp(18px,4.6vw,21px)}
.dl-card > p:not(.dl-card-plan){flex:1;margin-top:8px;font-size:14px;color:var(--slate-2)}
.dl-card .btn{width:100%;margin-top:16px}
.tp-mid{text-align:center}
.tp-mid .final-lead{max-width:640px;margin-left:auto;margin-right:auto}
.dl-box-lead{margin-top:8px;font-size:14px;color:var(--slate-2)}
.dl-box .plan-list{margin:16px 0 20px}
.dl-box .btn{width:100%}
.tp-jump{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:860px;margin:28px auto 0}
.tp-jump a{padding:7px 14px;border:1px solid var(--rule);border-radius:999px;background:#fff;font-size:13px;font-weight:700;text-decoration:none;color:var(--slate)}
.tp-jump a:hover{border-color:var(--orange);color:var(--action-ink)}
.tp-cat{padding:36px 0}
.tp-cat h2{font-size:clamp(19px,4.8vw,24px)}
.tp-sub{margin-top:26px}
.tp-sub:first-of-type{margin-top:18px}
.tp-sub h3{font-size:15.5px;color:var(--slate-2)}
.tp-videos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin-top:14px}
.tp-videos .video-cap{margin-top:8px;font-size:13px;font-weight:500;line-height:1.5;text-align:left}

/* ---------- Application thank-you page (/thank-you-page/) ---------- */
.ap-hero-line{margin-top:20px}
.ap{padding-top:20px}
.ap-wrap{max-width:880px}
.ap-step + .ap-step{margin-top:44px}
.ap-step h2{display:flex;align-items:center;gap:12px;font-size:clamp(18px,4.6vw,22px)}
.ap-num{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--orange);color:#242e3b;font-size:16px;font-weight:900}
.ap-step > p{margin-top:12px;color:var(--slate-2)}
.ap-step h2 + p{margin-top:16px}
.ap-intro{font-size:14.5px}
.ap-note{font-size:13.5px}
.ap-card{margin-top:16px;border:1px solid var(--rule);border-radius:14px;background:#fff}
.ap-banks{display:grid;gap:16px;margin-top:16px}
.ap-banks .ap-card{margin-top:0}
.ap-bank-card{overflow:hidden;border-top-width:6px}
.ap-bank-card--yucho{border-top-color:var(--orange)}
.ap-bank-card--other{border-top-color:var(--slate)}
.ap-bank-head{display:flex;align-items:center;gap:14px;padding:18px 20px 0}
.ap-bank-tag{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:12px;font-size:20px;font-weight:900}
.ap-bank-card--yucho .ap-bank-tag{background:var(--orange);color:#242e3b}
.ap-bank-card--other .ap-bank-tag{background:var(--slate);color:#fff}
.ap-bank-from{font-size:12.5px;font-weight:700;color:var(--slate-2)}
.ap-bank-head h3{font-size:18px;line-height:1.4}
.ap-bank{display:grid;margin:14px 0 0;padding:0 20px 16px}
.ap-bank div{display:grid;grid-template-columns:6.5em 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--rule-cool)}
.ap-bank dt{font-size:13.5px;font-weight:700;color:var(--slate-2)}
.ap-bank dd{margin:0;font-weight:700;font-feature-settings:"tnum"}
.ap-body{padding:18px 20px 20px}
.ap-price{width:100%;border-collapse:collapse;font-size:15px}
.ap-price caption{padding-bottom:6px;font-size:13px;font-weight:700;text-align:left;color:var(--slate-2)}
.ap-price th,.ap-price td{padding:12px 0;border-top:1px solid var(--rule-cool);line-height:1.6}
.ap-price th{font-weight:700;text-align:left}
.ap-price td{padding-left:12px;font-size:16px;font-weight:900;text-align:right;white-space:nowrap;color:var(--action-ink);font-feature-settings:"tnum"}
.ap-sub{margin-top:24px;padding-top:20px;border-top:2px solid var(--rule);font-size:16px}
.ap-case{margin-top:16px}
.ap-case + .ap-case{margin-top:18px;padding-top:18px;border-top:1px solid var(--rule-cool)}
.ap-case h4{font-size:14.5px;line-height:1.6}
.ap-case p{margin-top:8px;font-size:14.5px}
.ap-pay{display:grid;gap:8px;margin-top:10px;padding:14px 16px;border-radius:10px;background:var(--paper);font-size:14.5px}
.ap-pay b{color:var(--action-ink)}
@media (min-width:768px){
  .ap-banks{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- Course application pages (/school/clp/...) ---------- */
.clp-conds{display:grid;padding:6px 20px}
.clp-conds > li{display:grid;grid-template-columns:22px 1fr;gap:12px;padding:14px 0;font-size:15px;line-height:1.7}
.clp-conds > li + li{border-top:1px solid var(--rule-cool)}
.clp-conds > li > i{margin-top:3px;font-size:20px;color:var(--orange)}
.clp-scores{display:grid;gap:8px;margin-top:10px}
.clp-scores > span{padding:10px 14px;border-radius:10px;background:var(--paper);font-size:14px;font-weight:700}
.clp-scores small{font-size:12.5px;font-weight:500;color:var(--slate-2)}
.clp-cards{display:grid;gap:16px;margin-top:16px}
.clp-cards .ap-card{margin-top:0}
.clp-card{display:flex;flex-direction:column;align-items:center;padding:24px 20px;text-align:center}
.clp-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--paper);color:var(--action-ink);font-size:24px}
.clp-card h3{margin-top:12px;font-size:17px}
.clp-card p{margin-top:8px;font-size:14px;color:var(--slate-2)}
.clp-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:auto;padding-top:16px}
.clp-btns .btn{min-height:48px;font-size:15px}
.clp-discounts{margin-top:16px}
.clp-form{margin-top:20px}
.ap-line{margin-top:44px;padding:24px 20px;border:1px solid var(--rule);border-radius:16px;text-align:center}
.ap-line p{font-weight:700}
.ap-line .btn{margin-top:14px}
.ap-mail,.ap-line .ap-mail{margin-top:16px;font-size:14px;font-weight:400;color:var(--slate-2)}
.ap-mail a{font-weight:700;color:var(--action-ink);text-underline-offset:4px}
@media (min-width:768px){
  .clp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- Terms page (/terms/) ---------- */
.terms{padding-top:16px}
.terms-wrap{max-width:800px}
.terms-part{padding:24px 20px 28px;border:1px solid var(--rule);border-radius:16px;background:#fff}
.terms-part + .terms-part{margin-top:28px}
.terms-title{padding-bottom:14px;border-bottom:3px solid var(--orange);font-size:clamp(19px,4.8vw,23px)}
.terms-toc{margin-bottom:20px;padding:16px 20px;border:1px solid var(--rule);border-radius:16px;background:#fff}
.terms-toc p{font-weight:700;font-size:14.5px}
.terms-toc ul{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.terms-toc a{display:inline-block;padding:6px 14px;border:1px solid var(--rule);border-radius:999px;background:var(--paper);color:var(--action-ink);font-size:14px;font-weight:700;text-decoration:none}
.terms-plan{scroll-margin-top:90px}
.terms-part{scroll-margin-top:90px}
.terms-plan + .terms-plan{margin-top:40px}
.terms-plan-title{margin-top:26px;padding:10px 14px;border-radius:10px;background:var(--slate-deep);color:#fff;font-size:18px;line-height:1.4}
.terms-part .t-sec{margin-top:30px;padding-left:12px;border-left:4px solid var(--orange);font-size:16.5px;line-height:1.5}
.terms-part .t-sub{margin-top:22px;padding:6px 12px;border-radius:8px;background:var(--paper);font-size:15.5px}
.terms-part .t-small{margin:16px 0 0;line-height:1.5;font-size:14.5px;color:var(--slate)}
.terms-part p{margin-top:10px;font-size:14.5px;line-height:1.9}
.terms-part ul{display:grid;gap:6px;margin-top:10px;padding-left:1.2em;list-style:disc;font-size:14.5px;line-height:1.8}
.terms-part ul li::marker{color:var(--orange)}
.terms-part a{color:var(--action-ink)}
.terms-rev{margin-top:24px!important;text-align:right;color:var(--slate-2)}

/* ---------- Videos ---------- */
.video-row{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:14px;margin:0 -20px;padding:0 20px 6px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:20px}
.video-row > *{scroll-snap-align:start}
.video{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:10px;background:#1d2530}
.video-btn{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer}
.video-btn img{width:100%;height:100%;object-fit:cover}
.play{position:absolute;left:50%;top:50%;width:clamp(30px,20%,58px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:rgba(43,54,69,.6);transition:background-color .15s}
.play::after{content:"";position:absolute;left:39%;top:31%;width:31%;height:38%;background:#fff;clip-path:polygon(0 0,100% 50%,0 100%)}
.video-btn:hover .play,.video-btn:focus-visible .play{background:var(--action)}
.doc-video{margin-top:12px}
.vmodal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:rgba(15,20,28,.9)}
.vmodal-box{position:relative;width:min(960px,100%)}
.vmodal-frame{aspect-ratio:16/9;overflow:hidden;border-radius:10px;background:#000}
.vmodal-frame iframe{display:block;width:100%;height:100%;border:0}
.vmodal-close{position:absolute;right:0;bottom:calc(100% + 10px);width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.vmodal-close:hover,.vmodal-close:focus-visible{background:rgba(255,255,255,.3)}
.vmodal-open,.vmodal-open body{overflow:hidden}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-scroller{position:relative}
.video-nav{display:none}
.vcard-desc{display:flex;align-items:center;gap:8px;min-height:1.5em;margin-bottom:10px;font-size:14.5px;font-weight:700;line-height:1.5}
.vcard-desc::before{content:"";flex:none;width:14px;height:2px;background:var(--orange)}
.vcard-desc:empty::before{content:none}
.video-cap{margin-top:10px;font-size:14px;font-weight:700;text-align:center}

/* ---------- Team ---------- */
.team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:520px;margin:0 auto}
.member{text-align:center}
.member img{width:clamp(120px,32vw,190px);aspect-ratio:1;object-fit:cover;margin:0 auto 14px;border-radius:50%;background:var(--paper)}
.member h3{font-size:clamp(16px,4.3vw,21px)}
.member-role{margin-top:4px;font-size:clamp(12px,3.2vw,14px);line-height:1.7;color:var(--slate-2)}
.member-cred{display:inline-block;margin-top:10px;padding:4px 12px;border-radius:999px;background:var(--paper);font-size:clamp(11.5px,3.1vw,13px);font-weight:700;color:var(--action-ink)}

/* ---------- Schools ---------- */
.note{display:flex;gap:14px;align-items:flex-start;max-width:760px;margin:0 auto 32px;padding:16px 18px;border:1px solid var(--rule);border-radius:12px;background:var(--paper)}
.note i{margin-top:3px;font-size:22px;color:var(--action)}
.note strong{display:block;font-size:16px}
.note p{font-size:14.5px}
.school-group + .school-group{margin-top:32px}
.group-title{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:16px}
.group-title::before{content:"";width:18px;height:2px;background:var(--orange)}
.schools{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.school{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;align-items:start;padding:16px;border:1px solid var(--rule-cool);border-radius:12px;background:#fff}
.school img{width:72px;height:72px;object-fit:contain}
.school h4{font-size:17px}
.school-level{margin-top:2px;font-size:13.5px;color:var(--slate-2)}
.reqs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.reqs li{padding:3px 10px;border-radius:999px;background:#f2f4f7;font-size:12.5px;font-weight:500;line-height:1.6}
.text-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--action-ink);text-underline-offset:5px}
.more{margin-top:24px;text-align:center}

/* ---------- Plans ---------- */
.plans{display:grid;gap:18px}
.plan{display:flex;flex-direction:column;padding:22px 20px 24px;border:1px solid var(--rule);border-radius:16px;background:#fff}
.plan h3{margin-bottom:16px;font-size:clamp(19px,5vw,23px)}
.plan-alias{font-size:.72em;font-weight:500;opacity:.8;white-space:nowrap}
.plan .video{margin-bottom:18px}
.plan-list{display:grid;gap:10px;margin-bottom:22px}
.plan-list li{display:flex;gap:10px;font-size:15px;line-height:1.6}
.plan-list i{margin-top:4px;color:var(--action)}
.plan-list .all{font-weight:700}
.plan-actions{display:grid;gap:10px;margin-top:auto}
.plan-actions .btn{width:100%}
.plan-actions .text-link{justify-self:center;font-size:14px}
.plan--academy .text-link{color:#fff}
.plan-badge{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;margin-bottom:22px;padding:14px 16px;border:1.5px solid var(--orange);border-radius:12px;background:var(--paper)}
.plan-badge > i{font-size:28px;color:var(--action)}
.plan-badge strong{display:block;font-size:17px;font-weight:900;line-height:1.4;color:var(--action-ink)}
.plan-badge span{display:block;margin-top:2px;font-size:13.5px;line-height:1.6}
.plan-badge .plan-badge-note{margin-top:4px;font-weight:700;color:var(--action-ink)}
.plan--academy .plan-badge{background:rgba(255,255,255,.08)}
.plan--academy .plan-badge > i{color:var(--orange)}
.plan--academy .plan-badge strong{color:#ffd2b3}
.plan--academy .plan-badge span{color:rgba(255,255,255,.92)}
.plan--academy{border-color:var(--slate);background:var(--slate);color:#fff}
.plan--academy :focus-visible{outline-color:#fff}
.plan--academy .plan-list i{color:var(--orange)}
.plan--academy .btn-quiet{border-color:#fff}
.plan-bundle{margin:0 0 22px;border:1.5px solid var(--orange);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.06)}
.plan-bundle-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:12px 16px;background:rgba(255,255,255,.08);border-bottom:1px solid rgba(228,145,76,.5)}
.plan-bundle-title{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:900;color:#ffd2b3}
.plan-bundle-title i{font-size:12px;color:var(--orange)}
.plan-bundle .plan-list{margin:0;padding:14px 16px}
.plan-bundle + .plan-bundle{margin-top:-10px}
.compare{margin-top:14px;border:1px solid var(--rule);border-radius:12px;background:#fff}
.compare summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;font-weight:700;cursor:pointer;list-style:none}
.compare summary::-webkit-details-marker{display:none}
.compare summary i{transition:transform .2s}
.compare[open] summary i{transform:rotate(180deg)}
.table-scroll{overflow-x:auto;padding:0 12px 16px}
.table-scroll table{width:100%;min-width:520px;border-collapse:collapse;font-size:14px}
.table-scroll th,.table-scroll td{padding:10px 12px;border-bottom:1px solid var(--rule-cool);line-height:1.6;text-align:center}
.table-scroll thead th{background:var(--slate);color:#fff}
.table-scroll tbody th{font-weight:500;text-align:left}
.table-scroll .yes{color:var(--action);font-size:18px;font-weight:900}
.table-scroll .no{color:#8b95a3}

/* ---------- Steps (a real sequence, so numbered) ---------- */
.steps{display:grid;max-width:960px;margin:0 auto}
.step{position:relative;display:grid;grid-template-columns:48px 1fr;gap:16px;padding-bottom:26px}
.step:last-child{padding-bottom:0}
.step::before{content:"";position:absolute;left:23px;top:52px;bottom:4px;width:2px;background:var(--rule)}
.step:last-child::before{content:none}
.step-num{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--slate);color:#fff;font-size:18px;font-weight:900}
.step h3{margin-top:10px;font-size:17px}
.step p{margin-top:4px;font-size:14.5px;color:var(--slate-2)}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:10px;max-width:800px;margin:0 auto}
.qa{border:1px solid var(--rule);border-radius:12px;background:#fff}
.qa summary{display:grid;grid-template-columns:24px 1fr 16px;gap:12px;align-items:start;padding:16px 18px;font-size:15.5px;font-weight:700;line-height:1.6;cursor:pointer;list-style:none}
.qa summary::-webkit-details-marker{display:none}
.qa summary::before{content:"Q";font-weight:900;color:var(--action-ink)}
.qa summary i{margin-top:6px;color:var(--slate-2);transition:transform .2s}
.qa[open] summary i{transform:rotate(180deg)}
.qa-a{display:grid;grid-template-columns:24px 1fr;gap:12px;padding:0 18px 18px;font-size:14.5px}
.qa-a::before{content:"A";font-weight:900;color:var(--slate-2)}

/* ---------- Final: e-book form + consult ---------- */
.final{background:var(--slate);color:#fff}
.final :focus-visible{outline-color:#fff}
.final-grid{display:grid;gap:28px}
.final h2{font-size:clamp(23px,5.8vw,34px)}
.final-lead{margin-top:12px;color:rgba(255,255,255,.9)}
.book-points{display:grid;gap:6px;margin-top:16px}
.book-points li{display:flex;gap:10px;align-items:baseline;font-weight:700}
.book-points i{color:var(--orange)}
.dl-combined{display:grid;gap:22px;max-width:980px;margin:0 auto}
.dl-combined h2{font-size:clamp(22px,5.4vw,28px)}
.book-sets{display:flex;justify-content:center;gap:16px;padding:20px 14px 14px;border-radius:12px;background:var(--paper)}
.book-fan{flex:1 1 0;min-width:0;max-width:220px;color:var(--slate);text-decoration:none}
.book-fan-imgs{display:block;position:relative;aspect-ratio:1/.98}
.book-fan img{position:absolute;top:5%;width:58%;height:auto;border-radius:3px;box-shadow:0 12px 22px -10px rgba(43,54,69,.5);transition:transform .25s ease}
.book-fan img:first-child{right:1%;transform:rotate(6deg)}
.book-fan img:last-child{left:1%;transform:rotate(-5deg)}
.book-fan:hover img:first-child{transform:rotate(9deg) translateX(5%)}
.book-fan:hover img:last-child{transform:rotate(-8deg) translateX(-5%)}
.book-fan-cap{display:block;margin-top:8px;font-size:13.5px;font-weight:700;text-align:center}
.book-fan:hover .book-fan-cap{text-decoration:underline}
.form-card{padding:24px 20px;border-top:6px solid var(--orange);border-radius:16px;background:#fff;color:var(--slate)}
.form-card :focus-visible{outline-color:var(--action)}
.form-card h3{font-size:20px}
.hs-loading{margin-top:12px;font-size:13.5px;color:var(--slate-2)}
.hs-form-frame{min-height:360px;margin-top:8px}
.consult{margin-top:40px;padding-top:32px;border-top:1px solid rgba(255,255,255,.18);text-align:center}
.consult h3{font-size:19px}
.consult > p{margin-top:6px;font-size:14px;color:rgba(255,255,255,.88)}
.consult-btns{display:grid;gap:12px;max-width:720px;margin:18px auto 0}
.btn-video{background:#fff;color:var(--slate)}
.btn-video:hover{background:#eef1f4}
.consult .text-link{margin-top:16px;color:#fff}

/* ---------- Footer ---------- */
.ftr{padding:36px 0 28px;background:var(--slate-deep);color:#fff;text-align:center}
.ftr :focus-visible{outline-color:#fff}
.ftr-logo img{width:200px;margin:0 auto}
.ftr-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-top:18px;font-size:13.5px}
.ftr-nav a{text-decoration:none}
.ftr-nav a:hover{text-decoration:underline}
.social{display:flex;justify-content:center;gap:12px;margin-top:18px}
.social a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.12);font-size:17px;text-decoration:none}
.social a:hover{background:rgba(255,255,255,.24)}
.operator{margin-top:18px;font-size:13px}
.disclaimer{margin-top:6px;font-size:11.5px;line-height:1.7;opacity:.85}

/* ---------- Sticky bar (phones/tablets) ---------- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.97);box-shadow:0 -8px 24px -12px rgba(43,54,69,.45);transform:translateY(110%);visibility:hidden;transition:transform .25s ease,visibility .25s}
.sticky-cta.is-on{transform:none;visibility:visible}
.sticky-cta .btn{flex-direction:column;gap:3px;min-height:54px;padding:6px 4px;font-size:12px;letter-spacing:.02em;line-height:1.3;box-shadow:none}
.sticky-cta .btn i{font-size:18px}

/* ---------- Larger screens ---------- */
@media (min-width:768px){
  body{font-size:16px}
  .wrap{padding:0 32px}
  .sec{padding:88px 0}
  .sec-head{margin-bottom:44px}
  .cta-block{margin-top:44px}
  .bento{gap:16px}
  .tile{padding:24px 24px 26px}
  .tile--cost,.tile--salary{grid-column:span 1}
  .jobs-list{grid-template-columns:repeat(3,minmax(0,1fr))}
  .video-row{grid-auto-columns:calc((100% - 72px) / 3.3);gap:24px;margin:0;padding:0 0 12px;scroll-padding-left:0}
  .video-nav{position:absolute;top:40%;z-index:2;display:grid;place-items:center;width:44px;height:44px;margin-top:-22px;border:1px solid var(--rule);border-radius:50%;background:#fff;color:var(--slate);font-size:16px;box-shadow:0 4px 14px rgba(29,37,48,.16);cursor:pointer;transition:opacity .15s,background-color .15s}
  .video-nav:hover,.video-nav:focus-visible{background:var(--action);color:#fff;border-color:var(--action)}
  .video-nav:disabled{opacity:0;pointer-events:none}
  .video-nav--prev{left:-22px}
  .video-nav--next{right:-22px}
  .schools{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .consult-btns{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-media{max-width:680px;margin:24px auto 0}
  .form-card{padding:30px 28px}
  .btn{padding:14px 28px}
  .team{gap:24px;max-width:760px}
}
@media (min-width:900px){
  .plans{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
  .plan{padding:26px 26px 28px}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
  .step{grid-template-columns:1fr;gap:0;padding-bottom:0;text-align:center}
  .step-num{margin:0 auto}
  .step::before{left:calc(50% + 34px);top:23px;bottom:auto;width:calc(100% - 68px + 28px);height:2px}
  .step h3{margin-top:14px}
}
@media (min-width:1025px){
  html{scroll-padding-top:88px}
  .hdr{position:sticky;top:0}
  .hdr-in{min-height:72px}
  .bento{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}
  .tile--cost{grid-column:span 7}
  .tile--salary{grid-column:span 5}
  .tile--rank,.tile--refund{grid-column:span 3}
  .tile--jobs{grid-column:span 6}
  .hero-grid{position:relative;display:flex;align-items:center;min-height:600px;padding:76px 0}
  .hero-copy{position:relative;z-index:1;max-width:480px;padding:0}
  .hero-media{position:absolute;top:50%;right:0;left:44%;max-width:none;order:0;margin:0;transform:translateY(-50%);background:none}
  .hero-media::before{content:none}
  .hero-media img{height:auto;border-radius:0;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 20%);mask-image:linear-gradient(90deg,transparent 0%,#000 20%)}
  .hero-media::after{content:"";position:absolute;top:0;bottom:0;right:-32px;width:6px;background:var(--orange)}
  .no-photo .hero-grid{min-height:0;padding:88px 0}
  .cta-group{justify-items:start}
  .cta-group .btn-main{width:auto}
  .cta-pair{grid-template-columns:auto auto;justify-content:start}
  .cta-note{text-align:left}
  .cta-block .cta-group{justify-items:center}
  .cta-block .cta-pair{justify-content:center}
  .cta-block .cta-note{text-align:center}
  .final-grid{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:64px;align-items:start}
  .dl-combined{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;align-items:center;padding:28px}
  .sticky-cta{display:none}
}
@media (max-width:1024px){
  .menu-btn{display:inline-flex}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:0 14px 28px -12px rgba(43,54,69,.35)}
  .nav.open{display:block}
  .nav :focus-visible{outline-color:var(--action)}
  .nav ul{flex-direction:column;align-items:stretch;gap:0;padding:6px 0 16px}
  .nav a{padding:14px 22px;border-top:1px solid var(--rule-cool);color:var(--slate)}
  .nav li:first-child a{border-top:0}
  .nav .nav-cta{margin:12px 20px 0;border-top:0;border-radius:6px;background:var(--action);color:#fff;text-align:center}
  .nav .nav-cta:hover{background:var(--action-hover)}
}

/* ================= Sub pages ================= */
.page-hero{padding:36px 0 34px;background:var(--paper);text-align:center}
.crumbs{display:flex;justify-content:center;gap:8px;font-size:12.5px;color:var(--slate-2)}
.crumbs a{color:var(--slate-2)}
.crumbs li + li::before{content:"/";margin-right:8px}
.page-hero h1{margin-top:8px;font-size:clamp(24px,6.2vw,40px);font-weight:900}
.page-hero .lead{max-width:680px;margin:12px auto 0;color:var(--slate-2)}

/* comparison: one card per school, same rows in the same order */
.uni-cards{display:grid;gap:16px}
.uni-card{display:flex;flex-direction:column;min-width:0;padding:22px 20px;border:1px solid var(--rule-cool);border-radius:14px;background:#fff}
.uni-card-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.uni-card-head img{width:60px;height:60px;object-fit:contain}
.uni-card h2{font-size:19px}
.uni-level{margin-bottom:10px;font-size:14px;font-weight:700;color:var(--action-ink)}
.facts{display:grid;grid-template-columns:auto minmax(0,1fr);margin:0}
.facts dt,.facts dd{padding:9px 0;border-top:1px solid var(--rule-cool);font-size:13.5px;line-height:1.5}
.facts dt{padding-right:14px;font-weight:500;color:var(--slate-2)}
.facts dd{margin:0;font-weight:700;text-align:right}
.facts .key{font-size:15.5px;font-weight:900;color:var(--action-ink)}
.uni-card .text-link{margin-top:16px;font-size:14px}
.assure{display:grid;gap:14px;max-width:880px;margin:0 auto}
.assure .plan-badge{margin:0;background:#fff}
.assure--single{max-width:560px}
.page-hero .assure{margin-top:28px;text-align:left}
.feature-video{max-width:800px;margin:0 auto}
.sec--paper .note,.sec--paper .member-cred{background:#fff}

/* staff */
.mission{max-width:760px;margin:0 auto;text-align:center}
.mission-lead{font-size:clamp(20px,5.2vw,28px);font-weight:900;line-height:1.55}
.mission-lead em{font-style:normal;color:var(--action-ink)}
.mission > p:not(.mission-lead){margin-top:14px;color:var(--slate-2)}
.mottos{display:grid;gap:12px;max-width:760px;margin:24px auto 0;counter-reset:m}
.mottos li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:center;padding:16px 18px;border:1px solid var(--rule);border-radius:12px;background:#fff;text-align:left}
.mottos li::before{counter-increment:m;content:counter(m);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--slate);color:#fff;font-weight:900}
.company{max-width:760px;margin:0 auto;border-top:1px solid var(--rule-cool)}
.company div{display:grid;grid-template-columns:7em minmax(0,1fr);gap:12px;padding:14px 4px;border-bottom:1px solid var(--rule-cool)}
.company dt{font-weight:700;color:var(--slate-2)}
.company dd{margin:0}
.profile{display:grid;gap:18px;max-width:880px;margin:0 auto;padding:24px 20px;border:1px solid var(--rule);border-radius:16px;background:#fff}
.profile + .profile{margin-top:18px}
.profile > img{width:140px;height:140px;margin:0 auto;border-radius:50%;object-fit:cover;background:var(--paper)}
.profile h3{font-size:22px}
.profile-role{margin-top:2px;font-size:14px;font-weight:700;color:var(--slate-2)}
.profile-bio{margin-top:12px}
.profile-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--paper);font-size:14px;font-weight:700}
.profile-note a{color:var(--action-ink)}
.profile-videos{margin-top:14px}

/* free consultation */
.options{display:grid;gap:16px;max-width:880px;margin:0 auto}
.option{display:flex;flex-direction:column;gap:10px;padding:24px 22px;border:1px solid var(--rule);border-radius:16px;background:#fff}
.option-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;color:#fff;font-size:22px}
.option--video .option-icon{background:var(--slate)}
.option--line .option-icon{background:var(--line-green)}
.option h3{font-size:20px}
.option p{color:var(--slate-2)}
.option .btn{width:100%;margin-top:8px}
.option--video{grid-column:1/-1;scroll-margin-top:90px}
.option--line{grid-column:1/-1}
.option--line .btn{max-width:360px}
.meetings-iframe-container{margin:4px -10px 0}
.meetings-iframe-container:empty{min-height:640px}
.meetings-iframe-container iframe{display:block;width:100%;border:0}
.meetings-alt{font-size:13.5px}
.meetings-alt a{color:var(--action-ink);font-weight:700}

@media (min-width:768px){
  .uni-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tp-videos{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dl-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .assure{grid-template-columns:repeat(2,minmax(0,1fr))}
  .assure--single{grid-template-columns:minmax(0,1fr)}
  .profile{grid-template-columns:180px minmax(0,1fr);align-items:start;padding:28px}
  .profile > img{width:180px;height:180px}
  .options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-hero{padding:56px 0 52px}
}
@media (min-width:1025px){
  .uni-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tp-videos{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .meter-bar i{width:var(--w)}
}

/* ---------- School detail pages (/byuprovo/ ...) ---------- */
.doc{max-width:760px}
.doc-sec{scroll-margin-top:72px}
.doc-logo{width:72px;height:72px;margin:14px auto 0;border-radius:50%}
.doc-p{margin-top:16px}
.doc-note{margin-top:14px;font-size:12.5px;color:var(--slate-2)}
.doc-big{text-align:center;font-weight:700}
.doc-big strong{display:block;font-size:clamp(34px,9vw,48px);font-weight:900;line-height:1.3;color:var(--action-ink)}
.doc-rank{counter-reset:rank;display:grid;gap:8px}
.doc-rank li{counter-increment:rank;display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--rule);border-radius:10px;background:#fff;font-weight:700}
.doc-rank li::before{content:counter(rank);display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--orange);color:#fff;font-size:13px;font-weight:900}
.doc-steps{display:grid;gap:12px;margin-top:16px}
.doc-steps li{padding:14px 18px;border:1px solid var(--rule);border-left:4px solid var(--orange);border-radius:10px;background:#fff;font-size:14.5px}
.doc-steps strong{display:block;margin-bottom:4px;font-size:16px}
.doc-table{padding:0;border:1px solid var(--rule-cool);border-radius:12px;background:#fff}
.doc-table table{min-width:0}
.doc-table th,.doc-table td{padding:10px 8px}
.doc-table tbody th{white-space:nowrap}
.doc-table td{font-weight:700}
@media (min-width:768px){
  .doc-rank{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;grid-template-rows:repeat(5,auto)}
}
.doc-h3{margin-top:28px;font-size:17px;text-align:center}
.doc-bars{display:grid;gap:12px;margin-top:14px}
.doc-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center}
.doc-bar span[role=rowheader]{font-size:13.5px;font-weight:700}
.doc-bar small{margin-left:6px;font-size:12px;font-weight:500;color:var(--slate-2)}
.doc-bar-track{grid-column:1 / -1;grid-row:2;height:14px;border-radius:7px;background:#f1ebe5}
.doc-bar-track i{display:block;width:var(--w);height:100%;border-radius:7px;background:#b8c1cc}
.doc-bar.is-us .doc-bar-track i{background:var(--orange)}
.doc-bar b{grid-row:1;grid-column:2;font-size:15px;font-weight:900}
.doc-bar.is-us b{color:var(--action-ink)}
.doc-chips{justify-content:center}
.doc-src{display:flex;gap:10px;margin-top:20px;padding-top:12px;border-top:1px dashed var(--rule);font-size:12px;line-height:1.7;color:var(--slate-2)}
.doc-src span{flex:none;font-weight:700}
.doc-src ul{display:grid;gap:2px}
.doc-src a{color:var(--slate-2);overflow-wrap:anywhere}
.doc-p + .facts{margin-top:16px}

/* ================= Blog (/blog/ and /blog/<slug>/) ================= */
.post-grid{display:grid;gap:16px}
.post-card a{display:flex;flex-direction:column;height:100%;overflow:hidden;border:1px solid var(--rule);border-radius:14px;background:#fff;text-decoration:none;transition:border-color .15s,box-shadow .15s}
.post-card a:hover{border-color:var(--orange);box-shadow:0 12px 24px -16px rgba(43,54,69,.45)}
.post-card-img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--paper)}
.post-card-img--none{display:block;background:linear-gradient(135deg,#fbe3cf,var(--paper))}
.post-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:14px 16px 0;font-size:12.5px;color:var(--slate-2)}
.post-cat{padding:2px 10px;border-radius:999px;background:var(--paper);color:var(--action-ink);font-weight:700}
.post-card-title{padding:6px 16px 18px;font-size:15.5px;font-weight:700;line-height:1.6}
.post-card[hidden]{display:none}
.chips .chip{padding:5px 14px;border:1px solid var(--rule);border-radius:999px;background:#fff;color:var(--slate);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.chips li:has(.chip){padding:0;border:0;background:none}
.chips .chip[aria-pressed="true"]{border-color:var(--slate);background:var(--slate);color:#fff}
.js .chips[hidden]{display:flex}
.chips + .post-grid{margin-top:22px}
.post-all{margin-top:26px;text-align:center}
@media (min-width:640px){.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:960px){.post-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.post-hero h1{max-width:820px;margin-inline:auto;font-size:clamp(22px,5.4vw,34px);line-height:1.5}
.post-meta{margin-top:12px;font-size:13px;color:var(--slate-2)}
.post-updated{margin-left:4px}
.post-sec{padding-top:28px}
.post-wrap{max-width:800px}
.post-cover-wrap{margin-bottom:24px}
.post-cover{width:100%;border-radius:14px}
.post-toc{margin-bottom:28px;padding:16px 20px;border:1px solid var(--rule);border-radius:14px;background:var(--paper)}
.post-toc p{font-weight:700}
.post-toc ol{display:grid;gap:4px;margin-top:8px;padding-left:1.4em;list-style:decimal;font-size:14.5px}
.post-toc ol li::marker{color:var(--action-ink);font-weight:700}
.post-toc a{color:var(--slate);text-decoration-color:var(--rule)}
.post-toc a:hover{color:var(--action-ink)}

.post-body{font-size:16px;line-height:1.95}
.post-body > * + *{margin-top:1.1em}
.post-body h2,.post-body h3,.post-body h4{scroll-margin-top:24px}
.post-body h2{margin-top:2.2em;padding:12px 16px;border-left:5px solid var(--orange);border-radius:4px;background:var(--paper);font-size:clamp(19px,4.8vw,23px)}
.post-body h3{margin-top:1.8em;padding-bottom:6px;border-bottom:2px solid var(--rule);font-size:clamp(17px,4.4vw,19px)}
.post-body h4{margin-top:1.5em;font-size:16.5px}
.post-body h4::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:var(--orange);vertical-align:.15em}
.post-body > h2:first-child,.post-body > h3:first-child{margin-top:0}
.post-body a{color:var(--action-ink);text-underline-offset:3px}
.post-body strong{font-weight:700;background:linear-gradient(transparent 62%,#fde3cc 62%)}
.post-body ul,.post-body ol{display:grid;gap:6px;padding-left:1.5em}
.post-body ul{list-style:disc}
.post-body ol{list-style:decimal}
.post-body li::marker{color:var(--orange)}
.post-body li > ul,.post-body li > ol,.post-body li > p + *{margin-top:6px}
.post-body blockquote{margin:1.4em 0 0;padding:12px 18px;border-left:4px solid var(--rule-cool);background:#f7f8fa;color:var(--slate-2)}
.post-body hr{margin:2em 0;border:0;border-top:1px solid var(--rule)}
.post-img img{margin:0 auto;border-radius:10px}
.post-img + p > em:only-child{display:block;margin-top:-.6em;font-size:12.5px;font-style:normal;text-align:center;color:var(--slate-2)}
.post-body .table-scroll{padding:0;border:1px solid var(--rule-cool);border-radius:10px}
.post-body .table-scroll table{min-width:0;font-size:14px}
.post-body .table-scroll--wide table{min-width:560px}
.post-body .table-scroll th,.post-body .table-scroll td{text-align:left;vertical-align:top}
.post-body .table-scroll tbody tr:nth-child(even){background:#f8f9fb}
.post-video,.post-map{max-width:640px;margin-inline:auto}
.post-map{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:#eef1f4}
.post-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.talk{display:flex;align-items:flex-start;gap:12px}
.talk--right{flex-direction:row-reverse}
.talk-who{flex:none;width:64px;text-align:center}
.talk-who img{width:56px;height:56px;margin:0 auto;border-radius:50%;object-fit:cover;border:2px solid var(--rule)}
.talk-name{display:block;margin-top:4px;font-size:10.5px;line-height:1.3;color:var(--slate-2)}
.talk-text{position:relative;flex:1;min-width:0;padding:12px 16px;border-radius:14px;background:#f1f3f6;font-size:15px;line-height:1.85}
.talk--left .talk-text{background:var(--paper);border:1px solid var(--rule)}
.talk-text > * + *{margin-top:.8em}
.talk + .talk{margin-top:14px}
@media (min-width:768px){.talk-text{max-width:calc(100% - 140px)}}

.post-box{overflow:hidden;border:2px solid var(--rule);border-radius:12px;background:#fff}
.post-box-title{padding:8px 16px;background:var(--slate);color:#fff;font-weight:700}
.post-box-body{padding:14px 18px}
.post-box-body > * + *{margin-top:.8em}

.post-author{display:flex;gap:16px;align-items:flex-start;margin-top:40px;padding:20px;border:1px solid var(--rule);border-radius:14px;background:#fff}
.post-author img{flex:none;width:72px;height:72px;border-radius:50%;object-fit:cover}
.post-author-label{font-size:12px;font-weight:700;color:var(--action-ink)}
.post-author-name{font-weight:700}
.post-author-name a{text-decoration:none}
.post-author-role{font-size:13px;color:var(--slate-2)}
.post-author-bio{margin-top:8px;font-size:13.5px;line-height:1.8}
.post-cta{margin-top:40px;padding:24px 20px;border-radius:16px;background:var(--paper);text-align:center}
.post-cta-title{font-size:18px;font-weight:700}
.post-cta p + p{margin-top:8px;font-size:14px;color:var(--slate-2)}
.post-cta .btn{width:100%;max-width:420px;margin-top:16px}
