/* 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:767px){.c-proc__step{grid-template-columns:56px minmax(0,1fr)}.c-proc__card{min-width:0;padding:20px 18px}}.c-reasons__band{padding-right:104px;min-height:50px;overflow:visible;margin-top:14px;margin-bottom:12px}.c-reasons__band .bn{top:50%;right:10px;transform:translateY(-50%);font-size:64px;line-height:1.2;white-space:nowrap;color:rgba(255,255,255,.22);-webkit-text-stroke:1.5px var(--main-deep);text-shadow:none;pointer-events:none}

/* 2026-10-11 追加の補正（local/sample07.css） */
/* sample07 ぞろ屋歯科クリニック：2026-10-11 ブラッシュアップ（Claude）。画面で確かめて入れた補正だけを書く */

/* 折らない範囲（z-nw）の中では、機械の折り返しの印も止める。wbr は white-space:nowrap の中でも折れるため */
.z-nw wbr{display:none}

/* ヘッダー：濃い色の帯の上で、下の文字が透けて読めていた。地を白にする（ロゴ画像の白い地ともそろう） */
body>header.site-header{background:#fff}

/* ロゴ：画像の上下に広い余白があり、屋号が7pxほどの大きさで出ていた。中央の帯だけを見せて大きくする（画像そのものは触らない） */
.site-header__brand img,.hd-logo img{width:176px;height:46px;object-fit:cover;object-position:50% 47%;filter:brightness(1.05)}
@media(max-width:767px){.site-header__brand img,.hd-logo img{width:164px;height:44px}}

/* 最初の画面（PC）：文字の箱が画面幅とともに狭くなり、大見出しが「痛くなる／前に、」と4行に折れ、予約ボタンが1画面目から外れていた。
   文字の箱を一定の幅にし、高さの低い画面では見出しと余白を少し詰める */
@media(min-width:961px){
  .hero-inner{max-width:calc(max(40px,7vw) + 28px + 580px)}
}
@media(min-width:961px) and (max-height:800px){
  .hero-inner{padding-top:52px;padding-bottom:60px;gap:20px}
  .hero h1{font-size:clamp(38px,4.7vw,62px)}
}
/* 2つめのボタン：写真の上でも文字が沈まないよう、白い地を敷く */
.hero .btn.ghost{background:rgba(255,255,255,.86)}
.hero .btn.ghost:hover{background:var(--main)}

/* 数字の帯：括弧の補足だけが1行に孤立し、「。」が次の行に落ちていた（内側の印まで display:block になっていた） */
.cband .scell span span{display:inline;margin-top:0}
@media(max-width:767px){
  /* スマホでは3列が入りきらず、3つめ（0歳から…）が画面の外に切れていた。数字を左・説明を右にして縦に並べる */
  .cband .stat-row{grid-template-columns:minmax(0,1fr);gap:0;margin-top:40px}
  .cband .scell{display:grid;grid-template-columns:84px minmax(0,1fr);column-gap:18px;align-items:center;padding:18px 0}
  .cband .scell b{font-size:52px;line-height:1}
  .cband .scell span{margin-top:0}
}

/* 院内の写真（PC）：3段目の右半分が空いていた。大きい1枚を3段ぶんの高さにして、すき間なく収める */
@media(min-width:961px){.fac-grid .big2{grid-row:span 3}}

/* 通院の流れ：320px幅でカードの題が「定期メン／テナンス」と折れていた */
@media(max-width:359px){.c-proc__card h3{font-size:18px}}

/* 患者さんの声：「予防・／定期メンテナンス」と途中で折れていた。診療科目はひとまとまりにし、幅が狭いときは区切りの「／」を外して次の行に置く */
.c-voice__card .who>span{display:inline-block}
.c-voice__card .who>span wbr{display:none}
.c-voice__card .who .sl{font-style:normal}
@media(max-width:1099px){.c-voice__card .who>span{display:block;margin-top:2px}.c-voice__card .who .sl{display:none}}

/* 下層ページのフッター下のページ一覧：左端に張り付き、灰色の地に白い字で読みにくかった */
.footer .wp-page-links{width:min(1160px,calc(100% - 56px));margin:4px auto 0;padding:0 0 32px;justify-content:center}
.footer .wp-page-links a{background:transparent;border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.88);min-height:40px}
.footer .wp-page-links a:hover{background:rgba(255,255,255,.12)}

