/* デザイン案にない本番用の追加分だけをここに置く */

/* フォームの送信エラー */
.form-error{margin:14px 0 0;padding:12px 16px;border:2px solid #E0442A;border-radius:16px;background:#FFFFFF;color:#8E2614;font-size:15px;font-weight:700;line-height:1.7}
.form-error[hidden]{display:none}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* 記事の本文で使う要素（ひな形になかったもの） */
.post-body h4{margin:28px 0 10px;font-size:18px;line-height:1.6;font-weight:900;color:#1E1B17}
.post-body blockquote{margin:0 0 22px;padding:16px 20px;border-left:4px solid #E0442A;border-radius:0 16px 16px 0;background:#FAF7F1;font-weight:700;color:#1E1B17}
.post-body blockquote p{margin:0}
@media (max-width: 960px){
.post-body h4{font-size:16px}
}

.post-body h3[id]{scroll-margin-top:96px}
/* 全ページ共通の仕上げ。
   ページごとのCSS（top.css など）はデザイン案のままなので、上書きはここにまとめる。
   どの決まりも .pg を頭に付けて、ページごとのCSSより優先させている。 */

/* ========== 基本 ========== */
html{scroll-padding-top:88px}
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}
html.menu-open{overflow:hidden}
.ib{display:inline-block}
/* 単語の途中で折り返さない。折り返せる位置はビルド時に入れた <wbr> */
.pg{word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
:where(.pg) :is(h1,h2,h3,.hero-title,.final-title,.coach-catch){text-wrap:balance;font-feature-settings:"palt"}
:where(.pg) :is(p,li,dd){text-wrap:pretty}
:where(.pg img){max-width:100%;height:auto}
.pg .skip{position:absolute;left:16px;top:-80px;z-index:100;padding:12px 18px;border-radius:8px;background:#15120F;color:#FFFFFF;font-weight:900;text-decoration:none}
.pg .skip:focus{top:12px}
.pg .bg-paper{background:#FAF7F1}
.pg .bg-cream{background:#F1EBDF}

/* ========== ボタン（文字と地の色の差を広げる） ========== */
.pg .btn-red{background:#D63A20}
.pg .btn-gold{background:#876F36}
.pg .btn-line{background:#06C755;color:#15120F}
.pg .btn-line:hover{color:#15120F}
.pg .btn-line .dot{background:#15120F}
.pg .btn[disabled]{opacity:.6;cursor:progress}
.pg .vs-hd-pp,.pg .vs-pp{background:#D63A20}
.pg .vs-hd-pp{border-bottom-color:#D63A20}
.pg .vs-lo .vs-hd-pp,.pg .vs-lo .vs-pp{background:#1F3A2E}
.pg .vs-lo .vs-hd-pp{border-bottom-color:#1F3A2E}
.pg .req,.pg .onair,.pg .pick-label{background:#D63A20}
.pg .live-pill{background:#876F36}
.pg .mq-gold{background:#876F36}
.pg .vs-self{color:#6B6357}

/* ========== 動きを減らす ========== */
.pg .rv-l,.pg .rv-r,.pg .pop,.pg .wipe,.pg .zoom img,.pg .count,.pg .knob{animation:none}
.pg .card:hover{transform:none;box-shadow:none}
.pg .progress{height:3px}
@keyframes rise2{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@supports (animation-timeline: view()){
.pg .rv{animation-name:rise2;animation-range:entry 0% entry 50%}
}
@supports not (animation-timeline: scroll()){
.pg .progress{display:none}
}

/* ========== ヘッダー ========== */
.pg .hdr-logo{display:inline-flex;align-items:center;min-height:48px}
.pg .hdr-logo img{display:block;height:56px;width:auto;margin:0 -6px}
.pg .nav{gap:26px}
.pg .nav a[aria-current="page"]{color:#AE311B;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.pg .menu span{transition:transform .2s,width .2s}
.pg .menu:focus-visible{outline:3px solid #E0442A;outline-offset:2px}
@media (max-width: 1100px){
.pg .nav{display:none}
.pg .menu{display:flex}
.pg .hdr.is-open .nav{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;padding:4px 20px 24px;background:#F1EBDF;border-bottom:1px solid #D5CBB8;box-shadow:0 16px 32px #1E1B1726;max-height:calc(100vh - 60px);max-height:calc(100dvh - 60px);overflow-y:auto;overscroll-behavior:contain}
.pg .hdr.is-open .nav a:not(.btn){display:flex;align-items:center;min-height:56px;font-size:17px;border-bottom:1px solid #D5CBB8}
.pg .hdr.is-open .nav .btn{margin-top:20px;min-height:56px;font-size:16px}
.pg .hdr.is-open .menu span:first-child{width:24px !important;transform:translateY(4.5px) rotate(45deg)}
.pg .hdr.is-open .menu span:last-child{width:24px !important;transform:translateY(-4.5px) rotate(-45deg)}
}

/* ========== ページ内の移動（コースのページ） ========== */
.pg .ptoc{background:#FAF7F1;border-bottom:1px solid #D5CBB8}
.pg .ptoc ul{display:flex;gap:0 32px;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none}
.pg .ptoc ul::-webkit-scrollbar{display:none}
.pg .ptoc a{display:flex;align-items:center;min-height:56px;font-size:15px;font-weight:700;color:#1E1B17;text-decoration:none;white-space:nowrap}
.pg .ptoc a:hover{color:#AE311B;text-decoration:underline;text-underline-offset:6px}

/* ========== 最初の画面 ========== */
.pg .hero h1:not(.pp-h1):not(.lo-h1){margin:0 0 20px;font-family:inherit;font-size:18px;line-height:1.6;font-weight:700;letter-spacing:.08em;color:#F1EBDF}
.pg .pc-logo{display:block;height:52px;width:auto}
.pg .pc-sub{margin:18px 0 0;font-size:15px;font-weight:700;color:#4A443B}
.pg .pc-note{margin:14px 0 0;font-size:13px;line-height:1.7;color:#6B6357;text-align:center}
.pg .pc-name{margin:0;font-size:14px;font-weight:700;letter-spacing:.06em;color:#D9C29A}
.pg .pbox,.pg .lo-pbox,.pg .form,.pg .end-cta{box-shadow:none}
.pg .pbox,.pg .form,.pg .end-cta{border-width:2px}
.pg .crumb{font-family:inherit;letter-spacing:.06em}
.pg .crumb a{display:inline-flex;align-items:center;min-height:44px}

/* ========== 文字のリンク ========== */
.pg .tlink{display:inline-block;padding:9px 0;font-size:17px;line-height:1.6;font-weight:900;color:#1E1B17;text-decoration:none}
.pg .tlink .ib{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.pg .tlink .ib~.ib{margin-left:.4em}
.pg .tlink i{display:inline-block;width:9px;height:12px;margin-left:10px;background:currentColor;clip-path:polygon(0 0,100% 50%,0 100%);transition:transform .2s}
.pg .tlink:hover{color:#AE311B}
.pg .tlink:hover i{transform:translateX(4px)}
.pg .tlink-l{color:#F1EBDF}
.pg .tlink-l:hover{color:#FFE14D}
.pg .sec-foot{margin-top:40px}

/* ========== トップ：PRESS PLAY ========== */
.pg .pp-grid .sample{position:sticky;top:112px}
.pg .tfeat{display:grid}
.pg .tfeat article{display:grid;grid-template-columns:176px minmax(0,1fr);gap:24px;align-items:center;padding:20px 0;border-top:1px solid #D5CBB8}
.pg .tfeat article:last-child{border-bottom:1px solid #D5CBB8}
.pg .tfeat img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:#E6DECF}
.pg .tfeat h3{margin:0 0 6px;font-size:22px;line-height:1.4;font-weight:900}
.pg .tfeat p{margin:0;font-size:15px;line-height:1.75;color:#4A443B}

/* ========== トップ：LIVE ONE ========== */
.pg .live-photo,.pg .lo-feat-photo{outline:0}
.pg .lp-name{margin:0;font-size:14px;font-weight:700;letter-spacing:.06em;color:#D9C29A}
.pg .lp-time{margin:10px 0 0;font-size:14px;line-height:1.7;color:#D5CBB8}

/* ========== 2つのコースの比較（クロスフェーダー） ========== */
.pg .xf-sec{background:#FAF7F1}
.pg .xf-h2{text-align:center}
.pg .xf{--x:0;max-width:920px;margin:48px auto 0}
.pg .xf-deck,.pg .xf-hint{display:none}
.pg .xf-stage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.pg .xf-panel{display:flex;flex-direction:column;padding:40px;border-radius:16px}
.pg .xf-pp{background:#FFFFFF;border:2px solid #1E1B17;color:#1E1B17}
.pg .xf-lo{background:#1F3A2E;border:2px solid #1F3A2E;color:#F1EBDF}
.pg .xf-logo{display:block;align-self:flex-start;height:40px;width:auto;margin:0 0 20px}
.pg .xf-lo .xf-logo{height:28px;margin:6px 0 26px}
.pg .xf-panel h3{margin:0 0 20px;font-size:26px;line-height:1.45;font-weight:900}
.pg .xf-lo h3{color:#FFFFFF}
.pg .xf-panel dl{display:grid;gap:0;margin:0 0 32px}
.pg .xf-panel dl div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;align-items:baseline;padding:13px 0;border-top:1px solid #D5CBB8}
.pg .xf-lo dl div{border-top-color:#FFFFFF2E}
.pg .xf-panel dt{font-size:14px;font-weight:700;color:#6B6357}
.pg .xf-lo dt{color:#D9C29A}
.pg .xf-panel dd{margin:0;font-size:17px;line-height:1.55;font-weight:900}
.pg .xf-panel dl div:last-child dd .ib~.ib{margin-left:.6em}
.pg .xf-panel .btn{margin-top:auto;align-self:flex-start}
/* スクリプトが動いているときだけ1枚に重ねてつまみで切り替える */
.pg .xf.is-on .xf-deck{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center}
.pg .xf.is-on .xf-hint{display:block;margin:6px 0 0;font-size:13px;color:#6B6357;text-align:center}
.pg .xf.is-on .xf-stage{grid-template-columns:minmax(0,1fr);gap:0;margin-top:28px}
.pg .xf.is-on .xf-panel{grid-area:1/1}
.pg .xf.is-on .xf-pp{opacity:calc(1 - var(--x));transform:translateX(calc(var(--x) * -32px))}
.pg .xf.is-on .xf-lo{opacity:var(--x);transform:translateX(calc((1 - var(--x)) * 32px))}
.pg .xf.is-on .xf-panel dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.pg .xf-end{min-height:48px;padding:0 6px;border:0;background:none;font:inherit;font-size:17px;font-weight:900;letter-spacing:.04em;color:#1E1B17;cursor:pointer;white-space:nowrap}
.pg .xf-end[aria-pressed="false"]{color:#6B6357}
.pg .xf-end:hover{color:#AE311B}
.pg .xf-track{position:relative;display:flex;align-items:center;height:56px}
.pg .xf-track::before{content:"";position:absolute;left:16px;right:16px;top:8px;bottom:8px;background:repeating-linear-gradient(90deg,#B9B0A0 0 2px,transparent 2px calc(12.5% - .25px));background-position:left center;pointer-events:none;opacity:.7}
.pg .xf-range{position:relative;-webkit-appearance:none;appearance:none;width:100%;height:56px;margin:0;background:transparent;cursor:grab;touch-action:pan-y}
.pg .xf-range:active{cursor:grabbing}
.pg .xf-range::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:#1E1B17}
.pg .xf-range::-moz-range-track{height:6px;border-radius:3px;background:#1E1B17}
.pg .xf-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:32px;height:52px;margin-top:-23px;border:0;border-radius:6px;background:#D63A20 linear-gradient(#FFFFFF,#FFFFFF) center/18px 3px no-repeat;box-shadow:0 4px 0 #8E2614}
.pg .xf-range::-moz-range-thumb{width:32px;height:52px;border:0;border-radius:6px;background:#D63A20 linear-gradient(#FFFFFF,#FFFFFF) center/18px 3px no-repeat;box-shadow:0 4px 0 #8E2614}
.pg .xf-note{margin:14px 0 0;font-size:13px;color:#6B6357;text-align:center}
.pg .xf-range:focus-visible{outline:3px solid #1E1B17;outline-offset:2px;border-radius:8px}

/* ========== 選ばれる理由 ========== */
.pg .reasons{background:#F1EBDF}
.pg .rcard-no{font-size:72px}
.pg .rcard .photo.fig{background:#E5E5D5}
.pg .rcard .photo.fig img{object-fit:contain}

/* ========== 講師 ========== */
.pg .coach-role{min-height:0;padding:0;border-radius:0;background:none;color:#FFE14D;font-size:14px;font-weight:700;letter-spacing:.06em}
.pg .cfacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;margin:28px 0 0}
.pg .cfacts div{padding:16px 0;border-top:1px solid #FFFFFF2E}
.pg .cfacts dt{font-size:13px;line-height:1.5;color:#D5CBB8}
.pg .cfacts dd{margin:4px 0 0;font-size:24px;line-height:1.35;font-weight:900;color:#FFFFFF}
.pg .cfacts dd small{display:block;margin-top:4px;font-size:13px;line-height:1.6;font-weight:500;color:#B9B0A0}
.pg .cmini{position:relative;overflow:hidden;background:#15120F;color:#FFFFFF;padding:96px 0 0}
.pg .cmini-in{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:56px;align-items:end}
.pg .cmini-copy{padding-bottom:88px}
.pg .cmini .coach-photo img{max-width:400px}
.pg .cmini .coach-name{font-size:72px}
.pg .cmini .coach-catch{font-size:26px}
.pg .cmini .cfacts{max-width:640px}
.pg .cmini .btn{margin-top:32px}

/* ========== Student MIX ========== */
.pg .mix-sec{background:#FAF7F1}
.pg .mixcard{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;align-items:center;padding:56px;border-radius:16px;background:#0B1020;color:#FFFFFF;overflow:hidden}
.pg .mixcard .smix-brand{font-size:40px}
.pg .mixcard .smix-h{font-size:32px}
.pg .mixcard .btn{margin-top:32px}
.pg .mix-shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.pg .mix-shots img{display:block;width:100%;height:auto;border-radius:16px;border:1px solid #FFFFFF26}
.pg .mix-shots img:last-child{margin-top:40px}

/* ========== 記事の一覧（トップとブログで共通） ========== */
.pg .notes-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 32px;margin-bottom:32px}
.pg .notes{margin:0;padding:0;list-style:none;border-bottom:1px solid #D5CBB8}
.pg .note{display:grid;grid-template-columns:120px 280px minmax(0,1fr) 24px;gap:32px;align-items:center;padding:32px 0;border-top:1px solid #D5CBB8;color:#1E1B17;text-decoration:none}
.pg .note:hover .note-title{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.pg .note:hover .note-img img{transform:scale(1.04)}
.pg .note-no{font-family:'Chivo Mono',monospace;font-size:15px;font-weight:500;letter-spacing:.12em;color:#AE311B}
.pg .note-img{display:block;aspect-ratio:16/10;overflow:hidden;border-radius:16px;background:#15120F}
.pg .note-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pg .note-body{display:grid;gap:12px}
.pg .note-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-family:inherit;font-size:14px;letter-spacing:.04em;color:#6B6357}
.pg .note-tag{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:8px;background:#1E1B17;color:#FFE14D;font-size:13px;font-weight:900;letter-spacing:.06em}
.pg .note-title{display:block;margin:0;font-size:22px;line-height:1.6;font-weight:900}
.pg .note-arrow{justify-self:end;width:10px;height:14px;background:#1E1B17;clip-path:polygon(0 0,100% 50%,0 100%)}
.pg .related .note{grid-template-columns:96px 200px minmax(0,1fr) 24px;padding:24px 0}
.pg .related .note-title{font-size:18px}
.pg .post-meta{font-family:inherit;letter-spacing:.04em}

/* ========== 箇条書きと手順（箱をやめて線で区切る） ========== */
.pg .pain-list{gap:0}
.pg .pain-list li{gap:16px;padding:16px 0;border-bottom:1px solid #D5CBB8;border-radius:0;background:none}
.pg .pain-list li:first-child{border-top:1px solid #D5CBB8}
.pg .pain-list li::before{width:9px;height:16px;margin:-4px 8px 0 6px;border:solid #D63A20;border-width:0 3px 3px 0;border-radius:0;background:none;transform:rotate(45deg)}
.pg .pain-tag{border-radius:8px}
.pg .lo-genre{padding:0 0 0 16px;border-left:3px solid #977D40;border-radius:0;background:none;color:#4A443B}
.pg .steps-sec{background:#FAF7F1;color:#1E1B17}
.pg .steps{gap:40px}
.pg .step{padding:24px 0 0;border-top:2px solid #1E1B17;border-radius:0;background:none;color:inherit}
.pg .step:not(:last-child)::after{display:none}
.pg .steps-lo{background:#1F3A2E;color:#F1EBDF}
.pg .steps-lo .step{border-top-color:#977D40}
.pg .steps-lo .step-no{color:#D9C29A}
.pg .steps-lo .step p{color:#F1EBDF}
.pg .steps-lo .h2{color:#FFFFFF}
.pg .steps-lo .lead{color:#F1EBDF}
.pg .setup-list{gap:0}
.pg .setup-list .card{grid-template-columns:44px minmax(0,1fr);gap:8px;padding:20px 0;border:0;border-top:1px solid #D5CBB8;border-radius:0;background:none}
.pg .setup-list .card:last-of-type{border-bottom:1px solid #D5CBB8}
.pg .setup-list i{justify-content:flex-start;align-items:flex-start;width:auto;height:auto;padding-top:5px;border-radius:0;background:none;color:#AE311B;font-size:15px;font-weight:600}
.pg .setup-more{margin:24px 0 0;font-size:15px;line-height:1.8;color:#4A443B}
.pg .setup-more a{color:#1E1B17;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* ========== よくある質問 ========== */
.pg .faq details{margin:0;border-bottom:1px solid #D5CBB8;border-radius:0;background:none}
.pg .faq details:first-of-type{border-top:1px solid #D5CBB8}
.pg .faq summary{gap:16px;padding:20px 0}
.pg .faq summary .q{width:20px;height:auto;border-radius:0;background:none;color:#D63A20;font-size:20px;font-weight:600}
.pg .lo-faq summary .q{background:none;color:#876F36}
.pg .faq details p{padding:0 40px 24px 36px}
.pg .faq details a{color:#1E1B17;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* ========== 最後の申し込み ========== */
.pg .final-in{padding:144px 48px}

/* ========== フッター ========== */
.pg .foot{padding:72px 0;border-top:1px solid #D5CBB8;background:#F1EBDF}
.pg .foot-logo{display:block;height:60px;width:auto;margin:0 -6px}
.pg .foot-op{margin:16px 0 0;font-size:15px;color:#4A443B}
.pg .foot-op b{font-weight:700;color:#1E1B17}
.pg .foot nav div{gap:0}
.pg .foot-h{margin-bottom:4px;font-size:13px;font-weight:700;color:#6B6357}
.pg .foot nav a{display:flex;align-items:center;min-height:44px}
.pg .foot small{font-family:inherit}

/* ========== スマホの固定バー（表示の切り替えは site.js） ========== */
.pg .sticky-cta{animation:none;transform:translateY(110%);visibility:hidden;transition:transform .3s ease,visibility .3s}
.pg .sticky-cta.is-on{transform:none;visibility:visible}
.menu-open .pg .sticky-cta{display:none}
.pg .sc-txt{font-size:13px;line-height:1.4;font-weight:700;color:#4A443B}
.pg .sc-txt b{display:block;font-size:20px;font-weight:900;color:#1E1B17;white-space:nowrap}
.pg .sc-txt small{font-size:13px}

/* ========== PRESS PLAY のページ ========== */
.pg .spoints{gap:0;margin-top:28px}
.pg .spoints li{display:block;padding:0;border:0;border-top:1px solid #FFFFFF2E;border-radius:0;background:none}
.pg .spoints li:last-child{border-bottom:1px solid #FFFFFF2E}
.pg .spoints button{display:grid;grid-template-columns:36px minmax(0,1fr) 12px;gap:2px 16px;align-items:center;width:100%;min-height:76px;padding:14px 0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.pg .spoints i{display:block;grid-row:span 2;width:auto;height:auto;border-radius:0;background:none;color:#FFE14D;font-size:15px}
.pg .spoints b,.pg .spoints span{grid-column:2}
.pg .spoints button::after{content:"";grid-column:3;grid-row:1/span 2;width:10px;height:12px;background:#FFFFFF;clip-path:polygon(0 0,100% 50%,0 100%);opacity:.55;transition:opacity .2s,transform .2s}
.pg .spoints button:hover::after,.pg .spoints button[aria-current="true"]::after{opacity:1;transform:translateX(3px)}
.pg .spoints button[aria-current="true"] b{color:#FFE14D}
.pg .spoints button:focus-visible{outline:3px solid #FFE14D;outline-offset:2px}
.pg .sample-hint{margin:14px 0 0;font-size:14px;color:#B9B0A0}
.pg .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg .bx-a{grid-column:auto}
.pg .bx-f{border-radius:16px}
.pg .ctag{height:auto;padding:0;border-radius:0;background:none;color:#AE311B;font-size:14px;font-weight:900;letter-spacing:.08em}
.pg .bx-f .ctag{color:#D5CBB8}
.pg .tcols{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px;margin:16px 0}
.pg .tcols article{padding:22px 0 0;border-top:2px solid #1E1B17}
.pg .tcols h3{margin:8px 0;font-size:22px;line-height:1.45;font-weight:900}
.pg .tcols p{margin:0;font-size:15px;line-height:1.8;color:#4A443B}
.pg .genres{display:flex;flex-wrap:wrap;gap:4px 14px;margin:12px 0 0;padding:0;list-style:none;font-family:'Chivo Mono',monospace;font-size:14px;font-weight:500;letter-spacing:.06em;color:#1E1B17}
.pg .pp-for{background:#F1EBDF}
.pg .pnotes{display:grid;gap:8px;margin:28px 0 0;padding:0;list-style:none}
.pg .pnotes li{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:700}
.pg .pnotes li::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:#1E1B17}
.pg .next-link{padding:11px 0;margin-top:4px}

/* ========== LIVE ONE のページ ========== */
.pg .lo-for{background:#FAF7F1}
.pg .lo-tags{gap:4px 22px}
.pg .lo-tags span{gap:8px;height:auto;padding:0;border:0;border-radius:0;color:#D9C29A}
.pg .lo-tags span::before{content:"";width:6px;height:6px;border-radius:50%;background:#977D40}
.pg .lo-cards{gap:0 40px}
.pg .lo-c{padding:22px 0 0;border:0;border-top:1px solid #977D4099;border-radius:0;background:none}
.pg .lo-hours{gap:0}
.pg .lo-hours div{padding:16px 0;border:0;border-top:1px solid #D5CBB8;border-radius:0;background:none}
.pg .lo-hours div:last-child{border-bottom:1px solid #D5CBB8}
.pg .lo-result{background:#F1EBDF;color:#1E1B17}
.pg .lo-result-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.pg .lo-result-photo{aspect-ratio:4/3}
.pg .lo-big{margin:32px 0 16px}
.pg .lo-big b{color:#1E1B17}
.pg .lo-fee-sum{margin:6px 0 0;font-size:14px;line-height:1.7;color:#D9C29A}

/* ========== お問い合わせ ========== */
.pg .ct-side{position:sticky;top:104px}
.pg .mail{display:inline-flex;align-items:center;min-height:44px;font-family:inherit;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.pg .req{font-size:13px}
.pg .nf-home{display:inline-flex;align-items:center;min-height:44px}
.pg .agree input{width:24px;height:24px;margin-top:2px}
.pg .way-note{margin:14px 0 0;font-size:14px;color:#D5CBB8}
.pg .side-link{display:block;margin-top:6px;padding:11px 0;font-size:14px;font-weight:700;color:#F1EBDF;text-align:center;text-decoration:underline;text-underline-offset:4px}

/* ========== 記事 ========== */
.pg .toc p{font-family:inherit;font-weight:700;letter-spacing:.06em}
.pg .toc a{align-items:center;min-height:44px;padding:6px 0}
.pg .post-fig{margin:36px 0}
.pg .post-fig img{display:block;width:100%;height:auto;border-radius:16px;background:#E6DECF}
.pg .post-fig figcaption{margin-top:10px;font-size:14px;line-height:1.7;color:#6B6357}
.pg .post-list li{padding:6px 0 6px 26px;border:0;border-radius:0;background:none}
.pg .post-list li::before{left:4px;top:18px}
.pg .end-links{display:flex;flex-wrap:wrap;gap:0 28px;margin:16px 0 0;padding:0;list-style:none}
.pg .end-links .tlink{font-size:15px}
.pg .author-link{display:inline-flex;align-items:center;min-height:44px;margin-top:4px}
.pg .ph img{position:static;display:block;width:100%;height:100%;max-width:none;object-fit:cover}
.pg .post-body .author .author-lbl{font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.06em}
.pg .pn{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:48px 0 0}
.pg .pn a{display:block;padding:18px 20px;border:1px solid #D5CBB8;border-radius:16px;background:#FAF7F1;color:#1E1B17;text-decoration:none}
.pg .pn a:hover b{text-decoration:underline;text-underline-offset:4px}
.pg .pn small{display:block;margin-bottom:6px;font-size:13px;font-weight:700;color:#6B6357}
.pg .pn b{display:block;font-size:15px;line-height:1.6;font-weight:900}
.pg .pn-next{grid-column:2;text-align:right}
.pg .sub-lead{margin:20px 0 0;max-width:640px;font-size:17px;line-height:1.9;color:#F1EBDF}

/* ========== 講師のページ ========== */
.pg .co{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}
.pg .co-photo{position:sticky;top:112px;overflow:hidden;border-radius:16px;background:#FFFFFF}
.pg .co-photo img{display:block;width:100%;height:auto}
.pg .co-role{margin:0;font-size:14px;font-weight:700;letter-spacing:.06em;color:#AE311B}
.pg .co-name{margin:10px 0 0;font-size:72px;line-height:1;font-weight:900;letter-spacing:.01em}
.pg .co-name small{display:block;margin-top:14px;font-size:15px;font-weight:500;letter-spacing:.3em;color:#6B6357}
.pg .co-bio{margin-top:36px}
.pg .co-bio p{margin:0 0 18px;font-size:17px;line-height:2;color:#2E2A24}
.pg .co-h{margin:56px 0 0;padding-top:22px;border-top:2px solid #1E1B17;font-size:24px;line-height:1.5;font-weight:900}
.pg .co-list{margin:12px 0 0;padding:0;list-style:none}
.pg .co-list li{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:baseline;padding:14px 0;border-bottom:1px solid #D5CBB8;font-size:16px;line-height:1.7}
.pg .co-list li>span:first-child{font-family:'Chivo Mono',monospace;font-size:14px;font-weight:500;letter-spacing:.06em;color:#AE311B}
.pg .co-list.co-plain li{grid-template-columns:minmax(0,1fr)}
.pg .co-list.co-plain li>span:first-child{font-family:inherit;font-size:16px;font-weight:400;letter-spacing:.02em;color:inherit}
.pg .co-clubs{display:flex;flex-wrap:wrap;gap:6px 0;margin:16px 0 0;padding:0;list-style:none;font-size:16px;line-height:1.7}
.pg .co-clubs li:not(:last-child)::after{content:"／";margin:0 10px;color:#B9B0A0}
.pg .co-note{margin:12px 0 0;font-size:14px;color:#6B6357}
.pg .co-links{display:flex;flex-wrap:wrap;gap:0 32px;margin:20px 0 0}
.pg .co-courses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0 0}
.pg .co-course{display:flex;flex-direction:column;gap:10px;padding:28px;border-radius:16px;text-decoration:none}
.pg .co-course b{font-size:20px;line-height:1.5;font-weight:900}
.pg .co-course span{font-size:15px;line-height:1.7}
.pg .co-course-pp{border:2px solid #1E1B17;background:#FFFFFF;color:#1E1B17}
.pg .co-course-lo{border:2px solid #1F3A2E;background:#1F3A2E;color:#F1EBDF}
.pg .co-course img{display:block;height:36px;width:auto;align-self:flex-start}
.pg .co-course-lo img{height:26px;margin:5px 0}
.pg .co-course:hover b{text-decoration:underline;text-underline-offset:5px}

/* ========== 特定商取引法に基づく表記 ========== */
.pg .doc dl.law{grid-template-columns:200px minmax(0,1fr);gap:0;padding:0;border:0;border-top:1px solid #D5CBB8;border-radius:0;background:none}
.pg .doc dl.law dt,.pg .doc dl.law dd{padding:16px 0;border-bottom:1px solid #D5CBB8;word-break:keep-all}
.pg .doc dl.law dd{padding-left:20px}

/* ========== 幅 961〜1180px ========== */
@media (min-width: 961px) and (max-width: 1180px){
.pg .wrap{padding-left:40px;padding-right:40px}
.pg .h2{font-size:44px}
.pg .hero-title{font-size:64px}
.pg .hero h1.pp-h1{font-size:60px}
.pg .hero h1.lo-h1{font-size:46px}
.pg .hero-in{gap:40px}
.pg .coach-name{font-size:76px}
.pg .cmini .coach-name{font-size:60px}
.pg .final-title{font-size:68px}
.pg .rcard-body{padding:36px}
.pg .rcard h3{font-size:30px}
.pg .mixcard{padding:44px;gap:40px}
.pg .pp-grid,.pg .live-grid,.pg .pain,.pg .setup,.pg .lo-feat,.pg .pp-price-in,.pg .lo-price-in,.pg .pp-sample-in{gap:48px}
.pg .note{grid-template-columns:96px 220px minmax(0,1fr) 24px;gap:24px}
.pg .steps-4{gap:28px}
}

/* ========== 幅 960px 以下 ========== */
@media (max-width: 960px){
.pg .hero h1:not(.pp-h1):not(.lo-h1){margin-bottom:14px;font-size:14px;letter-spacing:.06em}
.pg .lbl{font-size:13px}
.pg .crumb{font-size:13px;margin-bottom:12px}
.pg .ptoc ul{gap:0 24px;margin:0 -20px;padding:0 20px}
.pg .ptoc a{min-height:52px}
.pg .pp-grid .sample{position:relative;top:auto}
.pg .tfeat article{grid-template-columns:112px minmax(0,1fr);gap:16px;padding:16px 0}
.pg .tfeat h3{font-size:18px;margin-bottom:4px}
.pg .tlink{font-size:16px}
.pg .sec-foot{margin-top:28px}
.pg .lp-time{font-size:13px}
.pg .xf{margin-top:32px}
.pg .xf-stage{grid-template-columns:minmax(0,1fr);gap:16px}
.pg .xf-panel{padding:28px 20px}
.pg .xf-panel h3{font-size:21px;margin-bottom:14px}
.pg .xf-panel dl{margin-bottom:24px}
.pg .xf.is-on .xf-panel dl{grid-template-columns:minmax(0,1fr)}
.pg .xf-panel dl div{grid-template-columns:76px minmax(0,1fr);padding:11px 0}
.pg .xf-panel dd{font-size:16px}
.pg .xf-panel .btn{align-self:stretch}
.pg .xf.is-on .xf-deck{gap:10px}
.pg .xf-end{font-size:13px;padding:0 2px}
.pg .xf-logo{height:34px}
.pg .xf-lo .xf-logo{height:24px;margin:5px 0 21px}
.pg .rcard-no{font-size:52px}
.pg .rcard p{font-size:16px}
/* 講師の写真は丸く切り抜いて文章より先に出す */
.pg .coach-photo{order:0;width:168px;height:168px;max-width:none;margin:0;overflow:hidden;align-self:start;border-radius:50%;background:repeating-radial-gradient(circle,#E0442A 0 9px,#C93A23 9px 11px)}
.pg .coach-photo::before{display:none}
.pg .coach-photo img{position:absolute;left:-40%;top:0;width:180%;max-width:none;height:auto;margin:0}
.pg .coach-copy,.pg .cmini-copy{order:1}
.pg .coach-role{font-size:13px}
.pg .coach-bio{font-size:16px}
.pg .cfacts{grid-template-columns:minmax(0,1fr);margin-top:20px}
.pg .cfacts div{padding:12px 0}
.pg .cfacts dd{font-size:20px}
.pg .cmini{padding:64px 0}
.pg .cmini-in{grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
.pg .cmini-copy{padding-bottom:0}
.pg .cmini .coach-name{font-size:48px}
.pg .cmini .coach-catch{font-size:21px}
.pg .cmini .btn{width:100%;margin-top:28px}
.pg .mixcard{grid-template-columns:minmax(0,1fr);gap:32px;padding:36px 20px 0}
.pg .mixcard .smix-brand{font-size:32px}
.pg .mixcard .smix-h{font-size:24px}
.pg .mixcard .smix-lead{font-size:16px}
.pg .mixcard .btn{margin-top:24px}
.pg .mix-shots{gap:12px;max-height:300px;overflow:hidden}
.pg .mix-shots img{border-radius:16px 16px 0 0}
.pg .mix-shots img:last-child{margin-top:28px}
.pg .notes-head{margin-bottom:20px}
.pg .note,.pg .related .note{grid-template-columns:112px minmax(0,1fr);gap:8px 16px;align-items:start;padding:20px 0}
.pg .note-no{grid-column:1/-1;font-size:13px}
.pg .note-img{grid-row:2;border-radius:8px}
.pg .note-body{grid-row:2;gap:8px}
.pg .note-title,.pg .related .note-title{font-size:16px;line-height:1.6}
.pg .note-meta{font-size:13px;gap:6px 10px}
.pg .note-tag{height:24px;padding:0 8px;font-size:13px}
.pg .note-arrow{display:none}
.pg .post-meta{font-size:13px}
.pg .byline small{font-size:13px}
.pg .pain-list li{padding:14px 0}
.pg .steps{gap:28px}
.pg .step p{font-size:16px}
.pg .setup-photo{order:2}
.pg .setup-list p{font-size:16px}
.pg .faq summary{padding:16px 0}
.pg .faq summary .q{width:18px;font-size:18px}
.pg .faq details p{padding:0 0 20px 34px;font-size:16px}
.pg .final-in{padding:88px 20px}
.pg .foot{padding:48px 0 56px}
.pg:has(.sticky-cta) .foot{padding-bottom:124px}
.pg .foot nav{gap:24px 48px}
.pg .sample-tag{font-size:13px}
.pg .spoints button{min-height:68px;padding:12px 0}
.pg .vs-self{font-size:14px}
.pg .vs-pp{font-size:15px}
.pg .bento{grid-template-columns:minmax(0,1fr)}
.pg .bx p{font-size:15px}
.pg .tcols{grid-template-columns:minmax(0,1fr);gap:24px;margin:8px 0}
.pg .tcols h3{font-size:20px}
.pg .pnotes li{font-size:15px}
.pg .pp-next p{font-size:16px}
.pg .lo-feat p{font-size:16px}
.pg .lo-cards{gap:24px}
.pg .lo-c p{font-size:16px}
.pg .lo-result-in{grid-template-columns:minmax(0,1fr);gap:32px}
.pg .lo-big{margin:24px 0 12px}
.pg .ct-side{position:static}
.pg .doc p,.pg .doc li{font-size:16px}
.pg .author-lbl{font-size:13px}
.pg .post-fig{margin:28px 0}
.pg .post-fig figcaption{font-size:13px}
.pg .pn{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:40px}
.pg .pn-next{grid-column:auto;text-align:left}
.pg .sub-lead{font-size:16px;margin-top:14px}
.pg .co{grid-template-columns:minmax(0,1fr);gap:28px}
.pg .co-photo{position:static;max-width:260px}
.pg .co-name{font-size:48px}
.pg .co-name small{font-size:13px;margin-top:10px}
.pg .co-bio{margin-top:24px}
.pg .co-bio p{font-size:16px;line-height:1.95}
.pg .co-h{margin-top:44px;font-size:21px}
.pg .co-list li{grid-template-columns:minmax(0,1fr);gap:2px;font-size:16px}
.pg .co-courses{grid-template-columns:minmax(0,1fr);gap:14px}
.pg .co-course{padding:22px 20px}
.pg .doc dl.law{grid-template-columns:minmax(0,1fr)}
.pg .doc dl.law dt{padding:14px 0 0;border-bottom:0}
.pg .doc dl.law dd{padding:4px 0 14px;margin:0}
}

/* ========== 幅 700〜960px（タブレットの縦） ========== */
@media (min-width: 700px) and (max-width: 960px){
.pg .wrap{padding-left:40px;padding-right:40px}
.pg .h2{font-size:38px}
.pg .hero-title{font-size:60px}
.pg .hero h1.pp-h1{font-size:54px}
.pg .hero h1.lo-h1{font-size:42px}
.pg .hero-cta{flex-direction:row;align-items:center}
.pg .pricecard,.pg .lo-card{max-width:520px}
.pg .ptoc ul{margin:0 -40px;padding:0 40px}
.pg .final-in{padding:112px 40px}
.pg .final-title{font-size:60px}
.pg .tfeat article{grid-template-columns:200px minmax(0,1fr);gap:28px}
.pg .tfeat h3{font-size:21px}
.pg .live-grid,.pg .pain,.pg .setup,.pg .lo-feat,.pg .lo-result-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:center}
.pg .lo-feat.rev .lo-feat-photo{order:2}
.pg .setup-photo{order:0}
.pg .pain-photo,.pg .lo-for .pain-photo{aspect-ratio:4/5}
.pg .xf-stage{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg .xf.is-on .xf-stage{grid-template-columns:minmax(0,1fr)}
.pg .xf-panel{padding:32px}
.pg .xf-end{font-size:16px}
.pg .rcard{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.pg .rcard .photo{aspect-ratio:auto;min-height:320px}
.pg .coach-in,.pg .cmini-in{grid-template-columns:168px minmax(0,1fr);gap:32px}
.pg .cfacts{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg .cmini .btn{width:auto}
.pg .mixcard{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);padding:40px;gap:32px}
.pg .mix-shots{max-height:none}
.pg .mix-shots img{border-radius:16px}
.pg .steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.pg .steps-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}
.pg .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg .bx-f{grid-column:1/-1}
.pg .tcols{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
.pg .lo-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
.pg .pp-price-in,.pg .lo-price-in,.pg .pp-next-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:center}
.pg .note,.pg .related .note{grid-template-columns:200px minmax(0,1fr);gap:8px 24px}
.pg .note-title,.pg .related .note-title{font-size:19px}
.pg .ct-in{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px}
.pg .co{grid-template-columns:240px minmax(0,1fr);gap:40px}
.pg .co-courses{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg .foot{padding-bottom:72px}
.pg:has(.sticky-cta) .foot{padding-bottom:132px}
}
