/* japan-fitting-course: 支給HTML japan_fitting_course/japan_fitting_course.html の <style> を順に連結（生成: redesign-work/scripts/30_build_css.py） */
/* <style> 1/3 */
:root{--sea:#F5F8FA;--surf:#E0F0F7;--pale:#EAF3F8;--pale2:#EEF5F9;--paper:#FFFFFF;--line:#DCE6EC;--line2:#D8E3EA;--ink:#1F3A4D;--ink-soft:#50657A;--rose:#B33658;--rose-deep:#8F2946;--rose-tint:#F8ECEF;--line-g:#038537;--ftr:#1A3344;--ftr-tx:#C3D3DE;--f-serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;--f-sans:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;--wrap:1220px;--gut:clamp(20px,5vw,64px);--sec:clamp(44px,6.4vw,96px);--rule:rgba(31,58,77,.14)}*,::after,::before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--sea);color:var(--ink);font-family:var(--f-sans);font-size:14px;line-height:1.75;letter-spacing:.018em;word-break:normal;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto}a{color:inherit}ol,ul{padding:0;list-style:none}body,ol,p,ul{margin:0}h1,h2,h3,h4{margin:0;font-family:var(--f-serif);font-weight:700;line-height:1.42;word-break:keep-all;overflow-wrap:anywhere;text-wrap:balance}a,dd,dt,li,p,span{text-wrap:pretty}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}[id]{scroll-margin-top:68px}.sec{padding:var(--sec)0;border-top:1px solid var(--rule)}.h2{font-size:clamp(23px,calc(2.2vw + 15px),40px);letter-spacing:.035em;margin-bottom:10px}.sec-head{margin-bottom:clamp(18px,2.6vw,36px)}.note{font-size:12px;line-height:1.7;color:var(--ink-soft)}.more{margin-top:14px}.go{padding:2px 0;color:var(--rose-deep);font-weight:700;font-size:13.5px;line-height:1.6;text-underline-offset:3px;text-decoration-thickness:1px;word-break:keep-all;overflow-wrap:anywhere}img{display:block}.crumb-wrap{max-width:var(--wrap);margin:0 auto;padding:7px var(--gut)}.crumb-wrap .breadcrumb{display:flex;gap:6px;overflow:hidden;margin:0;padding:0;color:var(--ink-soft);font-size:11.5px;line-height:1.6;list-style:none;text-overflow:ellipsis;white-space:nowrap}.crumb-wrap a{color:var(--ink-soft);text-decoration:none}.acc details,.apply{background:var(--pale)}.st-list{display:grid;gap:clamp(20px,4vw,56px)}.st{display:grid;background:#fff}.st-img{position:relative;overflow:hidden;aspect-ratio:2/1;background:var(--pale2)}.st-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.st-txt{padding:16px 16px 18px}.st-no{display:inline-block;margin-right:.55em;padding-right:.55em;border-right:1px solid var(--rule);color:var(--rose-deep);font-family:var(--f-sans);font-size:.78em;letter-spacing:.08em;vertical-align:.08em}.st-sub{margin-bottom:2px;color:var(--ink-soft);font-size:12.5px;line-height:1.6}.st-h4{margin:12px 0 4px;padding-top:10px;border-top:1px solid var(--rule);font-size:14.5px}.st-txt p,.st-ul li{font-size:13.5px;line-height:1.75}.st-txt p+p{margin-top:6px}.st-txt .em{font-weight:700;background:linear-gradient(transparent 64%,var(--rose-tint) 64%)}.st-ul li{position:relative;padding-left:1.1em}.st-ul li+li{margin-top:2px}.st-ul li::before{position:absolute;left:0;content:"・"}.blog,.faq{background:#fff}.acc{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;max-width:880px;margin-top:16px}.acc details{min-width:0}.acc summary{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;cursor:pointer;list-style:none}.acc summary::-webkit-details-marker{display:none}.fq{display:flex;flex:1;align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.55;text-wrap:pretty}.pm{position:relative;flex:none;width:13px;height:13px;margin-top:6px}.pm::after,.pm::before{position:absolute;top:6px;left:0;width:13px;height:1.5px;background:var(--ink);content:""}.pm::after{transform:rotate(90deg);transition:transform .2s}.acc details[open] .pm::after{transform:rotate(0)}.catalog{background:#fff}.bar{display:none}.bar{position:fixed;right:0;bottom:0;left:0;z-index:60}.bar .ff-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:5px 6px;line-height:1.25;text-align:center;text-decoration:none}.bar .ff-mail{height:46px;background:var(--rose-tint);color:var(--rose-deep)}.bar .ff-tel{height:46px;background:var(--surf);color:var(--ink)}.bar .ff-line,.bar .ff-reserve{height:60px;padding:7px 6px 8px;color:#fff}.bar .ff-reserve{background:var(--rose)}.bar .ff-line{background:var(--line-g)}.bar .ff-label{font-size:11px;font-weight:500;letter-spacing:.03em;white-space:nowrap}.bar .ff-main{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:700;white-space:nowrap}.bar .ff-catch,.bar .ff-main-lg{font-size:11px;font-weight:700;letter-spacing:.03em;white-space:nowrap}.bar .ff-main-lg{display:flex;align-items:center;gap:6px;font-size:16px;letter-spacing:.04em}.bar svg{flex:none;width:16px;height:16px}@media (max-width:960px){body{padding-bottom:108px}.bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:0 0 env(safe-area-inset-bottom,0);background:rgba(31,58,77,.2);transform:translateY(120%);visibility:hidden;transition:transform .25s,visibility .25s}.bar.show{transform:none;visibility:visible}}
@media (max-width:360px){.bar .ff-main-lg{font-size:14.5px;gap:4px;letter-spacing:.02em}.bar .ff-catch{letter-spacing:0}.bar svg{width:15px;height:15px}}@media (min-width:961px){body{font-size:15px;line-height:1.8}[id]{scroll-margin-top:106px}.go{font-size:14px}.crumb-wrap{padding:10px var(--gut)}.crumb-wrap .breadcrumb{font-size:12px}.st{grid-template-columns:1fr 1.15fr;align-items:start}.st-r{grid-template-columns:1.15fr 1fr}.st-img{aspect-ratio:5/4}.st-r .st-img{order:2}.st-txt{padding:30px 36px 32px}.st-txt p,.st-ul li{font-size:14.5px;line-height:1.85}.fq{font-size:16px}.acc summary{padding:16px 20px}}.ph{background:var(--sea)}.ph-h1{margin:0;line-height:0}.ph-sp{display:block}.ph-pc,.ph-sp{position:relative;overflow:hidden}.ph-sp{aspect-ratio:1000/377}.ph-pc{display:none;aspect-ratio:1200/284}.ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.intro{padding:20px 0 28px;background:var(--sea)}.intro-grid{display:grid;gap:16px}.intro-h2{font-size:clamp(19px,calc(1.6vw + 13px),30px);line-height:1.45;letter-spacing:.03em}.intro-catch{margin-top:12px;padding:12px 14px;background:#fff;font-size:14.5px;font-weight:700;line-height:1.75;word-break:keep-all;overflow-wrap:anywhere}.intro-catch .hl{font-size:16px;background:linear-gradient(transparent 62%,var(--rose-tint) 62%)}.intro-tx{margin-top:10px;font-size:13.5px;line-height:1.8}.kitei{margin:0;padding:4px 14px;border-top:3px solid var(--ink);background:#fff}.kt-row{display:grid;gap:3px;padding:10px 0;border-top:1px solid var(--line)}.kt-row:first-child{border-top:0}.kitei dt,.toc a{color:var(--ink);font-weight:700}.kitei dt{justify-self:start;padding:0 6px;background:var(--pale);font-size:12px;line-height:1.7;word-break:keep-all;overflow-wrap:anywhere}.kitei dd{margin:0;font-size:13.5px;line-height:1.65}.toc{margin-top:16px}.toc-label{margin-bottom:6px;color:var(--ink-soft);font-size:12.5px;font-weight:700;letter-spacing:.08em}.toc ul{display:flex;flex-wrap:wrap;gap:6px}.toc a{display:inline-flex;align-items:center;min-height:36px;padding:4px 12px;border:1px solid var(--rule);background:#fff;font-size:13px;text-decoration:none;white-space:nowrap}.toc a:hover{border-color:var(--ink)}.plans{background:var(--surf)}.oc-list{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:18px}.oc,.oc-a{display:flex}.oc-a{flex-direction:column;width:100%;background:#fff;color:var(--ink);text-decoration:none}.oc-img{position:relative;display:block;overflow:hidden;aspect-ratio:16/9;background:var(--pale)}.oc-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s}.oc-body{display:flex;flex:1;flex-direction:column;padding:12px 14px 14px}.oc-name{font-size:17px;line-height:1.45}.oc-catch,.oc-price{display:block;margin-top:4px;color:var(--ink-soft);font-size:13px;line-height:1.6}.oc-price{margin-top:6px;color:var(--rose-deep);font-size:22px;font-weight:700;line-height:1.3;letter-spacing:.02em}.oc-feat{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.oc-feat li{position:relative;padding-left:12px;font-size:12.5px;line-height:1.65}.oc-feat li+li{margin-top:2px}.oc-feat li::before{position:absolute;top:.68em;left:0;width:5px;height:5px;background:var(--ink-soft);content:""}.oc-btn{display:flex;align-items:center;justify-content:center;min-height:42px;margin-top:auto;padding-top:0;border:1.5px solid var(--ink);color:var(--ink);font-size:13.5px;font-weight:700;transition:background-color .2s,color .2s}.oc-feat+.oc-btn{margin-top:12px}.oc-a:hover .oc-btn{background:var(--ink);color:#fff}.compare{background:#fff}.cmp-wrap{position:relative;margin-top:16px}.cmp-wrap::after{position:absolute;top:0;right:0;bottom:0;width:28px;background:linear-gradient(90deg,rgba(255,255,255,0),#fff);content:"";pointer-events:none;opacity:0;transition:opacity .2s}.cmp-wrap.is-scrollable:not(.at-end)::after{opacity:1}.cmp-scroll{overflow-x:auto;border:1px solid var(--line);overscroll-behavior-x:contain}.cmp-scroll:focus-visible{outline:2px solid var(--rose);outline-offset:2px}.cmp{width:100%;border-collapse:collapse;font-size:12.5px;line-height:1.5}.cmp td,.cmp th{padding:8px 12px;border-bottom:1px solid var(--line);border-left:1px solid var(--line);text-align:center;vertical-align:middle;white-space:nowrap}.cmp tr:first-child td,.cmp tr:first-child th{background:var(--pale);font-weight:700}.cmp tr>:first-child{position:sticky;left:0;z-index:1;border-left:0;background:#fff;color:var(--ink-soft);font-weight:700;text-align:left;white-space:nowrap}.cmp tr:first-child>:first-child{background:var(--pale)}.cmp a{display:inline-block;padding:3px 0;color:var(--rose-deep);font-weight:700;white-space:nowrap;text-underline-offset:3px}.includes{background:var(--pale)}.inc-list{display:grid;gap:6px;margin-top:16px}.inc{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:10px 12px;background:#fff}.inc-name{font-size:14px;font-weight:700;line-height:1.5}.inc-more{display:inline-block;padding:3px 0;color:var(--rose-deep);font-size:12.5px;font-weight:700;white-space:nowrap;text-underline-offset:3px}.inc-det{grid-column:1/-1;color:var(--ink-soft);font-size:12.5px;line-height:1.6}.includes .note{margin-top:12px}.inc-links{display:grid;gap:4px;margin-top:6px}.reasons2{background:#fff}.rz-list{display:grid;gap:10px;margin-top:16px}.rz{padding:16px 14px;border-top:3px solid var(--ink);background:var(--pale)}.rz-h3{font-size:16.5px;line-height:1.5;text-wrap:pretty}.ans2 a,.rz-no{color:var(--rose-deep)}.rz-no{display:inline}.rz-lead{margin-top:8px;font-size:14px;line-height:1.8}.rs-ul{display:grid;gap:6px;margin-top:10px}.ct2-body p,.rs-ul li{font-size:13px;line-height:1.7}.rs-ul li{position:relative;padding:9px 12px 10px;background:#fff}.rs-ul .lb{display:block;margin-bottom:2px;font-size:13.5px;font-weight:700;line-height:1.5}.rs-ul .lb,.rs-ul .lb-tx{color:var(--ink)}.flow-lead,.st-txt .st-head{font-family:var(--f-serif);font-weight:700}.flow-lead{margin-top:6px;font-size:15px;line-height:1.6}.st-txt .st-head{margin-bottom:4px;font-size:17px;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}.ans2{min-width:0;margin:0 12px;padding:10px 0 14px;border-top:1px solid var(--line);font-size:13.5px;line-height:1.75}.ans2>*+*{margin-top:8px}.ans2 h4{margin-top:14px;font-size:14.5px}.ans2 ol,.ans2 ul{padding-left:1.3em}.ans2 ul{list-style:disc}.ans2 ol{list-style:decimal}.ans2 li+li{margin-top:2px}.ans2 a{font-weight:700;text-underline-offset:3px}.tbl-scroll{overflow-x:auto;border:1px solid var(--line);background:#fff}.tbl-scroll table{width:100%;min-width:420px;border-collapse:collapse;font-size:12.5px;line-height:1.55}.tbl-scroll td,.tbl-scroll th{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.tbl-scroll th{background:var(--pale);font-weight:700;white-space:nowrap}.cta-band{padding:28px 0;background:var(--rose-tint)}.btn-primary,.sw-block-p .sw-a a{align-items:center;justify-content:center;border-radius:2px;background:var(--rose);color:#fff;text-decoration:none}.btn-primary{display:flex;width:100%;max-width:420px;min-height:56px;margin:0 auto;padding:10px 20px;font-size:16px;font-weight:700;letter-spacing:.06em;text-align:center;word-break:keep-all;overflow-wrap:anywhere;transition:background-color .2s}.btn-primary:hover{background:var(--rose-deep)}.bnrs{padding:var(--sec)0;background:#fff}.bn-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;justify-items:center}.bn,.bn-wide{width:100%;max-width:300px}.bn-wide{max-width:none}.bn a,.bn-wide a,.fr{display:block}.fr{position:relative;overflow:hidden}.fr img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.catalog2{background:var(--pale)}.ct2{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:start;gap:16px}.ct2-h3{font-size:17px}.ct2-body p{margin-top:6px}.ct2-links{display:grid;gap:4px;margin-top:8px}.sidewrap{display:none;padding:var(--sec)0;border-top:1px solid var(--rule);background:#fff}.sw-grid{display:grid;gap:22px}.sw-h3{font-size:16px}.sw-h3 a{display:inline-block;padding:4px 0;color:var(--ink);text-decoration:none}.sw-h3-img a{display:block;max-width:240px}.sw-ul{margin-top:8px;border-top:1px solid var(--rule)}.sw-ul li{border-bottom:1px solid var(--rule)}.sw-ul a{display:flex;flex-direction:column;gap:1px;padding:9px 0;color:var(--ink);text-decoration:none}.sw-m{font-size:14px;font-weight:700;line-height:1.45}.sw-s{color:var(--ink-soft);font-size:12px;line-height:1.5}.sw-a{margin-top:10px}.sw-a-img a{display:block;max-width:240px}.sw-block-p .sw-a a{display:inline-flex;min-height:46px;padding:8px 22px}.sw-a a{color:var(--ink);font-size:14px;font-weight:700}.sw-block>.sw-h3:not(:first-child){margin-top:14px}@media (min-width:768px){.ph-sp{display:none}.ph-pc{display:block}.ph{padding:16px var(--gut)0}.ph-h1{max-width:calc(var(--wrap) - var(--gut)*2);margin:0 auto}.intro{padding:28px 0 40px}.oc-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.bn-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.bn-wide{grid-column:1/-1}.bn{max-width:none}.ct2{grid-template-columns:200px minmax(0,1fr);gap:32px}.sw-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.intro-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:40px}.intro-main{max-width:40em}}@media (min-width:961px){.intro-catch{font-size:17px}.intro-tx{font-size:15px}.oc-name{font-size:19px}.oc-feat li{font-size:13.5px}.cmp{font-size:13px}.cmp td,.cmp th{padding:8px 9px}.rz{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:32px;padding:26px 30px 28px}.rz-h3{font-size:19px;line-height:1.55}.rz-lead{margin-top:0;font-size:15px;line-height:1.85}.rs-ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rs-ul li{padding:12px 14px;font-size:14px}.rs-ul .lb{font-size:14.5px}.rz-list{gap:14px}.st-txt .st-head{font-size:21px}.ans2{margin:0 20px;font-size:14.5px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,::after,::before{transition:none!important}}
/* <style id="jf-add"> 2/3 */
/* ===== 日本試着コース 追加スタイル（既存の変数を使用） ===== */
mark.jf-tbd{background:#FFF1B8;color:var(--rose-deep);font-weight:700;padding:0 4px;border-radius:2px}
.jf-ph{position:relative}h1.jf-ph-tx{text-wrap-style:pretty}
.jf-ph .ph-sp{aspect-ratio:4/3}.jf-ph .ph-pc{aspect-ratio:1200/400}
.jf-ph .ph-img{object-position:center 40%}
.jf-ph-tx{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;padding:clamp(14px,2vw,24px) clamp(22px,3.4vw,48px);background:rgba(255,255,255,.92);color:var(--ink);line-height:1.25;text-align:center;font-family:var(--f-serif);font-size:clamp(32px,4.4vw,54px);font-weight:700;letter-spacing:.08em;white-space:nowrap;box-shadow:0 10px 30px -18px rgba(31,58,77,.5)}
.jf-ph-tx small{font-family:var(--f-sans);font-size:clamp(12.5px,1.25vw,15px);font-weight:700;letter-spacing:.06em;color:var(--rose-deep)}
.jf-ph-sub{display:block;max-width:22em;font-family:var(--f-sans);font-size:clamp(12px,1.15vw,14.5px);font-weight:500;line-height:1.6;letter-spacing:.03em;color:var(--ink);white-space:normal}
.oc-img{position:relative}
.jf-badge{position:absolute;left:10px;top:10px;z-index:2;padding:3px 10px;background:var(--rose);color:#fff;font-size:12px;font-weight:700;letter-spacing:.06em;line-height:1.6}
.jf-bq{display:flex;gap:12px;margin:18px 0 0;padding:0;list-style:none}
.jf-bq li{width:120px;text-align:center;font-size:12px;color:var(--ink-soft)}
.jf-bq img{display:block;width:120px;height:120px;object-fit:cover;background:#fff;border:1px solid var(--line);margin-bottom:4px}
.jf-teaser{margin-top:clamp(28px,4vw,48px);padding:clamp(18px,3vw,32px);background:#fff;border:1px solid var(--line)}
.jf-teaser h3{font-size:clamp(18px,1.6vw,22px);margin-bottom:12px}
.jf-teaser ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px;padding:0;list-style:none}
.jf-teaser figure{margin:0}
.jf-teaser img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--pale)}
.jf-teaser figcaption{margin-top:4px;font-size:11.5px;line-height:1.5;color:var(--ink-soft)}
.jf-teaser p{margin:0 0 12px;font-size:14.5px}
.jf-gal img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--pale)}.jf-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 0;padding:0;list-style:none}
.jf-phbox{display:grid;place-items:center;aspect-ratio:4/5;padding:10px;background:repeating-linear-gradient(135deg,var(--pale),var(--pale) 10px,#fff 10px,#fff 20px);border:1px dashed var(--line2);color:var(--ink-soft);font-size:12px;line-height:1.6;text-align:center}
.jf-note{margin-top:10px;font-size:12.5px;color:var(--ink-soft)}
.jf-cancel{width:100%;border-collapse:collapse;margin:10px 0 12px;font-size:14px;background:var(--paper)}.jf-cancel th,.jf-cancel td{padding:9px 12px;border:1px solid var(--line);text-align:left;vertical-align:top}.jf-cancel thead th{background:var(--pale);font-weight:700}.jf-cancel td:last-child{font-weight:700;white-space:nowrap}
.jf-cancel .nw{white-space:nowrap}.jf-free{margin:2px 0 6px 1.2em;padding:0;list-style:disc;font-size:12.5px;color:var(--ink-soft)}.jf-free li+li{margin-top:0}
.jf-caution{margin-top:12px;padding:10px 12px;border-left:3px solid var(--rose);background:var(--rose-tint);font-size:13px;color:var(--ink)}
.jf-kitei{margin-top:18px}
@media (min-width:768px){.jf-kitei{display:grid;grid-template-columns:1fr 1fr;column-gap:28px}.jf-kitei .kt-row:nth-child(2){border-top:0}}
@media (min-width:1024px){#plan_cards .oc-list{grid-template-columns:repeat(3,minmax(0,1fr))}.jf-teaser ul{max-width:560px}}

/* --- コラボ訴求ブロック（白基調・コンパクト） --- */
.jf-collab{background:var(--paper,#fff);color:var(--ink);padding:clamp(26px,4vw,48px) 0;border-bottom:1px solid rgba(31,58,77,.12)}
.jf-pair{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 10px;font-family:var(--f-mincho,var(--f-serif));font-size:clamp(15px,1.7vw,20px);letter-spacing:.06em;line-height:1.3;color:var(--ink)}
.jf-pair::before,.jf-pair::after{content:"";flex:0 1 48px;height:1px;background:var(--rose)}
.jf-pair span{white-space:nowrap}
.jf-collab h2,.jf-collab-pts li{word-break:keep-all;overflow-wrap:anywhere}
.jf-pair i{font-style:normal;color:var(--rose)}
.jf-collab h2{margin:0 0 10px;font-family:var(--f-mincho,var(--f-serif));font-size:clamp(21px,2.5vw,32px);line-height:1.5;text-align:center;color:var(--ink)}
.jf-collab-lead{max-width:36em;margin:0 auto 18px;word-break:keep-all;overflow-wrap:anywhere;font-size:clamp(13.5px,1.25vw,15.5px);line-height:1.85;text-align:center;color:var(--ink-soft)}
.jf-hl{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:900px;margin:0 auto 14px;padding:0;list-style:none}
.jf-hl li{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 16px;padding:14px 18px;background:var(--rose-tint);border-top:3px solid var(--rose)}
.jf-hl .k{grid-row:span 3;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:6.2em;color:var(--rose-deep);font-family:var(--f-mincho,var(--f-serif));line-height:1.2;text-align:center}
.jf-hl .k small{font-family:var(--f-sans);font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--ink)}
.jf-hl .k b{font-size:clamp(24px,2.6vw,32px);font-weight:700;letter-spacing:.02em;white-space:nowrap}
.jf-hl h3{margin:0;font-size:clamp(15px,1.4vw,17px);font-weight:700;line-height:1.5;color:var(--ink);word-break:keep-all;overflow-wrap:anywhere}
.jf-hl p{margin:0;font-size:13.5px;line-height:1.7;color:var(--ink-soft)}
.jf-hl .n{font-size:11.5px;color:var(--ink-soft);word-break:keep-all;overflow-wrap:anywhere}
.jf-collab-pts{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 8px;margin:0 auto;padding:0;list-style:none;max-width:900px}
.jf-collab-pts li{display:flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid rgba(31,58,77,.18);background:#fff;font-size:13px;font-weight:700;line-height:1.5;color:var(--ink);white-space:nowrap}
.jf-collab-pts svg{flex:none;width:14px;height:14px;color:var(--rose)}
.jf-collab-more{margin:14px 0 0;text-align:center;font-size:13.5px}
.jf-collab-more a{color:var(--rose-deep);font-weight:700;text-underline-offset:3px}
.jf-toc{max-width:900px;margin:18px auto 0;padding-top:16px;border-top:1px solid rgba(31,58,77,.12);text-align:center}
.jf-toc ul{justify-content:center;margin:0;padding:0;list-style:none}
.jf-cta2{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.jf-cta2 a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:230px;min-height:52px;padding:8px 20px;font-size:15px;font-weight:700;letter-spacing:.04em;text-decoration:none;color:#fff}
.jf-cta2 a svg{width:18px;height:18px}
.jf-cta2 .jf-line,.sw-block-p .sw-a a{background:#038537}
.jf-cta2 .jf-mail{background:var(--rose)}
.jf-cta2 a:hover{filter:brightness(1.06)}
.jf-cta2 a:focus-visible{outline:3px solid var(--rose-tint);outline-offset:2px}
.jf-ribbon{display:inline-block;margin:0 0 12px;padding:4px 12px;background:#fff;border:1px solid var(--rose);color:var(--rose-deep);font-size:12.5px;font-weight:700;letter-spacing:.05em;line-height:1.5}
.jf-ribbon i{font-style:normal;margin:0 .35em}
@media (max-width:767px){.jf-pair{gap:8px;font-size:14px;letter-spacing:.02em}.jf-pair::before,.jf-pair::after{flex-basis:20px}.jf-collab-lead{text-align:left;margin-bottom:14px}.jf-hl{gap:8px;margin-bottom:12px}.jf-hl li{grid-template-columns:1fr;gap:2px;padding:12px 10px 10px;text-align:center}.jf-hl .k{grid-row:auto;min-width:0}.jf-hl .k b{font-size:24px}.jf-hl h3{font-size:12.5px;line-height:1.55}.jf-hl p{display:none}.jf-hl .n{font-size:11px;line-height:1.5}.jf-collab-pts{display:block;text-align:center;line-height:1.8}.jf-collab-pts li{display:inline-flex;gap:3px;padding:0 5px;border:0;background:none;font-size:12px;white-space:normal}.jf-collab-more{margin-top:8px}.jf-cta2{width:100%}.jf-cta2 a{min-width:0;flex:1 1 140px;padding:8px 10px;font-size:14px;white-space:nowrap}.jf-ribbon{font-size:11.5px;letter-spacing:.02em;padding:3px 10px}}
@media (max-width:720px){.hero-copy .jf-ribbon{order:1;align-self:flex-start}}

.jf-ctaband{display:grid;gap:12px;justify-items:center}
.jf-ctaband p{margin:0;font-size:14px;text-align:center}
@media (max-width:767px){.jf-gal{gap:6px}.jf-phbox{font-size:10.5px}.jf-ph-tx{padding:12px 18px}}

/* 第13版：見出しバナーの写真の被写体を文字で隠さない */
@media (max-width:767px){.jf-ph .ph-sp{aspect-ratio:4/5}.jf-ph-tx{top:16px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px)}.jf-ph-tx small{white-space:normal;word-break:keep-all;overflow-wrap:anywhere}}
@media (min-width:768px){.jf-ph-tx{left:clamp(16px,3.6vw,48px);transform:translateY(-50%);max-width:42%;white-space:normal;font-size:clamp(26px,3.4vw,44px)}}
/* <style> 3/3 */
/* ===== 共通部品（スマホヘッダー・メニュー・PCヘッダー・フッター）2026-10-25：オリジナルコース一覧の最新版から自動で取り出し、共通部品の中だけに効くようにしたもの ===== */
:where(header.sp,header.pc,footer,.hdr-sentinel){--f-sans:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;--f-serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;--ftr:#1A3344;--ftr-tx:#C3D3DE;--gut:clamp(20px,5vw,64px);--ink:#1F3A4D;--ink-soft:#50657A;--line:#DCE6EC;--pale:#EAF3F8;--rose:#B33658;--rose-deep:#8F2946;--wrap:1220px}
:where(header.sp,header.pc,footer){font-feature-settings:normal;font-kerning:auto;font-variant-ligatures:normal;font-variant-east-asian:normal;font-variant-numeric:normal;line-break:auto;word-break:normal;overflow-wrap:break-word;hyphens:manual;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;text-wrap-style:auto;text-wrap-mode:wrap;white-space-collapse:collapse;text-align:start;font-style:normal;font-weight:400;text-indent:0px;word-spacing:0px;direction:ltr;writing-mode:horizontal-tb;text-autospace:no-autospace;text-spacing-trim:normal}
:where(header.sp,header.pc,footer) *,:where(header.sp,header.pc,footer) ::after,:where(header.sp,header.pc,footer) ::before{box-sizing: border-box;}
:where(header.sp,header.pc,footer){font-family:var(--f-sans);font-size:14px;line-height:1.75;color:var(--ink);letter-spacing:0.252px;word-break:normal;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}
:where(header.sp,header.pc,footer) img{max-width: 100%; height: auto;}
:where(header.sp,header.pc,footer) a{color: inherit;}
:where(header.sp,header.pc,footer) ul{padding: 0px; list-style: none;}
:where(header.sp,header.pc,footer) p,:where(header.sp,header.pc,footer) ul{margin: 0px;}
:where(header.sp,header.pc,footer) h1,:where(header.sp,header.pc,footer) .hd-ttl{margin: 0px; font-family: var(--f-serif); font-weight: 700; line-height: 1.42; word-break: keep-all; overflow-wrap: anywhere; text-wrap: balance;}
:where(header.sp,header.pc,footer) a,:where(header.sp,header.pc,footer) li,:where(header.sp,header.pc,footer) p,:where(header.sp,header.pc,footer) span{text-wrap: pretty;}
:where(header.sp,header.pc,footer) [id]{scroll-margin-top: 68px;}
:where(header.sp,header.pc,footer) .nw{white-space: nowrap;}
header.pc{display: none;}
header.sp{position: sticky; top: 0px; z-index: 70; display: flex; align-items: center; justify-content: space-between; height: 56px; padding: 0 8px 0 var(--gut); background: rgba(255, 255, 255, 0.8); border-bottom: 1px solid rgba(31, 58, 77, 0.12);}
header.sp .logo{margin: 0px; line-height: 0;}
header.sp .logo a,:where(header.sp,header.pc,footer) img{display: block;}
#overlay .menu_logo img,header.sp .logo img{width: auto; height: 26px;}
#overlay-input,.hdr-sentinel{position: absolute; width: 1px; pointer-events: none;}
.hdr-sentinel{top: 0px; left: 0px; height: 64px; visibility: hidden;}
#overlay-input{height: 1px; opacity: 0;}
#overlay-button{position: relative; z-index: 102; display: block; width: 44px; height: 44px; cursor: pointer;}
#overlay-button span,#overlay-button span::after,#overlay-button span::before{position: absolute; width: 22px; height: 1.5px; background: var(--ink); content: ""; transition: transform 0.2s, background-color 0.2s;}
#overlay-button span{left: 11px; top: 21px;}
#overlay-button span::after,#overlay-button span::before{left: 0px;}
#overlay-button span::before{top: -7px;}
#overlay-button span::after{top: 7px;}
#overlay-input:focus-visible + #overlay-button{outline: 2px solid var(--rose); outline-offset: -2px;}
#overlay-input:checked + #overlay-button{position: fixed; top: 6px; right: 8px;}
#overlay-input:checked + #overlay-button span{background: 0px 0px;}
#overlay-input:checked + #overlay-button span::before{transform: translateY(7px) rotate(45deg);}
#overlay-input:checked + #overlay-button span::after{transform: translateY(-7px) rotate(-45deg);}
#overlay{display: none;}
#overlay-input:checked ~ #overlay{position: fixed; inset: 0px; z-index: 101; display: block; overflow-y: auto; overscroll-behavior: contain; background: rgb(255, 255, 255); padding: 6px var(--gut) 48px;}
#overlay .menu_logo{display: flex; align-items: center; height: 44px; margin-bottom: 6px;}
#overlay nav > ul > li{position: relative; border-bottom: 1px solid var(--line);}
#overlay .Label,#overlay nav > ul > li > a{display: block; padding: 12px 0px; color: var(--ink); font-size: 14.5px; font-weight: 700; line-height: 1.5; text-decoration: none; cursor: pointer;}
#overlay .Label{position: relative; padding: 12px 32px 12px 0px;}
#overlay .Label span{display: block; margin-top: 2px; color: var(--ink-soft); font-size: 12px; font-weight: 400;}
#overlay .Label::after{position: absolute; top: 50%; right: 8px; width: 9px; height: 9px; margin-top: -7px; border-right: 1.5px solid var(--ink); border-bottom: 1.5px solid var(--ink); content: ""; transform: rotate(45deg); transition: transform 0.2s;}
#overlay .toggle{position: absolute; width: 1px; height: 1px; opacity: 0;}
#overlay .toggle:focus-visible + .Label{outline: 2px solid var(--rose);}
#overlay .toggle:checked + .Label::after{margin-top: -2px; transform: rotate(-135deg);}
#overlay .content{display: none; padding: 0px 0px 10px 12px;}
#overlay .toggle:checked ~ .content{display: block;}
#overlay .content a{display: block; padding: 8px 0px; border-top: 1px solid var(--pale); color: var(--ink); font-size: 13.5px; line-height: 1.55; text-decoration: none;}
#overlay .content .c-all a{display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; margin: 2px 0px 4px; padding: 9px 12px; border-top: 0px; background: var(--pale); color: var(--ink); font-size: 13.5px; font-weight: 700; line-height: 1.5; word-break: keep-all; overflow-wrap: anywhere;}
#overlay .content .c-all a::after{flex: 0 0 auto; width: 7px; height: 7px; border-top: 1.5px solid currentcolor; border-right: 1.5px solid currentcolor; content: ""; transform: rotate(45deg);}
#overlay .content .c-all + li > a{border-top: 0px;}
footer{padding: 30px 0px 34px; background: var(--ftr); color: var(--ftr-tx); font-size: 13px; line-height: 1.8;}
footer a{color: rgb(255, 255, 255); text-decoration: none;}
footer .pc{display: none;}
footer section.sp ul{display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; margin: 0 var(--gut) 22px; border-top: 1px solid rgba(255, 255, 255, 0.15);}
footer section.sp li{border-bottom: 1px solid rgba(255, 255, 255, 0.15);}
footer section.sp a{display: block; padding: 10px 0px; font-size: 13px; font-weight: 500;}
footer section.sp .ft-h{margin: 0 var(--gut) 4px; color: var(--ftr-tx); font-size: 12px; font-weight: 700; letter-spacing: 0.08em;}
footer section.sp .ft-course{margin-bottom: 18px;}
footer .to_top{margin: 0 var(--gut) 14px; text-align: center;}
footer .to_top span{display: inline-flex; align-items: center; min-height: 42px; padding: 0px 22px; border: 1px solid rgba(255, 255, 255, 0.4); color: rgb(255, 255, 255); font-weight: 700; cursor: pointer;}
footer .footer_menu{padding: 0 var(--gut);}
footer .footer_menu ul{display: flex; flex-wrap: wrap; justify-content: center; gap: 0px 22px; margin-bottom: 4px;}
footer .footer_menu a{display: inline-block; padding: 5px 0px;}
footer .footer_menu .ft-legal{gap: 0px 16px; margin-top: 4px;}
footer .footer_menu .ft-legal a{color: var(--ftr-tx); font-size: 12px;}
footer .footer_menu p{margin-top: 12px; font-size: 11.5px; text-align: center;}
@media (min-width: 961px){
:where(header.sp,header.pc,footer){font-size:15px;line-height:1.8;letter-spacing:0.27px}
:where(header.sp,header.pc,footer) [id]{scroll-margin-top: 106px;}
#navi .navArea .imgsize,header.sp{display: none;}
header.pc{position: sticky; top: 0px; z-index: 70; background: rgb(255, 255, 255); border-bottom: 1px solid rgba(31, 58, 77, 0.12); transition: margin-bottom 0.2s, box-shadow 0.2s;}
header.pc .wap1040{max-width: var(--wrap); margin: 0px auto; padding: 0 var(--gut);}
header.pc .header_flex{display: flex; align-items: center; gap: 22px; height: 86px; padding: 0px; transition: height 0.2s;}
header.pc h1,header.pc .hd-ttl{flex: 1 1 0%; color: var(--ink-soft); font-size: 12px; font-weight: 500; line-height: 1.6; letter-spacing: 0.04em;}
header.pc .tel{display: flex; align-items: center; gap: 6px;}
header.pc .tel img{width: 13px; height: auto;}
header.pc .tel_text{font-size: 20px; font-weight: 700; line-height: 1.2; letter-spacing: 0.04em;}
header.pc .time{color: var(--ink-soft); font-size: 11px; line-height: 1.5;}
header.pc .min_copy{display: flex; flex-direction: column; align-items: center; gap: 2px;}
header.pc .min_copy span{color: var(--rose-deep); font-size: 11px; font-weight: 700;}
#navi .navArea > li > a,header.pc .head_btn{align-items: center; font-size: 14px; font-weight: 700; text-decoration: none;}
header.pc .head_btn{display: inline-flex; justify-content: center; min-height: 42px; padding: 0px 20px; border-radius: 2px; background: var(--rose); color: rgb(255, 255, 255); letter-spacing: 0.08em; transition: background-color 0.2s;}
header.pc .head_btn:hover{background: var(--rose-deep);}
#navi{border-top: 1px solid var(--line);}
#navi .navArea{display: flex; align-items: stretch; justify-content: center;}
#navi .navArea > li{position: relative;}
#navi .navArea > li > a{display: flex; gap: 6px; height: 56px; padding: 0px 16px; color: var(--ink); white-space: nowrap; transition: height 0.2s, color 0.2s;}
#navi .navArea > li > a p{margin: 0px;}
#navi .navArea .logoArea .imgsize,header.pc{display: block;}
#navi .navArea .logoArea > a{padding: 0px 28px;}
#navi .navArea .logoArea img{width: auto; height: 26px;}
#navi .navArea > li > a:hover{color: var(--rose-deep);}
header.pc.is-compact{margin-bottom: 58px; box-shadow: rgba(31, 58, 77, 0.08) 0px 2px 8px;}
header.pc.is-compact .header_flex{height: 40px;}
footer .sp,header.pc.is-compact .min_copy span,header.pc.is-compact .time{display: none;}
header.pc.is-compact .tel_text{font-size: 16px;}
header.pc.is-compact .tel img{width: 11px;}
header.pc.is-compact .head_btn{min-height: 32px; padding: 0px 16px; font-size: 13px;}
header.pc.is-compact #navi .navArea > li > a{height: 44px;}
header.pc.is-compact #navi .navArea .logoArea img{height: 22px;}
#navi .children{position: absolute; top: 100%; left: 0px; z-index: 70; display: none; min-width: max-content; padding: 22px 28px; border-right-color: ; border-right-style: ; border-right-width: ; border-bottom-color: ; border-bottom-style: ; border-bottom-width: ; border-left-color: ; border-left-style: ; border-left-width: ; border-image-source: ; border-image-slice: ; border-image-width: ; border-image-outset: ; border-image-repeat: ; border-top: 2px solid var(--ink); background: rgb(255, 255, 255); columns: 2; column-gap: 36px;}
#navi .navArea .logoArea ~ li .children{right: 0px; left: auto;}
#navi .navArea > li:focus-within > .children,#navi .navArea > li:hover > .children{display: block;}
#navi .children li{break-inside: avoid;}
#navi .children a{display: block; padding: 4px 0px; color: var(--ink); font-size: 13px; line-height: 1.6; text-decoration: none; white-space: nowrap;}
#navi .children a:hover{color: var(--rose-deep); text-decoration: underline;}
#navi .children > li > a{font-weight: 700;}
#navi .children-list{margin: 2px 0px 12px; padding-left: 10px; border-left: 1px solid var(--line);}
#navi .children-list a{font-weight: 400;}
footer{padding: 64px 0px 40px;}
footer .pc{display: block;}
footer .wap1040{max-width: var(--wrap); margin: 0px auto; padding: 0 var(--gut);}
footer .pagetop{display: none;}
footer .foot_nav{display: grid; grid-template-columns: repeat(5, minmax(0px, 1fr)); gap: 28px 24px;}
footer .liColumn,footer .link_ul{display: flex; flex-direction: column;}
footer .liColumn a{display: block; padding: 3px 0px; color: var(--ftr-tx); word-break: keep-all; overflow-wrap: anywhere;}
footer .link_ul > li:not(.liColumn) > a.nav_title{display: block; padding: 3px 0px;}
footer .liColumn a:hover{color: rgb(255, 255, 255); text-decoration: underline;}
footer .liColumn a.nav_title,footer .nav_title{margin-bottom: 6px; color: rgb(255, 255, 255); font-size: 13.5px; font-weight: 700;}
footer .foot_nav2{display: flex; align-items: center; justify-content: space-between; margin-top: 40px; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, 0.15);}
footer .foot_logoArea{display: flex; align-items: center; gap: 24px;}
footer .foot_logoArea .imgsize{display: block; padding: 8px 12px; background: rgb(255, 255, 255);}
footer .foot_logoArea img{width: auto; height: 24px;}
footer .Copyright{margin-top: 28px; font-size: 11.5px; text-align: center;}
}
@media (min-width: 961px) and (max-width: 1180px){
#navi .navArea > li > a{padding: 0px 9px; font-size: 13px;}
#navi .navArea .logoArea > a{padding: 0px 16px;}
#navi .navArea .logoArea img{height: 22px;}
header.pc.is-compact #navi .navArea .logoArea img{height: 20px;}
header.pc .header_flex{gap: 16px;}
footer .foot_nav{grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 32px 24px;}
}
@media (prefers-reduced-motion: reduce){
:where(header.sp,header.pc,footer) *,:where(header.sp,header.pc,footer) ::after,:where(header.sp,header.pc,footer) ::before{transition: none !important;}
}
/* ===== スクロール時の演出（全ページ共通。2026-10-27）：写真・カードが一度だけ下から浮き上がって現れる。クラスは JS が付け外しする。印刷では隠さない ===== */
@media screen{
  .rv{opacity:0;transform:translateY(16px);transition:opacity .4s cubic-bezier(.2,.6,.2,1),transform .4s cubic-bezier(.2,.6,.2,1)}
  .rv.rv-in{opacity:1;transform:none}
}
/* ===== ホバー（全ページ共通。2026-10-27）：マウスで操作する画面だけ。プランカードが少し浮いて影がつき、写真が少し拡大 ===== */
@media (hover:hover) and (pointer:fine){
  .pc-link,.op,.oc-a,.pw-a{transition:box-shadow .2s,transform .2s}
  .pc-link:hover,.op:hover,.oc-a:hover,.pw-a:hover{box-shadow:0 8px 20px rgba(31,58,77,.13);transform:translateY(-2px)}
  .pc-link:hover .pc-img img,.op:hover .op-img img,.oc-a:hover .oc-img img,.pw-a:hover .pw-img img{transform:scale(1.04)}
  .op-img img{transition:transform .4s}
}
