/* 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){body>header .hd-cta{width:110px;padding:12px 10px;line-height:1.4;text-wrap:balance;white-space:normal}body>header .hd-contact{min-width:0}body>header .hd-brand .logo img{max-width:110px;height:auto}}@media(max-width:767px){.hero{height:auto;max-height:none;min-height:680px}.hero-content{position:relative;padding:70px 0 60px}.hero-content .inner{padding-bottom:0}}@media(max-width:767px){.hero-cap{display:none}}@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}body.z-mobile-open>header nav{height:100dvh!important;width:100vw!important;max-width:none!important;min-height:100dvh;box-sizing:border-box;justify-content:flex-start!important;top:0!important;left:0!important;right:0!important;bottom:0!important;overflow:auto!important}}

/* 2026-10-11 追加の補正（local/sample01.css） */
/* sample01 ぞろ屋工務店：サイト担当の補正（2026-10-11） */

/* 「折らない」指定（z-nw）の中に機械の折り返しの印（wbr）が入ると、Chrome系では印の位置で折れる
   （2026-10-11 Chromium と WebKit で実測。WebKit は折れない）。範囲の中の印を無効にする */
.z-nw wbr{display:none}

/* 導入：見出しを「規格に合わせるほど、／暮らしが遠くなる。」の2行に固定する。
   PCでは見出しの箱が本文の24字幅に縛られ、44pxの文字が4行に折れていた */
.c-intro__ttl{max-width:none}
.c-intro__ttl h2{display:block}
.c-intro__ttl .uw{display:block;width:fit-content;margin-inline:auto}
.c-intro__ttl p{max-width:24em;margin:22px auto 0}

/* FVの証明の一行：横並びの箱（flex）だと、折らない範囲を入れたときに語が左右に泣き別れる。
   ふつうの行として流し、頭の線は行内に置く */
.hero-tag{display:inline-block}
.hero-tag::before{display:inline-block;vertical-align:middle;margin-right:10px}
/* FV右端の縦書きの添え書き：明るい窓の上で読めなかったので影を足す */
.hero-cap{color:rgba(251,246,236,.94);text-shadow:0 1px 3px rgba(0,0,0,.6),0 0 14px rgba(0,0,0,.45)}

/* 相談の手順：右下の丸印の分だけ、カードの下に専用の余白を取る（説明の末尾に重ならない） */
.c-process__step{padding-bottom:78px}

