/* renewal ページ専用 */
/* id="course-ttl-v2" */
.course__ttl .nw{font-size:inherit;color:inherit;font-weight:inherit;letter-spacing:inherit}
.course__ttl{top:10%;right:42%}
.course__ttl h3{font-size:clamp(1.5rem,2.3vw,2rem);font-weight:900;line-height:1.25;letter-spacing:.03em;text-shadow:0 2px 12px rgba(6,51,65,.35)}
.course__ttl h3::after{width:64px;height:3px;margin-top:var(--s-4);background:var(--c-white)}
@media (min-width:900px) and (max-width:1199px){.course__ttl{right:38%}.course__ttl h3{font-size:1.25rem}.course__ttl h3::after{width:44px;margin-top:var(--s-3)}}
@media (max-width:899px){.course__ttl h3{font-size:1.625rem}}
/* id="class2-page" */
/* ===== 二等ページ固有 ===== */
.c2-wrap{max-width:var(--container);margin:0 auto;padding:0 var(--s-7)}
.c2-en{display:block;font-family:var(--f-en);font-weight:700;font-size:1.5rem;letter-spacing:.14em;line-height:1.2;text-transform:uppercase;color:var(--c-cyan)}
.c2-head h2{margin-top:var(--s-4);font-size:var(--fs-h2);font-weight:900;line-height:1.4;color:var(--c-deep);word-break:keep-all;line-break:strict;text-wrap:balance}
.c2-head hr{width:96px;height:3px;border:0;border-radius:2px;background:var(--g-vivid);margin:var(--s-5) 0}
.c2-head p{font-size:var(--fs-lead);line-height:1.85;color:var(--c-ink-sub);max-width:34em;text-wrap:pretty}
.c2-head small{display:block;margin-top:var(--s-2);font-size:var(--fs-body);font-weight:700;color:var(--c-cyan);letter-spacing:.04em}
.c2-note{font-size:var(--fs-caption);line-height:1.8;color:var(--c-ink-sub)}
/* パンくず */
.c2-crumb{background:var(--c-white);border-bottom:1px solid var(--c-line)}
.c2-crumb ol{list-style:none;margin:0 auto;max-width:var(--container);padding:var(--s-3) var(--s-7);display:flex;flex-wrap:wrap;gap:var(--s-2);font-size:var(--fs-caption);color:var(--c-ink-sub)}
.c2-crumb li+li::before{content:"/";margin-right:var(--s-2);color:var(--c-line)}
.c2-crumb a{color:var(--c-cyan)}
/* ヒーロー：TOPのFVと同じ「写真＋左から濃いスクリーン」 */
.c2-hero{position:relative;overflow:hidden;background:var(--c-deep);color:var(--c-white)}
.c2-hero__photo{position:absolute;inset:0 0 0 30%;z-index:0}
.c2-hero__photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block}
.c2-hero__panel{position:absolute;inset:0;z-index:1;background:linear-gradient(92deg,#063341 0%,#063341 28%,rgba(10,110,147,.94) 48%,rgba(10,110,147,.62) 66%,rgba(15,124,154,.18) 86%,rgba(15,124,154,0) 100%)}
.c2-hero__inner{position:relative;z-index:2;max-width:var(--container);margin:0 auto;padding:var(--s-9) var(--s-7) calc(var(--s-10) + var(--s-7))}
.c2-hero .c2-en{color:var(--c-aqua)}
.c2-hero__kicker{margin-top:var(--s-4);font-size:var(--fs-lead);font-weight:700;letter-spacing:.06em;color:var(--c-aqua)}
.c2-hero h1{margin-top:var(--s-2);font-size:clamp(2.25rem,4vw,3.25rem);font-weight:900;line-height:1.3;letter-spacing:.02em;color:var(--c-white);word-break:keep-all;line-break:strict}
.c2-hero__lead{margin-top:var(--s-5);max-width:30em;font-size:var(--fs-body);line-height:1.95;color:var(--c-white);word-break:keep-all;line-break:strict;text-wrap:pretty}
.c2-hero__codes{margin-top:var(--s-6);display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em;color:var(--c-aqua)}
.c2-hero__codes b{font-family:var(--f-en);color:var(--c-white);margin-left:var(--s-2);font-variant-numeric:tabular-nums}
/* あなたの場合の受講料：ヒーローに重ねる3枚 */
.c2-pick{position:relative;z-index:3;margin-top:calc(-1 * (var(--s-10) + var(--s-2)))}
.c2-pick__label{display:flex;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-4);color:var(--c-white);font-size:var(--fs-body);font-weight:700}
.c2-pick__label .en{font-family:var(--f-en);font-size:var(--fs-caption);letter-spacing:.16em;color:var(--c-aqua)}
.c2-pick ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5)}
.c2-pick li{display:flex}
.c2-pick a{--k:var(--c-marine);position:relative;flex:1;display:grid;grid-template-rows:auto auto auto 1fr auto;gap:var(--s-2);padding:var(--s-6) var(--s-6) var(--s-5);background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-md);box-shadow:var(--e-1);color:var(--c-ink);text-decoration:none;overflow:hidden;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}
.c2-pick a::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--g-vivid)}
.c2-pick a:hover{border-color:var(--c-cyan);box-shadow:var(--e-2)}
.c2-pick__who{font-size:var(--fs-small);font-weight:700;color:var(--c-cyan);letter-spacing:.04em}
.c2-pick__name{font-size:var(--fs-h3);font-weight:900;color:var(--c-deep);line-height:1.35}
.c2-pick__price{align-self:end;display:flex;align-items:baseline;flex-wrap:wrap;gap:0 var(--s-2);padding-top:var(--s-4);margin-top:var(--s-2);border-top:1px solid var(--c-line)}
.c2-pick__price small{flex-basis:100%;font-size:var(--fs-caption);color:var(--c-ink-sub)}
.c2-pick__price b{font-family:var(--f-en);font-size:clamp(2.25rem,3.4vw,3rem);font-weight:700;line-height:1.05;letter-spacing:.01em;color:var(--c-marine);font-variant-numeric:tabular-nums}
.c2-pick__price span{font-size:var(--fs-small);font-weight:700;color:var(--c-deep)}
.c2-pick__price em{font-style:normal;font-size:var(--fs-caption);color:var(--c-ink-sub)}
.c2-pick__fact{justify-self:start;align-self:start;display:inline-flex;gap:var(--s-2);align-items:baseline;padding:2px var(--s-3);border-radius:var(--r-sm);background:var(--c-mist);font-size:var(--fs-caption);font-weight:700;color:var(--c-deep)}
.c2-pick__fact b{font-family:var(--f-en);font-size:1.0625rem;color:var(--c-marine)}
.c2-pick__go{position:relative;margin-top:var(--s-3);padding-right:var(--s-7);font-size:var(--fs-small);font-weight:700;color:var(--c-cyan)}
.c2-pick__go::after{content:"";position:absolute;right:var(--s-2);top:50%;width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:translateY(-50%) rotate(135deg)}
.c2-pick__foot{margin-top:var(--s-4)}
/* 経験者・学科免除：価格の強みを濃色面で示す */
.c2-pick a.is-key{background:var(--c-deep);border-color:var(--c-deep);color:var(--c-white)}
.c2-pick a.is-key:hover{border-color:var(--c-aqua)}
.c2-pick a.is-key .c2-pick__who{color:var(--c-aqua)}
.c2-pick a.is-key .c2-pick__name,.c2-pick a.is-key .c2-pick__price b,.c2-pick a.is-key .c2-pick__price span{color:var(--c-white)}
.c2-pick a.is-key .c2-pick__price{border-top-color:rgba(255,255,255,.28)}
.c2-pick a.is-key .c2-pick__price small,.c2-pick a.is-key .c2-pick__price em{color:var(--c-aqua)}
.c2-pick a.is-key .c2-pick__fact{background:rgba(255,255,255,.12);color:var(--c-white)}
.c2-pick a.is-key .c2-pick__fact b{color:var(--c-aqua)}
.c2-pick a.is-key .c2-pick__go{color:var(--c-aqua)}
/* コース詳細 */
.c2-sec{padding:var(--s-9) 0}
.c2-sec--tint{background-image:var(--g-mist)}
.c2-first{padding-top:var(--s-9)}
.c2-course{margin-top:var(--s-7);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s-6);align-items:start}
.c2-spec{position:relative;background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-md);box-shadow:var(--e-1);padding:var(--s-6);overflow:hidden}
.c2-spec::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--g-vivid)}
.c2-spec__name{font-size:var(--fs-h3);font-weight:900;color:var(--c-deep)}
.c2-spec dl{margin:var(--s-5) 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--c-line);border-radius:var(--r-md);overflow:hidden}
.c2-spec dl div{display:grid;gap:var(--s-1);padding:var(--s-3) var(--s-2);text-align:center;background:var(--c-mist)}
.c2-spec dl div+div{border-left:1px solid var(--c-line)}
.c2-spec dt{font-size:var(--fs-caption);font-weight:700;color:var(--c-ink-sub)}
.c2-spec dd{margin:0;font-size:var(--fs-small);font-weight:700;color:var(--c-deep)}
.c2-spec dd b{font-family:var(--f-en);font-size:1.75rem;line-height:1;color:var(--c-marine);font-variant-numeric:tabular-nums;margin-right:2px}
.c2-spec dd.is-none{color:var(--c-ink-sub);font-weight:500}
.c2-price{margin-top:var(--s-5);display:flex;align-items:baseline;flex-wrap:wrap;gap:0 var(--s-2)}
.c2-price b{font-family:var(--f-en);font-size:clamp(2.5rem,3.6vw,3.25rem);font-weight:700;line-height:1.05;color:var(--c-marine);font-variant-numeric:tabular-nums}
.c2-price span{font-size:var(--fs-small);font-weight:700;color:var(--c-deep)}
/* 初学者：通常→早割→キャンペーンの3段 */
.c2-ladder{list-style:none;margin:var(--s-5) 0 0;padding:0;display:grid;gap:0}
.c2-ladder li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:var(--s-1) var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--c-line)}
.c2-ladder__k{font-size:var(--fs-small);font-weight:700;color:var(--c-deep)}
.c2-ladder__v{display:flex;align-items:baseline;gap:var(--s-1);justify-self:end;white-space:nowrap}
.c2-ladder__v b{font-family:var(--f-en);font-size:1.75rem;font-weight:700;line-height:1.1;color:var(--c-marine);font-variant-numeric:tabular-nums}
.c2-ladder__v span{font-size:var(--fs-caption);color:var(--c-ink-sub)}
.c2-ladder__c{grid-column:1 / -1;font-size:var(--fs-caption);color:var(--c-ink-sub)}
.c2-ladder li.is-was .c2-ladder__v b{font-size:1.25rem;color:var(--c-ink-sub);text-decoration:line-through;text-decoration-thickness:1px}
.c2-ladder li.is-camp{margin-top:var(--s-3);padding:var(--s-4);border:0;border-radius:var(--r-md);background:var(--c-deep)}
.c2-ladder li.is-camp .c2-ladder__k{color:var(--c-white)}
.c2-ladder li.is-camp .c2-ladder__k em{display:block;font-style:normal;font-size:var(--fs-caption);letter-spacing:.08em;color:var(--c-aqua)}
.c2-ladder li.is-camp .c2-ladder__v b{color:var(--c-white)}
.c2-ladder li.is-camp .c2-ladder__v span,.c2-ladder li.is-camp .c2-ladder__c{color:var(--c-aqua)}
.c2-body{display:grid;gap:var(--s-4);padding-top:var(--s-2)}
.c2-body p{font-size:var(--fs-body);line-height:1.95;color:var(--c-ink);max-width:36em;text-wrap:pretty}
.c2-body .c2-note{font-size:var(--fs-caption)}
.c2-body__pt{margin:var(--s-2) 0 0;padding:var(--s-4) var(--s-5);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-white);font-size:var(--fs-body);font-weight:700;line-height:1.7;color:var(--c-deep)}
.c2-actions{margin-top:var(--s-3);display:flex;flex-wrap:wrap;gap:var(--s-3)}
.c2-course>*,.c2-body,.c2-actions{min-width:0}.c2-actions .btn{word-break:keep-all;line-break:strict;max-width:100%;white-space:normal;height:auto;min-height:56px;text-align:center}
/* 経験者：濃色帯（強み） */
.c2-exp{position:relative;overflow:hidden;color:var(--c-white)}
.c2-exp::before{content:"";position:absolute;inset:0;background:linear-gradient(155deg,#063341 0%,#0A6E93 58%,#0F7C9A 100%)}
.c2-exp .c2-wrap{position:relative;z-index:1}
.c2-exp .c2-en{color:var(--c-aqua)}
.c2-exp .c2-head h2{color:var(--c-white)}
.c2-exp .c2-head small{color:var(--c-aqua)}
.c2-exp .c2-body p{color:var(--c-white)}
.c2-exp .c2-body .c2-note{color:var(--c-aqua)}
.c2-exp .c2-body__pt{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:var(--c-white)}
.c2-exp .c2-spec{border-color:transparent}
/* 学科免除：2料金を並べる */
.c2-ex-rates{list-style:none;margin:var(--s-5) 0 0;padding:0;display:grid;gap:var(--s-3)}
.c2-ex-rates li{display:grid;gap:var(--s-2);padding:var(--s-4);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-white)}
.c2-ex-rates__k{font-size:var(--fs-small);font-weight:700;color:var(--c-deep)}
.c2-ex-rates__s{font-size:var(--fs-caption);color:var(--c-ink-sub)}
.c2-ex-rates .c2-price{margin-top:0}
.c2-ex-rates li.is-key{border:2px solid var(--c-marine);padding:calc(var(--s-4) - 1px)}
.c2-ex-rates .rate__badge{justify-self:start}
/* 比較表 */
.c2-table{margin-top:var(--s-7);border:1px solid var(--c-line);border-radius:var(--r-md);overflow:hidden;background:var(--c-white);box-shadow:var(--e-1)}
.c2-table table{width:100%;border-collapse:collapse}
.c2-table th,.c2-table td{padding:var(--s-4) var(--s-5);text-align:left;vertical-align:middle;border-top:1px solid var(--c-line);font-size:var(--fs-small)}
.c2-table thead th{border-top:0;background:var(--c-deep);color:var(--c-white);font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em}
.c2-table tbody th{font-weight:700;color:var(--c-deep);line-height:1.5}
.c2-table tbody th small{display:block;font-size:var(--fs-caption);font-weight:500;color:var(--c-ink-sub)}
.c2-table td.num{font-family:var(--f-en);font-variant-numeric:tabular-nums;white-space:nowrap}
.c2-table td.price b{font-family:var(--f-en);font-size:1.625rem;font-weight:700;color:var(--c-marine);font-variant-numeric:tabular-nums}
.c2-table td.price span{font-size:var(--fs-caption);color:var(--c-ink-sub);margin-left:var(--s-1)}
.c2-table td.price small{display:block;font-size:var(--fs-caption);color:var(--c-ink-sub)}
.c2-table tr.is-group td{padding:var(--s-2) var(--s-5);background:var(--c-mist);font-size:var(--fs-caption);font-weight:700;color:var(--c-cyan);letter-spacing:.06em}
/* 時間の棒グラフ：学科＝マリン、実地＝シアン。最大20時間 */
.c2-bar{display:flex;height:12px;width:min(220px,100%);border-radius:var(--r-sm);background:var(--c-mist);overflow:hidden}
.c2-bar i{display:block;height:100%}
.c2-bar .g{background:var(--c-marine)}
.c2-bar .j{background:var(--c-cyan-vivid)}
.c2-barcell{display:grid;gap:var(--s-1)}
.c2-barcell span{font-size:var(--fs-caption);color:var(--c-ink-sub);white-space:nowrap}
.c2-barcell span b{font-family:var(--f-en);color:var(--c-deep);font-variant-numeric:tabular-nums}
.c2-legend{margin-top:var(--s-4);display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);font-size:var(--fs-caption);color:var(--c-ink-sub)}
.c2-legend span{display:inline-flex;align-items:center;gap:var(--s-2)}
.c2-legend i{width:16px;height:8px;border-radius:2px;background:var(--c-marine)}
.c2-legend i.j{background:var(--c-cyan-vivid)}
.c2-table-foot{margin-top:var(--s-6);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s-4)}
/* 受講日数 */
.c2-days{margin-top:var(--s-7);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-7);align-items:start}
.c2-days__fig{display:grid;gap:var(--s-5);padding:var(--s-6);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-white)}
.c2-days__row{display:grid;gap:var(--s-2)}
.c2-days__row h3{font-size:var(--fs-small);font-weight:700;color:var(--c-deep)}
.c2-days__row p{font-size:var(--fs-caption);color:var(--c-ink-sub)}
.c2-days__blocks{display:flex;gap:var(--s-1)}
.c2-days__blocks i{flex:1;display:grid;place-items:center;height:48px;border-radius:var(--r-sm);background:var(--c-marine);color:var(--c-white);font-style:normal;font-family:var(--f-en);font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em}
.c2-days__blocks--flex i{height:32px;background:var(--c-mist);border:1px solid var(--c-cyan);color:var(--c-deep)}
.c2-days__blocks--flex i.dots{flex:.6;background:none;border:0;color:var(--c-ink-sub)}
.c2-days__body{display:grid;gap:var(--s-4)}
.c2-days__body p{font-size:var(--fs-body);line-height:1.95;color:var(--c-ink);text-wrap:pretty}
.c2-quote{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}
.c2-quote li{padding:var(--s-2) var(--s-4);border-radius:var(--r-sm);background:var(--c-mist);font-size:var(--fs-small);font-weight:700;color:var(--c-deep)}
/* レスポンシブ */
@media (max-width:1179px){.c2-pick ul{gap:var(--s-3)}.c2-pick a{padding:var(--s-5) var(--s-4) var(--s-4)}.c2-course{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media (max-width:899px){
.c2-wrap,.c2-hero__inner,.c2-crumb ol{padding-left:var(--gutter);padding-right:var(--gutter)}
.c2-hero__photo{inset:auto 0 0 0;height:46%}
.c2-hero__panel{background:linear-gradient(180deg,#063341 0%,#063341 50%,rgba(6,51,65,.72) 72%,rgba(6,51,65,.2) 100%)}
.c2-hero__inner{padding-top:var(--s-8);padding-bottom:calc(var(--s-10) + var(--s-9))}
.c2-hero__lead br{display:none}
.c2-hero h1{font-size:2rem}
.c2-hero__lead{word-break:normal}
.c2-hero .c2-en{font-size:1.125rem}
.c2-hero__codes{flex-direction:column}
.c2-pick__label{flex-direction:column;gap:var(--s-1)}
.c2-spec dl div{padding:var(--s-3) var(--s-1)}
.c2-spec dd{white-space:nowrap}
.c2-spec dd b{font-size:1.5rem}
.c2-ladder li{grid-template-columns:minmax(0,1fr)}
.c2-ladder__v{justify-self:start}
.c2-ladder li:not(.is-camp){grid-template-columns:auto minmax(0,1fr)}
.c2-ladder li:not(.is-camp) .c2-ladder__v{justify-self:end}
.c2-body p,.c2-days__body p,.c2-head p{word-break:normal}
.c2-pick ul{grid-template-columns:minmax(0,1fr)}
.c2-pick a{grid-template-rows:auto;padding:var(--s-5)}
.c2-course,.c2-days{grid-template-columns:minmax(0,1fr)}
.c2-sec{padding:var(--s-8) 0}
.c2-spec{padding:var(--s-5)}
.c2-table{border:0;background:none;box-shadow:none;overflow:visible}
.c2-table table,.c2-table tbody,.c2-table tr,.c2-table th,.c2-table td{display:block;width:auto}
.c2-table thead{display:none}
.c2-table tbody tr:not(.is-group){margin-bottom:var(--s-3);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-white);overflow:hidden}
.c2-table tr.is-group td{background:none;padding:var(--s-4) 0 var(--s-2);border:0}
.c2-table tbody th{background:var(--c-mist);border-top:0}
.c2-table td{display:flex!important;justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-4)}
.c2-table td::before{content:attr(data-label);flex:none;font-family:var(--f-jp);font-size:var(--fs-caption);font-weight:700;color:var(--c-ink-sub)}
.c2-table td.price{flex-wrap:wrap}
.c2-table td.price small{flex-basis:100%;text-align:right}
.c2-bar{width:140px}
}
/* 改行：意味の切れ目（span.nw＋wbr）でのみ折り返す */
.c2-head h2,.c2-actions .btn,.c2-pick__who,.c2-pick__label,.c2-pick__price small,.c2-table th small,.c2-table-foot .btn{word-break:keep-all;overflow-wrap:normal;line-break:strict}
.c2-head h2 .nw,.c2-actions .btn .nw,.c2-pick .nw,.c2-table .nw,.c2-table-foot .nw{white-space:nowrap}
@media (max-width:899px){.c2-head h2{font-size:1.625rem;line-height:1.45}.c2-actions{display:grid;grid-template-columns:minmax(0,1fr)}.c2-actions .btn{width:100%}.c2-hero__rec a{display:block;margin:var(--s-2) 0 0}}
.btn__txt,.lbl__txt{display:inline}
/* sp-btn */@media (max-width:899px){.c2-actions .btn,.pr-foot .btn,.c2-table-foot .btn,.pr-prep .btn{padding-left:var(--s-4);padding-right:var(--s-4);font-size:1.0625rem}}
/* ===== 更新講習ページ ===== */
.rn-hero h1{font-size:clamp(2rem,3.6vw,3rem)}
.rn-hero h1 .nw{white-space:nowrap}
.rn-tags{list-style:none;margin:var(--s-5) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-6)}
.rn-tags li{position:relative;padding-left:var(--s-4);font-size:var(--fs-lead);font-weight:700;color:var(--c-aqua);white-space:nowrap}
.rn-tags li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--c-aqua)}
.rn-hero__cta,.rn-bottom-cta{margin-top:var(--s-6);display:flex}
.rn-hero__cta .btn,.rn-bottom-cta .btn{max-width:100%;white-space:normal;height:auto;min-height:56px;word-break:keep-all;text-align:center}
.rn-features{position:relative;z-index:3;margin-top:calc(-1 * var(--s-9));padding-bottom:var(--s-9)}
.rn-features .c2-pick__label{display:flex;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-4);color:var(--c-white);font-size:var(--fs-body);font-weight:700}
.rn-features .c2-pick__label .en{font-family:var(--f-en);font-size:var(--fs-caption);letter-spacing:.16em;color:var(--c-aqua)}
.rn-feats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-4)}
.rn-feat{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:var(--s-3);padding:var(--s-6) var(--s-5) var(--s-5);background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-md);box-shadow:var(--e-1);overflow:hidden}
.rn-feat::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--g-vivid)}
.rn-feat__n{font-family:var(--f-en);font-size:2.25rem;font-weight:800;line-height:1;color:var(--c-cyan);font-variation-settings:"wdth" 90}
.rn-feat h3{font-size:1.375rem;font-weight:900;line-height:1.45;color:var(--c-deep);word-break:keep-all}
.rn-feat h3 .nw{white-space:nowrap}
.rn-feat p{font-size:var(--fs-small);line-height:1.85;color:var(--c-ink);text-wrap:pretty}
.rn-feat p.c2-note{font-size:var(--fs-caption);color:var(--c-ink-sub)}
.rn-term{display:grid;justify-items:center;gap:var(--s-2);padding:var(--s-7) var(--s-6);text-align:center}
.rn-term__k{font-size:var(--fs-body);font-weight:700;color:var(--c-deep)}
.rn-term__v{font-size:var(--fs-h3);font-weight:900;color:var(--c-deep)}
.rn-term__v b{font-family:var(--f-en);font-size:5rem;line-height:1;color:var(--c-marine);margin-right:var(--s-1);font-variant-numeric:tabular-nums}
.rn-price{margin-top:var(--s-7);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s-6);align-items:stretch}
.rn-price__cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4)}
.rn-price__cards li{position:relative;display:grid;align-content:start;gap:var(--s-2);padding:var(--s-6);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-white);box-shadow:var(--e-1);overflow:hidden}
.rn-price__cards li::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--g-vivid)}
.rn-price__cards li.is-key{background:var(--c-deep);border-color:var(--c-deep)}
.rn-price__k{font-size:var(--fs-h3);font-weight:900;color:var(--c-deep)}
.rn-price__k small{display:block;font-size:var(--fs-caption);font-weight:700;color:var(--c-ink-sub)}
.rn-price__t{justify-self:start;padding:2px var(--s-3);border-radius:var(--r-sm);background:var(--c-mist);font-size:var(--fs-caption);font-weight:700;color:var(--c-deep)}
.rn-price__cards .c2-price{margin-top:var(--s-3)}
.rn-price__cards li.is-key .rn-price__k,.rn-price__cards li.is-key .c2-price b,.rn-price__cards li.is-key .c2-price span{color:var(--c-white)}
.rn-price__cards li.is-key .rn-price__k small{color:var(--c-aqua)}
.rn-price__cards li.is-key .rn-price__t{background:rgba(255,255,255,.12);color:var(--c-white)}
.rn-info{margin:0;padding:var(--s-5) var(--s-6);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-mist);display:grid;align-content:center}
.rn-info div{display:grid;grid-template-columns:6em minmax(0,1fr);gap:var(--s-4);padding:var(--s-3) 0;border-top:1px solid var(--c-line)}
.rn-info div:first-child{border-top:0}
.rn-info dt{font-size:var(--fs-small);font-weight:700;color:var(--c-ink-sub)}
.rn-info dd{margin:0;font-size:var(--fs-body);font-weight:700;color:var(--c-deep);line-height:1.6}
.rn-info dd small{display:block;font-size:var(--fs-caption);font-weight:500;color:var(--c-ink-sub)}
.rn-price__note{margin-top:var(--s-4)}
.rn-flow{list-style:none;margin:var(--s-7) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-7)}
.rn-flow li{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:var(--s-3);padding:var(--s-5);border:1px solid var(--c-line);border-radius:var(--r-md);background:var(--c-white)}
.rn-flow li+li::before{content:"";position:absolute;left:calc(-1 * var(--s-7) + 10px);top:52px;width:calc(var(--s-7) - 20px);height:2px;background:var(--c-cyan)}
.rn-flow li+li::after{content:"";position:absolute;left:-18px;top:48px;width:9px;height:9px;border-top:2px solid var(--c-cyan);border-right:2px solid var(--c-cyan);transform:rotate(45deg)}
.rn-flow__s{font-family:var(--f-en);font-size:var(--fs-caption);font-weight:700;letter-spacing:.12em;color:var(--c-cyan)}
.rn-flow h3{font-size:1.25rem;font-weight:900;line-height:1.45;color:var(--c-deep);word-break:keep-all}
.rn-flow h3 .nw{white-space:nowrap}
.rn-flow p{font-size:var(--fs-small);line-height:1.8;color:var(--c-ink)}
.rn-flow li.is-first{border:2px solid var(--c-marine);padding:calc(var(--s-5) - 1px)}
.rn-flow li.is-goal{background:var(--c-deep);border-color:var(--c-deep)}
.rn-flow li.is-goal .rn-flow__s{color:var(--c-aqua)}
.rn-flow li.is-goal h3,.rn-flow li.is-goal p{color:var(--c-white)}
.rn-light{color:var(--c-white)!important}
.rn-voices{list-style:none;margin:var(--s-7) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3)}
.rn-voices li{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:var(--s-3);padding:var(--s-5) var(--s-6) var(--s-6);border-top:2px solid var(--c-aqua);background:rgba(255,255,255,.06);border-radius:0 0 var(--r-md) var(--r-md)}
.rn-voices__n{font-family:var(--f-en);font-size:var(--fs-caption);font-weight:700;letter-spacing:.16em;color:var(--c-aqua)}
.rn-voices p{font-size:clamp(var(--fs-body),1.6vw,var(--fs-lead));font-weight:700;line-height:1.6;color:var(--c-white);word-break:keep-all;line-break:strict;text-wrap:balance}
.rn-voices .nw{white-space:nowrap}
.rn-after{margin-top:var(--s-5);font-size:var(--fs-body);line-height:1.9;color:var(--c-white);max-width:40em}
@media (max-width:1179px){.rn-voices p{font-size:var(--fs-body)}.rn-feats{grid-template-columns:repeat(2,minmax(0,1fr))}.rn-price{grid-template-columns:minmax(0,1fr)}.rn-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.rn-flow li:nth-child(3)::before,.rn-flow li:nth-child(3)::after{display:none}}
@media (max-width:899px){
.rn-hero h1{font-size:1.75rem}
.rn-tags{flex-direction:column;gap:var(--s-1)}
.rn-tags li{font-size:var(--fs-body)}
.rn-features{margin-top:calc(-1 * var(--s-8));padding-bottom:var(--s-8)}
.rn-features .c2-pick__label{flex-direction:column;gap:var(--s-1)}
.rn-feats{grid-template-columns:minmax(0,1fr);gap:var(--s-3)}
.rn-feat{padding:var(--s-5)}
.rn-feat__n{font-size:1.75rem}
.rn-term{padding:var(--s-5)}
.rn-term__v b{font-size:3.5rem}
.rn-price__cards{grid-template-columns:minmax(0,1fr)}
.rn-price__cards li{padding:var(--s-5)}
.rn-info{padding:var(--s-4) var(--s-5)}
.rn-info div{grid-template-columns:minmax(0,1fr);gap:var(--s-1)}
.rn-flow{grid-template-columns:minmax(0,1fr);gap:var(--s-6)}
.rn-flow li+li::before,.rn-flow li:nth-child(3)::before{display:block;left:40px;top:calc(-1 * var(--s-6) + 4px);width:2px;height:calc(var(--s-6) - 8px)}
.rn-flow li+li::after,.rn-flow li:nth-child(3)::after{display:block;left:36px;top:-12px;transform:rotate(135deg)}
.rn-voices{grid-template-columns:minmax(0,1fr)}
.rn-voices li{min-height:0}
.rn-hero__cta .btn,.rn-bottom-cta .btn{width:100%;padding-left:var(--s-4);padding-right:var(--s-4);font-size:1.0625rem}
}
/* ===== スマホ：段落の両端揃え ===== */
@media (max-width:899px){
:where(p,dd,blockquote,figcaption,li:not(:has(> small,> b,> strong,> span,> em))){text-align:justify;text-justify:inter-character;text-align-last:left}
:where(p,dd,li,blockquote,figcaption):has(.nw,wbr,> b:only-child,> strong:only-child){text-align:start}
.c2-pick__label,.c2-pick__label .lbl__txt{text-align:start!important;letter-spacing:0}
.c2-pick__label .lbl__txt{font-size:clamp(.875rem,4.4vw,1rem);white-space:nowrap}
p,dd,blockquote,figcaption{word-break:normal!important;line-break:strict;text-wrap-style:auto!important;overflow-wrap:anywhere}
:is(li,span,div,td,th,small,em,b,strong):not(:is(h1,h2,h3,h4,h5,h6,.btn,button,.nw)):not(:is(h1,h2,h3,h4,h5,h6,.btn,button) *){word-break:normal!important;text-wrap-style:auto!important}
}
/* ===== スマホ：ボタンの整形 ===== */
@media (max-width:899px){
.btn:not(.btn--sm){display:flex!important;box-sizing:border-box!important;width:auto!important;max-width:100%!important;min-width:0!important;align-self:stretch!important;justify-self:stretch!important;flex:1 1 100%;justify-content:center;align-items:center;height:auto!important;min-height:52px;padding:var(--s-3) var(--s-4)!important;line-height:1.45!important;font-size:clamp(.9375rem,4.1vw,1.0625rem)!important;text-align:center;word-break:keep-all!important;line-break:strict;text-wrap:balance!important;letter-spacing:.02em}
.btn:not(.btn--sm) .btn__txt{line-height:1.45}
}
/* ===== スマホ：ヘッダー固定 ===== */
@media (max-width:899px){
.gnav{position:fixed!important;top:0!important;left:0;right:0;z-index:60}
body{padding-top:var(--m-head,64px)}
.m-panel:not([hidden]){position:fixed;left:0;right:0;top:var(--m-head,64px);bottom:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
html.is-menu-open,html.is-menu-open body{overflow:hidden}
.m-toggle{min-width:48px;min-height:48px}
.m-toggle:focus-visible,.m-row:focus-visible,.mnav__list a:focus-visible{outline:3px solid var(--c-aqua);outline-offset:2px}
[id]{scroll-margin-top:calc(var(--m-head,64px) + 12px)}
}
