/*
Theme Name:         YS Shoin
Theme URI:          https://kokugoryoku-up.com/
Author:             YS中学受験国語力研究室
Author URI:         https://kokugoryoku-up.com/
Description:        老舗書院テーマ — 紺×ベージュ×明朝で格式ある信頼感を表現。中学受験国語専門オンライン個別指導のためのテーマ。
Version:            1.0.0
Requires at least:  6.0
Requires PHP:       7.4
License:            GPL-2.0-or-later
License URI:        https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:        ys-shoin
Tags:               one-column, editorial, japanese, custom-menu, featured-images
*/

/* ===== Fonts ===== */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700;900&family=Noto+Sans+JP:wght@300;400;500;600;700;900&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Shippori+Mincho:wght@400;500;600;700;800&display=swap');

/* ===== Design Tokens (Option A — Scholarly Navy) ===== */
.theme-scholarly {
    --s-navy-900: #0b1b3a;
    --s-navy-800: #12264d;
    --s-navy-700: #1d3565;
    --s-navy-600: #2a477f;
    --s-navy-500: #3d5a9a;
    --s-paper: #f7f2e8;
    --s-paper-dim: #efe8d7;
    --s-cream: #faf6ec;
    --s-sand: #e8dcc0;
    --s-gold: #b08a3e;
    --s-gold-deep: #8a6a28;
    --s-accent: #a5332a;
    --s-ink-900: #121212;
    --s-ink-700: #3a3a3a;
    --s-ink-500: #6b6b6b;
    --s-ink-300: #a8a8a8;
    --s-line: rgba(11, 27, 58, 0.14);
    --s-line-strong: rgba(11, 27, 58, 0.4);
    --s-serif-jp: "Shippori Mincho", "Noto Serif JP", "Hiragino Mincho ProN", serif;
    --s-serif-en: "Playfair Display", "Shippori Mincho", serif;
    --s-sans-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
}

/* ===== Resets ===== */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* ===== Body ===== */
body.theme-scholarly{font-family:var(--s-sans-jp);background:var(--s-paper);color:var(--s-ink-900);line-height:1.9;font-weight:400}
.s-container{max-width:1180px;margin:0 auto;padding:0 32px}

/* ===== Header ===== */
.s-header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(247,242,232,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--s-line)}
.s-header-inner{display:flex;align-items:center;justify-content:space-between;height:80px}
.s-brand{display:flex;align-items:center;gap:12px;color:var(--s-navy-900);text-decoration:none;line-height:1}
.s-brand-logo{height:46px;width:auto;display:block}
.s-brand-mark{height:48px;width:48px;object-fit:contain;display:block;flex-shrink:0}
.s-brand-name{
    font-family:var(--s-serif-jp);
    font-weight:600;
    font-size:22px;
    color:var(--s-navy-900);
    letter-spacing:.08em;
    white-space:nowrap;
    line-height:1.15;
}
.s-nav{display:flex;align-items:center;gap:36px}
.s-nav a{font-family:var(--s-serif-jp);font-size:14px;font-weight:500;color:var(--s-navy-800);position:relative;padding-bottom:4px;letter-spacing:.05em}
.s-nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--s-gold);transform:scaleX(0);transition:transform .3s;transform-origin:left}
.s-nav a:hover::after{transform:scaleX(1)}
.s-nav .s-cta-small{padding:12px 22px;background:var(--s-navy-900);color:var(--s-paper);font-size:13px;letter-spacing:.1em;border:1px solid var(--s-navy-900);transition:all .2s}
.s-nav .s-cta-small:hover{background:transparent;color:var(--s-navy-900)}
.s-nav .s-cta-small::after{display:none}

/* ===== Hero ===== */
.s-hero{padding:170px 0 100px;position:relative;overflow:hidden;background:var(--s-paper)}
.s-hero-paper{position:absolute;inset:0;background:radial-gradient(circle at 82% 12%,rgba(176,138,62,.1),transparent 45%),radial-gradient(circle at 6% 92%,rgba(11,27,58,.07),transparent 45%);pointer-events:none}
.s-hero-grid{position:absolute;inset:0;opacity:.04;background-image:linear-gradient(var(--s-navy-900) 1px,transparent 1px),linear-gradient(90deg,var(--s-navy-900) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
.s-hero-inner{position:relative;display:grid;grid-template-columns:1fr .82fr;gap:72px;align-items:center}
.s-eyebrow{font-family:var(--s-serif-en);font-size:13px;font-style:italic;color:var(--s-gold-deep);letter-spacing:.15em;margin-bottom:28px;display:flex;align-items:center;gap:16px}
.s-eyebrow::before{content:"";width:40px;height:1px;background:var(--s-gold)}
.s-hero h1{font-family:var(--s-serif-jp);font-weight:600;font-size:clamp(38px,5vw,68px);line-height:1.45;letter-spacing:.04em;color:var(--s-navy-900);margin:0 0 36px;text-wrap:balance}
.s-hero h1 .line2{display:block}
.s-hero h1 em{font-style:normal;background:linear-gradient(to bottom,transparent 62%,rgba(176,138,62,.35) 62%,rgba(176,138,62,.35) 92%,transparent 92%);padding:0 2px}
.s-hero h1 .accent{color:var(--s-accent);font-family:var(--s-serif-jp)}
.s-hero h1 small{display:block;font-family:var(--s-serif-en);font-style:italic;font-weight:400;font-size:.4em;color:var(--s-gold-deep);margin-top:24px;letter-spacing:.05em}
.s-hero-body{font-family:var(--s-serif-jp);font-size:17px;line-height:2.15;color:var(--s-ink-700);max-width:540px;margin:0 0 44px;font-weight:400}
.s-hero-cta{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.s-btn-primary{display:inline-flex;align-items:center;gap:14px;padding:18px 36px;background:var(--s-navy-900);color:var(--s-cream);font-family:var(--s-serif-jp);font-weight:500;font-size:15px;letter-spacing:.12em;border:1px solid var(--s-navy-900);cursor:pointer;text-decoration:none;transition:all .25s}
.s-btn-primary:hover{background:transparent;color:var(--s-navy-900)}
.s-btn-primary .arrow{transition:transform .25s}
.s-btn-primary:hover .arrow{transform:translateX(4px)}
.s-btn-ghost{display:inline-flex;align-items:center;gap:10px;padding:14px 0;font-family:var(--s-serif-jp);font-weight:500;font-size:15px;color:var(--s-navy-800);border-bottom:1px solid var(--s-navy-500);letter-spacing:.05em}
.s-btn-ghost:hover{color:var(--s-gold-deep);border-bottom-color:var(--s-gold)}

/* ===== Hero Portrait Card ===== */
.s-hero-portrait{position:relative;max-width:460px;margin-left:auto;background:var(--s-cream);border:1px solid var(--s-line-strong);padding:22px 22px 24px;box-shadow:0 30px 60px -30px rgba(11,27,58,.2)}
.s-hero-portrait .s-portrait-label{font-family:var(--s-serif-en);font-size:10px;font-style:italic;letter-spacing:.28em;color:var(--s-gold-deep);text-transform:uppercase;display:flex;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--s-line);margin-bottom:14px}
.s-portrait-avatar{width:100%;aspect-ratio:4/5;overflow:hidden;position:relative;background:#f1ead8;border:1px solid var(--s-line);margin-bottom:18px}
.s-portrait-avatar img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.96) contrast(1.01)}
.s-portrait-caption{padding-top:4px;border-top:1px solid var(--s-line);display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}
.s-portrait-caption .name-jp{font-family:var(--s-serif-jp);font-size:17px;font-weight:700;color:var(--s-navy-900);margin-bottom:2px;letter-spacing:.05em}
.s-portrait-caption .name-en{font-family:var(--s-serif-en);font-size:10px;font-style:italic;color:var(--s-gold-deep);letter-spacing:.15em}
.s-portrait-caption .role{font-family:var(--s-serif-jp);font-size:11px;color:var(--s-ink-500);line-height:1.7;letter-spacing:.03em;grid-column:2}
.s-portrait-caption .chip{grid-row:1/3;width:52px;height:52px;border-radius:50%;background:var(--s-accent);color:var(--s-paper);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--s-serif-jp);font-weight:600;font-size:9px;letter-spacing:.1em;line-height:1.2;text-align:center}
.s-portrait-caption .chip b{font-family:var(--s-serif-en);font-style:italic;font-size:16px;font-weight:700;line-height:1}
.s-portrait-stamp{position:absolute;top:-18px;right:-18px;width:92px;height:92px;border-radius:50%;background:var(--s-accent);color:var(--s-paper);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--s-serif-jp);font-weight:600;font-size:11px;letter-spacing:.15em;line-height:1.4;text-align:center;transform:rotate(-8deg);box-shadow:0 8px 20px -6px rgba(165,51,42,.4);z-index:4}
.s-portrait-stamp b{font-family:var(--s-serif-en);font-style:italic;font-size:22px;font-weight:700;display:block;line-height:1}
.s-portrait-stamp span{font-size:9px;letter-spacing:.1em;margin-top:4px}