/* 下層ページ：診療内容のカード（4枚）は2列×2段に。費用の目安・補足・流れの題の見え方 */
@media(min-width:801px){.zoroya-sub-grid:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}
.zoroya-sub-card .zoroya-sub-price{margin-top:12px;color:var(--main);font-weight:700;font-size:17px}
.zoroya-sub-note{margin-top:22px;color:var(--muted);font-size:14.5px;word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
.zoroya-flow li strong{display:block;color:var(--ink);font-size:17px;margin-bottom:2px}
.zoroya-flow li p{margin:0}

/* 通院の流れの小さなラベル（Step 01 — 予約）：日本語をふくむので 11px → 12px */
.c-proc__card .ph{font-size:12px}

/* 英字用の等幅の指定に日本語が入っていた所：Windowsで MSゴシックになるので、本文の書体を間に入れる */
.c-intro__resolve .reb,.c-reasons__vs,.c-proc__card .ph,.c-voice__card .who,.c-msg .eyebrow,.c-cta__sub{font-family:"Space Grotesk","Zen Kaku Gothic New",sans-serif}

/* 記事の「書いた人」の写真：丸く切り抜いた写真（四隅が黒）なので、丸く見せる */
.z-journal-author img{border-radius:50%}

/* 開いた直後：写真の帯が上下から入る演出が、大見出しと予約ボタンの上に1秒以上かぶっていた。帯を文字の下の層へ下げる（待ち時間は index.html の演出の指定で短くした） */
.hero-slit{z-index:2}

/* 院長のあいさつ（PC・Chromium）：「だ／から」「患者／さん」と語の途中で折れていた。HTMLに入れた文節の切れ目（wbr）だけで折る */
.c-msg__body{word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
/* 記事の「書いた人」（スマホ）：「院長」だけが次の行に落ちていた */

/* 問い合わせの見本フォーム：入力欄だけの見た目。送信はしない */
.zoroya-form-slot{border-style:solid}
.zoroya-mockform{display:grid;gap:16px}
.zoroya-mockform label{display:grid;gap:6px;font-size:15px;font-weight:600}
.zoroya-mockform input,.zoroya-mockform textarea{font:inherit;font-weight:400;padding:12px 14px;border:1px solid rgba(0,0,0,.25);border-radius:8px;background:#fff;color:#222;width:100%;box-sizing:border-box;min-height:44px}
.zoroya-mockform button{min-height:48px;justify-self:start;cursor:pointer;padding-left:28px;padding-right:28px}
.zoroya-mockform__msg{margin:0;font-size:14.5px}

/* 院長のあいさつ：ページ内の指定（auto-phrase）に勝って、HTMLに入れた文節の切れ目だけで折る */
html body .c-msg__body{word-break:keep-all!important;overflow-wrap:anywhere;line-break:strict}
@media(max-width:359px){
  #prevention h2{font-size:22px}
  .c-proc__card p{letter-spacing:-.06em}
}
html body .z-journal-author p strong{white-space:nowrap}

/* 下層ページ：通院の流れの一覧が左に約40px寄って見出しとずれていた／番号と見本フォームの枠が茶色（--accent が未定義）だった → 左をそろえ、サイトの青に */
.zoroya-flow{margin:0;padding-left:0}
.zoroya-flow li::before{color:var(--main-deep)}
.zoroya-form-slot{border-color:rgba(46,139,192,.45)}

/* ヘッダー（Chromium・幅769〜960）：ナビが三本線に替わる幅で、右に116pxの空きができて白い帯が途中で切れ、「メニュー」が帯の外に浮き、上の細い帯の文が2行に折れ、「Web予約」と並んでいた。空きをなくして三本線を白い帯の中に入れ、重複する「Web予約」（上の細い帯にもある）を外し、上の帯は1行に */
@media(min-width:769px) and (max-width:960px){
  html body>header.site-header,html body>header.z-nav-collapsed{padding-right:0!important}
  html body>header .site-header__cta{display:none!important}
  html body>header .site-header__topbar .in{flex-wrap:nowrap;justify-content:flex-end}
  html body>header .site-header__topbar .in>:first-child{display:none}
  html body>header>.z-mobile-menu{right:24px;top:calc(46px + 38px)}
}

