/* 案件固有のスタイル。型(styles.css)は編集禁止 — 上書きはすべてここに書く。
   読み込み順は styles.css → custom.css なので、同じセレクタ/変数はこちらが勝つ。 */

:root {
  --mold-version: 9;
  /* font-preset: cute */
  --lh-body: 1.85;
  --lh-display: 1.28;
  --ls-en: .04em;
  --ls-body: .02em;
  --ls-display: 0;
  --fw-strong: 700;
  --fw-body: 400;
  --fw-display: 900;
  --font-en: "Outfit", sans-serif;
  --font-body: "M PLUS Rounded 1c", sans-serif;
  --font-display: "Zen Maru Gothic", sans-serif;
  /* 配色: extract_palette.py の4値をここに */
  /* 書体: apply_design_tokens.py --preset <key> が自動で書く */
}

/* ルートAヒーロー(make_hero_bg.py の出力座標)はここに書く */


:root{--base:#fff9ec;--main:#345c49;--accent:#f5c85c;--ink:#264c3a;--paper:var(--base);--gold:var(--accent);--muted:#617265;--font-display:'Zen Maru Gothic',sans-serif;--font-body:'Zen Maru Gothic',sans-serif;--display-weight:700;--body-weight:400;--display-tracking:0;--display-leading:1.28}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--base);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.9}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:.015em}h1,h2,h3,p,ul{margin-top:0}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;height:auto;display:block}a,button,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #bb850b;outline-offset:5px}.skip{position:absolute;top:-100px;left:20px;z-index:100}.skip:focus{top:12px;background:white;padding:8px}.site-header{position:absolute;inset:0 0 auto;z-index:20;height:5.8vw;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;border:0;background:none;transform:none;opacity:1}.brand{font-family:var(--font-display);font-size:2vw;letter-spacing:.03em;display:flex;align-items:center;gap:14px;font-weight:700}.home .brand{padding-left:5vw}.home .sun-mark{display:none}.sun-mark{color:var(--accent);font-size:38px}.nav{display:flex;gap:3.4vw;align-items:center}.nav a{font-size:1.15vw;font-weight:700;letter-spacing:0}.home .nav a:first-child{display:none}.nav a[aria-current=page]{text-decoration:underline;text-underline-offset:7px}.nav-toggle{display:none}.nav-overlay{display:none}.hero{position:relative;aspect-ratio:1536/1024;width:100%;min-height:0;margin:0;padding:0;background:url('assets/fv-bg.jpg') center / cover no-repeat;overflow:visible}.hero__copy{position:absolute;left:5.6%;top:16.3%;width:41%;z-index:2;transform:none;opacity:1}.hero__title{margin:0;font-size:5.15vw;line-height:1.2;letter-spacing:.015em;font-weight:700}.hero__title span{display:block;white-space:normal;overflow:visible}.hero-lead{position:absolute;top:20vw;left:0;font-size:1.55vw;line-height:1.6;font-weight:500;letter-spacing:0;max-width:none}.hero-facts{position:absolute;left:4.4%;top:63.4%;width:40.4%;display:grid;grid-template-columns:repeat(3,1fr);padding:0;list-style:none;font-size:1.22vw;font-weight:700;line-height:1.5;text-align:center}.hero-actions{position:absolute;left:5.6%;top:70%;width:40%;display:flex;gap:1vw;align-items:center}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;padding:16px 28px;border-radius:50px;border:1px solid var(--main);background:var(--main);color:var(--base);font-weight:700;line-height:1.5;cursor:pointer;transition:transform .25s,box-shadow .25s;max-width:100%;text-align:center}.button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #345c4922}.button-outline{background:transparent;color:var(--main)}.hero-actions .button{font-size:1.23vw;padding:1.15vw 2vw;gap:1.6vw;flex:1;white-space:normal}.hero-actions .button:first-child{flex:1.3}.hero__photo-wrap{display:none}.hero__photo{width:100%;height:auto;aspect-ratio:746/695;object-fit:contain}.hero-next{position:absolute;left:30%;top:90.7%;width:40%;margin:0;text-align:center;font-size:2.3vw;line-height:1.5}.piano-section{padding:96px 5.5%;position:relative;overflow:hidden}.section-inner{max-width:1240px;margin:0 auto}.section__head{margin:0 0 42px;display:block;text-align:center}.eyebrow{font-size:14px;font-weight:700;letter-spacing:.07em;color:var(--main);margin:0 0 12px}.section__head h2{font-size:clamp(26px,3vw,40px);line-height:1.6;margin:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.split>img{width:100%;border-radius:24px;aspect-ratio:4/3;object-fit:cover}.split h3{font-size:28px;line-height:1.6}.split p{margin-bottom:22px}.large-copy{font-size:26px;font-weight:700;line-height:1.65}.sage{background:#edf1e3}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.reason-grid h3{font-size:22px;line-height:1.6}.reason p{margin-bottom:0}.number{display:block;color:#c28e22;font-size:36px;line-height:1.2;font-weight:700;margin-bottom:20px}.course-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}.course-card{background:#fffcf6;border-radius:24px;overflow:hidden;box-shadow:0 6px 25px #345c4909}.course-card img{width:100%;aspect-ratio:4/3;object-fit:cover}.course-card>div{padding:28px 32px}.course-card h3{font-size:25px;line-height:1.6}.inline-link{font-weight:700;display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid #d4dccf}.price-panel{background:#edf1e3;border-radius:26px;padding:44px;display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}.price-panel h3{font-size:24px}.price-panel strong{font-size:56px;line-height:1.2}.price-panel h3 span{font-size:14px;margin-left:8px}.price-panel dl{margin:0}.price-panel dl>div,.info-list>div{display:grid;grid-template-columns:100px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid #cbd6c4}.price-panel dt,.info-list dt{font-weight:700}.price-panel dd,.info-list dd{margin:0}.info-list{margin:0 0 28px}.center{text-align:center;margin-top:32px}.small{font-size:14px;color:var(--muted)}.piano-contact{background:var(--main);color:var(--base);text-align:center;padding:80px 5.5%}.piano-contact .eyebrow,.piano-contact .small{color:#dde4d4}.piano-contact h2{font-size:clamp(26px,3vw,40px);line-height:1.6}.piano-contact .button{background:var(--accent);color:var(--ink);border-color:var(--accent);min-width:280px}.piano-footer{padding:60px 5.5% 24px;background:#fff9ec;color:var(--ink)}.footer-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr 1.15fr .8fr;gap:40px}.footer-brand{font-size:23px;font-weight:700}.footer-grid p{font-size:14px}.footer-label{font-weight:700}.footer-grid nav{display:flex;flex-direction:column;gap:12px;font-size:14px;font-weight:700}.footer-bottom{max-width:1240px;margin:40px auto 0;border-top:1px solid #d4dccf;padding-top:20px;display:flex;justify-content:space-between;font-size:12px}.text-button{background:none;border:0;color:var(--muted);cursor:pointer}.subpage .site-header{position:relative;height:90px;border-bottom:1px solid #e0e4d6}.subpage .brand{font-size:26px}.subpage .nav a{font-size:14px}.page-head{padding:54px 5.5% 70px;background:#f8f1df;text-align:center}.page-head h1{font-size:clamp(32px,4vw,54px);line-height:1.5;margin:16px 0}.breadcrumbs{text-align:left;font-size:13px;max-width:1240px;margin:0 auto 45px}.page-head>p:last-child{max-width:700px;margin:0 auto}.steps{padding:0;list-style:none;max-width:850px;margin:auto}.steps li{display:grid;grid-template-columns:90px 1fr;gap:28px;border-bottom:1px solid #cbd6c4;padding:28px 0}.steps h3{font-size:23px}.steps p{margin-bottom:0}.request-panel{max-width:850px;margin:auto;text-align:center}.request-buttons{display:flex;justify-content:center;gap:20px;margin:32px 0}.faq-list{max-width:900px;margin:auto}.faq-list details{border-bottom:1px solid #c5d0c0;padding:22px 0}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;font-weight:700;font-size:19px;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{margin:18px 0 0;max-width:780px}.piano-section>.section-inner>img{width:100%;border-radius:24px;margin-bottom:40px}dialog{width:min(92vw,520px);border:0;border-radius:24px;padding:32px;color:var(--ink);background:var(--base);line-height:1.8}dialog::backdrop{background:#163428aa}dialog h2{font-size:24px}.home .hero [data-reveal]{opacity:1;transform:none}body:not(.nav-open) .nav-overlay{pointer-events:none}.nav-open .nav-overlay{pointer-events:auto}
@media(min-width:1900px){.hero{max-width:1900px;margin:auto}.site-header{max-width:1900px;margin:auto}.hero__title{font-size:98px}.hero-lead{font-size:29px;top:380px}.hero-actions .button{font-size:23px;padding:22px 38px}.hero-facts{font-size:23px}.hero-next{font-size:44px}}
@media(max-width:1040px){.site-header,.subpage .site-header{height:78px;padding:0 5%;position:relative;border-bottom:1px solid #dce2d3;background:var(--base)}.brand,.subpage .brand{font-size:23px;gap:10px}.home .brand{padding-left:0}.home .sun-mark{display:block}.nav{display:none}.nav-toggle{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:none;gap:6px;color:var(--ink)}.nav-toggle span{display:block;width:24px;height:2px;background:currentColor}.nav-overlay{position:fixed;inset:78px 0 0;z-index:30;background:var(--base);padding:40px 8%;transform:none;transition:opacity .25s;opacity:0;visibility:hidden;display:block}.nav-open .nav-overlay{opacity:1;visibility:visible}.nav-overlay nav{display:flex;flex-direction:column;gap:24px;margin-bottom:36px;font-size:22px;font-weight:700}.nav-open{overflow:hidden}.hero{background:none;aspect-ratio:auto;padding:32px 5% 40px;display:flex;flex-direction:column}.hero__copy{position:static;width:100%;transform:none}.hero__title{font-size:clamp(36px,6.5vw,65px);line-height:1.27;margin:0}.hero-lead{position:static;font-size:16px;margin:22px 0;line-height:1.8}.hero-lead br{display:none}.hero-facts{position:static;width:100%;font-size:14px;display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 22px;padding:0;justify-content:flex-start;text-align:left}.hero-facts li{background:#f9e9b8;padding:5px 12px;border-radius:20px}.hero-actions{position:static;width:100%;gap:12px;margin-bottom:30px}.hero-actions .button{font-size:15px;padding:14px 18px;gap:12px;flex:1}.hero__photo-wrap{display:block;width:100%;position:static;transform:none}.hero__photo{border-radius:24px;aspect-ratio:746/695;height:auto;object-fit:contain}.hero-next{position:static;width:100%;font-size:25px;margin:30px 0 0;line-height:1.6}.split{gap:32px}.piano-section{padding:64px 5%}.section__head{margin-bottom:32px}.reason-grid{gap:24px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid nav{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}.price-panel{padding:30px;gap:24px}.price-panel strong{font-size:44px}}
@media(max-width:767px){.brand,.subpage .brand{font-size:20px}.sun-mark{font-size:28px}.site-header,.subpage .site-header{height:70px}.nav-overlay{top:70px}.hero{padding-top:26px}.hero__title{font-size:37px;letter-spacing:0;line-height:1.25}.hero-lead{font-size:14px;margin:18px 0}.hero-facts{font-size:12px;gap:7px;margin-bottom:18px}.hero-actions{gap:9px;margin-bottom:24px}.hero-actions .button{font-size:12px;padding:13px 13px;gap:7px}.hero-next{font-size:21px}.piano-section{padding:54px 6%}.section__head{text-align:left}.section__head h2{font-size:27px;line-height:1.55}.eyebrow{font-size:12px}.split,.course-grid,.reason-grid,.price-panel,.footer-grid{grid-template-columns:1fr}.split{gap:28px}.split h3{font-size:24px}.large-copy{font-size:23px}.reason-grid{gap:28px}.reason{border-bottom:1px solid #cbd6c4;padding-bottom:24px}.number{font-size:30px;margin-bottom:12px}.course-card>div{padding:24px}.course-card h3{font-size:22px}.price-panel{padding:28px 22px}.price-panel strong{font-size:44px}.price-panel dl>div,.info-list>div{grid-template-columns:80px 1fr;gap:12px}.piano-contact{padding:60px 6%}.piano-contact h2{font-size:27px}.piano-footer{padding:44px 6% 22px}.footer-grid{gap:22px}.footer-grid nav{grid-column:auto;flex-direction:column;gap:9px}.footer-bottom{flex-wrap:wrap;gap:12px}.page-head{padding:30px 6% 45px}.page-head h1{font-size:32px}.breadcrumbs{margin-bottom:30px}.steps li{grid-template-columns:45px 1fr;gap:18px}.steps h3{font-size:21px}.request-buttons{flex-direction:column;gap:14px}.request-buttons .button{justify-content:space-between}.faq-list summary{font-size:17px}.button{font-size:15px;padding:14px 22px}.piano-section p,.piano-section dd{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important}.button{transition:box-shadow .2s}.button:hover{transform:none}.nav-overlay{transition:opacity .2s}}
.hero__copy{bottom:auto;right:auto;padding:0;display:block;align-items:normal;justify-content:normal;width:42%}.hero__title{font-size:5vw}.site-header{backdrop-filter:none;box-shadow:none}.hero__title span{clip-path:none;transform:none;opacity:1}@media(max-width:1040px){.hero__copy{position:static;width:100%;padding:0}.hero__title{font-size:clamp(36px,6.5vw,65px)}}@media(max-width:767px){.hero__title{font-size:37px}}

.hero__photo,.hero__title,.hero__title span{animation:none!important;opacity:1!important;transform:none!important}.course-card>div{position:relative;padding:28px 32px}.course-card .eyebrow{margin-top:0}@media(max-width:767px){.course-card>div{padding:24px}}

.site-header{position:sticky;inset:auto;top:0;z-index:40}.home .hero{margin-top:-5.8vw}.site-header.is-scrolled{background:var(--base);border-bottom:1px solid #dce2d3}.footer-social{max-width:1240px;margin:28px auto 0;display:flex;gap:24px}.footer-social a{font-weight:700;font-size:14px;display:inline-flex;align-items:center;min-height:44px}.footer-grid nav a{display:inline-flex;align-items:center;min-height:44px}@media(max-width:1040px){.site-header,.subpage .site-header{position:sticky;top:0}.home .hero{margin-top:0}}@media(prefers-reduced-motion:reduce){.site-header{position:relative}.home .hero{margin-top:-5.8vw}}@media(prefers-reduced-motion:reduce) and (max-width:1040px){.home .hero{margin-top:0}}

/* Meaningful Japanese line breaks; no wording changes. */
.phrase{display:inline-block;max-width:100%;vertical-align:baseline}h2,h3{word-break:normal;overflow-wrap:normal;text-wrap:balance}.piano-section p,.page-head>p,.piano-contact p,.piano-footer p,dd{word-break:normal;overflow-wrap:break-word;line-break:strict;word-break:auto-phrase}.page-head>p:last-child{max-width:760px}.piano-contact p{max-width:680px;margin-left:auto;margin-right:auto}.hero-lead{word-break:normal}.section__head h2{overflow-wrap:normal}@media(max-width:767px){.section__head h2{font-size:25px}.piano-contact h2{font-size:25px}.split h3{font-size:23px}.page-head>p:last-child{font-size:15px}.phrase{max-width:100%}}

/* iPhone X: deterministic text groups, including Safari / in-app WebKit. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.price-panel h3 span{display:inline-block;white-space:nowrap}
@media(max-width:767px){
 .hero__title{font-size:clamp(28px,8.5vw,37px);letter-spacing:0}
 .hero__title span{white-space:nowrap}
 .hero-actions{flex-direction:column;align-items:stretch;gap:12px}
 .hero-actions .button,.hero-actions .button:first-child{flex:none;width:100%;font-size:15px;padding:15px 22px;white-space:nowrap;min-height:54px}
 .hero-actions .button>span{flex-shrink:0}
 .hero-next{font-size:21px;line-height:1.6;text-wrap:normal}
 .mobile-phrase{display:inline-block;white-space:nowrap}
 #concept .section__head h2{font-size:clamp(20px,6.1vw,25px);text-wrap:normal}
 #concept .phrase{white-space:nowrap}
 .price-panel h3{font-size:22px;line-height:1.5}
 .price-panel strong{font-size:clamp(34px,10.5vw,44px)}
 .price-panel h3 span{display:block;margin:6px 0 0;font-size:14px;line-height:1.5}
}