/* ===== Shared section head ===== */
.s-sec-head{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:start;margin-bottom:64px;padding-top:40px;border-top:1px solid var(--s-line)}
.s-sec-num{font-family:var(--s-serif-en);font-size:13px;font-style:italic;color:var(--s-gold-deep);letter-spacing:.12em;padding-top:28px;white-space:nowrap}
.s-sec-titles h2{font-family:var(--s-serif-jp);font-weight:600;font-size:clamp(30px,3.4vw,44px);line-height:1.55;color:var(--s-navy-900);margin:0 0 18px;letter-spacing:.04em;text-wrap:balance}
.s-sec-titles h2 em{font-style:normal;background:linear-gradient(to bottom,transparent 62%,rgba(176,138,62,.32) 62%,rgba(176,138,62,.32) 92%,transparent 92%);padding:0 2px}
.s-sec-lede{font-family:var(--s-serif-jp);font-size:16px;line-height:2;color:var(--s-ink-700);max-width:640px;margin:0}

/* ===== Empathy ===== */
.s-empathy{padding:120px 0;background:var(--s-cream);position:relative}
.s-empathy-quote{max-width:860px;margin:0 auto;text-align:center;padding:40px 0;position:relative}
.s-empathy-quote::before{font-family:var(--s-serif-en);content:"\201C";position:absolute;font-size:140px;color:var(--s-gold);opacity:.28;line-height:1;top:-20px;left:0}
.s-empathy-quote::after{font-family:var(--s-serif-en);content:"\201D";position:absolute;font-size:140px;color:var(--s-gold);opacity:.28;line-height:1;bottom:-70px;right:0}
.s-empathy-quote h3{font-family:var(--s-serif-jp);font-weight:500;font-size:clamp(22px,2.6vw,34px);line-height:2;color:var(--s-navy-900);margin:0;letter-spacing:.04em;text-wrap:balance}
.s-empathy-quote p{font-family:var(--s-serif-jp);font-size:14px;color:var(--s-ink-500);margin-top:40px;letter-spacing:.1em}
.s-pain-list{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:80px}
.s-pain-card{background:var(--s-paper);border:1px solid var(--s-line);padding:42px 32px;position:relative}
.s-pain-card::before{content:attr(data-num);position:absolute;top:-14px;left:28px;background:var(--s-cream);padding:0 12px;font-family:var(--s-serif-en);font-size:13px;font-style:italic;color:var(--s-gold-deep);letter-spacing:.15em}
.s-pain-card h4{font-family:var(--s-serif-jp);font-weight:600;font-size:18px;line-height:1.7;color:var(--s-navy-900);margin:0 0 16px;letter-spacing:.03em}
.s-pain-card p{font-family:var(--s-serif-jp);font-size:14px;line-height:1.95;color:var(--s-ink-700);margin:0}