/* タブレット横（769〜1180px）：4列のままだと1枚が約230pxになり、説明が箱に入らず4枚目が画面の右へ切れていた（1024pxで確認）。2列×2段にする */
.c-process__step,.c-process__step .bd{min-width:0}
@media(min-width:769px) and (max-width:1180px){.c-process__steps{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* お客様の声：名前と建物の種類を分ける */
.c-voice__qbox .who .z-who-sub{margin-left:1em}

/* 最後の案内の小さな注記：折らない範囲で区切っても、元の文字の大きさのままにする
   （共通JSは日本語を直接含む要素を16pxへ上げるため、区切りを入れると12pxの注記が16pxに変わってしまう） */
.c-cta__sub .z-nw{font-size:inherit!important;line-height:inherit!important}
/* 最後の案内文：Chrome系は文節で折る */
.c-cta__lead{word-break:auto-phrase}

/* 代表挨拶の肩書き・ヘッダーの受付時間（説明の文字が12px未満だった） */
.c-message__sign .role{font-size:12px;letter-spacing:.08em}
body>header .hd-tel .hours{font-size:12px;letter-spacing:0}

/* 記事ページ・一覧ページのフッター：下層用のCSS（3列の表組み）が同じ名前の箱に当たり、
   電話番号が「0263-00-／0000」と折れていた。トップと同じ縦積みに戻す */
body>footer.footer .ft-main .finfo{display:block;width:auto;margin:0;padding:0}
body>footer.footer .ft-main .finfo .tel{white-space:nowrap}

/* 下層ページのフッター末尾のページ一覧：濃い緑の上に白い丸ボタン＋白文字で読めなかった */
body>footer.footer .wp-page-links{width:min(1200px,calc(100% - 56px));margin:0 auto;padding:4px 0 34px;gap:8px}
body>footer.footer .wp-page-links a{background:transparent;border-color:rgba(239,234,217,.3);color:rgba(239,234,217,.86);min-height:44px}
body>footer.footer .wp-page-links a:hover{border-color:var(--accent);color:#fff}

@media(max-width:767px){
 /* FVの証明の一行：字間を詰めて1行に。入らない幅では「地域材の家」ごと次の行へ */
 .hero-tag{letter-spacing:.04em}
 .hero-tag::before{width:16px;margin-right:8px}

 /* 導入の「誠」の印：本文に重ねず、補足の後ろへ流す */
 .c-intro{padding-bottom:84px}
 .c-intro__seal{position:relative;right:auto;bottom:auto;margin:30px auto 0}

 /* お客様の声 */
 .c-voice h2.big{font-size:clamp(21px,6.6vw,28px)}
 .c-voice__qbox{padding:30px 22px}
 .c-voice__qbox .who b,.c-voice__qbox .who .z-who-sub{display:block;margin-left:0}

 /* 代表挨拶の横組み見出し：320pxでも1行に収める */
 .c-message__vtitle{font-size:clamp(24px,7.4vw,28px)}

 /* 最後の案内：見出しを4行に固定し、本文は左揃えで読ませる */
 .c-cta__inner{padding:60px 0;width:calc(100% - 48px)}
 .c-cta__title{font-size:clamp(24px,7.4vw,28px)}
 .c-cta__lead{text-align:left;font-size:16px}
 .c-cta__sub{font-size:13px;letter-spacing:.04em;line-height:1.9}
 /* 背景の飾り文字「CONTACT」が本文の行に重なって読みにくいので、線を薄くする */
 .c-cta__bgword{-webkit-text-stroke-color:rgba(230,184,74,.13)}

 /* フッター末尾：「プライバシーポリシー」が37px幅に押されて1文字ずつ縦に折れていた */
 body>footer.footer .cp .in{flex-direction:column;align-items:flex-start;gap:10px}
 body>footer.footer .cp .legal{flex-direction:column;gap:10px;min-width:0}
 body>footer.footer .cp .legal a{white-space:nowrap}

 /* ヘッダーの予約ボタン：記事ページの「完成見学会を予約」が語の途中で2行に折れていた */
 body>header .hd-top{gap:12px;width:calc(100% - 28px)}
 body>header a.hd-cta,body>header a.hd-cta.z-readability{font-size:14px!important;line-height:1.4}
 /* ロゴ：空いた幅の分だけ大きくする（屋号の文字が小さすぎた）。ボタンと重ならない上限にする */
 body>header .hd-brand .logo img{max-width:min(140px,calc(100vw - 216px))}
}
@media(min-width:360px) and (max-width:767px){
 body>header .hd-cta{width:auto;white-space:nowrap;padding:13px 14px}
 body>header .hd-cta wbr{display:none}
 body>header .hd-brand .logo img{max-width:min(140px,calc(100vw - 250px))}
}
@media(max-width:359px){
 .c-intro__ttl h2,.c-process__head h2{font-size:23px}
}

/* ===== 2026-10-11 午後の追記（司令塔の決まり 0-2 への対応） ===== */
/* 日本語が入る所の書体：末尾が monospace の指定だと、Windows では MSゴシックになる。本文の書体を間に入れる
   （FVの小見出し「松本市周辺の…」・「大手＝標準プラン先行」の札・予約の下の注記・代表の肩書き・フッターの著作権） */
.eyebrow,.c-reasons__txt .vs,.c-cta__sub,.c-message__sign .role,body>footer.footer .cp .cpt,body>footer.footer .cp .in{font-family:"Space Grotesk","Zen Kaku Gothic New",sans-serif}
/* フッター末尾：768pxでも「プライバシーポリシー」が語の途中で折れていた。どの幅でも折らず、入らないときは段を分ける */
body>footer.footer .cp .legal{flex-wrap:wrap;min-width:0;gap:6px 18px}
body>footer.footer .cp .legal a{white-space:nowrap}
body>footer.footer .cp .cpt{min-width:0}
/* 下層ページ「相談から引き渡しまで」：題と説明を1つの箱にまとめた */
.zoroya-flow li>div{min-width:0}
.zoroya-flow li b{color:var(--ink)}
/* 特長の写真：表示前の演出（右から入る）の分だけページの横幅が広がっていた（375pxで407px。WebKit・Chromiumで実測）。横だけ切り取る */
.c-features{overflow-x:clip}

/* 問い合わせの見本フォーム */
.z-mockform{display:grid;gap:18px;max-width:640px}
.z-mockform label{display:grid;gap:6px;font-size:15px}
.z-mockform input,.z-mockform textarea{font:inherit;font-size:16px;padding:12px 14px;border:1px solid rgba(0,0,0,.25);border-radius:4px;background:#fff;width:100%;box-sizing:border-box}
.z-mockform button{justify-self:start;min-height:48px;cursor:pointer}
.z-mockmsg{margin:0;font-size:14px}

/* 2026-10-12 内田さん指示「見出しとコンテンツが右寄り下でバランスが悪い」。
   文字の箱（幅760px）を画面の中央に置き、その中で左寄せにしていたため、書き出しがロゴより約280px右にあった。
   左端を下の段の器（幅1160px）にそろえる。あわせて最初の画面をヘッダーの下にちょうど収め、文字のかたまりを上下の中央へ
   （1366×768で最後の行が画面の外に出ていた）。ヘッダーの高さは幅で変わる（95／130／186px）。 */
@media(min-width:901px){
  .hero-content{align-items:center}
  .hero-content .inner{margin-left:max(28px,calc((100% - 1160px)/2));margin-right:auto;padding-bottom:0}
  .hero{height:min(880px,calc(100svh - 95px))}
}
@media(min-width:904px) and (max-width:951px){.hero{height:min(880px,calc(100svh - 186px))}}
@media(min-width:952px) and (max-width:1267px){.hero{height:min(880px,calc(100svh - 130px))}}

