:root {
  --font-body: "Zen Maru Gothic", "Yu Gothic", sans-serif;
  --font-display: "Zen Maru Gothic", "Yu Gothic", sans-serif;
  --ink: #3e342e;
  --muted: #766860;
  --primary: #ef6c39;
  --primary-dark: #c74d22;
  --secondary: #f2b83d;
  --accent: #e64d76;
  --green: #5e9b68;
  --line: #e9d9c7;
  --paper: #fffdf8;
  --soft: #fff4df;
  --white: #fff;
  --radius: 24px;
  --shadow: 0 14px 40px rgba(92, 57, 33, 0.12);
  --section-space: clamp(72px, 9vw, 120px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-body); font-size: 18px; line-height: 1.9; transition: color .25s, background .25s; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, summary { font: inherit; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 999; padding: 10px 16px; background: #fff; color: #111; }
.skip-link:focus { top: 8px; }

.site-header { position: relative; z-index: 10; display: flex; width: min(1180px, calc(100% - 48px)); min-height: 100px; margin: 0 auto; align-items: center; justify-content: space-between; padding-right: 330px; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; line-height: 1.35; }
.brand-mark { display: grid; width: 48px; height: 48px; place-items: center; color: #fff; border-radius: 50% 45% 50% 38%; background: var(--primary); font-family: var(--font-display); font-size: 25px; font-weight: 800; transform: rotate(-5deg); }
.brand-mark img { width: 78%; height: 78%; object-fit: contain; }
.brand b { display: block; font-family: var(--font-display); font-size: 20px; }
.brand small { display: block; color: var(--muted); font-size: 11px; letter-spacing: .06em; }
.site-header nav { display: flex; gap: 26px; font-size: 14px; font-weight: 700; }
.site-header nav a { text-decoration: none; }
.site-header nav a:hover { color: var(--primary); }

.hero { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); min-height: 680px; overflow: hidden; background: var(--soft); }
.hero { background: radial-gradient(circle at 10% 12%, rgba(255,255,255,.95) 0 8%, transparent 24%), linear-gradient(135deg, #fff8e9 0%, #fff2da 58%, #edf5e6 100%); }
.hero::before { position: absolute; z-index: 1; left: -80px; bottom: -120px; width: 310px; height: 310px; content: ""; border-radius: 52% 48% 62% 38%; background: rgba(94,155,104,.13); transform: rotate(24deg); }
.hero-copy { z-index: 2; width: min(560px, calc(100% - 40px)); margin-left: max(24px, calc((100vw - 1180px) / 2)); padding: clamp(62px, 8vw, 105px) 20px 100px 0; }
.eyebrow, .section-kicker { margin: 0 0 12px; color: var(--primary-dark); font-size: 14px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow::before, .section-kicker::before { content: ""; display: inline-block; width: 28px; height: 3px; margin: 0 9px 4px 0; border-radius: 9px; background: var(--primary); }
.hero h1 { margin: 0 0 22px; font-family: var(--font-display); font-size: clamp(40px, 4.15vw, 60px); font-weight: 400; line-height: 1.32; letter-spacing: .02em; text-wrap: balance; }
.hero h1 .hero-title-line { display: block; white-space: nowrap; }
.hero h1 em { display: block; color: var(--primary); font-style: normal; }
.hero-lead { max-width: 540px; margin: 0 0 24px; font-size: 19px; font-weight: 500; }
.hero-visual { position: relative; min-width: 0; }
.hero-visual::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, var(--soft) 0%, transparent 22%); }
.hero-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.image-note { position: absolute; z-index: 2; right: 10px; bottom: 10px; padding: 3px 9px; color: #fff; border-radius: 99px; background: rgba(0,0,0,.52); font-size: 11px; line-height: 1.5; }
.campaign { display: grid; grid-template-columns: auto 1fr; width: fit-content; margin-bottom: 20px; overflow: hidden; border: 2px solid var(--primary); border-radius: 14px; background: #fff; line-height: 1.35; }
.campaign > span { display: grid; grid-row: 1 / 3; padding: 8px 12px; place-items: center; color: #fff; background: var(--primary); font-size: 12px; font-weight: 800; writing-mode: vertical-rl; }
.campaign strong { padding: 8px 15px 0; color: var(--primary-dark); font-size: 22px; }
.campaign strong b { font-size: 38px; }
.campaign small { display: flex; flex-wrap: wrap; gap: 2px 8px; padding: 0 15px 8px; color: var(--muted); font-size: 11px; }
.campaign small b { color: var(--primary-dark); font-size: 13px; }
.button { display: inline-flex; min-height: 58px; align-items: center; justify-content: center; gap: 9px; padding: 12px 24px; border: 0; border-radius: 99px; text-decoration: none; font-weight: 800; line-height: 1.4; transition: transform .2s, box-shadow .2s; }
.button:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(35, 121, 65, .25); }
.button-line { color: #fff; background: #289b4c; box-shadow: 0 6px 0 #177436; }
.button-line span { color: #fff; font-size: 15px; }
.microcopy { margin: 10px 0 0; color: var(--muted); font-size: 12px; }

.section { padding: var(--section-space) max(24px, calc((100% - 1180px) / 2)); }
.section-heading { max-width: 780px; margin: 0 auto 50px; text-align: center; }
.section-heading.left { margin-left: 0; text-align: left; }
.section-heading h2, .section h2 { margin: 0 0 18px; font-family: var(--font-display); font-size: clamp(32px, 4vw, 50px); font-weight: 400; line-height: 1.4; }
.section-heading > p:last-child { margin: 0; color: var(--muted); }
.section h3 { font-family: var(--font-display); }
.concern-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 70px; }
.concern-card { position: relative; min-height: 190px; padding: 30px 22px 24px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); text-align: center; }
.concern-icon { display: grid; width: 64px; height: 64px; margin: 0 auto 16px; place-items: center; color: var(--primary-dark); border-radius: 50%; background: var(--soft); font-family: var(--font-display); font-size: 22px; font-weight: 800; }
.concern-card p { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.75; }
.reassurance { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 6vw, 78px); align-items: center; padding: 38px; border-radius: calc(var(--radius) + 10px); background: var(--soft); }
.reassurance-photo { position: relative; overflow: hidden; border-radius: var(--radius); }
.reassurance-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.reassurance h3 { margin: 0 0 12px; font-size: 31px; }
.check-list { display: grid; gap: 5px; margin: 20px 0 0; padding: 0; list-style: none; }
.check-list li::before { content: "✓"; margin-right: 9px; color: var(--primary); font-weight: 900; }

.section-lessons { background: var(--soft); }
.reason-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 80px; }
.reason-card { position: relative; padding: 38px 28px 30px; overflow: hidden; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.reason-number { position: absolute; right: 13px; top: -12px; color: var(--soft); font-family: var(--font-display); font-size: 90px; font-weight: 800; line-height: 1; }
.reason-card .reason-symbol { position: relative; display: grid; width: 54px; height: 54px; margin-bottom: 16px; place-items: center; color: #fff; border-radius: 50%; background: var(--primary); font-weight: 800; }
.reason-card h3 { position: relative; margin: 0 0 8px; font-size: 24px; }
.reason-card p { position: relative; margin: 0; color: var(--muted); font-size: 16px; }
.lesson-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 34px; }
.lesson-intro h3 { margin: 5px 0 0; font-size: clamp(28px, 3vw, 40px); line-height: 1.45; }
.lesson-intro > p { margin: 0; }
.mini-label { display: inline-block; margin: 0; padding: 3px 12px; color: #fff; border-radius: 99px; background: var(--primary); font-size: 13px; font-weight: 800; }
.method-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.method-card { overflow: hidden; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.method-image { position: relative; }
.method-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.method-card div:last-child { padding: 22px; }
.method-card h4 { margin: 0 0 8px; font-family: var(--font-display); font-size: 22px; }
.method-card p { margin: 0; color: var(--muted); font-size: 15px; }
.method-link { display: inline-flex; min-height: 44px; align-items: center; margin-top: 10px; color: var(--primary-dark); font-size: 13px; font-weight: 800; text-underline-offset: 4px; }
.method-popup { padding: 0; border: 0; background: transparent; text-decoration: underline; cursor: pointer; }
.method-popup:hover { color: var(--primary); }
.video-embed { position: relative; width: 100%; margin-top: 14px; overflow: hidden; border-radius: 12px; background: #211f1d; aspect-ratio: 16 / 9; }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.saturday-box { margin-top: 32px; padding: 26px; border: 2px dashed var(--secondary); border-radius: var(--radius); background: #fff; text-align: center; }
.saturday-box > p { margin: 0 0 18px; color: var(--primary-dark); font-family: var(--font-display); font-size: 22px; font-weight: 800; }
.saturday-box > p span { color: var(--secondary); }
#saturdayMethods { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 14px; text-align: left; }
.saturday-method { padding: 16px; border-radius: 14px; background: var(--soft); }
.saturday-method b { display: block; color: var(--primary-dark); font-size: 15px; }
.saturday-method span { font-size: 13px; line-height: 1.6; }
.saturday-method .method-link { display: flex; width: fit-content; min-height: 38px; margin-top: 6px; font-size: 12px; }
.saturday-box small { color: var(--muted); }

.section-younger { background: var(--paper); }
.younger-card { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border-radius: calc(var(--radius) + 16px); background: #eaf2ef; box-shadow: var(--shadow); }
.younger-copy { padding: clamp(38px, 6vw, 76px); }
.younger-copy h2 { font-size: clamp(30px, 4vw, 48px); }
.younger-photo { position: relative; min-height: 520px; }
.younger-photo img { width: 100%; height: 100%; object-fit: cover; }
.soft-note { padding: 14px 18px; border-left: 4px solid var(--accent); background: rgba(255,255,255,.66); font-size: 15px; }

.section-voices { background: var(--soft); }
.sample-warning { display: inline-block; padding: 7px 14px; color: #735526 !important; border-radius: 8px; background: #fff3bd; font-size: 13px; }
.voice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.voice-card { position: relative; padding: 34px 28px; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.voice-card::before { content: "“"; position: absolute; right: 20px; top: 4px; color: var(--soft); font-family: Georgia, serif; font-size: 100px; line-height: 1; }
.voice-person { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.voice-avatar { display: grid; width: 52px; height: 52px; place-items: center; color: #fff; border-radius: 50%; background: var(--primary); font-weight: 800; }
.voice-person b { display: block; }
.voice-person span { color: var(--primary-dark); font-size: 12px; font-weight: 700; }
.voice-card blockquote { position: relative; margin: 0; font-size: 16px; }
.personal-note { margin: 22px 0 0; color: var(--muted); font-size: 12px; text-align: right; }

.section-instructor { background: var(--paper); }
.instructor-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(40px, 7vw, 90px); align-items: center; max-width: 980px; margin: 0 auto; }
.instructor-photo { position: relative; }
.instructor-photo::before { position: absolute; content: ""; inset: 20px -20px -20px 20px; border-radius: var(--radius); background: var(--secondary); opacity: .35; }
.instructor-photo img { position: relative; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius); }
.instructor-copy h2 { margin-bottom: 24px; }
.role { display: inline-block; margin: 0; padding: 4px 12px; color: var(--primary-dark); border-radius: 99px; background: var(--soft); font-size: 13px; font-weight: 800; }
.instructor-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; margin: 8px 0 18px; font-family: "Zen Maru Gothic", "Yu Gothic", sans-serif; font-size: 35px; font-weight: 700; }
.instructor-name span, .instructor-name small { white-space: nowrap; }
.instructor-name small { color: var(--muted); font-size: 12px; font-weight: 500; }
.draft-note { color: var(--muted); font-size: 12px; }
.qualifications { max-width: 980px; margin: 48px auto 0; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.qualifications summary { padding: 18px 24px; cursor: pointer; font-weight: 800; }
#qualificationsList { padding: 0 24px 22px; }
.qualification-row { padding: 15px 0; border-top: 1px solid var(--line); font-size: 14px; }
.qualification-row b { display: block; color: var(--primary-dark); }

.section-schedule { background: var(--soft); }
.price-card { display: grid; grid-template-columns: .9fr 1.3fr; max-width: 940px; margin: 0 auto 50px; overflow: hidden; border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.price-card > div:first-child { display: grid; padding: 35px; place-content: center; text-align: center; color: #fff; background: var(--primary); }
.price-card > div:first-child span { font-weight: 700; }
.price-card strong { display: block; font-size: 24px; }
.price-card strong b { font-family: var(--font-display); font-size: clamp(35px, 4vw, 52px); }
.price-card > div:first-child small { font-size: 12px; }
.price-main > p { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.38); font-size: 13px; line-height: 1.65; }
.price-main > p b { white-space: nowrap; font-size: 17px; }
.price-main .price-total { margin-top: 8px; padding-top: 8px; font-weight: 700; }
.price-main .price-total b { font-family: var(--font-display); font-size: 24px; }
.price-card ul { display: grid; align-content: center; gap: 7px; margin: 0; padding: 28px 34px 28px 55px; font-size: 15px; }
.price-card em, .price-options em { padding: 2px 5px; color: #8a631b; border-radius: 4px; background: #fff1b2; font-size: 10px; font-style: normal; }
.price-options { grid-column: 1 / -1; display: flex; justify-content: center; gap: 24px; padding: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.schedule-wrap { max-width: 980px; margin: 0 auto 42px; }
.schedule-tabs { display: flex; gap: 7px; }
.schedule-tab { flex: 1; min-height: 56px; color: var(--muted); border: 1px solid var(--line); border-bottom: 0; border-radius: 12px 12px 0 0; background: rgba(255,255,255,.6); cursor: pointer; font-weight: 800; }
.schedule-tab[aria-selected="true"] { color: #fff; border-color: var(--primary); background: var(--primary); }
.schedule-panel { display: none; padding: 20px; border: 2px solid var(--primary); border-radius: 0 0 16px 16px; background: #fff; }
.schedule-panel.active { display: grid; gap: 12px; }
.class-row { display: grid; grid-template-columns: 150px 1fr; gap: 20px; padding: 20px; border-radius: 12px; background: var(--soft); }
.class-time { display: grid; align-content: center; color: var(--primary-dark); font-weight: 800; line-height: 1.5; }
.class-time small { color: var(--muted); font-size: 12px; }
.class-row h3 { margin: 0 0 3px; font-size: 19px; }
.class-row p { margin: 0; color: var(--muted); font-size: 14px; }
.venue-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.venue-card { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.venue-card h3 { margin: 0 0 8px; font-size: 18px; }
.venue-card h3 small { display: block; color: var(--muted); font-size: 11px; }
.venue-card p { margin: 0 0 12px; font-size: 13px; }
.venue-card a { display: inline-flex; min-height: 42px; align-items: center; color: var(--primary-dark); font-size: 13px; font-weight: 800; }
.venue-card .parking { display: inline-block; margin-left: 7px; padding: 2px 7px; border-radius: 99px; background: var(--soft); font-size: 10px; }
.confirm-note { margin: 20px 0 0; color: var(--muted); font-size: 12px; }

.section-trial { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(36px, 6vw, 72px); background: var(--paper); }
.faq-list { display: grid; gap: 12px; }
.faq-item { border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.faq-item button { display: grid; width: 100%; grid-template-columns: 40px 1fr 30px; align-items: center; padding: 17px 18px; text-align: left; color: var(--ink); border: 0; background: transparent; cursor: pointer; font-weight: 700; }
.faq-q { color: var(--primary); font-family: var(--font-display); font-size: 24px; }
.faq-toggle { color: var(--primary); font-size: 24px; text-align: center; transition: transform .2s; }
.faq-item.open .faq-toggle { transform: rotate(45deg); }
.faq-answer { display: none; padding: 0 24px 22px 58px; color: var(--muted); font-size: 15px; }
.faq-item.open .faq-answer { display: block; }
.trial-card { position: sticky; top: 95px; align-self: start; padding: clamp(32px, 5vw, 58px); color: #fff; border-radius: calc(var(--radius) + 14px); background: var(--primary); box-shadow: var(--shadow); text-align: center; }
.trial-card .section-kicker { color: #fff; }
.trial-card .section-kicker::before { background: #fff; }
.trial-card h2 { font-size: clamp(28px, 3vw, 40px); }
.trial-card > p { font-size: 15px; }
.trial-price { margin: 26px 0; padding: 18px; color: var(--ink); border-radius: var(--radius); background: #fff; }
.trial-price span, .trial-price strong, .trial-price small { display: block; }
.trial-price span { font-size: 17px; font-weight: 800; }
.trial-price .campaign-label { display: flex; align-items: center; justify-content: center; gap: 7px; }
.trial-price .campaign-label i { font-size: 22px; font-style: normal; line-height: 1; }
.trial-price strong { color: var(--primary-dark); font-size: 27px; }
.trial-price strong b { font-size: 46px; }
.trial-price small { color: var(--muted); font-size: 14px; }
.trial-card .button { width: 100%; }
.line-placeholder { margin: 12px 0 !important; opacity: .85; font-size: 11px !important; }
.trial-notes { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; }
.trial-notes span { padding: 3px 10px; border: 1px solid rgba(255,255,255,.6); border-radius: 99px; font-size: 11px; }

footer { padding: 56px 24px 110px; color: #fff; background: var(--ink); text-align: center; }
.footer-brand { justify-content: center; margin-bottom: 20px; }
.footer-brand small { color: rgba(255,255,255,.7); }
footer > p { margin: 0 0 12px; font-size: 14px; }
.footer-line { display: inline-block; white-space: nowrap; }
.footer-line + .footer-line { margin-left: .4em; }
footer > small { color: rgba(255,255,255,.55); font-size: 11px; }
.mobile-cta { display: none; }
.toast { position: fixed; z-index: 100; left: 50%; bottom: -90px; padding: 12px 20px; color: #fff; border-radius: 99px; background: #2d2927; box-shadow: var(--shadow); font-size: 14px; transform: translateX(-50%); transition: bottom .25s; }
.toast.show { bottom: 26px; }
body.modal-open { overflow: hidden; }
.site-modal { width: min(1180px, calc(100% - 32px)); max-width: none; height: min(850px, calc(100dvh - 32px)); max-height: none; padding: 0; overflow: hidden; border: 0; border-radius: 18px; background: #fff; box-shadow: 0 28px 80px rgba(25, 18, 14, .32); }
.site-modal::backdrop { background: rgba(28, 22, 19, .68); backdrop-filter: blur(4px); }
.site-modal-panel { display: grid; height: 100%; grid-template-rows: auto minmax(0, 1fr) auto; }
.site-modal-header { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 20px; padding: 10px 14px 10px 22px; border-bottom: 1px solid var(--line); background: var(--paper); }
.site-modal-header strong { font-family: var(--font-display); font-size: 18px; }
.site-modal-actions { display: flex; align-items: center; gap: 12px; }
.site-modal-actions a { display: inline-flex; min-height: 42px; align-items: center; color: var(--primary-dark); font-size: 13px; font-weight: 800; }
.site-modal-actions button { display: grid; width: 44px; height: 44px; padding: 0; place-items: center; color: var(--ink); border: 1px solid var(--line); border-radius: 50%; background: #fff; cursor: pointer; font-size: 28px; line-height: 1; }
.site-modal iframe { width: 100%; height: 100%; border: 0; background: #fff; }
.site-modal-note { margin: 0; padding: 8px 18px; color: var(--muted); background: #fff; font-size: 12px; text-align: center; }

/* 採用デザイン：A案（元気でにぎやか） */
.section-lessons { background: linear-gradient(135deg, #fff4df 0%, #fffaf2 52%, #edf6e9 100%); }
.reason-card:nth-child(2) .reason-symbol { background: var(--green); }
.reason-card:nth-child(3) .reason-symbol { background: var(--accent); }
.concern-card:nth-child(2) { transform: rotate(1deg); }
.concern-card:nth-child(3) { transform: rotate(-1deg); }

@media (max-width: 980px) {
  .site-header { width: calc(100% - 32px); padding-right: 0; }
  .site-header nav { display: none; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { order: 2; width: auto; margin: 0; padding: 42px 24px 82px; }
  .hero-visual { order: 1; height: min(65vw, 520px); }
  .hero-visual::after { background: linear-gradient(0deg, var(--soft) 0%, transparent 20%); }
  .concern-grid { grid-template-columns: repeat(2, 1fr); }
  .reason-grid, .method-grid, .voice-grid, .venue-grid { grid-template-columns: 1fr; }
  .reason-grid { margin-bottom: 55px; }
  .method-card { display: grid; grid-template-columns: 1fr 1fr; }
  #saturdayMethods { grid-template-columns: repeat(2, 1fr); }
  .reassurance, .lesson-intro, .younger-card, .instructor-layout, .section-trial { grid-template-columns: 1fr; }
  .younger-photo { min-height: 420px; }
  .instructor-photo { max-width: 460px; margin: 0 auto; }
  .trial-card { position: static; }
}

@media (max-width: 640px) {
  body { font-size: 16px; line-height: 1.85; padding-bottom: 78px; }
  html { scroll-padding-top: 130px; }
  .site-header { min-height: 88px; }
  .brand-mark { width: 42px; height: 42px; }
  .brand b { font-size: 17px; }
  .brand small { font-size: 9px; }
  .hero-visual { height: 82vw; min-height: 330px; }
  .hero-visual img { object-position: 56% center; }
  .hero-copy { padding-top: 58px; }
  .hero h1 { font-size: clamp(30px, 8.8vw, 38px); letter-spacing: 0; }
  .hero-lead { font-size: 17px; }
  .campaign { width: 100%; }
  .campaign strong { font-size: 19px; }
  .campaign strong b { font-size: 34px; }
  .hero-copy > .button { width: 100%; }
  .section { padding-left: 20px; padding-right: 20px; }
  .section-heading { margin-bottom: 36px; }
  .section-heading h2, .section h2 { font-size: 31px; }
  .concern-grid { grid-template-columns: 1fr; gap: 12px; margin-bottom: 44px; }
  .concern-card { display: grid; grid-template-columns: 58px 1fr; min-height: auto; align-items: center; gap: 14px; padding: 18px; text-align: left; transform: none !important; }
  .concern-icon { width: 58px; height: 58px; margin: 0; }
  .reassurance { padding: 20px; }
  .reassurance h3 { font-size: 25px; }
  .reason-grid { gap: 12px; }
  .reason-card { padding: 28px 22px 24px; }
  .lesson-intro { gap: 18px; }
  .method-card { display: block; }
  #saturdayMethods { grid-template-columns: 1fr; }
  .younger-card { border-radius: var(--radius); }
  .younger-copy { padding: 32px 24px; }
  .younger-photo { min-height: 300px; }
  .voice-grid { gap: 12px; }
  .instructor-layout { gap: 48px; }
  .instructor-photo { max-width: calc(100% - 25px); margin-left: 0; }
  .price-card { grid-template-columns: 1fr; }
  .price-card strong b { font-size: 38px; }
  .price-options { display: grid; gap: 5px; text-align: center; }
  .schedule-panel { padding: 10px; }
  .class-row { grid-template-columns: 1fr; gap: 9px; padding: 16px; }
  .schedule-tab { min-height: 52px; }
  .faq-item button { grid-template-columns: 32px 1fr 24px; padding: 15px 12px; }
  .faq-answer { padding: 0 16px 18px 44px; }
  .trial-card { padding: 34px 20px; }
  footer { padding-bottom: 32px; }
  .footer-line { display: block; }
  .footer-line + .footer-line { margin-left: 0; }
  .mobile-cta { position: fixed; z-index: 45; left: 0; right: 0; bottom: 0; display: block; padding: 9px 12px calc(9px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.94); box-shadow: 0 -5px 22px rgba(0,0,0,.12); backdrop-filter: blur(10px); }
  .mobile-cta .button { width: 100%; min-height: 56px; }
  .toast.show { bottom: 88px; }
  .site-modal { width: calc(100% - 16px); height: calc(100dvh - 16px); border-radius: 14px; }
  .site-modal-header { min-height: 58px; gap: 8px; padding: 7px 8px 7px 14px; }
  .site-modal-header strong { max-width: 47%; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
  .site-modal-actions { gap: 7px; }
  .site-modal-actions a { font-size: 11px; }
  .site-modal-actions button { width: 40px; height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