/* ===== Teacher / Philosophy ===== */
.s-teacher{padding:140px 0;background:var(--s-paper)}
.s-teacher-inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}
.s-teacher-side{position:sticky;top:120px}
.s-teacher-photo{aspect-ratio:3/4;background:#f1ead8;position:relative;overflow:hidden;border:1px solid var(--s-line-strong)}
.s-teacher-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.96) contrast(1.01)}
.s-teacher-photo-cap{position:absolute;top:0;left:0;right:0;padding:18px 22px;display:flex;justify-content:space-between;align-items:flex-start;font-family:var(--s-serif-en);font-size:10px;font-style:italic;letter-spacing:.28em;color:var(--s-paper);text-transform:uppercase;z-index:2;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.s-teacher-photo-cap span:last-child{text-align:right}
.s-teacher-badge{margin-top:-24px;margin-left:20px;display:inline-flex;align-items:center;gap:12px;padding:14px 22px;background:var(--s-cream);border:1px solid var(--s-navy-900);font-family:var(--s-serif-jp);font-size:13px;font-weight:500;color:var(--s-navy-900);letter-spacing:.08em;position:relative;z-index:2}
.s-teacher-badge strong{font-family:var(--s-serif-en);font-style:italic;font-size:22px;font-weight:700;color:var(--s-accent)}
.s-teacher-body h2{font-family:var(--s-serif-jp);font-weight:600;font-size:clamp(28px,3.4vw,42px);line-height:1.7;color:var(--s-navy-900);margin:0 0 32px;letter-spacing:.04em;text-wrap:balance}
.s-teacher-body h2 em{font-style:normal;background:linear-gradient(to bottom,transparent 62%,rgba(176,138,62,.35) 62%,rgba(176,138,62,.35) 92%,transparent 92%);padding:0 2px}
.s-teacher-body p{font-family:var(--s-serif-jp);font-size:16px;line-height:2.15;color:var(--s-ink-700);margin:0 0 20px}
.s-teacher-facts{margin-top:40px;padding:28px 32px;background:var(--s-cream);border-left:3px solid var(--s-gold)}
.s-teacher-facts dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:14px 24px;font-family:var(--s-serif-jp);font-size:14px}
.s-teacher-facts dt{color:var(--s-gold-deep);font-weight:600;letter-spacing:.1em;white-space:nowrap}
.s-teacher-facts dd{margin:0;color:var(--s-navy-900);line-height:1.8}
.s-teacher-sign{margin-top:40px;padding-top:28px;border-top:1px solid var(--s-line);display:flex;justify-content:space-between;align-items:center;font-family:var(--s-serif-jp);gap:20px}
.s-teacher-sign .name{font-size:22px;font-weight:600;color:var(--s-navy-900);letter-spacing:.08em}
.s-teacher-sign-portrait{display:flex;align-items:center;gap:16px}
.s-teacher-sign-portrait img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:center top;border:2px solid var(--s-cream);box-shadow:0 4px 12px -4px rgba(11,27,58,.25)}
.s-teacher-sign .name small{display:block;font-family:var(--s-serif-en);font-style:italic;font-size:12px;font-weight:400;color:var(--s-gold-deep);letter-spacing:.15em;margin-top:4px}
.s-teacher-sign .since{font-family:var(--s-serif-en);font-style:italic;font-size:13px;color:var(--s-ink-500);letter-spacing:.1em}

/* ===== Services ===== */
.s-services{padding:140px 0;background:var(--s-cream)}
.s-service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--s-line-strong);border:1px solid var(--s-line-strong)}
.s-service-card{background:var(--s-paper);padding:56px 44px;transition:background .3s;cursor:pointer;position:relative}
.s-service-card:hover{background:var(--s-cream)}
.s-service-num{font-family:var(--s-serif-en);font-size:12px;font-style:italic;color:var(--s-gold-deep);letter-spacing:.2em;margin-bottom:22px}
.s-service-card h3{font-family:var(--s-serif-jp);font-weight:600;font-size:26px;line-height:1.5;color:var(--s-navy-900);margin:0 0 6px;letter-spacing:.04em}
.s-service-en{font-family:var(--s-serif-en);font-style:italic;font-weight:400;font-size:15px;color:var(--s-gold-deep);margin-bottom:22px}
.s-service-card p{font-family:var(--s-serif-jp);font-size:15px;line-height:2;color:var(--s-ink-700);margin:0 0 28px;max-width:440px}
.s-service-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.s-service-tag{font-family:var(--s-serif-jp);font-size:12px;padding:5px 14px;border:1px solid var(--s-navy-500);color:var(--s-navy-800);letter-spacing:.08em}
.s-service-link{display:inline-flex;align-items:center;gap:10px;font-family:var(--s-serif-jp);font-size:14px;font-weight:500;color:var(--s-navy-900);border-bottom:1px solid var(--s-gold);padding-bottom:4px;transition:all .2s}
.s-service-card:hover .s-service-link{color:var(--s-gold-deep)}

/* ===== Pricing 料金 ===== */
.s-pricing{padding:140px 0;background:var(--s-paper);border-top:1px solid var(--s-line)}
.s-pricing-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:8px}
.s-pricing-card{background:var(--s-cream);border:1px solid var(--s-line-strong);padding:48px 44px;position:relative}
.s-pricing-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--s-gold)}
.s-pricing-label{font-family:var(--s-serif-en);font-size:11px;font-style:italic;letter-spacing:.28em;color:var(--s-gold-deep);text-transform:uppercase;margin-bottom:18px}
.s-pricing-card h3{font-family:var(--s-serif-jp);font-weight:600;font-size:26px;color:var(--s-navy-900);margin:0 0 10px;letter-spacing:.05em}
.s-pricing-note{font-family:var(--s-serif-jp);font-size:13px;color:var(--s-ink-500);margin:0 0 32px;line-height:1.9}
.s-pricing-rows{margin:0;display:flex;flex-direction:column;gap:16px}
.s-pricing-rows > div{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:baseline;padding:14px 0;border-bottom:1px dashed var(--s-line)}
.s-pricing-rows > div:last-child{border-bottom:none}
.s-pricing-rows dt{font-family:var(--s-serif-jp);font-size:14px;font-weight:600;color:var(--s-gold-deep);letter-spacing:.1em;white-space:nowrap}
.s-pricing-rows dd{margin:0;font-family:var(--s-serif-en);color:var(--s-navy-900);text-align:right}
.s-pricing-rows dd b{font-style:italic;font-size:34px;font-weight:700;letter-spacing:-.02em}
.s-pricing-rows dd span{font-family:var(--s-serif-jp);font-size:12px;font-style:normal;color:var(--s-ink-700);margin-left:8px;letter-spacing:.08em;font-weight:500}
.s-pricing-fineprint{margin-top:48px;padding:24px 28px;background:rgba(176,138,62,.08);border-left:3px solid var(--s-gold);font-family:var(--s-serif-jp);font-size:13px;line-height:1.95;color:var(--s-ink-700);letter-spacing:.03em}
.s-pricing-fineprint a{color:var(--s-accent);border-bottom:1px solid var(--s-accent);padding-bottom:1px}

