/* 2026-10-11 読みやすさ・画像・操作の共通補正。各サイトの色と演出は引き継ぐ。 */
html{scroll-padding-top:110px}body{font-size:16px}
h1,h2,h3,h4,h5,h6,summary{word-break:auto-phrase;text-wrap:balance;overflow-wrap:break-word}
button,input,select,textarea{font-size:16px}
img{max-width:100%;height:auto}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid currentColor;outline-offset:5px}
.z-readability{font-size:max(16px,var(--z-original-font,16px))!important;line-height:max(1.6,var(--z-original-leading,1.6))}
.z-heading-line{display:inline-block;max-width:100%;white-space:normal}
@media(max-width:767px){h1,h2,h3{max-width:100%}.z-fit-heading{font-size:clamp(28px,8.2vw,40px)!important;line-height:1.5!important;letter-spacing:0!important}.c-features__img{max-width:100%}.z-journal-page header .logo,.z-journal-page header .brand{min-width:0}}
@media(max-height:700px) and (min-width:901px){.z-low-hero{min-height:650px!important;height:auto!important}.z-low-hero h1{max-width:100%;font-size:clamp(38px,5vw,70px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.z-mobile-menu{display:none}.z-mobile-menu summary{cursor:pointer;min-height:44px;min-width:44px;padding:10px;border:1px solid currentColor;border-radius:999px;font-size:16px;background:var(--bg,#fff)}.z-mobile-menu nav{position:absolute;right:20px;top:100%;width:min(320px,calc(100vw - 40px));padding:16px;background:var(--bg,#fff);border:1px solid currentColor;z-index:100;box-shadow:0 10px 30px #0002}.z-mobile-menu nav a{display:block;padding:12px;font-size:16px;min-height:44px}.z-mobile-menu[open] summary{background:var(--paper,#fff)}@media(max-width:900px){.z-mobile-menu{display:block;margin-left:auto}}
.btns{min-width:0}.btns>a{box-sizing:border-box;max-width:100%;white-space:normal;overflow-wrap:break-word}@media(max-width:767px){.footer .fcta{grid-template-columns:1fr!important}.footer .fcta .btns{width:100%;justify-content:flex-start}}
.z-mobile-menu{position:relative;width:max-content}.z-mobile-menu nav{top:calc(100% + 12px);right:0}@media(max-width:900px){body>header.nav:has(.z-mobile-menu){display:flex;align-items:center;gap:16px}}
.z-mobile-menu{position:absolute;right:16px;top:50%;transform:translateY(-50%);z-index:102}.z-mobile-menu nav{max-height:calc(100dvh - 160px);overflow:auto}.z-mobile-menu summary{background:var(--z-bg,#fff);color:var(--z-ink,#222)}@media(max-width:900px){body>header:has(.z-mobile-menu){padding-right:116px!important}}

body>header.z-nav-collapsed{padding-right:116px!important}body>header.z-nav-collapsed>.z-mobile-menu{display:block}
.z-mobile-menu nav a{float:none!important;position:static!important;border-radius:0!important;white-space:normal!important;max-width:100%;margin:0!important}
@media(max-width:767px){.z-privacy-heading{font-size:clamp(22px,6.2vw,28px)!important;line-height:1.6!important;letter-spacing:0!important}}
.z-drawer-close{display:block;align-self:flex-end;margin:12px 16px 0 auto;min-height:44px;padding:8px 16px;background:transparent;border:1px solid currentColor;color:inherit;cursor:pointer;position:relative;flex:none;font-size:16px}
.c-ov>.z-drawer-close{position:absolute;top:12px;right:12px;margin:0;z-index:2;color:var(--ivory,#fff)}
.c-menu>.z-drawer-close,.sp-menu>.z-drawer-close{position:absolute;top:12px;right:12px;margin:0;z-index:100;color:inherit}
body.z-journal-page>header.z-light-header{background:var(--z-bg,#fff);color:var(--z-ink,#222);border-bottom:1px solid var(--z-line,#ddd)}
body.z-journal-page>header.z-light-header .zhd__inner{mix-blend-mode:normal;color:var(--z-ink,#222)}
body.z-journal-page>header.z-light-header nav:not([class*="menu"]) a,body.z-journal-page>header.z-light-header .zhd__inner a{color:var(--z-ink,#222)}
body.z-journal-page>header.z-light-header :is(.hd-tel,.c-hd__tel,.c-header__tel) *{color:var(--z-ink,#222)}
body.z-journal-page>header.z-light-header :is(.zhd__burger,.c-hd__burger) span{background:var(--z-ink,#222)}
body.z-journal-page.is-locked{overflow:hidden}
/* 全画面メニューを、ぼかし・変形付きヘッダーの寸法から切り離す。 */
@media(max-width:900px){
 body.z-mobile-open>header,body.z-mobile-open>header :has(nav){backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important;transform:none!important;perspective:none!important;contain:none!important;will-change:auto!important;overflow:visible!important}
 body.z-mobile-open>header nav{height:100dvh!important;min-height:100dvh!important;max-height:none!important;width:100vw!important;max-width:none!important;min-width:0!important;margin:0!important;box-sizing:border-box!important;justify-content:flex-start!important;top:0!important;left:0!important;right:0!important;bottom:0!important;overflow:auto!important;overscroll-behavior:contain;scroll-padding-top:88px}
 body.z-mobile-open>header nav{flex-wrap:nowrap!important}
 body.z-mobile-open.z-mobile-open>header nav{justify-content:flex-start!important;flex-wrap:nowrap!important}
 body.z-mobile-open>header nav a{flex-shrink:0!important}
 body.z-mobile-open>header nav ul{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;width:100%;margin:0;padding:0;gap:0}
 body.z-mobile-open>header nav li{width:100%;list-style:none}
 body.z-mobile-open>header .z-mobile-toggle{position:fixed!important;top:16px!important;right:16px!important;transform:none!important;z-index:10002!important}
}
.z-mobile-menu[open]>nav{display:block!important}
.z-mobile-panel{display:block!important;position:fixed!important;inset:auto 16px auto auto!important;top:var(--z-panel-top,80px)!important;width:min(320px,calc(100vw - 32px))!important;max-height:calc(100dvh - var(--z-panel-top,80px) - 16px)!important;box-sizing:border-box;padding:16px!important;margin:0!important;overflow:auto!important;overscroll-behavior:contain;background:var(--z-bg,#fff)!important;color:var(--z-ink,#222)!important;border:1px solid currentColor;box-shadow:0 10px 30px #0002;z-index:10030!important}
.z-mobile-panel a{display:block!important;float:none!important;position:static!important;inset:auto!important;transform:none!important;border-radius:0!important;white-space:normal!important;max-width:100%;margin:0!important;padding:12px!important;min-height:44px;font-size:16px!important;line-height:1.6!important;color:inherit!important;background:none!important}
@media(max-width:900px){
 body:has(:is(.dw,.c-drawer,.c-ov,#spnav,.sp-menu,.c-menu)[aria-hidden="false"]){overflow:hidden}
 :is(.dw,.c-drawer,.c-ov,#spnav,.sp-menu,.c-menu)[aria-hidden="false"]{z-index:10020!important}
 :is(.dw,.c-drawer,.c-ov,#spnav,.sp-menu,.c-menu)[aria-hidden="false"]>.z-drawer-close{position:fixed;top:16px;right:16px;z-index:3;margin:0;background:var(--paper,var(--ivory,#fff));color:var(--ink,#222)}
 body.is-menu-open:has(>header .menu-toggle){overflow:hidden}
 body.is-menu-open>header .site-nav{max-height:calc(100dvh - var(--z-menu-top,68px));overflow-y:auto;overscroll-behavior:contain}
}
/* 2026-10-11 追加：短い文言（見出し・ボタン・ラベル）は文節の切れ目だけで折る。iPhoneでも語の途中で折れない。印は zphrase.py が入れる */
[data-zp]{word-break:keep-all!important;overflow-wrap:break-word;line-break:strict}
.znb{white-space:nowrap}
p,li,dd,td{line-break:strict;text-wrap:pretty}
/* 手で改行を整えるための部品：z-nw＝この範囲は折らない／z-br-sp＝スマホだけ改行／z-br-pc＝PCだけ改行 */
.z-nw{white-space:nowrap}
.z-br-sp{display:none}
@media(max-width:767px){.z-br-sp{display:inline}.z-br-pc{display:none}}
/* zp-nested：data-zp の箱の中にある、印の無い別のブロック（長い段落など）には keep-all を引き継がせない。
   強さは0（:where）。サイト側・補正側の指定があれば、そちらが勝つ */
:where([data-zp]) :where(p,div,li,dd,dt,td,th,section,article,aside,figure,figcaption,blockquote,h1,h2,h3,h4,h5,h6,summary,details,button,form,address):where(:not([data-zp])){word-break:normal}
/* 値段の「円」は数字より小さく見せる（内田さんの決め・2026-10-07）。印は zyen.py が入れる。小さな文字の中でも10pxより小さくしない */
.z-yen{display:inline!important;font-size:max(.7em,10px);font-weight:inherit;letter-spacing:0;margin-left:.06em;white-space:nowrap;position:static!important;transform:none!important}

/* 実画面で確認したサイト固有の補正 */
@media(max-width:680px){.c-num__head .n,.c-numbers__head .n,.c-num__note{min-width:0;max-width:100%;white-space:normal;overflow-wrap:break-word}}@media(max-width:1000px){#c-s1{left:max(6.3%,5.5em)!important}}@media(max-width:680px){#c-s1{left:max(6.3%,3.75em)!important}}@media(max-width:480px){.c-ov__in{padding-left:24px;padding-right:24px}.c-ov__list a{gap:10px}.c-ov__tx{font-size:clamp(16px,4.8vw,22px);letter-spacing:.02em;text-wrap:balance}}@media(max-width:420px){body>header .c-hd__cta:not(.z-mobile-menu *){display:none}body>header .c-hd__logo{flex:0 0 auto}body>header .c-hd__logo img{width:140px;height:auto}body>header .c-hd__in{gap:12px}body>header .c-hd__right{gap:10px}}@media(max-width:767px){.c-intro__grid{grid-template-columns:minmax(0,1fr)}.c-intro__grid>*{min-width:0}.c-intro__tally>p{min-width:0;flex:1}}

/* 2026-10-11 追加の補正（local/sample44.css） */
/* sample44 おとのは音楽教室 */
/* GOAL：負の余白をやめ、丸を道の終点に置き、文は丸の上へ。図の外（見出し・案内文）へ出ない */
.c-proc__goal{margin-top:0 !important;transform:translate(-50%,-27px) !important}
.c-proc__goal .ring{margin:0 auto}
.c-proc__goal .t{position:absolute;right:0;bottom:calc(100% + 6px);white-space:nowrap;font-size:11px;text-align:right}
@media(max-width:680px){
  .c-proc__head{margin-bottom:18px}
  .c-proc__board{margin-top:26px}
}
/* ヘッダーの申し込みボタン：下層で「予約」だけ次の行に落ちていた */
body>header .c-hd__cta{white-space:nowrap}
/* 下層ページの大見出し：スマホで句点だけが次の行に落ちないよう、字の大きさを少し下げる */
@media(max-width:480px){.c-phero h1{font-size:clamp(28px,8.2vw,36px);letter-spacing:.03em}}
/* ヘッダー（1081px以上）：メニュー6項目・電話・ボタンが幅に収まらず、各所で折り返していた */
@media(min-width:1081px){
  body>header .c-hd__in{gap:14px;padding-left:20px;padding-right:20px}
  body>header .c-hd__right{gap:14px}
  body>header .c-hd__nav{gap:0}
  body>header .c-hd__nav a{padding:12px 7px;font-size:13.5px;white-space:nowrap}
  body>header .c-hd__tel .num{font-size:18px;white-space:nowrap}
  body>header .c-hd__cta{padding:12px 18px;white-space:nowrap}
}

/* Codex：狭い画面の判定枠は数字と説明を縦に並べ、本文の幅を確保。 */
@media(max-width:767px){
  .c-intro__tally{flex-direction:column;align-items:flex-start;gap:12px}
  .c-intro__tally>p{flex:none;width:100%;min-width:0}
  .c-intro__st{flex-wrap:wrap;gap:8px}
  .c-intro__st .no{white-space:nowrap;flex:0 0 auto}
  .c-vs__new .v{white-space:nowrap}
  .c-fv__jp{right:22px;white-space:normal;text-wrap:balance}
}
/* flex文節の箱にも、指定された字の大きさを継承する。 */
body>header .c-hd__cta .zr{font-size:inherit!important;line-height:inherit;white-space:nowrap!important}
.c-fv__actions .c-fv__cta{font-family:'Space Grotesk','Zen Kaku Gothic New',sans-serif;flex-shrink:0}
.c-fv__actions .c-fv__cta .zr{font-size:inherit!important;line-height:inherit}
.c-fv__foot{min-width:0}
/* 最初の文と導線を0.55秒で表示。同じ演出と位置を維持。 */
.c-fv__splash{animation-delay:.15s;animation-duration:.2s}
.c-fv__photo,.c-fv__l,.c-fv__jp,.c-fv__actions{animation-delay:.2s!important;animation-duration:.35s!important}
/* 説明に使う日本語の小字だけ12pxへ。英字の飾りは元の大きさ。 */
.c-crumb,.c-tcard .dept,.c-reasons__lb,.c-proc__goal .t,body>header .c-hd__tel .h{font-size:12px}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("assets/css/sample44-space-grotesk-400.woff2") format("woff2");unicode-range:U+D,U+20-7E,U+A0-FF,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+300-301,U+303-304,U+308-309,U+323,U+2009,U+200B,U+2013-2014,U+2018-201A,U+201C-201E,U+2022,U+2026,U+2032-2033,U+2039-203A,U+2044,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("assets/css/sample44-space-grotesk-500.woff2") format("woff2");unicode-range:U+D,U+20-7E,U+A0-FF,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+300-301,U+303-304,U+308-309,U+323,U+2009,U+200B,U+2013-2014,U+2018-201A,U+201C-201E,U+2022,U+2026,U+2032-2033,U+2039-203A,U+2044,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url("assets/css/sample44-space-grotesk-700.woff2") format("woff2");unicode-range:U+D,U+20-7E,U+A0-FF,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+300-301,U+303-304,U+308-309,U+323,U+2009,U+200B,U+2013-2014,U+2018-201A,U+201C-201E,U+2022,U+2026,U+2032-2033,U+2039-203A,U+2044,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;}

/* stickyヘッダーの占有分をFVの高さから引き、初画面に予約導線まで収める。 */
.c-fv{height:calc(100svh - 90px);min-height:600px}
@media(max-width:600px){.c-fv{height:calc(100svh - 76px);min-height:0}.c-fv__jp{bottom:13.5vh}}

/* 料金の税込・回数・比較料金は情報文字として12px以上に。 */
.c-price__plan .tax{font-size:12px}

/* 工程4：比較例の条件説明。数値・図の配色・配置は保持。 */
.c-vs__note{max-width:760px;margin:30px auto 0;padding:0 24px;font-size:12px;line-height:1.9;color:var(--sub);text-align:center;}
/* 工程4：320pxだけ、年間交代回数の括弧説明を次の行へ送る。 */
@media(max-width:360px){.c-vs__cmp:last-child .c-vs__new .v{white-space:normal}}

/* Codex工程5 2026-10-12 ロゴ実像比率 */
.c-hd__logo img{object-fit:contain;}

