/* ==========================================================
   EZURIN WEB SITE RENEWAL — 下層ページ用（style.css の上に重ねる）
   生成: _build/build_pages.py
   ========================================================== */
:root {
  --todo: #fff1a8;
  --todo-ink: #5c4600;
  --line-green: #06c755;
}

/* 【要確認】表示 */
.todo { background: var(--todo); color: var(--todo-ink); padding: 1px 6px; border-radius: 3px; font-weight: 700; font-size: .92em; letter-spacing: .02em; }
.todo-box { background: var(--todo); color: var(--todo-ink); border-radius: 10px; padding: 16px 20px; font-size: 14px; line-height: 1.9; margin-top: 20px; }
.todo-box b { display: block; font-size: 13px; letter-spacing: .08em; }
.todo-box ul { margin-top: 4px; padding-left: 1.2em; list-style: disc; }

main.sub { padding-top: var(--header-h); }
/* 文節の途中で改行しない（対応ブラウザのみ。非対応でも崩れない） */
.sub :is(.checks li, h3, b, small, .faq__q, .qlist a, .chips a) { word-break: auto-phrase; }

/* ---------- page head ---------- */
.ph { background: linear-gradient(160deg, #fff4f9 0%, #fff 46%); padding: clamp(20px, 2.4vw, 32px) 0 clamp(48px, 5vw, 80px); }
.bc ol { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 12px; color: var(--gray); }
.bc li:not(:last-child)::after { content: "›"; margin: 0 10px; color: #aaa; }
.bc a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: #ccc; }
.bc a:hover { color: var(--pink); }
.ph__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 32px clamp(32px, 5vw, 80px); align-items: center; margin-top: clamp(24px, 3vw, 44px); }
.ph__grid--solo { grid-template-columns: minmax(0, 1fr); }
.ph .label { margin-bottom: 14px; }
.ph h1 { font-weight: 900; font-size: clamp(26px, 3.8vw, 56px); line-height: 1.35; letter-spacing: .02em; color: var(--black); word-break: keep-all; overflow-wrap: anywhere; }
.ph h1 .ib { white-space: nowrap; }
.ph h1 .en { display: block; font-family: var(--en); font-weight: 800; font-size: .5em; color: var(--pink); letter-spacing: .02em; margin-bottom: 6px; }
.ph .lead { margin-top: 20px; }
.ph__img { border-radius: 14px; overflow: hidden; aspect-ratio: 4 / 3; background: #eee; }
.ph__img img { width: 100%; height: 100%; object-fit: cover; }

/* 短い答え（強調は地色のみ・左線なし） */
.answer { margin-top: 26px; background: var(--pink-pale); border-radius: 14px; padding: 22px 26px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 16px; }
.answer .a { font-family: var(--en); font-weight: 700; font-size: 24px; color: var(--pink); line-height: 1.4; }
.answer p { font-size: clamp(15px, 1.2vw, 17px); line-height: 2; color: var(--black); }
.ph__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }

/* ---------- section ---------- */
.ss { padding: clamp(56px, 6vw, 96px) 0; }
.ss + .ss { border-top: 1px solid var(--line); }
.ss--soft { background: var(--soft); }
.ss--soft + .ss, .ss + .ss--soft { border-top: 0; }
.sh { margin-bottom: clamp(24px, 3vw, 40px); }
.sh small { display: block; font-family: var(--en); font-weight: 600; font-size: 12px; letter-spacing: .24em; color: var(--pink); margin-bottom: 6px; }
.sh h2 { font-weight: 900; font-size: clamp(22px, 2.6vw, 36px); line-height: 1.45; color: var(--black); word-break: keep-all; overflow-wrap: anywhere; }
.sh h2 .ib { white-space: nowrap; }
.sh p { margin-top: 12px; font-size: 15px; line-height: 2; }
.txt { font-size: 15px; line-height: 2.05; max-width: 52em; }
.txt + .txt { margin-top: 1em; }

/* こんな方へ */
.checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 24px; }
.checks li { position: relative; padding: 14px 16px 14px 52px; background: #fff; border: 1px solid var(--line); border-radius: 10px; font-size: 15px; line-height: 1.7; font-weight: 500; }
.checks li::before { content: ""; position: absolute; left: 16px; top: 15px; width: 22px; height: 22px; border-radius: 50%; background: var(--pink); }
.checks li::after { content: ""; position: absolute; left: 23px; top: 20px; width: 8px; height: 5px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }

/* 作業の流れ */
.flow { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; counter-reset: fl; }
.flow li { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 20px 20px 22px; counter-increment: fl; }
.flow li::before { content: "STEP " counter(fl, decimal-leading-zero); display: block; font-family: var(--en); font-weight: 700; font-size: 12px; letter-spacing: .16em; color: var(--pink); }
.flow h3 { font-weight: 900; font-size: 18px; margin-top: 6px; line-height: 1.5; }
.flow p { font-size: 14px; line-height: 1.9; margin-top: 8px; color: #333; }

/* 料金の考え方 */
.factors { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.factors li { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 14px 18px; font-size: 14px; line-height: 1.8; }
.factors li b { display: block; font-size: 15px; color: var(--black); }
.note-pk { margin-top: 20px; background: var(--pink-pale); border-radius: 12px; padding: 18px 22px; font-size: 14px; line-height: 1.9; }

/* FAQ（style.css の .faq を流用） */
.ss .faq__a p { padding-left: 42px; }
.faq__a .more { margin-top: 0; }
@media (max-width: 600px) { .ss .faq__a p { padding-left: 4px; } }

/* リンクカード */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.card { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: center; padding: 10px 40px 10px 10px; background: #fff; border: 1px solid var(--line); border-radius: 10px; position: relative; transition: border-color .3s, box-shadow .3s; }
.card img { width: 96px; height: 72px; object-fit: cover; border-radius: 6px; }
.card b { display: block; font-weight: 900; font-size: 15px; line-height: 1.5; }
.card small { display: block; font-size: 12px; color: var(--gray); line-height: 1.6; margin-top: 2px; }
.card .arw { position: absolute; right: 14px; top: 50%; margin-top: -6px; color: var(--pink); transition: transform .3s; }
.card:hover { border-color: var(--pink); box-shadow: 0 14px 28px -20px rgba(236, 10, 125, .55); }
.card:hover b { color: var(--pink); }
.card:hover .arw { transform: translateX(4px); }
.card--noimg { grid-template-columns: minmax(0, 1fr); padding: 16px 40px 16px 18px; }

/* 地域チップ */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips a, .chips span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border: 1px solid #d8d8d8; border-radius: 999px; font-size: 14px; background: #fff; transition: all .25s; }
.chips a::after { content: "›"; font-size: 16px; line-height: 1; color: var(--pink); }
.chips a:hover { background: var(--pink); border-color: var(--pink); color: #fff; }
.chips a:hover::after { color: #fff; }
.chips svg { width: 14px; height: 14px; }

/* ---------- 相談CTA ---------- */
.scta { background: var(--black); color: #fff; padding: clamp(56px, 6vw, 96px) 0; }
.scta__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 32px clamp(32px, 5vw, 80px); align-items: center; }
.scta h2 { font-weight: 900; font-size: clamp(28px, 3.6vw, 52px); line-height: 1.35; }
.scta h2 .ib { white-space: nowrap; }
.scta h2 .pk { color: var(--pink); }
.scta p { margin-top: 14px; font-size: 14px; line-height: 2; color: #ddd; }
.scta__btns { display: grid; gap: 12px; }
.scta .btn { width: 100%; min-height: 68px; font-size: 16px; justify-content: center; position: relative; padding: 0 56px; }
.scta .btn .arw { position: absolute; right: 26px; }
.scta .btn svg.ic { width: 24px; height: 24px; position: absolute; left: 24px; }
.scta .tel-big { display: block; font-family: var(--en); font-weight: 700; font-size: clamp(26px, 2.6vw, 36px); letter-spacing: .04em; margin-top: 14px; }
.scta small { display: block; font-size: 12px; color: #bbb; }
.btn--lineapp { background: var(--line-green); border-color: var(--line-green); color: #fff; }
.btn--lineapp .arw { color: #fff; }
.btn--lineapp:hover { background: #05a647; border-color: #05a647; }
.btn--pink .arw { color: #fff; }

/* ---------- /life/ ---------- */
.svc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.svc-grid .life__card .more { max-height: none; margin-top: 8px; }
.qlist li { border-bottom: 1px solid #ddd; }
.qlist li:first-child { border-top: 1px solid #ddd; }
.qlist a { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 4px; font-weight: 700; font-size: clamp(16px, 1.5vw, 20px); transition: color .25s, padding .3s; }
.qlist a .arw { color: var(--pink); }
.qlist a:hover { color: var(--pink); padding-left: 10px; }

/* ---------- business / public の項目 ---------- */
.items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.item { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 22px 24px; scroll-margin-top: calc(var(--header-h) + 16px); }
.item__hd { display: flex; align-items: center; gap: 14px; }
.item__hd svg { width: 40px; height: 40px; color: var(--pink); flex: none; }
.item h3 { font-weight: 900; font-size: 19px; line-height: 1.4; }
.item p { font-size: 14px; line-height: 1.95; margin-top: 10px; }
.item .link-u { margin-top: 12px; font-size: 13px; color: var(--pink); }
.item .todo { font-size: 12px; }
:target { scroll-margin-top: calc(var(--header-h) + 16px); }

/* ---------- /area/ ---------- */
.area-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px clamp(32px, 4vw, 64px); align-items: start; }
.area-wrap .area-map a .city path { cursor: pointer; }
.area-wrap .area-map .city.is-on path { fill: var(--pink); }
.area-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.area-cards a { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid #d8d8d8; border-radius: 8px; background: #fff; transition: all .25s; }
.area-cards a svg { width: 16px; height: 16px; color: var(--pink); flex: none; }
.area-cards a b { font-weight: 900; font-size: 15px; }
.area-cards a small { display: block; font-size: 11px; color: var(--gray); line-height: 1.4; }
.area-cards a::after { content: "›"; margin-left: auto; font-size: 18px; color: var(--pink); }
.area-cards a:hover { border-color: var(--pink); background: var(--pink-pale); }
.area-cards a.is-base { background: var(--pink-pale); border-color: var(--pink-tint); }

.ph__map { max-width: 460px; width: 100%; margin: 0 auto; }

/* ---------- /faq/ ---------- */
.ss.faq-page { padding-top: 8px; }
.faq-page .ask__search { margin-top: 0; }
.faq-page .faq__item .cats { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 4px 6px 42px; }
.faq-page .faq__item .cats span { font-size: 11px; padding: 0 8px; border-radius: 999px; background: var(--soft); color: #555; }
.faq-count { font-size: 13px; color: var(--gray); margin: 18px 0 8px; }
@media (max-width: 600px) { .faq-page .faq__item .cats { padding-left: 4px; } }

/* ---------- /about/ ---------- */
.tbl { border-top: 1px solid #ddd; }
.tbl div { display: grid; grid-template-columns: 11em minmax(0, 1fr); gap: 8px 24px; padding: 16px 4px; border-bottom: 1px solid #ddd; font-size: 15px; line-height: 1.9; }
.tbl dt { font-weight: 700; color: var(--black); }
.tbl dd ul { list-style: disc; padding-left: 1.2em; }
.msg { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px clamp(32px, 5vw, 80px); align-items: center; }
.msg h2 { font-weight: 900; font-size: clamp(24px, 3vw, 44px); line-height: 1.5; }
.msg h2 .ib { white-space: nowrap; }
.msg img { border-radius: 14px; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ppl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ppl figure { border-radius: 10px; overflow: hidden; aspect-ratio: 3 / 4; }
.ppl img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- /contact/ ---------- */
.ways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.way { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 24px; text-align: center; scroll-margin-top: calc(var(--header-h) + 16px); }
.way .hd2 { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 14px; }
.way .hd2 svg { width: 36px; height: 36px; color: var(--pink); }
.way .hd2 b { font-family: var(--en); font-weight: 600; font-size: 20px; letter-spacing: .1em; }
.way .tel-num { display: block; font-family: var(--en); font-weight: 700; font-size: clamp(26px, 2.6vw, 34px); color: var(--black); margin-bottom: 10px; }
.way .btn { width: 100%; justify-content: center; position: relative; min-height: 60px; }
.way .btn .arw { position: absolute; right: 22px; }
.way p { font-size: 13px; color: #444; margin-top: 12px; line-height: 1.8; }
.form { max-width: 820px; scroll-margin-top: calc(var(--header-h) + 16px); }
.form .row { display: grid; grid-template-columns: 13em minmax(0, 1fr); gap: 8px 24px; padding: 18px 0; border-bottom: 1px solid #e6e6e6; align-items: start; }
.form .row:first-of-type { border-top: 1px solid #e6e6e6; }
.form .lb { font-weight: 700; font-size: 15px; padding-top: 10px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.form .req, .form .opt { font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 3px; line-height: 1.6; }
.form .req { background: var(--pink); color: #fff; }
.form .opt { background: #e9e9e9; color: #555; }
.form input[type="text"], .form input[type="tel"], .form input[type="email"], .form select, .form textarea {
  width: 100%; font: inherit; font-size: 16px; padding: 12px 14px; border: 1px solid #ccc; border-radius: 8px; background: #fff; color: var(--ink);
}
.form textarea { min-height: 160px; resize: vertical; }
.form input:focus, .form select:focus, .form textarea:focus { outline: 0; border-color: var(--pink); box-shadow: 0 0 0 3px rgba(236, 10, 125, .14); }
.form .chk { display: flex; flex-wrap: wrap; gap: 8px 18px; padding-top: 8px; }
.form .chk label { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; }
.form .chk input { width: 18px; height: 18px; accent-color: var(--pink); }
.form .hint { font-size: 12px; color: var(--gray); margin-top: 6px; }
.form .agree { padding: 22px 0 0; font-size: 14px; display: flex; align-items: center; gap: 10px; }
.form .agree input { width: 18px; height: 18px; accent-color: var(--pink); }
.form .submit { margin-top: 24px; }
.form .submit .btn { min-width: 320px; justify-content: center; position: relative; padding: 0 60px; }
.form .submit .btn .arw { position: absolute; right: 26px; }
.form-msg { margin-top: 18px; background: var(--todo); color: var(--todo-ink); border-radius: 10px; padding: 16px 20px; font-weight: 700; font-size: 15px; }
.form-msg:focus { outline: 2px solid var(--todo-ink); outline-offset: 2px; }

/* ---------- /case/ /journal/ ---------- */
.case-page .case__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.case-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.case-filter button { font: inherit; font-size: 14px; padding: 10px 16px; min-height: 44px; border: 1px solid var(--line); background: #fff; border-radius: 999px; cursor: pointer; }
.case-filter button.is-on { background: var(--black); border-color: var(--black); color: #fff; }
/* 事例の詳細 */
.cased__top { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.cased__meta .case__dl { margin-top: 0; font-size: 15px; }
.cased__price { margin-top: 18px; font-size: 15px; }
.cased__price b { font-size: 28px; font-weight: 900; margin-left: 6px; }
.cased__price small { font-size: 12px; }
.cased__price span { display: block; font-size: 13px; color: #555; margin-top: 4px; }
.cased__body { max-width: 760px; margin-top: 40px; }
.cased__sec { margin-top: 32px; }
.cased__sec h2, .cased__gh { font-size: 20px; font-weight: 900; padding-left: 12px; border-left: 4px solid var(--pink); line-height: 1.4; margin: 36px 0 12px; }
.cased__sec h2 { margin-top: 0; }
.cased__sec p { font-size: 16px; line-height: 1.9; margin-top: 8px; }
.cased__sec--voice { background: var(--pink-pale); padding: 20px 22px; border-radius: 12px; }
.cased__gal { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.cased__gal img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-radius: 6px; }
.cased__links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; }
.cased__relh { margin-bottom: 20px; }
.cased__rel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.jr-page .post { cursor: default; }
.post-nav { display: flex; justify-content: space-between; gap: 16px; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 14px; }
.post-nav a { color: var(--black); text-decoration: none; max-width: 48%; line-height: 1.6; padding: 6px 0; }
.post-nav a:hover { color: var(--pink); }
.jr-page .jr__cat { cursor: default; }
.soon { display: inline-block; margin-top: 6px; font-size: 11px; color: var(--gray); }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-page .case__list, .cased__rel { display: grid; overflow: visible; margin: 0; padding: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-page .case__card { flex: none; }
}
@media (max-width: 900px) {
  .ph__grid, .scta__in, .area-wrap, .msg { grid-template-columns: minmax(0, 1fr); }
  .ph__img { aspect-ratio: 16 / 9; }
  .items { grid-template-columns: minmax(0, 1fr); }
  .ways { grid-template-columns: minmax(0, 1fr); }
  .ppl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ph h1 { font-size: clamp(22px, 6.6vw, 32px); }
  .answer { grid-template-columns: minmax(0, 1fr); padding: 18px; }
  .answer .a { font-size: 18px; }
  .answer p { font-size: 15px; }
  .ph__cta .btn { width: 100%; justify-content: center; position: relative; }
  .ph__cta .btn .arw { position: absolute; right: 24px; }
  .checks { grid-template-columns: minmax(0, 1fr); }
  .sh h2 { font-size: clamp(20px, 5.8vw, 26px); }
  .scta h2 { font-size: clamp(24px, 7.4vw, 34px); }
  .scta .btn { font-size: 15px; min-height: 62px; }
  .area-cards { grid-template-columns: minmax(0, 1fr); }
  .tbl div { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 14px 2px; }
  .form .row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .form .lb { padding-top: 0; }
  .form .submit .btn { min-width: 0; width: 100%; }
  .case-page .case__list { grid-template-columns: minmax(0, 1fr); }
  .cased__top { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .cased__gal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cased__rel { display: grid; overflow: visible; margin: 0; padding: 0; grid-template-columns: minmax(0, 1fr); }
  .cased__rel .case__card { flex: none; }
  .cased__links .btn { width: 100%; justify-content: center; }
  .cased__sec p { font-size: 15px; }
  .case-filter { flex-wrap: nowrap; overflow-x: auto; margin: 0 calc(-1 * var(--gut)) 20px; padding: 0 var(--gut) 4px; scrollbar-width: none; }
  .case-filter button { flex: none; }
  .svc-grid { gap: 8px; }
  .svc-grid .life__card .more { display: none; }
  .card { grid-template-columns: 72px minmax(0, 1fr); }
  .card img { width: 72px; height: 56px; }
  .ph__map { max-width: 300px; }
}

/* ---------- v2（2026-10-12） ---------- */
.sh small { font-family: var(--ja); font-weight: 700; letter-spacing: .12em; font-size: 13px; }
.ph .label { font-family: var(--ja); font-weight: 700; color: var(--pink); letter-spacing: .1em; }
.msg--ceo { grid-template-columns: minmax(0, 1.5fr) minmax(0, .7fr); align-items: start; }
.msg--ceo .txt { margin-top: 14px; }
.msg--ceo .sign { margin-top: 22px; text-align: right; font-size: 14px; }
.msg--ceo .sign b { font-size: 22px; letter-spacing: .14em; margin-left: 8px; }
.ceo-ph { aspect-ratio: 3 / 4; border-radius: 14px; background: repeating-linear-gradient(45deg, #f2f2f2 0 10px, #fafafa 10px 20px); display: grid; place-content: center; text-align: center; font-weight: 700; color: #999; }
.ceo-ph small { display: block; font-size: 12px; }
.hist li { display: grid; grid-template-columns: 7.5em minmax(0, 1fr); gap: 16px; padding: 14px 4px; border-bottom: 1px solid #ddd; font-size: 15px; }
.hist li:first-child { border-top: 1px solid #ddd; }
.hist time { font-weight: 700; color: var(--pink); }
.mem { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.mem li { font-size: 14px; padding: 6px 14px; border: 1px solid #ddd; border-radius: 999px; background: #fff; }
.str3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.str3 li { border: 1px solid var(--line); border-radius: 14px; padding: 26px 24px; background: #fff; }
.str3 .no { font-family: var(--en); font-weight: 700; color: var(--pink); font-size: 14px; }
.str3 svg { display: block; width: 56px; height: 56px; margin: 10px 0 12px; }
.str3 h3 { font-weight: 900; font-size: 20px; }
.str3 p { font-size: 14px; line-height: 2; margin-top: 8px; }
.gov { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.gov li { background: #fff; border: 1px solid #ddd; border-radius: 10px; padding: 14px; text-align: center; font-weight: 700; font-size: 15px; }
.ph__cta--biz { margin: -24px 0 0; padding-bottom: 8px; align-items: center; }
.tel-box { display: flex; align-items: center; gap: 12px; padding: 8px 22px 8px 16px; border: 1.5px solid var(--line); border-radius: 14px; background: #fff; min-height: 60px; }
.tel-box svg { width: 24px; height: 24px; color: var(--pink); }
.tel-box span { display: flex; flex-direction: column; line-height: 1.3; }
.tel-box b { font-family: var(--en); font-size: 22px; }
.tel-box small { font-size: 12px; color: var(--gray); }
@media (max-width: 900px) { .msg--ceo { grid-template-columns: 1fr; } .ceo-ph { max-width: 240px; } .str3 { grid-template-columns: 1fr; } .hist li { grid-template-columns: 6em 1fr; } .ph__cta--biz { margin-top: 0; } .ph__cta--biz .btn, .tel-box { width: 100%; } }
.ph__trust { margin-top: 14px; }
.ph__cta .btn--lineapp { background: var(--line-green); }
.stat3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.stat3 li { border: 1px solid var(--line); border-radius: 14px; padding: 22px; text-align: center; }
.stat3 b { font-family: var(--en); font-size: clamp(40px, 5vw, 64px); color: var(--pink); line-height: 1; }
.stat3 span { font-weight: 700; margin-left: 4px; }
.stat3 small { display: block; margin-top: 8px; font-size: 13px; font-weight: 700; line-height: 1.6; }
.gov-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gov-org { background: #fff; border: 1px solid #e6e6e6; border-radius: 12px; padding: 18px 20px; }
.gov-org h3 { font-weight: 900; font-size: 18px; display: flex; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.gov-org h3 small { font-size: 12px; color: var(--pink-deep); }
.gov-org li { display: grid; grid-template-columns: 6.5em minmax(0, 1fr); gap: 2px 12px; padding: 8px 0; border-top: 1px dashed #e2e2e2; font-size: 14px; line-height: 1.7; }
.gov-org .y { color: var(--pink-deep); font-weight: 700; font-size: 13px; }
.gov-org small { grid-column: 2; font-size: 12px; color: var(--gray); }
.news-list { border-top: 1px solid #ddd; }
.news-list a { display: grid; grid-template-columns: 6.6em 9em minmax(0, 1fr) auto; gap: 6px 16px; align-items: center; padding: 13px 4px; border-bottom: 1px solid #ddd; font-size: 14px; transition: color .2s; }
.news-list a:hover { color: var(--pink); }
.news-list time { font-family: var(--en); color: var(--gray); font-size: 13px; }
.news-list .cat { font-size: 11px; text-align: center; border: 1px solid currentColor; border-radius: 4px; padding: 0 6px; color: var(--pink-deep); font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.news-list .arw { color: var(--pink); }
.news-list li[hidden] { display: none; }
@media (max-width: 900px) { .gov-grid { grid-template-columns: 1fr; } .stat3 { grid-template-columns: 1fr; } }
@media (max-width: 767px) { .news-list a { grid-template-columns: auto minmax(0, 1fr); } .news-list b { grid-column: 1 / -1; font-weight: 500; } .news-list .arw { display: none; } .news-list .cat { justify-self: start; } }

/* 料金の目安・お客様の声（1件） */
.price { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; margin-bottom: 8px; }
.price li { background: #fff; border: 2px solid var(--black); border-radius: 12px; padding: 16px 20px; font-size: 14px; line-height: 1.8; }
.price li b { display: block; font-size: 15px; }
.price__v { display: block; margin: 2px 0 6px; font-size: clamp(24px, 3vw, 30px); font-weight: 900; letter-spacing: .02em; }
.price__n { margin: 4px 0 20px; font-size: 12px; color: var(--gray); }
.voice1 { margin-top: 20px; max-width: 52em; background: var(--pink-pale); border-radius: 12px; padding: 20px 24px; font-size: 14px; line-height: 1.95; }
.voice1 cite { display: block; margin-top: 8px; font-style: normal; font-size: 13px; font-weight: 700; text-align: right; }

/* 記事ページ（旧サイトから移した記事） */
.post-h { max-width: 52em; padding: 8px 0 8px; }
.post-h__meta { display: flex; gap: 12px; align-items: center; font-size: 13px; color: var(--gray); }
.post-h__meta time { font-family: var(--en); }
.post-h__meta .cat { font-size: 11px; border: 1px solid currentColor; border-radius: 4px; padding: 0 6px; color: var(--pink-deep); font-weight: 700; }
.post-h h1 { margin-top: 10px; font-weight: 900; font-size: clamp(22px, 3vw, 34px); line-height: 1.5; }
.post-page .post-body { padding-top: 8px; }
.entry { max-width: 46em; font-size: 16px; line-height: 2; overflow-wrap: anywhere; }
.entry > * + * { margin-top: 1.1em; }
.entry h2, .entry h3, .entry h4 { font-weight: 900; line-height: 1.5; margin-top: 2em; }
.entry h2 { font-size: 22px; padding-left: 12px; border-left: 4px solid var(--pink); }
.entry h3 { font-size: 19px; }
.entry h4, .entry h5 { font-size: 17px; }
.entry img { display: block; max-width: 100%; height: auto; border-radius: 10px; margin: 1.2em 0; }
.entry figure { margin: 1.2em 0; }
.entry figcaption { font-size: 13px; color: var(--gray); }
.entry ul, .entry ol { padding-left: 1.4em; } .entry ul { list-style: disc; } .entry ol { list-style: decimal; }
.entry a { color: var(--pink-deep); text-decoration: underline; text-underline-offset: 3px; }
.entry table { width: 100%; border-collapse: collapse; font-size: 14px; display: block; overflow-x: auto; }
.entry th, .entry td { border: 1px solid #ddd; padding: 8px 10px; text-align: left; }
.entry blockquote { background: var(--pink-pale); border-radius: 10px; padding: 14px 18px; }
.entry .yt { position: relative; aspect-ratio: 16 / 9; } .entry .yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 10px; }

/* 会社概要：地図 */
.map-embed { margin-top: 24px; border-radius: 12px; overflow: hidden; aspect-ratio: 16 / 9; background: #eee; }
.map-embed iframe { width: 100%; height: 100%; border: 0; display: block; }
.map-links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 14px; font-size: 14px; }
.map-links a { color: var(--pink-deep); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) { .map-embed { aspect-ratio: 4 / 3; } }
/* プライバシーポリシー */
.policy h2 { font-size: 19px; border-left: 0; padding-left: 0; margin-top: 1.8em; }
.policy p.li { margin-top: .3em; padding-left: 1em; text-indent: -1em; }
.policy__date { margin-top: 2.4em; font-size: 14px; color: var(--gray); text-align: right; }

.ceo-ph--img { background: none; overflow: hidden; }
.ceo-ph--img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }

/* フォーム：ボットよけの見えない欄 */
.form .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- かんたん見積もり（/estimate/） ---------- */
body:has(main.is-est) .fixcta{display:none!important}
.est-sec .est{border-radius:24px;padding:16px}
.est-app{background:var(--bg-main,#f9e5ec)}
.est .main{display:grid;gap:12px}
.est h2{font-size:15px;line-height:1.5}
.est .lead{max-width:none}
.est .row{display:flex}
.est-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.est-tabs a{display:block;border:2px solid #f3b5d2;border-radius:16px;padding:12px 14px;background:#fff;text-decoration:none;color:inherit}
.est-tabs a small{display:block;font-size:10px;letter-spacing:.14em;color:#e55a8b;font-weight:700}
.est-tabs a b{display:block;font-size:17px;line-height:1.3}
.est-tabs a span{display:block;font-size:12px;color:#6b7280}
.est-tabs a[aria-current="page"]{background:#ec0a7d;border-color:#ec0a7d;color:#fff}
.est-tabs a[aria-current="page"] small,.est-tabs a[aria-current="page"] span{color:#fff}
.est .est-sub{display:grid;gap:8px}
.est .est-line{width:100%;border:0;border-radius:22px;background:#06c755;color:#fff;font:800 15px var(--font-jp);padding:12px;cursor:pointer}
.est .est-tel{display:block;text-align:center;border:2px solid #e55a8b;border-radius:22px;color:#e55a8b;font-weight:800;padding:10px;text-decoration:none}
.est-notes{margin:20px 0 0;padding-left:1.2em;font-size:13px;line-height:1.8;color:#555}
.est-barwrap{padding:0}
.est-picks{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.est-pick{display:block;border:2px solid #f3b5d2;border-radius:20px;padding:22px;background:#fff;text-decoration:none;color:inherit;transition:border-color .2s,transform .2s}
.est-pick:hover{border-color:#ec0a7d;transform:translateY(-2px)}
.est-pick small{display:block;font-size:11px;letter-spacing:.14em;color:#e55a8b;font-weight:700}
.est-pick b{display:block;font-size:22px;margin:4px 0}
.est-pick span{display:block;font-size:14px;color:#555}
.est-pick em{display:flex;align-items:center;gap:6px;margin-top:12px;font-style:normal;font-weight:700;color:#ec0a7d}
.est-pick em svg{width:16px;height:16px}
@media (max-width:720px){.est-picks{grid-template-columns:1fr}.est-sec .est{padding:12px;border-radius:18px}}
.est-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding:16px 20px;border:2px solid #f3b5d2;border-radius:16px;background:#fff7fb;text-decoration:none;color:inherit}
.est-cta b{font-size:16px}
.est-cta span{font-size:13px;color:#555}
.est-cta em{font-style:normal;font-weight:700;color:#ec0a7d;display:flex;align-items:center;gap:6px}
.est-cta em svg{width:16px;height:16px}
@media (max-width:719px){body:has(main.is-est){padding-bottom:84px}}
/* かんたん見積もり：スマホで読みやすく・押しやすく */
.est .lead{font-size:13px;line-height:1.7}
.est h2{font-size:16px;margin-top:10px}
.est .row .lab{font-size:15px}
.est .row .lab small{font-size:12.5px;line-height:1.6}
.est .ctr button{width:42px;height:42px;font-size:20px}
.est .cards button{min-height:56px;font-size:15px}
.est .sel,.est .search{min-height:52px}
.est .est-search{margin:4px 0}
.est-more{background:#fff;border:1px solid var(--pink-line,#f0d4e2);border-radius:20px;overflow:hidden}
.est-more>summary{list-style:none;cursor:pointer;padding:16px 52px 16px 18px;position:relative;display:block}
.est-more>summary::-webkit-details-marker{display:none}
.est-more>summary b{display:block;font-size:16px}
.est-more>summary span{display:block;font-size:12.5px;color:#6b7280;margin-top:2px}
.est-more>summary::after{content:"＋";position:absolute;right:16px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;border:1px solid #e7b7cf;color:#e85d98;display:grid;place-items:center;font-weight:700}
.est-more[open]>summary::after{content:"−"}
.est-more-in{display:grid;gap:12px;padding:0 12px 14px}
@media (max-width:719px){
  .est-tabs{gap:8px;margin-bottom:12px}
  .est-tabs a{padding:10px 12px;border-radius:14px}
  .est-tabs a b{font-size:15px}
  .est-tabs a span{display:none}
  main.is-est .ph{padding-bottom:8px}
  .est-sec{padding-top:12px}
  .est .bar b{font-size:22px}
  .est-notes{font-size:13px}
}
.est [hidden]{display:none!important}
/* 色：サイトのピンクにそろえ、白文字が読める濃さに */
.est.est-app,.est.est-barwrap{--pink-logo:#ec0a7d;--pink-strong:#d1006b;--pink-btn:#ec0a7d;--pink-border:#f1a9cb}
.est.est-app .cards button[aria-pressed="true"] small{color:#fff;opacity:.92}
.est .ctr button.plus{box-shadow:0 2px 6px rgba(236,10,125,.25)}

/* フォームの写真ボタン（ブラウザの英語表示を出さない） */
.filebtn{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 20px;border:2px dashed #f1a9cb;border-radius:12px;background:#fff7fb;color:#d1006b;font-weight:700;cursor:pointer}
.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.filebtn span::before{content:"＋ "}
@media (max-width:767px){.filebtn{display:flex;width:100%;justify-content:center}}
/* 料金の目安の表 */
.est-table-wrap { overflow-x: auto; }
.est-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 14px; overflow: hidden; font-size: 15px; }
.est-table th, .est-table td { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: left; }
.est-table thead th { background: var(--pink); color: #fff; font-size: 13px; }
.est-table tbody th { font-weight: 900; white-space: nowrap; }
.est-table tbody td:last-child { font-weight: 900; color: var(--pink-deep); font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 767px) { .est-table th, .est-table td { padding: 12px 10px; font-size: 14px; } }

/* =========================================================
   UXの原則（The UX Book）による調整 2026-10-28
   物理的アフォーダンス：押せる所は高さ44px以上／エラーは欄のすぐ下に
   ========================================================= */
/* 押しやすさ：パンくず・文中の「見る」リンク・小さなボタン */
.bc a { display: inline-flex; align-items: center; min-height: 44px; }
.link-u, .acts__biz, .more, a.to { min-height: 44px; display: inline-flex; align-items: center; }
/* フォーム：選択肢は指で押せる大きさに。必須・任意の印は同じ位置 */
.form .chk { gap: 8px 10px; padding-top: 0; }
.form .chk label { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; padding: 0 14px 0 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; cursor: pointer; }
.form .chk label:has(input:checked) { border-color: var(--pink); background: var(--pink-pale); }
.form .chk input, .form .agree input { width: 20px; height: 20px; accent-color: var(--pink); flex: none; }
.form .agree { min-height: 44px; display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.form input[type="text"], .form input[type="tel"], .form input[type="email"], .form select, .form textarea { min-height: 48px; font-size: 16px; }
/* エラーは欄の直下に、赤で */
.form [aria-invalid="true"] { border-color: #d32f2f !important; box-shadow: 0 0 0 3px rgba(211,47,47,.15); }
.field-err { color: #c62828; font-size: 14px; font-weight: 700; margin-top: 6px; }
.form .submit .btn[disabled] { opacity: .7; cursor: progress; }
/* かんたん見積もりの＋−も44pxに（estimate.css は自動生成なのでここで上書き） */
.est .ctr button { width: 44px; height: 44px; }
.chips a, .chips span { min-height: 44px; }
.est .box { min-width: 0; max-width: 100%; }

/* AI感を消す：下層ページの見出し帯の装飾グラデーションをやめ、白＋下線に */
.ph { background: #fff; border-bottom: 1px solid var(--line); }
.jr { background: #fff; }
/* パンくず：今いるページの文字も、リンクと同じ高さにそろえる */
.bc li { display: inline-flex; align-items: center; min-height: 44px; }
/* 見出し下の相談ボタン（スマホ）：矢印と文字が重ならないように */
@media (max-width: 767px) { .ph__cta .btn { padding-right: 52px; padding-left: 20px; font-size: 14.5px; } }
/* スマホの読みやすさ：見積もりシミュレーション（estimate.css は自動生成なので詳細度を上げて上書き） */
@media (max-width: 767px) {
  html .est { font-size: 15px; }
  html .est .lead, html .est small, html .est .lines, html .est li, html .est .hint { font-size: 14px; line-height: 1.7; }
  html .est .lines .sub { font-size: 13px; }
  html .est .ctr button { width: 44px; height: 44px; }
  html .est button, html .est .chip, html .est label { min-height: 44px; }
}
@media (max-width: 767px) {
  html body .txt, html body .tbl dt, html body .tbl dd, html body .form .lb, html body .form .chk label { font-size: 16px; }
  html body .form .hint { font-size: 14px; }
  html body .est small, html body .est .lab, html body .est .lbl { font-size: 13px; }
}
/* ミッション・ビジョン・バリュー */
.mvv { display: grid; gap: 0; margin-top: 8px; }
.mvv__row { display: grid; grid-template-columns: 12em minmax(0, 1fr); gap: 12px 40px; padding: 28px 0; border-top: 1px solid var(--line); }
.mvv__row:last-child { border-bottom: 1px solid var(--line); }
.mvv__lb { font-family: var(--en); font-weight: 700; font-size: 15px; letter-spacing: .12em; color: var(--pink); display: grid; gap: 2px; align-content: start; }
.mvv__lb small { font-family: var(--ja); font-weight: 700; font-size: 13px; letter-spacing: .04em; color: var(--black); }
.mvv h3 { font-weight: 900; font-size: clamp(20px, 2.2vw, 28px); line-height: 1.5; text-wrap: balance; }
.mvv__row p:not(.mvv__lb) { margin-top: 10px; line-height: 1.95; }
.mvv__vals { display: grid; gap: 0; }
.mvv__vals li { display: grid; grid-template-columns: 2em 8em minmax(0, 1fr); gap: 4px 12px; align-items: baseline; padding: 10px 0; border-bottom: 1px dashed #ddd; }
.mvv__vals li:last-child { border-bottom: 0; }
.mvv__no { font-family: var(--en); font-weight: 700; color: var(--pink); }
.mvv__vals b { font-weight: 900; }
.mvv__vals p { margin: 0 !important; }
@media (max-width: 767px) {
  .mvv__row { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 22px 0; }
  .mvv__vals li { grid-template-columns: 2em minmax(0, 1fr); }
  .mvv__vals li p { grid-column: 2; font-size: 15px; }
}

/* 法人ページの数字（4つ） */
.stat3--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat3--4 b { font-size: clamp(32px, 4vw, 52px); }
@media (max-width: 900px) { .stat3--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .stat3--4 li { padding: 18px 10px; } .stat3--4 small { font-size: 13px; } }
/* 強みカード：スマホは番号・アイコン・見出しを横一列にして縦を詰める */
@media (max-width: 900px) {
  .str3 { gap: 10px; }
  .str3 li { display: grid; grid-template-columns: 36px 1fr; column-gap: 12px; align-items: center; padding: 18px 16px; }
  .str3 .no { grid-column: 1 / -1; }
  .str3 svg { width: 36px; height: 36px; margin: 0; }
  .str3 h3 { font-size: 18px; line-height: 1.5; }
  .str3 p { grid-column: 1 / -1; margin-top: 8px; font-size: 16px; line-height: 1.8; }
}

/* FAQのカテゴリ（14個）：スマホは横スクロール1行にして、質問を上に出す */
@media (max-width: 767px) {
  .faq-page .ask__cats { flex-wrap: nowrap; overflow-x: auto; margin-right: -16px; padding-right: 16px; padding-bottom: 6px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .faq-page .ask__cats::-webkit-scrollbar { display: none; }
  .faq-page .ask__cats button { flex: 0 0 auto; white-space: nowrap; }
}
.area-cards--ptn { margin-top: 18px; }
.area-cards--base { margin-bottom: 28px; }
.area-subh { font-weight: 900; font-size: 16px; margin: 22px 0 10px; }
.area-cards--ptn { margin-top: 0; }
.stat3--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 600px) { .stat3--2 { grid-template-columns: 1fr; } }
.area-photo { margin: 0; }
.area-photo img { width: 100%; height: auto; aspect-ratio: 16 / 7; object-fit: cover; border-radius: 16px; display: block; }
.area-photo figcaption { font-size: 12px; color: var(--gray); margin-top: 6px; }
@media (max-width: 767px) { .area-photo img { aspect-ratio: 4 / 3; border-radius: 12px; } }

/* 相談フォーム：片付け・回収の内容（LINE見積もりと同じ項目） */
.form .kz{border:0;margin:8px 0 0;padding:20px 0 4px;border-top:2px solid #f6d2e3}
.form .kz[hidden]{display:none}
.form .kz legend{font-weight:800;font-size:17px;padding:0;margin-bottom:6px}
.form .kz legend small{display:block;font-weight:500;font-size:13px;color:var(--gray);margin-top:4px}
.kz-addr{display:grid;grid-template-columns:11em 1fr;gap:8px}
.kz-find{position:relative}
.kz-hits{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;background:#fff;border:1px solid #eadbe3;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.08);max-height:300px;overflow:auto}
.kz-hits li{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer}
.kz-hits li:hover,.kz-hits li:focus{background:#fff2f8;outline:none}
.kz-hits small{color:var(--gray);font-size:12px}
.kz-hits .kz-none{color:#d1006b;font-weight:700}
.kz-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.kz-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#fff7fb;border:1px solid #f6d2e3;border-radius:10px}
.kz-list li>span:first-child{flex:1;font-weight:700}
.kz-qty{display:inline-flex;align-items:center;gap:6px}
.kz-qty button,.kz-del{width:32px;height:32px;border-radius:50%;border:1px solid #e6c6d6;background:#fff;font-size:16px;line-height:1;cursor:pointer}
.kz-qty b{min-width:1.6em;text-align:center}
.kz-del{border:0;background:transparent;color:var(--gray)}
.kz-dates{display:grid;gap:8px}
.kz-date{display:grid;grid-template-columns:5em 1fr 9em;gap:8px;align-items:center}
.kz-date b{font-size:14px}
@media (max-width:600px){.kz-addr{grid-template-columns:1fr}.kz-date{grid-template-columns:4.5em 1fr;}.kz-date select{grid-column:2}}
.form input[type="search"], .form input[type="date"] { width: 100%; min-height: 48px; font-size: 16px; padding: 10px 14px; border: 1px solid #d9d9d9; border-radius: 10px; background: #fff; font-family: inherit; }
.form .kz-date select { min-height: 48px; }
.cards.cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 700px) { .cards.cards--2 { grid-template-columns: 1fr; } }
/* よくある質問：カテゴリごとのまとまり */
.faq-chunk { margin-top: 40px; }
.faq-chunk:first-child { margin-top: 8px; }
.faq-chunk[hidden] { display: none; }
.faq-chunk__h { display: flex; align-items: baseline; gap: 10px; font-size: 20px; font-weight: 800; padding-bottom: 10px; margin-bottom: 4px; border-bottom: 2px solid var(--pink); }
.faq-chunk__h small { font-size: 13px; font-weight: 600; color: var(--gray); }