/* ===== FAQ ===== */
.s-faq{padding:140px 0;background:var(--s-cream);border-top:1px solid var(--s-line)}
.s-faq .s-sec-titles a{color:var(--s-accent);border-bottom:1px solid var(--s-accent);padding-bottom:1px}
.s-faq-list{margin:8px 0 0;border-top:1px solid var(--s-line)}
.s-faq-item{border-bottom:1px solid var(--s-line);padding:32px 0}
.s-faq-item dt{font-family:var(--s-serif-jp);font-weight:700;font-size:18px;line-height:1.7;color:var(--s-navy-900);letter-spacing:.04em;margin:0 0 14px;position:relative;padding-left:36px}
.s-faq-item dt::before{content:"Q";position:absolute;left:0;top:0;font-family:var(--s-serif-en);font-style:italic;font-weight:700;font-size:24px;color:var(--s-accent);line-height:1.1}
.s-faq-item dd{margin:0;font-family:var(--s-serif-jp);font-size:15px;line-height:2.05;color:var(--s-ink-700);letter-spacing:.03em;padding-left:36px;position:relative}
.s-faq-item dd::before{content:"A";position:absolute;left:0;top:0;font-family:var(--s-serif-en);font-style:italic;font-weight:700;font-size:20px;color:var(--s-gold-deep);line-height:1.3}
.s-faq-item dd a{color:var(--s-accent);border-bottom:1px solid var(--s-accent);padding-bottom:1px}
.s-faq-item dd strong{background:linear-gradient(to bottom,transparent 62%,rgba(176,138,62,.32) 62%,rgba(176,138,62,.32) 92%,transparent 92%);padding:0 2px;font-weight:600}

/* ===== Results 合格実績 ===== */
.s-results{padding:140px 0;background:var(--s-navy-900);color:var(--s-cream);position:relative;overflow:hidden}
.s-results::before{content:"";position:absolute;inset:0;opacity:.05;background-image:linear-gradient(var(--s-gold) 1px,transparent 1px),linear-gradient(90deg,var(--s-gold) 1px,transparent 1px);background-size:60px 60px}
.s-results-inner{position:relative;z-index:1}
.s-results .s-sec-head{border-top-color:rgba(176,138,62,.3)}
.s-results .s-sec-num{color:var(--s-gold)}
.s-results .s-sec-titles h2{color:var(--s-paper)}
.s-results .s-sec-titles h2 em{background:linear-gradient(to bottom,transparent 62%,rgba(176,138,62,.4) 62%,rgba(176,138,62,.4) 92%,transparent 92%)}
.s-results .s-sec-lede{color:rgba(247,242,232,.7)}
.s-results-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-bottom:80px;border-top:1px solid rgba(176,138,62,.3);border-bottom:1px solid rgba(176,138,62,.3)}
.s-stat{padding:40px 32px;border-right:1px solid rgba(176,138,62,.2);text-align:center}
.s-stat:last-child{border-right:none}
.s-stat-label{font-family:var(--s-serif-en);font-size:10px;font-style:italic;color:var(--s-gold);letter-spacing:.25em;text-transform:uppercase;margin-bottom:14px}
.s-stat-num{font-family:var(--s-serif-en);font-size:56px;font-weight:700;color:var(--s-paper);line-height:1;letter-spacing:-.02em}
.s-stat-num small{font-family:var(--s-serif-jp);font-size:.3em;color:rgba(247,242,232,.6);margin-left:4px;font-weight:400;letter-spacing:.1em}
.s-stat-sub{font-family:var(--s-serif-jp);font-size:12px;color:rgba(247,242,232,.6);margin-top:12px;letter-spacing:.08em}
.s-schools{columns:3;column-gap:40px;column-rule:1px solid rgba(176,138,62,.25)}
.s-school-group{break-inside:avoid;margin-bottom:32px;padding-bottom:4px}
.s-school-group h4{font-family:var(--s-serif-en);font-size:11px;font-style:italic;color:var(--s-gold);letter-spacing:.25em;text-transform:uppercase;margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid rgba(176,138,62,.3)}
.s-school-group ul{list-style:none;padding:0;margin:0}
.s-school-group li{font-family:var(--s-serif-jp);font-size:14px;color:rgba(247,242,232,.85);padding:6px 0;letter-spacing:.05em;line-height:1.7;display:flex;align-items:baseline;gap:10px}
.s-school-group li::before{content:"・";color:var(--s-gold);flex-shrink:0}
.s-school-group li.star::before{content:"★";color:var(--s-accent);font-size:11px}
.s-results-footnote{margin-top:60px;padding-top:32px;border-top:1px solid rgba(176,138,62,.25);font-family:var(--s-serif-jp);font-size:12px;color:rgba(247,242,232,.55);letter-spacing:.08em;line-height:1.9;text-align:center}

/* ===== Voice ===== */
.s-voice{padding:140px 0;background:var(--s-paper)}
.s-voice-intro{font-family:var(--s-serif-jp);font-size:14px;color:var(--s-ink-500);letter-spacing:.08em;margin-top:-40px;margin-bottom:56px}
.s-voice-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--s-line-strong);border:1px solid var(--s-line-strong)}
.s-voice-card{background:var(--s-cream);padding:48px 44px}
.s-voice-school{display:inline-block;font-family:var(--s-serif-en);font-size:10px;font-style:italic;color:var(--s-gold-deep);letter-spacing:.2em;margin-bottom:20px;padding:4px 12px;border:1px solid var(--s-gold);text-transform:uppercase}
.s-voice-card blockquote{font-family:var(--s-serif-jp);font-weight:500;font-size:17px;line-height:2.05;color:var(--s-navy-900);margin:0 0 28px;letter-spacing:.03em;text-wrap:pretty}
.s-voice-card blockquote::before{content:"\201C";font-family:var(--s-serif-en);font-size:48px;color:var(--s-gold);line-height:0;vertical-align:-.25em;margin-right:4px}
.s-voice-card footer{display:flex;align-items:center;justify-content:space-between;padding-top:22px;border-top:1px solid var(--s-line)}
.s-voice-name{font-family:var(--s-serif-jp)}
.s-voice-name strong{display:block;color:var(--s-navy-900);font-size:14px;font-weight:600;letter-spacing:.05em}
.s-voice-name span{font-size:12px;color:var(--s-ink-500);letter-spacing:.05em;margin-top:2px;display:block}
.s-voice-read{font-family:var(--s-serif-en);font-size:12px;font-style:italic;color:var(--s-gold-deep);letter-spacing:.12em;border-bottom:1px solid var(--s-gold);padding-bottom:3px}
.s-voice-read:hover{color:var(--s-accent);border-bottom-color:var(--s-accent)}
.s-voice-more{margin-top:60px;text-align:center}
.s-voice-more a{font-family:var(--s-serif-jp);font-size:14px;color:var(--s-navy-900);border-bottom:1px solid var(--s-navy-500);padding:6px 12px;letter-spacing:.1em}
.s-voice-more a:hover{color:var(--s-accent);border-bottom-color:var(--s-accent)}

