/* Pricing uses the same navy/gold foundation as the service introductions.
   Keep changes scoped here; plan-overview.css owns the shared three plan cards. */
.pricing-presentation{--pp-ink:#17394b;--pp-muted:#496170;--pp-line:#dae4e8;--pp-gold:#b29a5c;--pp-bg-light:#f1edf5;--pp-bg-tint:#e7f0f3;--mk-ink:var(--pp-ink);--mk-blue:#173e52;--mk-blue-dark:#0c293a;--mk-muted:var(--pp-muted);--mk-line:var(--pp-line);color:var(--pp-ink);background:var(--pp-bg-light)}
.pricing-presentation :is(h1,h2,h3){font-family:inherit;letter-spacing:.01em;font-weight:700;line-height:1.6;text-wrap:pretty}
.pricing-presentation h2{font-size:clamp(1.65rem,2.7vw,2.25rem)}
.pricing-presentation h3{font-size:1.2rem}
.pricing-presentation .mk-wrap{width:min(1200px,calc(100% - 80px))}
.pricing-presentation .mk-button{min-height:52px;padding:14px 22px;font-size:.9375rem;border-radius:6px}
.pricing-presentation .mk-text-link{min-height:44px;font-size:.875rem}
.pricing-presentation .pp-eyebrow{font-size:.8125rem;font-weight:700;letter-spacing:.065em;line-height:1.8;color:#806a34;margin-bottom:13px}
.pp-hero{position:relative;isolation:isolate;overflow:hidden;background:#143448;color:#fff;padding:57px 0 52px}
.pricing-presentation .pp-hero-photo{position:absolute;inset:0 0 0 auto;width:70%;height:100%;object-fit:cover;object-position:58% 50%;z-index:-2}
.pp-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#102e43 0%,#133448fa 32%,#143448d9 48%,#14344845 75%,#14344824)}
.pp-hero>.mk-wrap{position:relative}
.pp-hero-copy{width:58%;max-width:650px}
.pricing-presentation .pp-hero .pp-eyebrow{color:#e1d2a8;letter-spacing:.12em}
.pp-hero .pp-eyebrow span{margin-inline:12px;opacity:.65}
.pricing-presentation .pp-hero h1,.pricing-presentation .pp-final h2{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,Georgia,serif;font-weight:600;letter-spacing:.035em;line-height:1.5}
.pricing-presentation .pp-hero h1{font-size:clamp(2rem,3.65vw,3.15rem);margin-bottom:23px;text-shadow:0 2px 18px #0b273b55}
.pp-hero-lead{font-size:1rem;line-height:2;color:#edf2f4}
.pp-hero .mk-actions{gap:22px;margin-top:26px}
.pricing-presentation .pp-hero .mk-text-link{color:#fff;font-size:.875rem;border-bottom:1px solid #b6c9d077}
.pricing-presentation .mk-button.pp-gold-button{background:linear-gradient(115deg,#f0dfaa,#c8aa65);border-color:#d6bc7b;color:#243a41;box-shadow:inset 0 1px 0 #fff6,0 3px 9px #051d321c}
.pricing-presentation .mk-button.pp-gold-button:hover{background:#e7d29c}
.pp-hero-note{font-size:.75rem;line-height:1.9;color:#d6e2e7;margin-top:24px!important}
.pp-photo-caption{position:absolute;right:0;bottom:3px;padding:13px 18px;border-left:1px solid #e3cd93;color:#fff;background:#14344888;font-size:.8125rem;line-height:1.8;backdrop-filter:blur(7px)}
.pp-photo-caption small{display:block;color:#d9e1e5;font-size:.625rem;letter-spacing:.08em}
.pp-page-nav{background:#fff;border-bottom:1px solid var(--pp-line)}
.pp-page-nav>.mk-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.pp-page-nav a{font-size:.8125rem;font-weight:600;display:flex;align-items:center;gap:30px;padding:14px 0;white-space:nowrap}
.pp-page-nav a:after{content:"↓";font-size:.875rem;color:#8b784b;font-weight:400}
.pp-availability{background:#fffdfa}
.pp-availability>.mk-wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:26px 0;font-size:.75rem;color:var(--pp-muted)}
.pp-availability p:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:7px 13px}
.pp-availability strong{font-weight:650;color:var(--pp-ink)}
.pp-status-dot{width:7px;height:7px;border-radius:50%;background:#4c8074;flex-shrink:0}
.pp-section{padding-block:70px}
/* 2026-10-01: Muted lavender-gray / blue-gray separates sections from white and cream cards. */
.pricing-presentation :is(#included,#billing){background:var(--pp-bg-light)}
.pp-section-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:30px;margin-bottom:34px}
.pp-section-heading>p{font-size:.9375rem;line-height:2;color:var(--pp-muted);justify-self:end}
.pp-cost-section{background:var(--pp-bg-tint);border-block:1px solid var(--pp-line)}
.pp-payment-summary{background:#fff;border:1px solid #cbd8dc;border-radius:10px;overflow:hidden;box-shadow:0 8px 28px #15394b06}
.pp-payment-heading{display:flex;align-items:center;gap:15px;background:#193c4e;color:#fff;padding:18px 28px}
.pp-payment-heading>p{font-size:.875rem;font-weight:600;letter-spacing:.02em}
.pp-grade-label{font-size:.6875rem;color:#f1dfb3;border:1px solid #c2ae786b;padding:3px 9px;line-height:1.9;white-space:nowrap}
.pp-cost-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:30px 0 24px}
.pp-cost-card{padding:0 27px;min-width:0;border-right:1px solid var(--pp-line)}
.pp-cost-card:last-child{border-right:0}
.pricing-presentation .pp-cost-card h3{font-size:1.0625rem;padding-bottom:15px;border-bottom:2px solid #b9a375;margin-bottom:17px}
.pp-cost-first>p:first-child{font-size:.75rem;color:var(--pp-muted)}
.pp-amount{display:flex;align-items:baseline;gap:4px;line-height:1.4;margin-top:4px!important}
.pp-amount strong{font-family:Arial,sans-serif;font-size:2.2rem;line-height:1.4;letter-spacing:-.025em}
.pp-amount>span{font-size:.8125rem}
.pp-cost-detail{font-size:.6875rem;color:var(--pp-muted);min-height:3.5em;line-height:1.75;margin-top:7px!important}
.pp-cost-monthly{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:17px 0 18px;font-size:.75rem}
.pp-cost-monthly>span{color:var(--pp-muted)}
.pp-cost-monthly strong{font-family:Arial,sans-serif;font-size:1.35rem;margin-right:4px}
.pp-cost-monthly p>span{margin-left:3px;color:var(--pp-muted)}
.pricing-presentation .pp-cost-card .mk-text-link{font-size:.8125rem;justify-content:space-between;width:100%;margin-top:14px;gap:6px}
.pp-small{font-size:.75rem;line-height:1.9;color:var(--pp-muted)}
.pp-payment-summary>.pp-small{padding:0 28px 21px}
.pp-grade-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start;margin-top:22px}
.pricing-presentation .pp-grade-details .mk-price-disclosure{margin:0;background:transparent;border:0;border-top:1px solid #bdcdd3;border-bottom:1px solid #bdcdd3;border-radius:0}
.pricing-presentation .pp-grade-details summary{list-style:none;display:flex;align-items:center;gap:12px;position:relative;padding:18px 26px 18px 0;font-size:.875rem;line-height:1.6}
.pp-grade-details summary::-webkit-details-marker{display:none}
.pp-grade-details summary small{font-size:.6875rem;color:var(--pp-muted);font-weight:400}
.pp-grade-details summary:after{content:"＋";position:absolute;right:0;font-size:1.15rem;color:#806a34;font-weight:400}
.pp-grade-details details[open] summary:after{content:"−"}
.pricing-presentation .pp-grade-details details>div{padding:0 0 18px;font-size:.75rem;line-height:1.9;color:var(--pp-muted)}
.pp-grade-details ul{padding-left:1.25em;margin-block:10px}
.pp-grade-details li+li{margin-top:8px}
.pp-table-scroll{overflow-x:auto;border:1px solid var(--pp-line);border-radius:8px;background:#fff;scrollbar-color:#b5c6ca #edf2f3}
.pp-table-scroll:focus-visible{outline:3px solid #ad8734;outline-offset:4px}
.pp-compare-table{border-collapse:separate;border-spacing:0;width:100%;min-width:690px;font-size:.875rem}
.pp-compare-table th,.pp-compare-table td{padding:22px 24px;border-bottom:1px solid var(--pp-line);text-align:center}
.pp-compare-table thead th{background:#17394b;color:#fff;font-size:.8125rem;padding-block:20px;font-weight:650}
.pp-compare-table th:first-child{text-align:left;width:36%}
.pp-compare-table tbody th{font-weight:650;background:#fff}
.pp-compare-table tbody td{width:21.33%;background:#fff}
.pp-compare-table tbody small{display:block;font-size:.75rem;font-weight:400;line-height:1.75;color:var(--pp-muted);margin-top:5px}
.pp-compare-table tbody tr:last-child :is(th,td){border-bottom:0}
.pp-check{font-size:1.35rem;color:#438276;font-weight:500}
.pp-dash{color:#9baab0;font-size:1.1rem}
.pp-compare-period td{font-size:.8125rem;line-height:1.8}
.pp-table-note{margin-top:17px!important}
.pp-table-note a{text-decoration:underline}
.pp-scroll-hint{display:none}
.pp-upgrade{margin-top:38px;padding:26px 30px;background:#f7f5ed;border-left:3px solid #b49b60;display:grid;grid-template-columns:40px 1fr auto;gap:18px;align-items:center}
.pp-upgrade-symbol{width:38px;height:38px;border:1px solid #c7b27e;border-radius:50%;display:grid;place-items:center;font-size:1.5rem;color:#8a7340;font-weight:300}
.pricing-presentation .pp-upgrade h3{font-size:1rem;margin-bottom:8px}
.pp-upgrade p{font-size:.8125rem;line-height:1.9;color:var(--pp-muted);max-width:53em}
.pricing-presentation .pp-upgrade .mk-text-link{white-space:nowrap;font-size:.8125rem}
.pp-start-section{background:var(--pp-bg-tint);border-block:1px solid var(--pp-line)}
.pp-start-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.pp-start-path{padding:30px 34px;background:#fff;border:1px solid var(--pp-line);border-radius:8px;display:flex;flex-direction:column}
.pp-path-label{font-size:.75rem;color:#826d3a;font-weight:650;letter-spacing:.045em;margin-bottom:8px!important}
.pricing-presentation .pp-start-path h3{font-size:1.25rem;line-height:1.7}
.pp-start-path ol{list-style:none;margin:25px 0 24px;padding:0;flex:1}
.pp-start-path li{display:flex;gap:18px;position:relative;padding-bottom:25px}
.pp-start-path li:last-child{padding-bottom:0}
.pp-start-path li>span{font-family:Georgia,serif;line-height:1.4;color:#9a8148;font-size:1.6rem;min-width:32px}
.pp-start-path li:not(:last-child):before{content:"";width:1px;position:absolute;top:40px;bottom:7px;left:12px;background:#d9d6c6}
.pp-start-path li strong{font-size:.875rem;line-height:1.7;font-weight:650}
.pp-start-path li p{font-size:.75rem;line-height:1.8;margin-top:5px;color:var(--pp-muted)}
.pp-start-path>.mk-button{width:100%}
.pp-start-path>.pp-small{text-align:center;margin-top:11px;font-size:.6875rem}
.pp-start-consult{background:#fcfcf8;border-color:#d8d5c3}
.pp-billing-layout{display:grid;grid-template-columns:.85fr 1.3fr;gap:80px}
.pp-billing-intro>p:not(.pp-eyebrow){font-size:.875rem;line-height:2;color:var(--pp-muted);margin-top:20px;max-width:26em}
.pp-billing-intro .mk-text-link{margin-top:20px}
.pp-faq{border-top:1px solid var(--pp-line)}
.pp-faq details{border-bottom:1px solid var(--pp-line)}
.pp-faq summary{position:relative;list-style:none;padding:22px 30px 22px 30px;font-size:.875rem;font-weight:650;line-height:1.85}
.pp-faq summary::-webkit-details-marker{display:none}
.pp-faq summary:before{content:"Q";position:absolute;left:0;top:22px;color:#947e45;font-family:Georgia,serif;font-weight:400;font-size:1.15rem;line-height:1.45}
.pp-faq summary:after{content:"＋";position:absolute;right:0;top:22px;font-size:1.1rem;font-weight:400;color:#778e98}
.pp-faq details[open] summary:after{content:"−"}
.pp-faq details>div{padding:0 27px 23px 30px;font-size:.8125rem;line-height:2;color:var(--pp-muted)}
.pp-competition{padding-block:35px 50px;border-top:1px solid var(--pp-line);background:var(--pp-bg-tint)}
.pricing-presentation .pp-competition h2{font-size:1.35rem}
.pricing-presentation .pp-competition .section-intro{margin-bottom:20px}
.pricing-presentation .pp-competition .pp-eyebrow{margin-bottom:6px}
.pricing-presentation .pp-competition .lead{font-size:.8125rem}
.pricing-presentation .pp-competition .compare-group{background:#fff;border:1px solid var(--pp-line);border-radius:7px;padding:0 24px}
.pp-competition .compare-group-summary{padding:18px 0;font-size:.875rem}
.pricing-presentation .pp-competition .compare-group-summary h3{font-size:.875rem}
.pp-competition .compare-group-body{padding-bottom:12px}
.pp-competition .compare-sources a{text-decoration:underline;overflow-wrap:anywhere}
.pp-final{position:relative;isolation:isolate;overflow:hidden;padding:60px 0 42px;background:#143448;color:#fff;border-bottom:1px solid #cbb57899;text-align:center}
.pp-final:before{content:"";position:absolute;width:620px;height:620px;right:-340px;top:-300px;border:1px solid #d7c48a26;border-radius:50%;box-shadow:0 0 0 60px #d7c48a05,0 0 0 120px #d7c48a03;z-index:-1}
.pricing-presentation .pp-final .pp-eyebrow{color:#e1cd97}
.pricing-presentation .pp-final h2{font-size:clamp(1.65rem,3vw,2.4rem);line-height:1.7}
.pp-final-paths{max-width:880px;margin:32px auto 27px;display:grid;grid-template-columns:1fr 1fr;gap:0}
.pp-final-paths>div{padding:0 36px}
.pp-final-paths>div+div{border-left:1px solid #66808d70}
.pricing-presentation .pp-final-paths h3{font-size:.9375rem;font-weight:650}
.pp-final-paths p{font-size:.75rem;color:#d4e0e7;margin-top:8px;margin-bottom:19px;line-height:1.8}
.pp-final-paths .mk-button{width:100%}
.pricing-presentation .mk-button.pp-outline-button{background:#ffffff08;border-color:#b8cbd0;color:#fff}
.pricing-presentation .mk-button.pp-outline-button:hover{background:#ffffff14}
.pricing-presentation .pp-sample-link{font-size:.75rem;color:#d9e4e8;text-decoration:underline;text-underline-offset:5px;display:inline-block;padding:9px}
.pp-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1100px){
 .pricing-presentation .mk-wrap{width:calc(100% - 56px)}
 .pp-hero-copy{width:66%}.pp-photo-caption{font-size:.75rem;max-width:230px}
 .pp-page-nav a{gap:15px}.pp-cost-card{padding-inline:20px}.pp-cost-detail{min-height:3.5em}
 .pp-upgrade{grid-template-columns:35px 1fr}.pp-upgrade .mk-text-link{grid-column:2;justify-self:start}
 .pp-start-path{padding:27px}.pp-billing-layout{gap:40px}
}
@media(max-width:800px){
 .pricing-presentation .mk-wrap{width:calc(100% - 40px)}
 .pp-hero{padding:44px 0}.pp-hero-copy{width:85%}.pp-hero:after{background:linear-gradient(90deg,#102e43fa,#133448ec 48%,#1434489c)}.pp-photo-caption{display:none}
 .pp-page-nav>.mk-wrap{overflow-x:auto;gap:24px;justify-content:flex-start;min-height:60px}.pp-page-nav a{font-size:.75rem;gap:12px}
 .pp-section{padding-block:48px}.pp-section-heading{grid-template-columns:1fr;gap:16px;margin-bottom:27px}.pp-section-heading>p{justify-self:start;font-size:.875rem}.pp-desktop-break{display:none}
 .pp-cost-card{padding-inline:15px}.pp-amount strong{font-size:1.8rem}.pricing-presentation .pp-cost-card .mk-text-link{font-size:.75rem}.pricing-presentation .pp-cost-card h3{font-size:.9375rem}
 .pp-grade-details{grid-template-columns:1fr;gap:0}.pricing-presentation .pp-grade-details .mk-price-disclosure+.mk-price-disclosure{border-top:0}.pp-grade-details summary small{font-size:.75rem}
 .pp-compare-table th:first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 #dce5e9}.pp-compare-table th,.pp-compare-table td{padding:18px}
 .pp-scroll-hint{display:block;font-size:.6875rem;color:var(--pp-muted);text-align:right;margin-bottom:9px!important}.pp-scroll-hint span{margin-left:8px}
 .pp-start-grid{gap:18px}.pp-start-path{padding:24px 20px}.pricing-presentation .pp-start-path h3{font-size:1.1rem}.pp-start-path li{gap:12px}.pp-start-path li strong{font-size:.8125rem}
 .pp-billing-layout{grid-template-columns:1fr;gap:27px}.pp-billing-intro>p:not(.pp-eyebrow){max-width:none;margin-top:14px}.pp-billing-intro .mk-text-link{margin-top:8px}
 .pp-final-paths>div{padding-inline:22px}
}
@media(max-width:600px){
 .pricing-presentation .mk-wrap{width:calc(100% - 36px)}
 .pp-hero{padding:35px 0 33px}.pp-hero-copy{width:100%;max-width:500px}.pricing-presentation .pp-hero-photo{width:100%;object-position:64% 50%;opacity:.8}.pp-hero:after{background:linear-gradient(100deg,#102e43f2,#133448e8 52%,#143448a8)}
 .pricing-presentation .pp-hero .pp-eyebrow{font-size:.6875rem}.pricing-presentation .pp-hero h1{font-size:clamp(2rem,8.2vw,2.65rem);line-height:1.55;margin-bottom:20px}.pp-hero-lead{font-size:.875rem;line-height:1.95}
 .pp-hero .mk-actions{gap:9px;margin-top:23px;flex-direction:column;align-items:stretch}.pp-hero .mk-button{width:100%}.pricing-presentation .pp-hero .mk-text-link{align-self:center;font-size:.8125rem;border:0}.pp-hero-note{margin-top:17px!important;font-size:.6875rem;line-height:1.85}
 .pp-page-nav>.mk-wrap{min-height:54px;gap:24px}.pp-page-nav a{font-size:.6875rem;padding-block:15px}
 .pp-availability>.mk-wrap{align-items:flex-start;flex-direction:column;gap:7px;font-size:.6875rem;padding-top:21px}.pp-availability p:first-child{gap:5px 9px}.pp-availability p:first-child>span:last-child{flex-basis:100%;padding-left:16px}.pp-availability p:last-child{padding-left:16px}
 .pricing-presentation h2{font-size:1.65rem}.pricing-presentation .pp-eyebrow{font-size:.75rem;margin-bottom:10px}.pp-section{padding-block:38px}.pp-section-heading>p{font-size:.8125rem;line-height:1.95}
 .pp-payment-heading{padding:16px;gap:12px;flex-wrap:wrap}.pp-payment-heading>p{font-size:.75rem}
 .pp-cost-cards{grid-template-columns:1fr;padding:0}.pp-cost-card{padding:24px 20px;border-right:0;border-bottom:1px solid var(--pp-line)}.pp-cost-card:last-child{border-bottom:0}.pricing-presentation .pp-cost-card h3{font-size:1.0625rem;margin-bottom:17px;padding-bottom:12px}
 .pp-cost-first{position:relative}.pp-amount strong{font-size:2.2rem}.pp-cost-detail{min-height:0;margin-top:6px!important;font-size:.6875rem}.pp-cost-monthly{padding-block:15px}
 .pricing-presentation .pp-cost-card .mk-text-link{font-size:.8125rem;margin-top:10px}.pp-payment-summary>.pp-small{padding:0 20px 19px;font-size:.6875rem}
 .pp-grade-details{margin-top:17px}.pricing-presentation .pp-grade-details summary{font-size:.8125rem;padding-block:16px}.pp-grade-details summary small{font-size:.6875rem}
 .pp-compare-table{min-width:590px;font-size:.75rem}.pp-compare-table th,.pp-compare-table td{padding:17px 13px}.pp-compare-table thead th{font-size:.6875rem}.pp-compare-table th:first-child{width:31%;min-width:170px}.pp-compare-table tbody td{width:23%}.pp-compare-table tbody small{font-size:.625rem}.pp-compare-period td{font-size:.6875rem}.pp-table-note{font-size:.6875rem;line-height:1.9}
 .pp-upgrade{padding:22px 18px;gap:11px 13px;margin-top:26px;grid-template-columns:28px 1fr}.pp-upgrade-symbol{width:28px;height:28px;font-size:1.1rem;align-self:start;margin-top:3px}.pricing-presentation .pp-upgrade h3{font-size:.9375rem}.pp-upgrade p{font-size:.75rem}.pricing-presentation .pp-upgrade .mk-text-link{font-size:.75rem}
 .pp-start-grid{grid-template-columns:1fr;gap:18px}.pp-start-path{padding:25px 22px}.pricing-presentation .pp-start-path h3{font-size:1.0625rem}.pp-start-path ol{margin-top:21px}.pp-start-path li strong{font-size:.875rem}.pp-start-path li{gap:15px}
 .pp-billing-intro>p:not(.pp-eyebrow){font-size:.8125rem}.pp-faq summary{font-size:.8125rem;padding-block:20px}.pp-faq summary:before,.pp-faq summary:after{top:20px}.pp-faq details>div{font-size:.75rem;padding-right:0}
 .pp-competition{padding-block:30px}.pricing-presentation .pp-competition h2{font-size:1.25rem}.pricing-presentation .pp-competition .lead{font-size:.75rem}.pricing-presentation .pp-competition .compare-group{padding-inline:16px}.pricing-presentation .pp-competition .compare-group-summary h3{font-size:.8125rem}
 .pp-final{padding:38px 0 27px}.pricing-presentation .pp-final .pp-eyebrow{font-size:.6875rem}.pricing-presentation .pp-final h2{font-size:clamp(1.35rem,6.2vw,1.7rem)}.pp-final-paths{grid-template-columns:1fr;margin-block:25px 14px;gap:25px}.pp-final-paths>div{padding-inline:0}.pp-final-paths>div+div{border-left:0;border-top:1px solid #66808d70;padding-top:25px}.pp-final-paths p{font-size:.6875rem;margin-bottom:15px}.pricing-presentation .pp-sample-link{font-size:.6875rem}
}

/* Static payment breakdown: no simulator or contract-period selection. */
.pp-payment-note{border-top:1px solid var(--pp-line);padding:20px 28px 12px;background:#fafbf8}
.pp-payment-note>strong{font-size:.8125rem;font-weight:650}
.pp-payment-note>p{font-size:.75rem;line-height:1.9;color:var(--pp-muted);margin-top:6px}
.pp-payment-heading>p>span{font-size:.75rem;font-weight:400;margin-left:5px}
.pp-payment-summary>.pp-small{background:#fafbf8}
@media(max-width:600px){.pp-payment-note{padding:18px 20px 10px}.pp-payment-note>strong{font-size:.75rem}.pp-payment-note>p{font-size:.6875rem}.pp-payment-heading>p>span{font-size:.6875rem}}

/* 指定された支払い欄を契約画面と同じカードで表示する。 */
#grade-prices .pp-payment-summary { border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
#grade-prices .pp-payment-heading { padding:0 0 20px; background:transparent; color:#17394b; }
#grade-prices .pp-grade-label { color:#806538; border-color:#bca26c; }
#grade-prices .plan-grid { display:grid; width:100%; min-width:0; }
#grade-prices .plan-price strong,#grade-prices .plan-price span { display:block; }
#grade-prices .plan-price span { margin-top:6px; line-height:1.7; }
#grade-prices .plan-includes { display:grid; list-style:none; color:#3c506a; }
#grade-prices .plan-includes li { position:relative; padding-left:24px; }
#grade-prices .plan-includes li::before { content:"✓"; position:absolute; left:0; color:#376b67; }
#grade-prices .contract-btn { align-items:center; text-decoration:none; line-height:1.5; }
#grade-prices .pp-payment-note { margin-top:24px; }
/* 契約アップグレードと同じ3プランカード。契約状況に応じた料金と申込先は維持する。 */
#grade-prices .plan-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; overflow:visible; border:0; border-radius:0; background:transparent; box-shadow:none; }
#grade-prices .plan-card,#grade-prices .plan-card.featured-plan { display:flex; flex-direction:column; gap:0; min-width:0; padding:0 24px 24px; overflow:hidden; border:1px solid #dae4e8; border-radius:7px; background:#fff; box-shadow:none; transform:none; text-align:center; }
#grade-prices .plan-audience,#grade-prices .featured-plan .plan-audience { display:block; margin:0 -24px 18px; padding:9px 12px; background:#17394b; color:#fff; font-size:.8125rem; font-weight:600; letter-spacing:.025em; text-align:center; }
#grade-prices .plan-card h3 { min-height:3.2em; margin:0 0 8px; padding:0; border:0; color:#17394b; font-size:1.35rem; line-height:1.6; text-align:center; }
#grade-prices .plan-card > p { max-width:22em; min-height:3.8em; margin:0 auto; color:#496170; font-size:.875rem; line-height:1.8; text-align:center; }
#grade-prices .plan-price,#grade-prices .featured-plan .plan-price { min-height:132px; margin-top:15px; padding:0; border:0; border-radius:0; background:transparent; }
#grade-prices .plan-price strong { color:#17394b; font-family:Arial,sans-serif; font-size:2.25rem; font-weight:700; letter-spacing:-.03em; }
#grade-prices .plan-price span { color:#496170; font-size:.8125rem; }
#grade-prices .plan-includes { gap:0; margin:18px 0 0; padding:16px 0 22px; border-top:1px solid #dae4e8; text-align:left; }
#grade-prices .plan-includes li { padding-top:4px; padding-bottom:4px; font-size:.875rem; line-height:1.8; }
#grade-prices .plan-actions { margin-top:auto; }
#grade-prices .upgrade-set-discount-note { margin:14px 0 0; color:#496170; font-size:.8rem; line-height:1.7; }
#grade-prices .upgrade-set-discount-note[hidden] { display:none; }
#grade-prices .upgrade-plan-note { margin:8px 0 0; color:#496170; font-size:.8rem; line-height:1.7; }
#grade-prices .upgrade-plan-note:empty { display:none; }
#grade-prices .upgrade-plan-note::before { content:"※ "; }
#grade-prices .plan-grid .plan-card .contract-btn { display:flex; justify-content:center; gap:12px; width:100%; min-height:46px; padding:11px 10px; border:1px solid #17394b; border-radius:6px; background:#17394b; color:#fff; box-shadow:none; font-size:.875rem; text-align:center; }
#grade-prices .plan-grid .plan-card .contract-btn::after { content:"→"; flex:none; }
#grade-prices .plan-grid .plan-card .contract-btn:disabled,#grade-prices .plan-grid .plan-card .contract-btn.is-disabled { border-color:#d5dce5; background:#edf0f4; color:#64748b; box-shadow:none; }
#grade-prices .plan-grid .plan-card .contract-btn:disabled::after,#grade-prices .plan-grid .plan-card .contract-btn.is-disabled::after { content:none; }

@media(max-width:900px) {
  #grade-prices .plan-grid { grid-template-columns:1fr; gap:20px; max-width:500px; margin-inline:auto; }
  #grade-prices .plan-card,#grade-prices .plan-card.featured-plan { padding:0 24px 24px; }
  #grade-prices .plan-card h3 { min-height:0; }
  #grade-prices .plan-price,#grade-prices .featured-plan .plan-price { min-height:0; }
}
@media(max-width:560px) {
  #grade-prices .plan-grid { max-width:none; }
  #grade-prices .plan-card > p { min-height:0; }
}

/* 契約選択ページ固有の外枠だけをアップグレード画面の白い面に合わせる。 */
.contract-shell { background:#f8fafc; }
#grade-prices { min-width:0; padding:38px 0 72px; }
#grade-prices .contract-head { display:block; margin:0 0 22px; }
#grade-prices .contract-head h1 { margin:0; color:#193453; font-size:clamp(1.7rem,3vw,2.2rem); line-height:1.4; letter-spacing:normal; }
#grade-prices .plan-section-heading h2 { margin:0; }
#grade-prices .plan-section-heading a,#grade-prices .upgrade-mobile-compare { color:#31587f; text-decoration:underline; text-underline-offset:5px; }
#grade-prices .plan-grid .plan-card .contract-btn:hover { background:#244e5f; color:#fff; }
@media(max-width:700px) {
  #grade-prices { padding:24px 0 44px; }
  #grade-prices .plan-section-heading { display:none; }
}

#grade-prices .pp-grade-picker { display:grid; justify-items:start; gap:10px; margin:0 0 26px; }
#grade-prices .pp-grade-picker label { color:#193453; font-weight:800; }
#grade-prices .pp-grade-picker select { width:min(100%,300px); min-width:0; padding:12px 40px 12px 16px; border:1px solid #b8c7d8; border-radius:9px; background:#f6f9fc; color:#193d6b; font:inherit; font-weight:700; }
#grade-prices .pp-grade-picker p { color:#62738a; font-size:.8rem; line-height:1.6; }
@media(max-width:700px) { #grade-prices .pp-grade-picker { justify-items:stretch; } #grade-prices .pp-grade-picker select { width:100%; } }

/* 支払い欄の見出しは本文の上に配置し、補足は枠なしの注記にする。 */
#grade-prices .pp-section-heading { grid-template-columns:minmax(0,1fr); gap:14px; }
#grade-prices .pp-section-heading > p { justify-self:start; }
#grade-prices #cost-title { white-space:nowrap; font-size:clamp(.875rem,4vw,2rem); }
#grade-prices .pp-payment-footnotes { margin-top:20px; color:var(--pp-muted); font-size:.75rem; line-height:1.9; }
#grade-prices .pp-payment-footnotes p { margin:5px 0 0; padding-left:1.3em; text-indent:-1.3em; }

/* 級選択を画面幅に合わせ、料金表示の重複を避ける。 */
#grade-prices .pp-grade-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:28px; }
#grade-prices .pp-grade-tabs button { min-height:72px; border:1px solid #ccd9df; border-radius:8px; background:#fff; color:#17394b; font:inherit; font-weight:700; }
#grade-prices .pp-grade-tabs button[aria-selected="true"] { background:#17394b; color:#fff; border-color:#17394b; }
#grade-prices .pp-grade-tabs button span { display:block; margin-top:3px; font-size:.75rem; font-weight:400; }
#grade-prices .pp-grade-tabs button:disabled { background:#e9eef0; color:#6b7b84; cursor:not-allowed; }
#grade-prices .pp-grade-accordion { border:0; padding:0; background:transparent; }
#grade-prices .pp-grade-accordion > summary,#grade-prices .pp-grade-unavailable { display:none; }
#grade-prices .plan-card > p { min-height:0; max-width:none; white-space:normal; font-size:.875rem; }
#grade-prices .plan-card h3 { min-height:0; margin-bottom:14px; }
@media(max-width:700px) {
 #grade-prices .pp-grade-tabs { display:none; }
 #grade-prices .pp-grade-accordion > summary,#grade-prices .pp-grade-unavailable { display:flex; align-items:center; gap:12px; padding:17px 16px; border:1px solid #cbd8df; border-radius:8px; font-weight:700; }
 #grade-prices .pp-grade-accordion > summary { background:#17394b; color:#fff; cursor:pointer; list-style:none; }
 #grade-prices .pp-grade-accordion > summary::-webkit-details-marker { display:none; }
 #grade-prices .pp-grade-accordion > summary::after { content:"＋"; margin-left:auto; }
 #grade-prices .pp-grade-accordion[open] > summary::after { content:"−"; }
 #grade-prices .pp-grade-accordion > summary span,#grade-prices .pp-grade-unavailable span { font-size:.75rem; font-weight:400; }
 #grade-prices .pp-grade-accordion .pp-payment-summary { padding-top:18px; }
 #grade-prices .pp-grade-unavailable { margin-top:12px; color:#6b7b84; background:#e9eef0; }
 #grade-prices .pp-grade-unavailable span { margin-left:auto; }
 #grade-prices .plan-card > p { font-size:clamp(.7rem,3.2vw,.875rem); }
 #grade-prices .plan-price { margin-top:18px; }
}

/* 級タブを料金カードの列から切り離し、3カードを共通の見出しでまとめる。 */
#grade-prices .pp-grade-switch { display:flex; align-items:center; gap:24px; padding:0 0 26px; border-bottom:1px solid #cdd9db; margin-bottom:30px; }
#grade-prices .pp-grade-switch > p { margin:0; font-size:.8rem; font-weight:700; color:#496170; }
#grade-prices .pp-grade-tabs { display:flex; gap:4px; width:fit-content; padding:5px; margin:0; border:1px solid #d5dfe1; border-radius:12px; background:#e8eeef; }
#grade-prices .pp-grade-tabs button { min-height:50px; width:126px; border:0; border-radius:8px; background:transparent; font-size:.875rem; }
#grade-prices .pp-grade-tabs button[aria-selected="true"] { background:#fff; color:#17394b; box-shadow:0 2px 7px #17394b15; outline:1px solid #c4ad7a; }
#grade-prices .pp-grade-tabs button:disabled { background:transparent; color:#75818a; }
#grade-prices .pp-grade-tabs button span { font-size:.625rem; margin-top:1px; }
#grade-prices .pp-grade-heading { position:relative; display:flex; align-items:baseline; flex-wrap:wrap; gap:10px 20px; padding:0 0 22px 17px; }
#grade-prices .pp-grade-heading::before { content:""; position:absolute; top:5px; left:0; width:3px; height:24px; background:#b69a60; }
#grade-prices .pp-grade-heading h3 { margin:0; font-size:1.35rem; color:#17394b; }
#grade-prices .pp-grade-heading p { margin:0; font-size:.8125rem; color:#496170; }
#grade-prices .pp-grade-heading > span { margin-left:auto; font-size:.7rem; color:#62738a; }
@media(max-width:700px) {
 #grade-prices .pp-grade-switch { display:none; }
 #grade-prices .pp-grade-heading { gap:5px; padding:0 0 16px; }
 #grade-prices .pp-grade-heading h3,#grade-prices .pp-grade-heading::before { display:none; }
 #grade-prices .pp-grade-accordion > summary { gap:8px; font-size:.95rem; }
 #grade-prices .pp-grade-accordion > summary span { font-size:.65rem; }
}

/* 各セクションを端的な見出しと、その直下の説明で案内する。 */
#included .pp-section-heading,#start .pp-section-heading { grid-template-columns:minmax(0,1fr); gap:14px; }
#included .pp-section-heading > p,#start .pp-section-heading > p { justify-self:start; }
#competition .pp-competition-content { padding:0; border:0; background:transparent; box-shadow:none; }
#competition .pp-competition-content > .compare-group-body { display:block; padding:0; }
#included .plan-compare-table { border-collapse:collapse; background:#fff; }
#included .plan-compare-table td { background:#fff; color:#24344f; }
#included .plan-symbol { display:inline-flex; align-items:center; justify-content:center; font-size:1.1rem; font-weight:700; }

/* 契約アップグレードと同じ比較表。 */
#included .plan-compare-scroll-hint { display:none; }
#included .plan-compare-box { overflow-x:auto; border:1px solid #dce3eb; border-radius:12px; }
#included .plan-compare-scrollbar { display:none; }
#included .plan-compare-table { width:100%; min-width:740px; table-layout:fixed; }
#included .plan-compare-table th,#included .plan-compare-table td { padding:18px; border-right:0; border-bottom:1px solid #e3e8ed; text-align:center; vertical-align:middle; font-size:.9rem; line-height:1.6; }
#included .plan-compare-table thead th { background:#eff3f7; color:#274564; font-weight:800; }
#included .plan-compare-table thead th:first-child { width:34%; text-align:left; }
#included .plan-compare-table thead th:last-child { background:#193d6b; color:#fff; }
#included .plan-compare-table tbody th { background:#fff; color:#253f5d; text-align:left; font-weight:700; }
#included .plan-compare-table tbody th small { display:block; margin-top:5px; color:#65748a; font-size:.78rem; font-weight:400; }
#included .plan-compare-table tbody td:last-child { background:#f5f8fc; }
#included .plan-compare-table tbody tr:last-child > * { border-bottom:0; }
#included .plan-symbol { width:32px; height:32px; border-radius:50%; }
#included .plan-symbol.yes { color:#28655a; background:#e6f2ec; }
#included .plan-symbol.no { color:#8995a4; background:none; }
#included .plan-cell-benefit { display:block; margin:8px auto 0; color:#355576; font-size:.78rem; font-weight:600; line-height:1.7; }
@media(max-width:700px) {
  #included .plan-compare-scroll-hint { display:block; margin:0 0 10px; color:#65748a; font-size:.76rem; }
  #included .plan-compare-table { width:max(100%,530px); min-width:530px; border-collapse:separate; border-spacing:0; }
  #included .plan-compare-table th,#included .plan-compare-table td { padding:13px 10px; border-right:1px solid #d1dde4; border-bottom:1px solid #d1dde4; font-size:.78rem; line-height:1.5; }
  #included .plan-compare-table tr > :last-child { border-right:0; }
  #included .plan-compare-table thead th,#included .plan-compare-table thead th:last-child { background:#17394b; color:#fff; font-size:.76rem; }
  #included .plan-compare-table thead th:first-child { position:sticky; left:0; z-index:2; width:125px; min-width:125px; box-shadow:2px 0 #a9bec9; }
  #included .plan-compare-table tbody th { position:sticky; left:0; z-index:1; width:125px; min-width:125px; background:#fff; color:#17394b; box-shadow:2px 0 #d1dde4; }
  #included .plan-compare-table tbody th small { font-size:.68rem; line-height:1.55; }
  #included .plan-compare-table tbody td:last-child { background:#fff; }
  #included .plan-compare-table tbody tr:nth-child(even) th,#included .plan-compare-table tbody tr:nth-child(even) td { background:#f3f7f9; }
  #included .plan-symbol { width:28px; height:28px; font-size:1rem; }
  #included .plan-cell-benefit { margin-top:5px; font-size:.68rem; line-height:1.5; }
}

/* 選択タブと表示内容を連続した一つのパネルとして扱う。 */
@media(min-width:701px) {
 #grade-prices .pp-grade-switch { display:block; margin:0; padding:0; border:0; }
 #grade-prices .pp-grade-switch > p { margin-bottom:12px; }
 #grade-prices .pp-grade-tabs { position:relative; z-index:1; gap:6px; padding:0; border:0; border-radius:0; background:transparent; margin-bottom:-1px; }
 #grade-prices .pp-grade-tabs button { width:142px; min-height:64px; border:1px solid #cad6da; border-bottom:0; border-radius:10px 10px 0 0; }
 #grade-prices .pp-grade-tabs button[aria-selected="true"] { position:relative; background:#fff; color:#17394b; outline:0; box-shadow:inset 0 3px #b69a60; padding-bottom:1px; }
 #grade-prices .pp-grade-tabs button:disabled { background:#e6edef; border-color:transparent; }
 #grade-prices .pp-grade-accordion { padding:26px 20px 20px; border:1px solid #cad6da; border-radius:0 12px 12px 12px; background:#fff; }
 #grade-prices .pp-grade-heading { padding-left:0; }
 #grade-prices .pp-grade-heading::before { content:none; }
 #grade-prices .plan-grid { gap:16px; }
}
#billing .pp-billing-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
#billing .pp-billing-intro { position:static; max-width:none; }
#billing .pp-billing-intro > p { max-width:52em; }
#billing .pp-faq { width:100%; min-width:0; }
#billing .pp-faq summary { padding-block:22px; }
#billing .pp-faq details > div { max-width:60em; }
@media(max-width:700px) {
 #billing .pp-billing-layout { gap:22px; }
 #billing .pp-faq summary { padding-block:18px; }
}

/* 塾紹介ページの比較表を料金ページ内に限定して再現。 */
#competition{--sp-ink:#17394b;--sp-muted:#496170;--sp-line:#dae4e8;--sp-gold:#b29a5c;min-width:0}
#competition .sp-comparison-scroll{overflow:auto;border:1px solid #cbd8dc;border-radius:8px;background:#fff}
#competition .sp-comparison-table{border-collapse:separate;border-spacing:0;width:100%;min-width:560px;font-size:.875rem;line-height:1.8;table-layout:fixed}
#competition .sp-comparison-table caption{text-align:left;font-size:.75rem;line-height:1.8;padding:12px 18px;background:#fff;color:var(--sp-muted)}
#competition .sp-comparison-table th,#competition .sp-comparison-table td{padding:16px 20px;vertical-align:top;border-bottom:1px solid var(--sp-line);text-align:left}
#competition .sp-comparison-table thead th{vertical-align:middle;background:#eaf0f2;font-size:1rem;border-top:1px solid var(--sp-line)}
#competition .sp-comparison-table thead th:first-child{width:17%;font-size:.8125rem}
#competition .sp-comparison-table tbody th{font-size:.8125rem;background:#f7f9fa}
#competition .sp-comparison-table small,#competition .sp-comparison-table th>span,#competition .sp-comparison-price td>span{display:block;font-size:.75rem;line-height:1.8;font-weight:400;color:var(--sp-muted)}
#competition .sp-comparison-table small{margin-top:5px}
#competition .sp-comparison-table td.sp-our-plan{background:#f5f1e5;border-inline:1px solid #dbcb9f}
#competition .sp-comparison-table thead .sp-our-plan{background:#173e52;color:#fff;border-top:3px solid #cbb779}
#competition .sp-comparison-table thead .sp-our-plan>span,#competition .sp-comparison-table thead .sp-our-plan small{color:#e5d6b0}
#competition .sp-comparison-table tr:last-child>*{border-bottom:0}
#competition .sp-comparison-price td>strong{display:block;font:700 clamp(1.3rem,2.1vw,1.8rem)/1.6 Arial,sans-serif;white-space:nowrap;margin-top:2px;color:var(--sp-ink)}
#competition .sp-comparison-price td>strong small{display:inline;margin-left:4px;font-size:.75rem;color:inherit}
#competition .sp-comparison-takeaway{font-size:.9375rem;line-height:1.95;border-left:3px solid var(--sp-gold);padding:4px 0 4px 18px;margin-top:23px!important;color:var(--sp-muted)}
#competition .sp-comparison-takeaway strong{color:var(--sp-ink)}
#competition .sp-comparison-sources{margin-top:20px;border-bottom:1px solid var(--sp-line);font-size:.75rem;color:var(--sp-muted)}
#competition .sp-comparison-sources summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:700;color:var(--sp-ink)}
#competition .sp-comparison-sources>div{padding:8px 0 20px;line-height:1.9;max-width:80em}
#competition .sp-comparison-sources p+p{margin-top:10px}
#competition .sp-comparison-sources ul{padding-left:1.3em;margin-block:12px}
#competition .sp-comparison-sources a{text-decoration:underline;text-underline-offset:3px}
#competition .sp-comparison-scroll-hint{display:none}
@media(max-width:1080px){#competition .sp-comparison-table th,#competition .sp-comparison-table td{padding:14px}}
@media(max-width:760px){#competition .sp-comparison-scroll-hint{display:block;font-size:.75rem;color:var(--sp-muted);margin-bottom:10px}#competition .sp-comparison-table th,#competition .sp-comparison-table td{padding:13px}#competition .sp-comparison-table{font-size:.8125rem}#competition .sp-comparison-table tr>:first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 #dae4e8}#competition .sp-comparison-takeaway{font-size:.875rem;padding-left:14px}#competition .sp-comparison-takeaway br{display:none}}

/* effbokiの3プランを列ごとに比較する。 */
#competition .sp-comparison-table{min-width:960px}
#competition .sp-comparison-table thead th{font-size:.8125rem}
#competition .sp-comparison-scroll-hint{display:block;font-size:.75rem;color:var(--sp-muted);margin-bottom:10px}

/* effbokiを上段でまとめ、下段で3プランを区別する。 */
#competition .sp-comparison-table thead .pp-effboki-group{text-align:center;font-size:1rem}
#competition .sp-comparison-table thead tr:nth-child(2) th{border-top:1px solid #58717c;text-align:center;width:auto}
@media(max-width:760px){#competition .sp-comparison-table thead tr:nth-child(2)>th:first-child{position:static;box-shadow:none}}

/* 比較表の3プランを青・緑・金で識別し、期間ごとの総額を並べる。 */
#competition .sp-comparison-table thead tr:nth-child(2) th:nth-child(1){background:#315d78}
#competition .sp-comparison-table thead tr:nth-child(2) th:nth-child(2){background:#30645d}
#competition .sp-comparison-table thead tr:nth-child(2) th:nth-child(3){background:#81642d}
#competition .sp-comparison-table tbody td:nth-child(2){background:#eef5fa;border-inline:1px solid #cfdee9}
#competition .sp-comparison-table tbody td:nth-child(3){background:#eef7f2;border-inline:1px solid #c9dfd4}
#competition .sp-comparison-table tbody td:nth-child(4){background:#fbf3df;border-inline:1px solid #e3c98c}
#competition .pp-cost-row td>strong{font-size:1.1rem;white-space:nowrap}
#competition .pp-comparison-message{font-size:1.05rem;line-height:1.9;margin-top:18px;color:var(--sp-ink)}
#competition .pp-comparison-message strong{font-size:1.2rem}
#competition .pp-comparison-message small{display:block;font-size:.75rem;color:var(--sp-muted)}
#competition .pp-cost-note{font-size:.75rem;line-height:1.9;color:var(--sp-muted);margin-top:14px}

/* 月数は級ごとの料金セル内に並べる。 */
#competition .pp-period-price{display:flex;justify-content:space-between;align-items:baseline;gap:8px;white-space:nowrap}
#competition .pp-period-price+.pp-period-price{margin-top:10px}
#competition .pp-period-price>span{font-size:.75rem;color:var(--sp-muted)}
#competition .pp-period-price>strong{font-size:1rem}

/* 含まれるサービスは同じ5項目で比較。 */
/* 補足の有無にかかわらず、各列の5項目を同じ高さに配置。 */
#competition .pp-included-checks{list-style:none;margin:0;padding:0;display:grid;grid-template-rows:28px 50px 76px 76px 60px;gap:12px}
#competition .pp-included-checks li{display:grid;grid-template-columns:18px 1fr;gap:6px;align-items:baseline;min-height:26px}
#competition .pp-check-mark{font-weight:800;color:#28665a}
#competition .pp-check-no .pp-check-mark{color:#72818a}
#competition .pp-check-conditional .pp-check-mark,#competition .pp-check-unknown .pp-check-mark{color:#81642d}
#competition .pp-included-checks small{margin-top:2px}

/* 各項目を表の行として揃え、内容に応じた高さと区切り線にする。 */
#competition .sp-comparison-table .pp-included-row>.pp-included-cell{padding:10px 20px;border-bottom:1px solid #cedbdd;position:static;box-shadow:none;vertical-align:top}
#competition .sp-comparison-table .pp-included-row>.pp-included-col-1{background:#eef5fa;border-inline:1px solid #cfdee9}
#competition .sp-comparison-table .pp-included-row>.pp-included-col-2{background:#eef7f2;border-inline:1px solid #c9dfd4}
#competition .sp-comparison-table .pp-included-row>.pp-included-col-3{background:#fbf3df;border-inline:1px solid #e3c98c}
#competition .sp-comparison-table .pp-included-row>.pp-included-col-4{background:#fff;border-inline:0}
#competition .pp-included-item{display:grid;grid-template-columns:18px 1fr;gap:6px;align-items:baseline}
#competition .pp-included-item small{margin-top:2px}
@media(max-width:1080px){#competition .sp-comparison-table .pp-included-row>.pp-included-cell{padding:10px 14px}}

/* 表の罫線は2px、項目間の補助線は両端を空けた1pxで区別。 */
#competition .sp-comparison-scroll{border:2px solid #aabdc5}
#competition .sp-comparison-table th,#competition .sp-comparison-table td{border-bottom-width:2px;border-bottom-color:#aabdc5}
#competition .sp-comparison-table tbody td{border-left:0;border-right:2px solid #aabdc5}
#competition .sp-comparison-table tbody td:last-child{border-right:0}
#competition .sp-comparison-table tbody th{border-right:2px solid #aabdc5}
#competition .sp-comparison-table .pp-included-row>.pp-included-cell{position:relative;border-left:0;border-right:2px solid #aabdc5;border-bottom:0}
#competition .sp-comparison-table .pp-included-row>.pp-included-cell:last-child{border-right:0}
#competition .sp-comparison-table .pp-included-row:has(+ .pp-included-row)>.pp-included-cell::after{content:"";position:absolute;bottom:0;left:18px;right:18px;height:1px;background:#c8d4d8;pointer-events:none}
#competition .sp-comparison-table .pp-included-row:not(:has(+ .pp-included-row))>.pp-included-cell{border-bottom:2px solid #aabdc5}

#competition .sp-comparison-takeaway p+p{margin-top:18px}

/* プランごとに説明をまとめ、表と同じ色で区別。 */
#competition .pp-plan-takeaways{display:grid;gap:20px;margin-top:24px}
#competition .pp-plan-takeaways .sp-comparison-takeaway{margin-top:0!important;padding:18px 22px;background:#fbf3df}
#competition .pp-plan-takeaways .pp-takeaway-ai{background:#eef7f2;border-left-color:#30645d}
#competition .pp-plan-takeaways h3{font-size:1rem;line-height:1.6;margin:0 0 10px;color:var(--sp-ink)}
#competition .pp-plan-takeaways p{margin:0}
#competition .pp-plan-takeaways p+p{margin-top:10px}

/* 料金ヒーローの見出しはPCで写真側まで使って1行にする。 */
@media (min-width: 761px){.pricing-presentation .pp-hero #pricing-title{width:max-content;max-width:none;white-space:nowrap}}

/* 塾紹介ページと同じ比較表・費用説明。 */
#competition .sp-comparison-scroll{border:0;border-radius:0}
#competition .sp-comparison-table{background:#fffefa;border-collapse:collapse}
#competition .sp-comparison-table :is(td,th){border:1px solid #dcded8;background:#fffefa;padding:15px 12px;font-size:14px;line-height:1.75;color:#173d50;box-shadow:none}
#competition .sp-comparison-table tbody tr>:nth-child(4){background:#f7f0d9}
#competition .sp-comparison-table thead .pp-effboki-group{background:#153e51;color:white;font:24px Georgia,serif;padding:8px}
#competition .sp-comparison-table thead tr:nth-child(2)>:nth-child(3){background:#d5be7d}
#competition .sp-comparison-table thead th{background:#f5f4ee;text-align:center}
#competition .sp-comparison-table .sp-reference-included td{text-align:center;padding:7px 10px}
#competition .sp-comparison-table .sp-reference-included th{padding:7px 12px}
#competition .sp-comparison-table .sp-included-title :is(th,td){padding:5px 12px;border-bottom:0}
#competition .sp-comparison-table caption{background:#fffefa;padding:18px 12px;font-weight:700;font-size:16px}
#competition .sp-comparison-table small{font-size:12px;line-height:1.7}
#competition .sp-reference-included th .sp-editorial-icon{display:inline-block;width:24px;height:24px;margin:0 12px 0 0;vertical-align:middle}
#competition .pp-period-price{gap:8px;flex-wrap:wrap}
#competition .pp-period-price>span{font-size:12px;white-space:nowrap}
#competition .pp-period-price>strong{white-space:nowrap}

#competition .sp-textbook-once>span{display:block;font-size:12px;font-weight:700;color:#496674}
#competition .sp-textbook-once>strong{display:block;font-size:24px;margin:6px 0 10px;color:#173d50}
#competition .sp-textbook-once>p{font-size:13px;line-height:1.8;margin:0}
#competition .sp-textbook-once>small{margin-top:10px;font-size:12px}

/* 比較表の見出しを読みやすくする。 */
#competition .sp-comparison-table thead tr:nth-child(2)>th:nth-child(-n+2){color:#fff}
#competition .sp-price-value-copy{margin:28px 0 34px;padding:0 4px;color:#496674}
#competition .sp-price-value-copy>p{font-size:15px;line-height:2;margin:0 0 22px}
#competition .sp-price-value-copy strong{color:#173d50;font-weight:700}
#competition .sp-price-value-copy>.sp-price-value-note{font-size:12px;line-height:1.8;margin-bottom:0}

#competition .sp-price-value-copy>.sp-price-comparison-label{margin:0 0 10px;font-size:15px;font-weight:700;color:#173d50}

#competition .sp-comparison-prose{font-size:15px;line-height:2;margin-bottom:26px}
#competition .sp-comparison-prose>p{margin:0}
#competition .sp-comparison-prose .sp-other-school-line,
#competition .sp-comparison-prose .sp-other-school-line strong{color:#8a593b}
#competition .sp-comparison-prose .sp-effboki-line,
#competition .sp-comparison-prose .sp-effboki-line strong{color:#23675d}
#competition .sp-comparison-prose .sp-effboki-line{border:0;padding:0;margin:0}
#competition .sp-price-value-copy>.sp-ai-comparison-label{margin-top:28px}
#competition .sp-comparison-table tbody tr>:nth-child(2){background:#eef5fa}
#competition .sp-comparison-table tbody tr>:nth-child(3){background:#eef7f2}
#competition .sp-comparison-table thead tr:nth-child(2)>th:nth-child(1){background:#315d78}
#competition .sp-comparison-table thead tr:nth-child(2)>th:nth-child(2){background:#30645d}
#competition .sp-comparison-table thead tr:nth-child(2)>th:nth-child(3){background:#d5be7d;color:#173d50}
#competition .sp-reference-included th .sp-editorial-icon{color:#173d50}

/* 2026-09-28: Keep incoming article links aligned below the fixed header. */
.pricing-presentation .plan-card[id] { scroll-margin-top: 100px; }

/* 2026-09-30: 料金ページのカードは見出しを一行にし、比較する項目を同じ行へ揃える。 */
#grade-prices .plan-grid { container-type:inline-size; }
#grade-prices .plan-card h3 {
  font-size:clamp(11px,1.36cqi,18px);
  letter-spacing:0;
  white-space:nowrap;
  text-wrap:nowrap;
}
@media(max-width:900px) {
  #grade-prices .plan-card { container-type:inline-size; }
  #grade-prices .plan-card h3 { font-size:clamp(11px,4.9cqi,18px); }
}
@media(min-width:901px) {
  #grade-prices .plan-grid { column-gap:16px; row-gap:0; }
  #grade-prices .plan-card,#grade-prices .plan-card.featured-plan {
    display:grid;
    grid-row:span 6;
    grid-template-rows:subgrid;
    row-gap:0;
  }
  #grade-prices .plan-card > p { align-self:start; }
  #grade-prices .plan-price,#grade-prices .featured-plan .plan-price {
    display:grid;
    grid-template-rows:2.8em auto 3.4em;
    align-content:start;
    min-height:0;
    font-size:.8125rem;
  }
  #grade-prices .plan-price span { margin-top:0; }
  #grade-prices .plan-price strong { line-height:1.4; margin-bottom:12px; }
  #grade-prices .plan-includes { align-content:start; }
  #grade-prices .plan-actions { align-self:stretch; margin-top:0; }
  #grade-prices .plan-actions .contract-btn { height:100%; }
}

/* 句点で区切った学習支援の説明を、狭い画面でも二行で比較できる幅にする。 */
#included .plan-compare-table { min-width:840px; }
#included .plan-compare-table thead th:first-child { width:28%; }
#included tbody tr:nth-child(5) .plan-cell-benefit { white-space:nowrap; }
@media(max-width:700px) {
  #included .plan-compare-table { width:max(100%,650px); min-width:650px; }
  #included .plan-compare-table thead th:first-child { width:125px; }
}
