/* CHANGES-LP-7: Critiquito 総評の反映（全ページ共通の上書き） */
/* CHANGES-LP-8: 文節ごとの改行。.bx は build.py が入れる文節 span。長い文節は枠内で折り返す */
.bx{display:inline-block;max-width:100%}
.btn{flex-wrap:wrap;column-gap:0}.btn .bx{flex:none;max-width:100%}
@media(max-width:359px){h1{letter-spacing:.04em}}
h1,h2,h3,summary,.btn,.lead,.sc-h{word-break:auto-phrase;text-wrap:balance}
li,p,dd{word-break:auto-phrase;text-wrap:pretty}
:root{--mute:#6f655b}
/* 1. 余白の双葉は削除（.decor の HTML・SVG を出さない） */
/* 2. 補足・キャプションは 14px 以上 */
.small,.crumb,.hero-meta,.hero-sub,.recruit-line p,.news time,.map-open,footer,.btn.sm,.totop{font-size:14px}
.side-consult small,.sc-or{font-size:14px}
/* 白文字 14px を 4.5:1 以上にするため相談カードは濃い緑 */
@media(min-width:1180px){.side-consult{background:var(--primary-deep)}}
/* 7. PC 右の相談カード: JS が有効ならヒーローを過ぎてから出す（JSなしは常時表示） */
@media(min-width:1180px){.js .side-consult{opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity 400ms var(--ease),transform 400ms var(--ease),visibility 0s 400ms}
.js .side-consult.show{opacity:1;visibility:visible;transform:none;transition:opacity 400ms var(--ease),transform 400ms var(--ease),visibility 0s}}
/* 8. TOP は傾けない。ボタンが沈む動きは残す */
.totop:hover,.totop:focus-visible{transform:none}
.btn,.sc-btn{transition:background .4s var(--ease),box-shadow 120ms var(--ease),transform 120ms var(--ease)}
.btn:active,.sc-btn:active,.head-cta:active{transform:translateY(3px);box-shadow:none}
.btn:focus-visible,.sc-btn:focus-visible,.head-cta:focus-visible{outline:3px solid var(--primary-deep);outline-offset:3px}
/* 9. 店舗パネル: ＋／− 14px、「地図と外観を見る」 */
.pm{width:14px;height:14px}.pm::before,.pm::after{width:14px;top:6px}
.tels summary{flex-wrap:wrap;column-gap:8px}
.tels .see{font-size:14px;color:var(--primary-deep);text-decoration:underline;text-underline-offset:.25em;text-decoration-color:#9cc3a8}
@media(min-width:541px){.tels summary{padding-right:130px}}
@media(prefers-reduced-motion:reduce){.js .side-consult{transition:none!important}}
/* CHANGES-LP-9: 全画面メニュー（JS 有効時だけ。JS 無効時は従来の .menu が開く） */
.gmenu{position:fixed;inset:0;z-index:100;background:var(--page-bg);overflow-y:auto;overscroll-behavior:contain;opacity:0;transition:opacity 250ms var(--ease)}
.gmenu.on{opacity:1}
.gmenu[hidden]{display:none}
.gm-in{max-width:520px;margin:0 auto;padding:16px 28px 48px;display:flex;flex-direction:column;align-items:center;text-align:center}
.gm-close{align-self:flex-end;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 16px;border:0;border-radius:999px;background:var(--canvas);font:inherit;font-size:14px;font-weight:700;color:var(--ink-strong);cursor:pointer}
.gm-close .x{position:relative;width:16px;height:16px}.gm-close .x::before,.gm-close .x::after{content:"";position:absolute;left:0;top:7px;width:16px;height:2px;border-radius:2px;background:currentColor;transform:rotate(45deg)}.gm-close .x::after{transform:rotate(-45deg)}
.gm-nav{display:flex;flex-direction:column;width:100%;margin:16px 0 24px}
.gm-nav a{display:flex;align-items:center;justify-content:center;min-height:56px;font-size:19px;font-weight:700;letter-spacing:.14em;color:var(--ink-strong);text-decoration:none;border-bottom:1px dotted var(--hairline)}
.gm-nav a:hover{color:var(--primary-deep)}
.gm-nav a[aria-current]{color:var(--primary-deep)}
.gm-nav a[aria-current]::before{content:"";width:8px;height:8px;margin-right:10px;border-radius:var(--leaf);background:var(--primary)}
.gm-cta{width:100%}
.gm-or{margin:24px 0 4px;font-size:14px;color:var(--mute)}
.gm-tels{list-style:none;width:100%}
.gm-tels li{display:flex;flex-direction:column;align-items:center;padding:8px 0;border-bottom:1px dotted var(--hairline);line-height:1.6}
.gm-store{font-size:14px}
.gm-tels a{display:inline-flex;align-items:center;min-height:48px;font-family:var(--en);font-weight:700;font-size:22px;letter-spacing:.04em;color:var(--primary-deep);text-decoration:none}
.gm-close:focus-visible,.gm-nav a:focus-visible,.gm-tels a:focus-visible{outline:3px solid var(--primary-deep);outline-offset:2px}
html.gm-lock,html.gm-lock body{overflow:hidden}
body.gm-fix{position:fixed;left:0;right:0;width:100%}
@media(min-width:768px){.gm-in{max-width:880px;padding-top:24px;display:grid;grid-template-columns:1fr 1fr;column-gap:56px;align-items:start}
.gm-close{grid-column:1/-1;justify-self:end}.gm-nav{grid-row:2/span 3;margin-top:8px}.gm-cta{margin-top:24px}.gm-or{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.gmenu{transition:none!important}}