/* ===== Blog 2-block ===== */
.s-blog{padding:140px 0;background:var(--s-cream);border-top:1px solid var(--s-line)}
.s-blog-block{margin-top:48px}
.s-blog-block + .s-blog-block{margin-top:64px}
.s-blog-banner{background:var(--s-navy-900);color:var(--s-paper);padding:28px 36px;display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;position:relative;overflow:hidden}
.s-blog-banner::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,transparent 0,transparent 28px,rgba(247,242,232,.04) 28px,rgba(247,242,232,.04) 29px);pointer-events:none}
.s-blog-banner-num{font-family:var(--s-serif-en);font-style:italic;font-size:48px;font-weight:700;color:var(--s-gold);line-height:1;letter-spacing:.02em;z-index:1}
.s-blog-banner-text{z-index:1}
.s-blog-banner h3{font-family:var(--s-serif-jp);font-weight:600;font-size:clamp(22px,2.4vw,30px);line-height:1.5;color:var(--s-paper);margin:0 0 6px;letter-spacing:.08em}
.s-blog-banner .sub{font-family:var(--s-serif-en);font-size:11px;font-style:italic;color:var(--s-gold);letter-spacing:.28em;text-transform:uppercase;margin:0 0 6px}
.s-blog-banner p{font-family:var(--s-serif-jp);font-size:13px;line-height:1.85;color:rgba(247,242,232,.75);margin:0;max-width:560px}
.s-blog-banner-more{z-index:1;font-family:var(--s-serif-jp);font-size:12px;color:var(--s-gold);letter-spacing:.15em;padding:10px 16px;border:1px solid var(--s-gold);white-space:nowrap;text-decoration:none;transition:all .2s}
.s-blog-banner-more:hover{background:var(--s-gold);color:var(--s-navy-900)}
.s-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:-1px;border:1px solid var(--s-line)}
.s-blog-card{background:var(--s-paper);padding:28px 26px;display:flex;flex-direction:column;transition:all .25s;text-decoration:none;color:inherit;border-right:1px solid var(--s-line);border-bottom:1px solid var(--s-line);margin:-1px 0 0 -1px}
.s-blog-card:last-child{border-right:1px solid var(--s-line)}
.s-blog-card:hover{background:var(--s-cream);z-index:1}
.s-blog-date{font-family:var(--s-serif-en);font-size:10px;font-style:italic;color:var(--s-gold-deep);letter-spacing:.15em;margin-bottom:8px;display:block}
.s-blog-school{font-family:var(--s-serif-jp);font-size:11px;font-weight:600;color:var(--s-accent);letter-spacing:.18em;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.s-blog-school::before{content:"";display:inline-block;width:6px;height:6px;background:var(--s-accent);border-radius:50%}
.s-blog-card h4{font-family:var(--s-serif-jp);font-weight:700;font-size:17px;line-height:1.7;color:var(--s-navy-900);margin:0 0 12px;letter-spacing:.03em;flex-grow:1}
.s-blog-card .excerpt{font-family:var(--s-serif-jp);font-size:12.5px;line-height:1.9;color:var(--s-ink-500);margin:0 0 16px}
.s-blog-card .meta{font-family:var(--s-serif-en);font-size:10px;font-style:italic;color:var(--s-ink-500);letter-spacing:.12em;padding-top:12px;border-top:1px dashed var(--s-line);display:flex;justify-content:space-between;text-transform:uppercase}
.s-blog-card .meta .arrow{color:var(--s-accent)}

/* ===== News ===== */
.s-news{padding:120px 0;background:var(--s-paper)}
.s-news-inner{display:grid;grid-template-columns:.6fr 1.4fr;gap:80px;align-items:start}
.s-news-side h3{font-family:var(--s-serif-jp);font-weight:600;font-size:28px;color:var(--s-navy-900);margin:0 0 8px;letter-spacing:.04em}
.s-news-side h3 small{display:block;font-family:var(--s-serif-en);font-style:italic;font-size:13px;color:var(--s-gold-deep);letter-spacing:.2em;margin-top:8px;font-weight:400}
.s-news-side p{font-family:var(--s-serif-jp);font-size:14px;color:var(--s-ink-500);line-height:1.9;margin:20px 0 0}
.s-news-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--s-line)}
.s-news-list li{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:20px;row-gap:8px;padding:22px 0;border-bottom:1px solid var(--s-line)}
.s-news-date{flex:0 0 auto;font-family:var(--s-serif-en);font-style:italic;font-size:13px;color:var(--s-gold-deep);letter-spacing:.08em;white-space:nowrap}
.s-news-cat{flex:0 0 auto;font-family:var(--s-serif-jp);font-size:11px;padding:3px 10px;border:1px solid var(--s-navy-500);color:var(--s-navy-800);letter-spacing:.05em;white-space:nowrap}
.s-news-cat.accent{border-color:var(--s-accent);color:var(--s-accent)}
.s-news-list a{flex:1 1 320px;min-width:0;font-family:var(--s-serif-jp);font-size:14px;color:var(--s-navy-900);line-height:1.8;letter-spacing:.03em;transition:color .2s;overflow-wrap:anywhere}
.s-news-list a:hover{color:var(--s-accent)}

/* ===== Partners 相互リンク ===== */
.s-partners{padding:100px 0;background:var(--s-paper);border-top:1px solid var(--s-line)}
.s-partners-head{text-align:center;margin-bottom:48px}
.s-partners-eyebrow{display:inline-block;font-family:var(--s-serif-en);font-style:italic;font-size:11px;letter-spacing:.28em;color:var(--s-gold-deep);text-transform:uppercase;margin-bottom:14px}
.s-partners-head h3{font-family:var(--s-serif-jp);font-weight:600;font-size:clamp(22px,2.4vw,28px);color:var(--s-navy-900);margin:0;letter-spacing:.05em}
.s-partners-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:920px;margin:0 auto}
.s-partners-list li{background:var(--s-cream);border:1px solid var(--s-line);padding:32px 28px;display:flex;flex-direction:column;gap:18px}
.s-partners-blurb{font-family:var(--s-serif-jp);font-size:13px;line-height:1.95;color:var(--s-ink-700);margin:0;letter-spacing:.03em;flex-grow:1}
.s-partners-link{font-family:var(--s-serif-jp);font-weight:600;font-size:14px;color:var(--s-navy-900);border-bottom:1px solid var(--s-gold);padding-bottom:6px;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;transition:all .2s}
.s-partners-link:hover{color:var(--s-accent);border-bottom-color:var(--s-accent)}
.s-partners-link .arrow{font-family:var(--s-serif-en);font-style:italic;color:var(--s-gold-deep);font-size:12px}

/* ===== Page Hero (固定ページ共通のHero) ===== */
.s-page{background:var(--s-paper)}
.s-page-hero{padding:170px 0 80px;position:relative;overflow:hidden;background:var(--s-paper)}
.s-page-hero .s-eyebrow{margin-bottom:22px}
.s-page-hero-title{font-family:var(--s-serif-jp);font-weight:600;font-size:clamp(32px,4.2vw,54px);line-height:1.55;letter-spacing:.04em;color:var(--s-navy-900);margin:0 0 32px;text-wrap:balance;max-width:960px}
.s-page-hero-title em{font-style:normal;background:linear-gradient(to bottom,transparent 62%,rgba(176,138,62,.35) 62%,rgba(176,138,62,.35) 92%,transparent 92%);padding:0 2px}
.s-page-hero-lede{font-family:var(--s-serif-jp);font-size:16px;line-height:2.1;color:var(--s-ink-700);max-width:720px;margin:0;letter-spacing:.03em}

/* ===== Generic page.php (fallback) ===== */
.s-page-head{padding:170px 0 48px;background:var(--s-paper)}
.s-page-eyebrow{font-family:var(--s-serif-en);font-size:12px;font-style:italic;color:var(--s-gold-deep);letter-spacing:.22em;text-transform:uppercase;margin-bottom:18px}
.s-page-title{font-family:var(--s-serif-jp);font-weight:600;font-size:clamp(28px,3.6vw,42px);line-height:1.55;letter-spacing:.04em;color:var(--s-navy-900);margin:0;text-wrap:balance;max-width:900px}
.s-page-hero-img{max-width:1080px;margin:0 auto 48px;padding:0 32px}
.s-page-hero-img img{width:100%;height:auto;display:block;border:1px solid var(--s-line)}
.s-page-body{max-width:780px;padding:32px 32px 120px;font-family:var(--s-serif-jp);font-size:16px;line-height:2.1;color:var(--s-ink-700)}
.s-page-body h2,.s-page-body h3,.s-page-body h4{font-family:var(--s-serif-jp);color:var(--s-navy-900);font-weight:600;letter-spacing:.04em;margin:56px 0 18px;padding-top:32px;border-top:1px solid var(--s-line)}
.s-page-body h2{font-size:28px;line-height:1.6}
.s-page-body h3{font-size:22px;line-height:1.7;border-top:none;padding-top:0;margin-top:40px}
.s-page-body h4{font-size:18px;border-top:none;padding-top:0;margin-top:32px}
.s-page-body p{margin:0 0 20px}
.s-page-body a{color:var(--s-accent);border-bottom:1px solid var(--s-accent);padding-bottom:1px}
.s-page-body ul,.s-page-body ol{padding-left:1.5em;margin:0 0 20px}
.s-page-body ul li,.s-page-body ol li{margin-bottom:10px;line-height:1.95}
.s-page-body strong,.s-page-body b{font-weight:700;color:var(--s-navy-900)}
.s-page-body blockquote{border-left:3px solid var(--s-gold);padding:12px 22px;margin:24px 0;background:var(--s-cream);font-style:italic;color:var(--s-navy-900)}
.s-page-body figure{margin:32px 0}
.s-page-body img{width:100%;height:auto}
.s-page-body .wp-block-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px;margin:32px 0}
.s-page-body .wp-block-table table{width:100%;border-collapse:collapse;margin:24px 0;font-family:var(--s-serif-jp);font-size:14px}
.s-page-body .wp-block-table th,.s-page-body .wp-block-table td{padding:14px 16px;border:1px solid var(--s-line);text-align:left;vertical-align:top}
.s-page-body .wp-block-table th{background:var(--s-cream);font-weight:600;color:var(--s-navy-900)}
.s-page-body .wp-block-media-text{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;margin:32px 0}
.s-page-body .wp-block-media-text__media img{width:100%;height:auto}
.s-page-pages{margin:32px 0;font-family:var(--s-serif-jp);font-size:14px;color:var(--s-ink-500)}
.s-page-cta{margin-top:64px;padding-top:48px;border-top:1px solid var(--s-line);display:flex;gap:24px;flex-wrap:wrap;align-items:center}

/* ===== 運営者ごあいさつ 専用 (page-1823.php) ===== */
.s-page-section{padding:100px 0;background:var(--s-paper);border-top:1px solid var(--s-line)}
.s-about-message{background:var(--s-cream)}
.s-about-inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}
.s-about-side{position:sticky;top:120px}
.s-about-body h2{font-family:var(--s-serif-jp);font-weight:600;font-size:clamp(28px,3.4vw,42px);line-height:1.7;color:var(--s-navy-900);margin:16px 0 32px;letter-spacing:.04em;text-wrap:balance}
.s-about-body h2 em{font-style:normal;background:linear-gradient(to bottom,transparent 62%,rgba(176,138,62,.35) 62%,rgba(176,138,62,.35) 92%,transparent 92%);padding:0 2px}
.s-about-body p{font-family:var(--s-serif-jp);font-size:16px;line-height:2.15;color:var(--s-ink-700);margin:0 0 20px}
.s-about-body p strong{font-weight:700;color:var(--s-navy-900);background:linear-gradient(to bottom,transparent 62%,rgba(176,138,62,.25) 62%,rgba(176,138,62,.25) 92%,transparent 92%);padding:0 2px}
.s-about-personal{font-size:14px!important;color:var(--s-ink-500)!important;padding-top:16px;border-top:1px dashed var(--s-line);margin-top:32px!important}

.s-about-profile-grid{display:grid;grid-template-columns:260px 1fr;gap:64px;align-items:start;margin-top:40px}
.s-about-profile-portrait{text-align:center;position:sticky;top:120px}
.s-about-profile-portrait img{width:200px;height:200px;border-radius:50%;object-fit:cover;object-position:center top;margin:0 auto 18px;border:3px solid var(--s-cream);box-shadow:0 8px 24px -8px rgba(11,27,58,.3)}
.s-about-profile-name{font-family:var(--s-serif-jp);font-size:18px;font-weight:700;color:var(--s-navy-900);letter-spacing:.08em;line-height:1.4}
.s-about-profile-name small{display:block;font-family:var(--s-serif-en);font-style:italic;font-weight:400;font-size:12px;color:var(--s-gold-deep);letter-spacing:.15em;margin-top:6px}
.s-about-profile-body p{font-family:var(--s-serif-jp);font-size:16px;line-height:2.15;color:var(--s-ink-700);margin:0 0 20px}
.s-about-profile-body p em{font-style:normal;background:linear-gradient(to bottom,transparent 62%,rgba(176,138,62,.32) 62%,rgba(176,138,62,.32) 92%,transparent 92%);padding:0 2px;color:var(--s-navy-900);font-weight:600}
.s-about-profile-body p strong{font-weight:700;color:var(--s-navy-900)}

/* ===== 指導サービス詳細 専用 (page-1678.php) ===== */
.s-service-detail-inner{max-width:920px;margin:0 auto}
.s-detail-block{padding:56px 0;border-bottom:1px solid var(--s-line)}
.s-detail-block:last-child{border-bottom:none}
.s-detail-block h2{font-family:var(--s-serif-jp);font-weight:600;font-size:clamp(24px,2.8vw,32px);line-height:1.6;color:var(--s-navy-900);margin:10px 0 24px;letter-spacing:.04em}
.s-detail-block p{font-family:var(--s-serif-jp);font-size:16px;line-height:2.1;color:var(--s-ink-700);margin:0 0 18px}
.s-detail-block p strong{font-weight:700;color:var(--s-navy-900);background:linear-gradient(to bottom,transparent 62%,rgba(176,138,62,.25) 62%,rgba(176,138,62,.25) 92%,transparent 92%);padding:0 2px}
.s-detail-lede{font-family:var(--s-serif-jp);font-size:14px!important;color:var(--s-ink-500)!important;margin:-12px 0 16px!important;letter-spacing:.05em}
.s-req-list{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:16px}
.s-req-list li{padding:18px 24px;background:var(--s-cream);border-left:3px solid var(--s-gold);font-family:var(--s-serif-jp);font-size:15px;line-height:1.85;color:var(--s-ink-700)}
.s-req-list li b{font-family:var(--s-serif-jp);font-weight:700;color:var(--s-navy-900);margin-right:8px;display:inline-block;min-width:7em}

/* ===== Final CTA ===== */
.s-final{padding:140px 0;background:var(--s-navy-900);color:var(--s-cream);text-align:center;position:relative;overflow:hidden}
.s-final::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(176,138,62,.18),transparent 62%)}
.s-final-inner{position:relative;z-index:1;max-width:780px;margin:0 auto}
.s-final-eyebrow{font-family:var(--s-serif-en);font-style:italic;font-size:14px;letter-spacing:.22em;color:var(--s-gold);margin-bottom:32px}
.s-final h2{font-family:var(--s-serif-jp);font-weight:500;font-size:clamp(28px,4vw,48px);line-height:1.65;margin:0 0 32px;letter-spacing:.04em;text-wrap:balance}
.s-final h2 em{font-style:normal;color:var(--s-gold);border-bottom:2px solid var(--s-gold);padding-bottom:4px}
.s-final p{font-family:var(--s-serif-jp);font-size:16px;line-height:2.05;color:rgba(247,242,232,.75);margin:0 auto 48px;max-width:560px}
.s-final-cta{display:inline-flex;align-items:center;gap:16px;padding:22px 44px;background:var(--s-accent);color:var(--s-paper);font-family:var(--s-serif-jp);font-weight:500;font-size:16px;letter-spacing:.15em;border:1px solid var(--s-accent);text-decoration:none;transition:all .25s}
.s-final-cta:hover{background:var(--s-paper);color:var(--s-navy-900);border-color:var(--s-paper)}
.s-final-hint{margin-top:24px;font-family:var(--s-serif-jp);font-size:12px;color:rgba(247,242,232,.5);letter-spacing:.1em}

/* ===== Footer ===== */
.s-footer{background:#050c1e;color:rgba(247,242,232,.65);padding:80px 0 40px}
.s-footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:56px;margin-bottom:60px}
.s-footer h5{font-family:var(--s-serif-en);font-size:11px;font-style:italic;letter-spacing:.25em;text-transform:uppercase;color:var(--s-gold);margin:0 0 22px;font-weight:400}
.s-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.s-footer ul a{font-family:var(--s-serif-jp);font-size:13px;color:rgba(247,242,232,.72);transition:color .2s;letter-spacing:.03em}
.s-footer ul a:hover{color:var(--s-gold)}
.s-footer-brand{font-family:var(--s-serif-jp);font-size:17px;font-weight:600;color:var(--s-paper);margin-bottom:14px;letter-spacing:.08em;line-height:1.5}
.s-footer-logo{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:#ffffff;padding:16px;margin-bottom:18px;overflow:hidden}
.s-footer-logo img{width:100%;height:100%;object-fit:contain}
.s-footer-brand small{display:block;font-family:var(--s-serif-en);font-style:italic;font-size:11px;letter-spacing:.2em;color:var(--s-gold);font-weight:400;margin-top:6px}
.s-footer-tag{font-family:var(--s-serif-jp);font-size:13px;line-height:1.9;color:rgba(247,242,232,.55);margin:0}
.s-footer-bottom{border-top:1px solid rgba(247,242,232,.15);padding-top:32px;display:flex;justify-content:space-between;font-family:var(--s-serif-en);font-size:12px;font-style:italic;letter-spacing:.1em;color:rgba(247,242,232,.4)}

/* ===== Responsive ===== */
@media (max-width:900px){
    .s-hero-inner,.s-teacher-inner,.s-news-inner,.s-footer-grid{grid-template-columns:1fr;gap:48px}
    .s-service-grid,.s-pain-list,.s-results-stats,.s-voice-grid,.s-blog-grid,.s-pricing-grid,.s-partners-list,.s-about-inner,.s-about-profile-grid{grid-template-columns:1fr!important}
    .s-about-side,.s-about-profile-portrait{position:static}
    .s-about-profile-portrait img{width:140px;height:140px}
    .s-page-hero{padding:130px 0 64px}
    .s-page-section{padding:72px 0}
    .s-detail-block{padding:40px 0}
    .s-req-list li b{display:block;margin-bottom:4px}
    .s-schools{columns:2;column-gap:24px}
    .s-news-list li{row-gap:6px;padding:18px 0}
    .s-news-list a{flex:1 1 100%;font-size:15px;line-height:1.7}
    .s-news-list .s-news-date{font-size:12px}
    .s-container{padding:0 22px}
    .s-hero{padding:140px 0 80px}
    .s-services,.s-pricing,.s-results,.s-voice,.s-faq,.s-blog,.s-news,.s-final,.s-teacher,.s-empathy{padding:100px 0}
    /* スマホ・タブレット: テキストリンクは隠すが、お問い合わせCTAだけヘッダーに常時残す */
    .s-nav{display:flex;align-items:center;gap:0}
    .s-nav > a:not(.s-cta-small){display:none}
    .s-nav .s-cta-small{padding:10px 16px;font-size:12px;letter-spacing:.06em;white-space:nowrap}
    .s-brand-mark{height:40px;width:40px}
    .s-brand-name{font-size:15px;letter-spacing:.03em}
    .s-header-inner{justify-content:space-between}
    .s-teacher-side{position:static}
    .s-hero-portrait{margin:0 auto;max-width:100%}
    .s-portrait-stamp{width:72px;height:72px;right:-8px;top:-12px}
    .s-portrait-stamp b{font-size:18px}
    .s-sec-head{grid-template-columns:1fr;gap:12px;margin-bottom:40px}
    .s-sec-num{padding-top:0}
    .s-pain-card,.s-voice-card,.s-pricing-card{padding:32px 24px}
    .s-pricing-rows > div{grid-template-columns:1fr;gap:4px;text-align:left}
    .s-pricing-rows dd{text-align:left}
    .s-blog-banner{grid-template-columns:auto 1fr;gap:16px;padding:24px 22px}
    .s-blog-banner-more{grid-column:1/-1;justify-self:start;margin-top:8px}
    .s-blog-banner-num{font-size:36px}
    .s-results-stats{border-top:none;border-bottom:none}
    .s-stat{border-right:none;border-bottom:1px solid rgba(176,138,62,.2);padding:28px 20px}
    .s-stat:last-child{border-bottom:none}
    .s-final-cta{padding:18px 28px;font-size:14px}
    .s-footer-grid{grid-template-columns:1fr;gap:40px}
    .s-footer-bottom{flex-direction:column;gap:8px;text-align:center}
}
@media (max-width:480px){
    .s-schools{columns:1}
    .s-brand-mark{height:36px;width:36px}
    .s-brand-name{font-size:13px;letter-spacing:.02em}
}


/* ===== Floating Sticky CTA (scroll-driven) ===== */
.s-sticky-cta{
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:60;
    display:inline-flex;
    align-items:center;
    gap:14px;
    padding:16px 26px 16px 22px;
    background:var(--s-navy-900);
    color:var(--s-paper);
    border:1px solid var(--s-navy-900);
    border-radius:999px;
    text-decoration:none;
    font-family:var(--s-serif-jp);
    font-weight:600;
    font-size:14px;
    letter-spacing:.08em;
    line-height:1.4;
    box-shadow:0 10px 30px rgba(15,30,68,.30), 0 2px 8px rgba(15,30,68,.18);
    transform:translateY(150%);
    opacity:0;
    pointer-events:none;
    transition:transform .55s cubic-bezier(.2,.85,.25,1), opacity .4s ease, box-shadow .25s ease, background .25s ease, color .25s ease, padding .25s ease, gap .25s ease;
}
.s-sticky-cta.is-visible{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
}
.s-sticky-cta:hover{
    background:var(--s-gold-deep);
    border-color:var(--s-gold-deep);
    color:var(--s-paper);
    transform:translateY(-3px);
    box-shadow:0 16px 38px rgba(176,138,62,.40), 0 4px 10px rgba(176,138,62,.22);
}
.s-sticky-cta.is-slim{
    padding:12px 20px 12px 18px;
    gap:10px;
}
.s-sticky-cta.is-slim .s-sticky-cta-eyebrow{opacity:.55}
.s-sticky-cta.is-pulse::before{
    content:"";
    position:absolute;
    inset:-4px;
    border-radius:inherit;
    border:2px solid rgba(176,138,62,.75);
    pointer-events:none;
    animation:ys-sticky-cta-ring 1.4s ease-out infinite;
}
@keyframes ys-sticky-cta-ring{
    0%   { transform:scale(.96); opacity:.9; }
    70%  { transform:scale(1.14); opacity:0; }
    100% { transform:scale(1.14); opacity:0; }
}
.s-sticky-cta.is-pulse{
    animation:ys-sticky-cta-breathe 1.8s ease-in-out 3;
}
@keyframes ys-sticky-cta-breathe{
    0%, 100% { box-shadow:0 10px 30px rgba(15,30,68,.30), 0 2px 8px rgba(15,30,68,.18); }
    50%      { box-shadow:0 14px 42px rgba(176,138,62,.45), 0 4px 14px rgba(176,138,62,.26); }
}
.s-sticky-cta-eyebrow{
    font-family:var(--s-serif-en);
    font-style:italic;
    font-size:11px;
    letter-spacing:.18em;
    opacity:.85;
    padding:2px 10px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:999px;
}
.s-sticky-cta-label{white-space:nowrap}
.s-sticky-cta-arrow{
    font-family:var(--s-serif-en);
    font-style:italic;
    font-size:15px;
    margin-left:2px;
}
@media (max-width:900px){
    .s-sticky-cta{
        left:16px;
        right:16px;
        bottom:16px;
        justify-content:center;
        border-radius:10px;
        padding:16px 20px;
        font-size:15px;
        gap:10px;
    }
    .s-sticky-cta-eyebrow{display:none}
}
@media (max-width:480px){
    .s-sticky-cta{font-size:14px;padding:14px 16px}
    .s-sticky-cta-label{letter-spacing:.04em}
}
.page-id-564 .s-sticky-cta{display:none}
