/* 荻窪ツイン動物病院 新公式サイト 共通スタイル v0
   方針: モバイルファースト / オレンジ×白×シンプル / システムフォントで軽量 */
:root{
  --orange:#f08300;
  --orange-dark:#c96b00;
  --orange-pale:#fff3e0;
  --ink:#3a3a3a;
  --gray:#666666;
  --line:#eee4d6;
  --bg:#ffffff;
  --bg-warm:#fffaf3;
  --green:#4a8f5c;
  --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",-apple-system,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.85;font-size:16px;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--orange-dark)}
.container{max-width:1040px;margin:0 auto;padding:0 18px}

/* アンカー着地（#reserve/#access等）：追従ヘッダー(実測83px)に隠れないよう余白を確保 */
[id]{scroll-margin-top:92px}

/* ===== ヘッダー ===== */
.site-header{position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);z-index:100}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;gap:8px}
.logo{font-weight:700;font-size:1.02rem;color:var(--ink);text-decoration:none;line-height:1.3}
.logo small{display:block;font-size:.72rem;color:var(--orange-dark);font-weight:600;letter-spacing:.04em}
.header-cta{display:flex;gap:8px;align-items:center}
.btn-tel,.btn-reserve{display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-decoration:none;border-radius:10px;padding:7px 12px;font-size:.78rem;font-weight:700;line-height:1.3}
.btn-tel{background:#fff;border:1.8px solid var(--orange);color:var(--orange-dark)}
.btn-tel small,.btn-reserve small{font-size:.72rem;font-weight:500}
.btn-reserve{background:var(--orange);color:#fff;border:1.8px solid var(--orange)}
/* モバイルでは下部追従バーに電話・予約があるため、ヘッダーのCTAは非表示にして窮屈さを解消 */
.btn-tel,.btn-reserve{display:none}
.menu-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-width:56px;height:48px;padding:3px 10px;border:1px solid var(--orange-dark);border-radius:9px;background:var(--orange);color:#fff;font-size:1.2rem;line-height:1;cursor:pointer}
.menu-btn::after{content:"メニュー";font-size:.72rem;font-weight:800;letter-spacing:.02em;margin-top:1px}

/* ===== 本日の診療バー ===== */
/* スマホ=2行・広い画面=1行に自動で切り替わる（中途半端な折り返しを防ぐ） */
.today-bar{background:var(--orange-pale);font-size:.8rem;color:var(--orange-dark);
  display:flex;flex-wrap:wrap;justify-content:center;gap:0 14px;padding:7px 10px;line-height:1.7}
.today-bar span{white-space:nowrap}
.today-bar b{font-weight:700}

/* ===== ヒーロー ===== */
.hero{background:linear-gradient(180deg,var(--bg-warm),#fff);padding:34px 0 26px;text-align:center}
.hero h1{font-size:1.5rem;line-height:1.6;letter-spacing:.02em}
.hero h1 .accent{color:var(--orange)}
.hero .sub{font-size:.9rem;color:var(--gray);margin-top:10px}
.hero-badges{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}
/* バッジ＝押せない情報ラベル。枠線・影をなくしてボタンと明確に区別 */
.badge{font-size:.72rem;background:var(--orange-pale);color:var(--orange-dark);
  border-radius:6px;padding:3px 10px;font-weight:600}
.badge::before{content:"✓ "}
.hero-img{margin:20px auto 0;max-width:680px;height:220px;border-radius:var(--radius);
  background:linear-gradient(135deg,#ffd9a8,#ffeede);display:flex;align-items:center;justify-content:center;
  color:#b97a2a;font-size:.85rem;overflow:hidden}
.hero-img img,.spec-card .ph img{width:100%;height:100%;object-fit:cover}
.trim-photo{border-radius:var(--radius);overflow:hidden;margin-bottom:12px}
.trim-photo img{width:100%;max-height:240px;object-fit:cover;object-position:center 30%}

/* ===== 3ボタン導線 ===== */
.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 6px}
.qa{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;
  background:#fff;border:1.5px solid var(--orange);border-bottom-width:3.5px;border-radius:var(--radius);
  padding:13px 6px;font-size:.8rem;font-weight:700;color:var(--ink);
  box-shadow:0 3px 10px rgba(180,130,60,.14)}
.qa .ico{font-size:1.4rem}
.qa small{font-size:.72rem;color:var(--gray);font-weight:500}
.qa:active{transform:translateY(2px);border-bottom-width:1.5px;box-shadow:0 1px 4px rgba(180,130,60,.14)}

/* ===== 専門外来ゲートウェイ（行き先案内） ===== */
.gateway{display:grid;gap:8px;margin:14px 0 4px}
.gw{display:flex;align-items:center;gap:10px;text-decoration:none;background:#fff;
  border:1.8px solid var(--orange);border-bottom-width:4px;border-radius:12px;padding:11px 14px;
  color:var(--ink);font-size:.86rem;font-weight:700;box-shadow:0 3px 10px rgba(180,130,60,.14)}
.gw:active{transform:translateY(2px);border-bottom-width:1.8px}
.gw .ico{font-size:1.3rem}
.gw small{display:block;font-size:.72rem;color:var(--gray);font-weight:500}
.gw .go{margin-left:auto;color:var(--orange-dark);font-size:.8rem;white-space:nowrap}
@media(min-width:760px){.gateway{grid-template-columns:1fr 1fr;max-width:720px;margin-left:auto;margin-right:auto}}

/* ===== 予防医療 3カード ===== */
.prev-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.prev-card{background:#fff;border:1.5px solid #f3c98e;border-bottom-width:3px;border-radius:12px;
  padding:14px 8px;text-align:center;text-decoration:none;color:var(--ink);font-size:.82rem;
  font-weight:700;box-shadow:0 2px 7px rgba(180,130,60,.1)}
.prev-card .ico{display:block;font-size:1.5rem;margin-bottom:4px}
.prev-card small{display:block;font-size:.72rem;color:var(--gray);font-weight:400;line-height:1.5}
.prev-card::after{content:"詳しく見る ›";display:block;font-size:.72rem;color:var(--orange-dark);
  font-weight:700;margin-top:5px}
.prev-card:active{transform:translateY(2px);border-bottom-width:1.5px}

/* ===== セクション共通 ===== */
section{padding:34px 0}
.sec-title{text-align:center;font-size:1.25rem;margin-bottom:6px}
.sec-title small{display:block;font-size:.72rem;color:var(--orange-dark);letter-spacing:.18em;font-weight:600;margin-bottom:2px}
.sec-lead{text-align:center;font-size:.86rem;color:var(--gray);margin-bottom:20px}

/* ===== 2枚看板（専門外来） ===== */
.specialty{background:var(--bg-warm)}
.spec-cards{display:grid;gap:14px}
.spec-card{background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid #f3c98e;
  border-bottom:4px solid var(--orange);text-decoration:none;color:var(--ink);
  box-shadow:0 3px 12px rgba(180,130,60,.12)}
.spec-card:active{transform:translateY(2px)}
.spec-card .ph{height:120px;background:linear-gradient(135deg,#ffd9a8,#fff0db);
  display:flex;align-items:center;justify-content:center;color:#b97a2a;font-size:.8rem}
.spec-card .body{padding:14px 16px 16px}
.spec-card h3{font-size:1.05rem;color:var(--orange-dark)}
.spec-card .num{font-size:.78rem;background:var(--orange);color:#fff;border-radius:6px;
  display:inline-block;padding:1px 8px;margin:6px 0;font-weight:700}
.spec-card p{font-size:.84rem;color:#555}
.spec-card .more{font-size:.8rem;font-weight:700;color:var(--orange-dark);margin-top:6px;display:inline-block}

/* ===== 診療案内グリッド ===== */
.dept-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.dept{background:#fff;border:1.5px solid #f3c98e;border-bottom-width:3px;border-radius:12px;
  padding:12px 10px;text-align:center;font-size:.82rem;font-weight:600;text-decoration:none;
  color:var(--ink);box-shadow:0 2px 7px rgba(180,130,60,.1);position:relative}
.dept .ico{display:block;font-size:1.3rem;margin-bottom:2px}
.dept small{display:block;font-size:.72rem;color:var(--gray);font-weight:400}
.dept::after{content:"›";position:absolute;right:9px;top:50%;transform:translateY(-50%);
  color:var(--orange);font-weight:700;font-size:1rem}
.dept:active{transform:translateY(2px);border-bottom-width:1.5px}

/* ===== お知らせ・ブログ ===== */
.news-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.news-item{display:block;padding:13px 26px 13px 4px;border-bottom:1px solid var(--line);
  text-decoration:none;color:var(--ink);position:relative}
.news-item::after{content:"›";position:absolute;right:8px;top:50%;transform:translateY(-50%);
  color:var(--orange);font-weight:700}
.news-item time{font-size:.72rem;color:var(--gray);margin-right:10px}
.news-item .cat{font-size:.72rem;background:var(--orange-pale);color:var(--orange-dark);
  border-radius:5px;padding:1px 7px;margin-right:8px;font-weight:700}
.news-item p{font-size:.86rem;display:inline}

/* ===== Instagram ===== */
.insta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.insta-grid .ph{aspect-ratio:1;background:linear-gradient(135deg,#ffe3c2,#fff4e6);border-radius:8px;
  display:flex;align-items:center;justify-content:center;color:#c89a5e;font-size:.72rem}

/* ===== アクセス ===== */
.access{background:var(--bg-warm)}
.map-ph{height:180px;border-radius:var(--radius);background:#eee;display:flex;align-items:center;
  justify-content:center;color:#999;font-size:.82rem;margin-bottom:16px}
.info-table{width:100%;border-collapse:collapse;font-size:.86rem;background:#fff;border-radius:var(--radius);overflow:hidden}
.info-table th,.info-table td{border-bottom:1px solid var(--line);padding:11px 13px;text-align:left;vertical-align:top}
.info-table th{width:5.4em;color:var(--orange-dark);font-size:.78rem;white-space:nowrap}
.price-grid{width:100%;border-collapse:collapse;font-size:.8rem;background:#fff;border-radius:var(--radius);overflow:hidden;margin:4px 0}
.price-grid th,.price-grid td{border:1px solid var(--line);padding:7px 3px;text-align:center}
.price-grid thead th{background:var(--orange-pale);color:var(--orange-dark);font-size:.72rem;line-height:1.25}
.price-grid td:first-child,.price-grid thead th:first-child{text-align:left;white-space:nowrap;font-size:.74rem}
.hours-note{font-size:.74rem;color:var(--gray);margin-top:8px}

/* ===== フッター ===== */
.site-footer{background:#42372c;color:#f5ead9;padding:30px 0 90px;font-size:.84rem}
.site-footer a{color:#ffd9a0;text-decoration:none}
.f-name{font-weight:700;font-size:1rem}
.f-addr{font-size:.8rem;margin:6px 0 14px;opacity:.9}
.f-links{display:flex;flex-wrap:wrap;gap:10px 18px;margin-bottom:14px}
.copyright{font-size:.72rem;opacity:.65;margin-top:14px}

/* ===== 追従フッター CTA（モバイル） ===== */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;
  z-index:200;box-shadow:0 -3px 14px rgba(0,0,0,.12)}
.sticky-cta a{display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 6px;
  font-size:.92rem;font-weight:700;text-decoration:none}
.sticky-cta .tel{background:#fff;color:var(--orange-dark);border-top:2.5px solid var(--orange)}
.sticky-cta .reserve{background:var(--orange);color:#fff}

/* ===== 下層ページ共通 ===== */
.breadcrumb{font-size:.72rem;color:var(--gray);padding:10px 0}
.breadcrumb a{color:var(--gray);text-decoration:none}
.page-hero{background:linear-gradient(180deg,var(--bg-warm),#fff);padding:26px 0 20px;text-align:center}
.page-hero h1{font-size:1.45rem;line-height:1.6}
.page-hero .sub{font-size:.86rem;color:var(--gray);margin-top:8px}
.page-hero-img{margin:18px auto 0;max-width:680px;height:170px;border-radius:var(--radius);overflow:hidden}
.page-hero-img img{width:100%;height:100%;object-fit:cover}

.sym-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.sym-chips span{background:#fff;border:1.5px dashed #e0b780;border-radius:99px;
  padding:5px 14px;font-size:.8rem;color:#7a5a2e}
.sym-note{text-align:center;font-size:.86rem;margin-top:14px;font-weight:700;color:var(--orange-dark)}
.sym-acc details{background:#fff;border:1px solid var(--line);border-radius:12px;margin:10px 0;overflow:hidden}
.sym-acc details[open]{border-color:var(--orange);box-shadow:0 3px 14px rgba(240,131,0,.12)}
.sym-acc summary{padding:15px 46px 15px 16px;font-weight:700;font-size:1rem;color:var(--orange-dark);cursor:pointer;position:relative;list-style:none}
.sym-acc summary::-webkit-details-marker{display:none}
.sym-acc summary .ico{margin-right:8px}
.sym-acc summary .lead{display:block;font-size:.73rem;color:var(--gray);font-weight:500;margin-top:5px;padding-left:29px}
.sym-acc summary::after{content:"＋";position:absolute;right:14px;top:50%;transform:translateY(-50%);width:26px;height:26px;line-height:26px;text-align:center;border-radius:50%;background:var(--orange-pale);color:var(--orange-dark);font-weight:700}
.sym-acc details[open] summary{border-bottom:1px solid var(--line);background:#fffaf3}
.sym-acc details[open] summary::after{content:"−"}
.sym-acc .body{padding:14px 16px 16px}
.sym-acc .chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.sym-acc .chips span{font-size:.75rem;background:#fff;border:1px solid #ecc99a;color:#7a5a2e;border-radius:99px;padding:4px 11px}
.sym-acc .body p{font-size:.85rem;color:#555;line-height:1.8;margin-bottom:8px}
.sym-acc .care{background:var(--orange-pale);border-left:4px solid var(--orange);border-radius:8px;padding:11px 14px;margin-top:12px;font-size:.83rem;line-height:1.75;color:#5a4a33}
.sym-acc .care b{color:var(--orange-dark)}
.sym-acc .care b.t{display:block;margin-bottom:4px}
.sym-acc .more{display:inline-block;margin-top:12px;font-size:.83rem;font-weight:700;color:var(--orange-dark)}
/* 症状・病名ファインダー */
.dz-find{margin:8px 0 0}
.dz-slabel{display:block;font-size:.92rem;font-weight:700;color:var(--orange-dark);margin-bottom:8px}
.dz-search{width:100%;box-sizing:border-box;border:2.5px solid var(--orange);border-radius:14px;padding:15px 18px;font-size:1rem;background:#fff;margin-bottom:6px}
.dz-search:focus{outline:none;box-shadow:0 0 0 4px var(--orange-pale)}
.dz-hint{font-size:.76rem;color:var(--gray);margin:0 0 20px}
.dz-seclbl{font-size:.84rem;font-weight:700;color:var(--orange-dark);margin:0 0 10px;padding-left:2px}
.dz-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(min-width:640px){.dz-grid{grid-template-columns:1fr 1fr 1fr}}
.dz-sym{display:flex;flex-direction:column;gap:6px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px;text-decoration:none;color:inherit;min-height:96px;box-shadow:0 2px 8px rgba(180,130,60,.06)}
.dz-sym:active{transform:translateY(1px);border-color:var(--orange)}
.dz-sym .ic{font-size:1.9rem;line-height:1}
.dz-sym b{font-size:.92rem;font-weight:700;color:#3a2f22;line-height:1.45}
.dz-sym .go{margin-top:auto;font-size:.72rem;font-weight:700;color:var(--orange-dark)}
.dz-names{display:flex;flex-wrap:wrap;gap:8px}
.dz-names a{font-size:.82rem;background:var(--orange-pale);color:var(--orange-dark);border-radius:99px;padding:7px 14px;text-decoration:none;font-weight:700}
.dz-none{display:none;text-align:center;font-size:.86rem;color:#555;background:var(--bg-warm);border-radius:10px;padding:14px;margin:12px 0}

.feat{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;margin:14px 0;box-shadow:0 2px 10px rgba(180,130,60,.07)}
.feat .fimg{height:150px;overflow:hidden}
.feat .fimg img{width:100%;height:100%;object-fit:cover}
.feat .fbody{padding:14px 16px 16px}
.feat h3{font-size:1rem;color:var(--orange-dark);margin-bottom:4px}
.feat h3 .fn{display:inline-block;background:var(--orange);color:#fff;border-radius:50%;
  width:1.5em;height:1.5em;text-align:center;line-height:1.5em;font-size:.85em;margin-right:7px}
.feat p{font-size:.86rem;color:#555}

.disease-grid{display:flex;flex-wrap:wrap;gap:8px}
.disease-grid span{background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:6px 12px;font-size:.8rem}

.policy-box{background:var(--orange-pale);border-left:5px solid var(--orange);
  border-radius:0 12px 12px 0;padding:16px 18px;margin:14px 0}
.policy-box h3{font-size:1rem;color:var(--orange-dark);margin-bottom:6px}
.policy-box p{font-size:.86rem}

.steps{counter-reset:step;display:flex;flex-direction:column;gap:0}
.step{position:relative;padding:0 0 22px 46px;counter-increment:step}
.step::before{content:counter(step);position:absolute;left:0;top:0;width:32px;height:32px;
  background:var(--orange);color:#fff;border-radius:50%;font-weight:700;
  display:flex;align-items:center;justify-content:center;font-size:.9rem}
.step:not(:last-child)::after{content:"";position:absolute;left:15px;top:34px;bottom:2px;
  width:2px;background:#f3c98e}
.step h3{font-size:.95rem;margin-bottom:2px}
.step p{font-size:.84rem;color:#555}

.doctor-list{display:flex;flex-direction:column;gap:8px}
.doctor-list .doc{background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:10px 14px;font-size:.86rem}
.doctor-list .doc b{display:block}
.doctor-list .doc small{color:var(--gray);font-size:.74rem}

.faq-list details{background:#fff;border:1px solid var(--line);border-radius:10px;
  margin:8px 0;overflow:hidden}
.faq-list summary{padding:13px 36px 13px 14px;font-size:.88rem;font-weight:700;cursor:pointer;
  list-style:none;position:relative}
.faq-list summary::before{content:"Q. ";color:var(--orange)}
/* v67: 質問文（短い見出し的テキスト）は行を均等に割って不自然な改行を防ぐ */
.faq-list summary,.sym-acc summary{text-wrap:balance}
.faq-list summary::after{content:"＋";position:absolute;right:13px;top:50%;transform:translateY(-50%);
  color:var(--orange);font-weight:700}
.faq-list details[open] summary::after{content:"−"}
.faq-list .a{padding:0 14px 14px;font-size:.84rem;color:#555;border-top:1px dashed var(--line);padding-top:10px}
.faq-list .a::before{content:"A. ";color:var(--orange-dark);font-weight:700}

.cta-band{background:var(--orange-pale);border-radius:var(--radius);padding:20px 16px;text-align:center;margin:10px 0}
.cta-band p{font-size:.9rem;font-weight:700;margin-bottom:12px}

.alert-box{background:#fdf0ee;border-left:5px solid #d9534f;border-radius:0 12px 12px 0;
  padding:16px 18px;margin:14px 0}
.alert-box h3{font-size:1rem;color:#b9382c;margin-bottom:6px}
.alert-box p{font-size:.86rem}

/* ===== 求人ページ ===== */
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 6px;text-align:center}
.stat .n{font-size:1.5rem;font-weight:800;color:var(--orange-dark);line-height:1.1}
.stat .l{font-size:.72rem;color:var(--gray);margin-top:3px}
.job-card{background:#fff;border:1px solid var(--line);border-bottom:4px solid var(--orange);
  border-radius:14px;padding:16px;margin:12px 0;box-shadow:0 3px 12px rgba(180,130,60,.08)}
.job-card h3{font-size:1.05rem;color:var(--orange-dark);margin-bottom:4px}
.job-card .pay{font-size:.82rem;background:var(--orange);color:#fff;border-radius:6px;
  display:inline-block;padding:1px 10px;font-weight:700;margin-bottom:8px}
.job-card table{width:100%;border-collapse:collapse;font-size:.8rem;margin-top:6px}
.job-card th,.job-card td{border-bottom:1px solid var(--line);padding:6px 4px;text-align:left;vertical-align:top}
.job-card th{width:5.5em;color:var(--gray);font-weight:600;white-space:nowrap}
.voice{background:var(--green-bg);border-radius:12px;padding:14px 16px;margin:10px 0;font-size:.86rem}
.voice b{color:var(--green)}

/* ===== スタッフ紹介 ===== */
.avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--orange),#f5a623);
  color:#fff;font-size:1.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;
  flex-shrink:0}
.avatar.lg{width:80px;height:80px;font-size:2.1rem}
.avatar.photo{background:none}
.avatar img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:50%}
.vet-card{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:16px;margin:12px 0;box-shadow:0 2px 10px rgba(180,130,60,.07)}
.vet-card.feature{border:2px solid var(--orange);box-shadow:0 4px 16px rgba(240,131,0,.14)}
.vet-card .vbody{flex:1;min-width:0}
.vet-card h3{font-size:1.05rem;margin-bottom:2px}
.vet-card .role{display:inline-block;font-size:.72rem;background:var(--orange);color:#fff;
  border-radius:6px;padding:1px 9px;font-weight:700;margin-bottom:6px}
.vet-card .role.sub{background:#fff;color:var(--orange-dark);border:1.5px solid var(--orange)}
.vet-card dl{font-size:.8rem;margin:0}
.vet-card dt{color:var(--orange-dark);font-weight:700;font-size:.72rem;margin-top:6px}
.vet-card dd{margin:0;color:#555}
.vet-card .spec{font-size:.74rem;color:var(--gray);margin-top:4px}
.staff-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.staff-mini{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:10px 12px}
.staff-mini .avatar{width:44px;height:44px;font-size:1.2rem}
.staff-mini b{font-size:.88rem;display:block}
.staff-mini small{font-size:.72rem;color:var(--gray);line-height:1.4;display:block}
@media(min-width:760px){.staff-list{grid-template-columns:repeat(3,1fr)}}

/* ===== ハンバーガーメニュー（ドロワー） ===== */
.drawer{position:fixed;inset:0;background:#fffbf5;z-index:300;display:none;
  flex-direction:column;padding:20px 24px 40px;overflow:auto}
.drawer.open{display:flex}
.drawer-close{align-self:flex-end;background:none;border:none;font-size:1rem;
  color:var(--orange-dark);font-weight:700;padding:10px;cursor:pointer}
.drawer a{font-size:1.02rem;font-weight:700;color:var(--ink);text-decoration:none;
  padding:13px 8px;border-bottom:1px solid var(--line)}
.drawer a.sub{font-size:.9rem;padding-left:28px;font-weight:500}
.drawer .soon{font-size:.74rem;color:var(--gray);margin-top:14px;line-height:1.7}

/* ===== PC ===== */
@media(min-width:760px){
  /* PCには追従バーが無いため、ヘッダーに電話・予約ボタンを表示 */
  .btn-tel,.btn-reserve{display:flex}
  .hero h1{font-size:2rem}
  .spec-cards{grid-template-columns:1fr 1fr}
  .dept-grid{grid-template-columns:repeat(4,1fr)}
  .quick-actions{max-width:560px;margin-left:auto;margin-right:auto}
  .sticky-cta{display:none}
  .site-footer{padding-bottom:30px}
  .feat{flex-direction:row}
  .feat .fimg{width:38%;height:auto;min-height:170px}
  .feat .fbody{flex:1}
  .feat:nth-child(even){flex-direction:row-reverse}
}

/* ===== トップページ redesign v1: ivory x green ===== */
body.home{
  --home-green:#19856f;
  --home-green-dark:#064236;
  --home-green-mid:#106453;
  --home-green-soft:#e5f1eb;
  --home-cream:#f8f7ef;
  --home-cream-2:#f1f7f1;
  --home-line:#d8d3bf;
  --home-gold:#d99347;
  --home-ink:#123c34;
  --radius:8px;
  color:var(--home-ink);
  background:var(--home-cream);
  line-height:1.9;
  letter-spacing:0;
  overflow-x:hidden;
}
.home a{color:var(--home-green-dark)}
.home .container{max-width:1080px;padding:0 22px}

.home .site-header{
  position:sticky;
  top:0;
  background:rgba(248,247,239,.94);
  border-bottom:1px solid rgba(6,66,54,.12);
  box-shadow:0 10px 30px rgba(6,66,54,.04);
}
.home .header-inner{
  max-width:1120px;
  margin:0 auto;
  padding:14px 22px;
  min-height:78px;
}
.home .logo{
  color:var(--home-green-dark);
  font-size:1.08rem;
  font-weight:800;
  letter-spacing:.04em;
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.home .logo::before{
  content:"";
  width:42px;
  height:42px;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 64%, #c6aa8a 0 18%, transparent 19%),
    radial-gradient(circle at 38% 34%, #7dbc8d 0 10%, transparent 11%),
    radial-gradient(circle at 58% 28%, #7dbc8d 0 11%, transparent 12%),
    radial-gradient(circle at 68% 46%, #7dbc8d 0 9%, transparent 10%),
    #fffaf1;
  border:1px solid rgba(6,66,54,.18);
  box-shadow:0 5px 18px rgba(6,66,54,.08);
  flex:0 0 auto;
}
.home .logo small{
  color:var(--home-green);
  font-size:.72rem;
  letter-spacing:.09em;
  margin-top:2px;
}
.home .header-cta{gap:10px}
.home .btn-tel,
.home .btn-reserve{
  border-radius:8px;
  padding:11px 20px;
  min-width:124px;
  box-shadow:none;
}
.home .btn-reserve{
  background:var(--home-green);
  border-color:var(--home-green);
}
.home .btn-tel{
  background:var(--home-green-dark);
  border-color:var(--home-green-dark);
  color:#fff;
}
.home .menu-btn{
  color:#fff;
  border:1px solid var(--home-green-mid);
  border-radius:9px;
  min-width:56px;
  height:48px;
  padding:3px 10px;
  line-height:1;
  background:var(--home-green-mid);
}

.home .today-bar{
  background:var(--home-cream);
  color:var(--home-green-dark);
  border-bottom:1px dashed rgba(217,147,71,.62);
  padding:10px 14px;
}
.home .today-bar b{color:var(--home-green)}

.home .hero{
  background:
    linear-gradient(180deg,var(--home-cream) 0%,var(--home-cream) 55%,var(--home-cream-2) 100%);
  padding:72px 0 76px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.home .hero::before,
.home .hero::after{
  content:"";
  position:absolute;
  width:260px;
  height:92px;
  opacity:.28;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 20% 62%, rgba(255,255,255,.92) 0 28%, transparent 30%),
    radial-gradient(ellipse at 48% 44%, rgba(255,255,255,.92) 0 26%, transparent 28%),
    radial-gradient(ellipse at 76% 64%, rgba(255,255,255,.92) 0 24%, transparent 26%);
}
.home .hero::before{left:-60px;top:34%}
.home .hero::after{right:-54px;bottom:20%}
.home .hero .container{position:relative;z-index:1}
.home .hero h1{
  color:var(--home-green);
  font-size:clamp(1.9rem,3.2vw,3rem);
  line-height:1.65;
  letter-spacing:.06em;
  font-weight:800;
  margin:0 auto;
}
.home .hero h1 .accent{color:var(--home-green-dark)}
.home .hero .sub{
  color:#315c52;
  font-size:1rem;
  margin:18px auto 0;
  max-width:760px;
}
.home .hero-badges{
  gap:10px;
  margin:24px auto 0;
  max-width:820px;
}
.home .badge{
  background:rgba(255,255,255,.76);
  color:var(--home-green-dark);
  border:1px solid rgba(25,133,111,.18);
  border-radius:999px;
  padding:5px 14px;
  font-size:.75rem;
}
.home .badge::before{color:var(--home-gold)}
.home .hero-img{
  max-width:980px;
  height:clamp(260px,42vw,430px);
  margin:34px auto 0;
  border-radius:8px;
  background:#fff;
  box-shadow:0 24px 60px rgba(6,66,54,.14);
}
.home .hero-img img{
  filter:saturate(.92) brightness(1.02);
}

.home .hero .quick-actions{
  max-width:780px;
  width:100%;
  gap:12px;
  margin:26px auto 0;
}
.home .hero .qa{
  background:#fffdf8;
  border:1px solid rgba(25,133,111,.28);
  border-bottom:3px solid var(--home-green);
  border-radius:8px;
  color:var(--home-green-dark);
  box-shadow:0 12px 28px rgba(6,66,54,.08);
  padding:15px 10px;
  min-width:0;
}
.home .hero .qa .ico{font-size:1.35rem}
.home .hero .qa small{color:#60756f}

.home .gateway{
  max-width:860px;
  gap:12px;
  margin:18px auto 0;
}
.home .gw{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(25,133,111,.28);
  border-bottom:3px solid var(--home-gold);
  border-radius:8px;
  box-shadow:0 14px 34px rgba(6,66,54,.08);
  color:var(--home-green-dark);
  padding:15px 16px;
}
.home .gw small{color:#617a73}
.home .gw .go{color:var(--home-green)}

.home section{
  padding:86px 0;
  background:#fffdf7;
}
.home section:nth-of-type(even){
  background:linear-gradient(180deg,var(--home-cream-2),#fffdf7);
}
.home .sec-title{
  color:var(--home-green);
  font-size:clamp(1.55rem,2.2vw,2.15rem);
  line-height:1.45;
  margin-bottom:12px;
  letter-spacing:.06em;
}
.home .sec-title small{
  color:var(--home-gold);
  font-size:.72rem;
  letter-spacing:.2em;
  margin-bottom:9px;
}
.home .sec-title small::before,
.home .sec-title small::after{
  content:"";
  display:inline-block;
  width:18px;
  height:1px;
  background:var(--home-gold);
  vertical-align:middle;
  margin:0 12px;
}
.home .sec-lead{
  color:#536b65;
  font-size:.95rem;
  max-width:660px;
  margin:0 auto 32px;
}

.home .dept-grid{gap:14px}
.home .dept,
.home .prev-card{
  background:#fff;
  border:1px solid rgba(6,66,54,.13);
  border-bottom:3px solid rgba(25,133,111,.72);
  border-radius:8px;
  box-shadow:0 12px 26px rgba(6,66,54,.06);
  color:var(--home-green-dark);
}
.home .dept{
  padding:18px 12px;
  font-size:.88rem;
}
.home .dept .ico,
.home .prev-card .ico{filter:saturate(.75)}
.home .dept small,
.home .prev-card small{color:#657b75}
.home .dept::after,
.home .prev-card::after{color:var(--home-green)}
.home .prev-cards{gap:16px}
.home .prev-card{padding:22px 12px}

.home .specialty{background:var(--home-cream)}
.home .spec-cards{gap:22px}
.home .spec-card{
  background:#fffdf8;
  border:1px solid rgba(6,66,54,.14);
  border-bottom:4px solid var(--home-green);
  border-radius:8px;
  box-shadow:0 18px 40px rgba(6,66,54,.09);
}
.home .spec-card .ph{
  height:190px;
  background:var(--home-green-soft);
}
.home .spec-card .body{padding:22px 22px 24px}
.home .spec-card h3{
  color:var(--home-green-dark);
  font-size:1.18rem;
}
.home .spec-card .num{
  background:var(--home-green);
  border-radius:999px;
  padding:2px 11px;
}
.home .spec-card p{color:#526b65}
.home .spec-card .more{color:var(--home-green)}

.home .news-list{
  border-top:1px solid rgba(6,66,54,.14);
  max-width:880px;
  margin:0 auto;
}
.home .news-item{
  border-bottom:1px solid rgba(6,66,54,.14);
  padding:18px 34px 18px 8px;
}
.home .news-item::after{color:var(--home-green)}
.home .news-item .cat{
  background:var(--home-green-soft);
  color:var(--home-green-dark);
  border-radius:999px;
}

.home .trim-photo{
  max-width:860px;
  margin:0 auto 18px;
  border-radius:8px;
  box-shadow:0 18px 40px rgba(6,66,54,.09);
}
.home .trim-photo img{
  max-height:360px;
  object-position:center 38%;
}
.home .insta-grid{
  max-width:680px;
  margin:0 auto;
}
.home .insta-grid .ph{
  background:var(--home-green-soft);
  color:var(--home-green);
  border-radius:8px;
}

.home .policy-box{
  max-width:860px;
  margin-left:auto;
  margin-right:auto;
  background:#fff;
  border-left:4px solid var(--home-green);
  border-radius:0 8px 8px 0;
  box-shadow:0 10px 24px rgba(6,66,54,.05);
}
.home .policy-box h3{color:var(--home-green-dark)}

.home .access{background:var(--home-cream-2)}
.home .access iframe{border-radius:8px!important}
.home .info-table{
  background:#fffdf8;
  border-radius:8px;
  box-shadow:0 14px 30px rgba(6,66,54,.06);
}
.home .info-table th,
.home .info-table td{border-bottom:1px solid rgba(6,66,54,.12)}
.home .info-table th{color:var(--home-green)}

.home .site-footer{
  background:var(--home-green-mid);
  color:#eef6f2;
}
.home .site-footer a{color:#d9eee6}
.home .sticky-cta .tel{
  color:var(--home-green-dark);
  border-top-color:var(--home-green);
}
.home .sticky-cta .reserve{background:var(--home-green)}

.home .drawer{
  background:#f8f7ef;
}
.home .drawer-close{color:var(--home-green)}
.home .drawer a{
  color:var(--home-green-dark);
  border-bottom:1px solid rgba(6,66,54,.12);
}

@media(max-width:759px){
  .home .header-inner{
    min-height:66px;
    padding:10px 14px;
  }
  .home .logo{
    font-size:.92rem;
    gap:9px;
  }
  .home .logo small{
    display:none;
  }
  .home .logo::before{
    width:34px;
    height:34px;
  }
  .home .today-bar{
    font-size:.72rem;
    gap:0 10px;
  }
  .home .today-bar span{
    white-space:normal;
    text-align:center;
  }
  .home .hero{
    padding:46px 0 54px;
  }
  .home .hero h1{
    font-size:1.55rem;
    line-height:1.58;
    letter-spacing:.03em;
    overflow-wrap:anywhere;
  }
  .home .hero .sub{font-size:.88rem}
  .home .hero-img{
    height:260px;
    margin-top:26px;
  }
  .home .hero .quick-actions{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
  .home .hero .qa{
    padding:12px 4px;
    font-size:.74rem;
  }
  .home section{padding:58px 0}
  .home .prev-cards{grid-template-columns:1fr}
  .home .spec-card .ph{height:160px}
  .home .sec-title small::before,
  .home .sec-title small::after{
    width:12px;
    margin:0 8px;
  }
}

/* v2 desktop fit fixes */
@media(min-width:981px){
  .home .header-inner{
    max-width:1280px;
    gap:16px;
  }
  .home .logo{
    font-size:1.02rem;
  }
  .home .logo small{
    font-size:.72rem;
  }
  .home .home-nav a{
    min-width:86px;
    padding:4px 12px;
  }
  .home .btn-tel,
  .home .btn-reserve{
    min-width:116px;
    padding-left:14px;
    padding-right:14px;
  }
}

@media(min-width:1180px){
  .home .hero-img,
  .home .hero .quick-actions{
    position:static;
  }
  .home .hero-img{
    width:min(390px,78vw);
    height:220px;
    margin:46px auto 0;
  }
  .home .hero .quick-actions{
    width:520px;
    margin:22px auto 0;
  }
  .home .gateway{
    margin-top:22px;
  }
}

/* v8: make waiting-room photo the main visual */
.home .hero-img{
  width:min(980px,100%);
  max-width:980px;
  height:clamp(300px,42vw,460px);
  margin:42px auto 0;
}
.home .hero .quick-actions{
  margin-top:24px;
}

@media(min-width:1180px){
  .home .hero-img{
    width:min(980px,100%);
    max-width:980px;
    height:460px;
    margin:42px auto 0;
  }
  .home .hero .quick-actions{
    width:520px;
    margin:24px auto 0;
  }
}

@media(max-width:759px){
  .home .hero-img{
    width:100%;
    height:300px;
    margin-top:30px;
  }
}

/* v13 mobile: keep only hours + headline above photo */
@media(max-width:759px){
  .home .today-bar{
    display:flex!important;
    padding:12px 14px 0;
  }
  .home .today-bar span:first-child{
    display:block;
    white-space:normal;
    text-align:center;
  }
  .home .today-bar span:last-child{
    display:none;
  }
  .home .hero{
    padding:34px 0 72px;
  }
  .home .hero .container{
    display:flex;
    flex-direction:column;
  }
  .home .hero h1{
    order:1;
    margin:0 auto;
  }
  .home .hero h1::after{
    content:none;
    display:none;
  }
  .home .hero-img{
    order:2;
    position:static!important;
    width:100%;
    height:300px;
    margin:28px auto 0;
    clip-path:none!important;
  }
  .home .hero .quick-actions{
    order:3;
    position:static!important;
    width:auto;
    max-width:none;
    margin-top:20px;
  }
  .home .hero .sub{
    order:4;
    margin:22px auto 0;
    font-size:.82rem;
    line-height:1.9;
  }
  .home .hero-badges{
    order:5;
    display:flex!important;
    margin-top:18px;
  }
  .home .gateway{
    order:6;
    display:grid!important;
    position:static!important;
    grid-template-columns:1fr;
    margin-top:22px;
  }
}

/* v11: restore v7 first-view layout */
.home .today-bar{
  display:flex;
}
.home .hero{
  min-height:calc(100svh - 96px);
  padding:88px 0 104px;
  text-align:center;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 6% 42%, rgba(255,255,255,.65) 0 6%, transparent 7%),
    radial-gradient(ellipse at 91% 39%, rgba(255,255,255,.72) 0 7%, transparent 8%),
    radial-gradient(ellipse at 20% 79%, rgba(255,255,255,.6) 0 8%, transparent 9%),
    linear-gradient(180deg,var(--home-cream) 0%,var(--home-cream) 50%,var(--home-cream-2) 100%);
}
.home .hero::before{
  content:"";
  position:absolute;
  inset:auto;
  width:210px;
  height:170px;
  left:-26px;
  top:auto;
  bottom:10%;
  z-index:auto;
  opacity:.62;
  clip-path:none;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 45% 70%, rgba(38,150,125,.28) 0 9%, transparent 10%),
    radial-gradient(ellipse at 52% 58%, rgba(38,150,125,.35) 0 7%, transparent 8%),
    radial-gradient(ellipse at 61% 47%, rgba(38,150,125,.25) 0 6%, transparent 7%),
    linear-gradient(48deg, transparent 0 56%, rgba(38,150,125,.22) 57% 60%, transparent 61%);
}
.home .hero::after{
  content:"";
  position:absolute;
  width:320px;
  height:210px;
  right:-90px;
  top:auto;
  bottom:-10px;
  z-index:auto;
  opacity:.48;
  border-radius:0;
  box-shadow:none;
  pointer-events:none;
  background:
    linear-gradient(166deg, transparent 0 28%, rgba(230,218,173,.6) 29% 34%, rgba(255,253,246,.82) 35% 100%),
    radial-gradient(ellipse at 73% 70%, rgba(38,150,125,.24) 0 8%, transparent 9%);
}
.home .hero .container{
  max-width:980px;
  width:auto;
  min-height:0;
  padding:0 22px;
  position:relative;
  z-index:1;
}
.home .hero .container::after,
.home .hero-kicker{
  content:none;
  display:none;
}
.home .hero h1{
  max-width:760px;
  margin:0 auto;
  padding-top:0;
  color:var(--home-green);
  font-size:clamp(1.55rem,2.2vw,2.18rem);
  line-height:1.8;
  letter-spacing:.09em;
  font-weight:800;
  text-align:center;
}
.home .hero h1::before{
  content:none;
  display:none;
}
.home .hero h1::after{
  content:"OGIKUBO TWIN";
  display:block;
  color:var(--home-gold);
  font-size:.72rem;
  letter-spacing:.18em;
  font-weight:700;
  line-height:1;
  margin:22px 0 0;
}
.home .hero .sub{
  max-width:560px;
  margin:26px auto 0;
  color:#173e36;
  font-size:.94rem;
  line-height:2.15;
  font-weight:400;
  letter-spacing:0;
  text-align:center;
}
.home .hero-badges{
  display:flex;
  max-width:700px;
  margin:34px auto 0;
}
.home .hero-img{
  position:static;
  width:min(390px,78vw);
  max-width:390px;
  height:220px;
  margin:46px auto 0;
  border-radius:4px;
  clip-path:none;
  opacity:.92;
  box-shadow:0 14px 34px rgba(6,63,53,.11);
}
.home .hero .quick-actions{
  position:static;
  width:520px;
  max-width:520px;
  margin:22px auto 0;
}
.home .gateway{
  display:grid;
  position:static;
  max-width:760px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:22px auto 0;
}

@media(max-width:759px){
  .home .today-bar{
    display:flex!important;
  }
  .home .hero{
    min-height:auto;
    padding:54px 0 72px;
    text-align:center;
  }
  .home .hero .container{
    max-width:980px;
    width:auto;
    min-height:0;
    padding:0 22px;
  }
  .home .hero .container::after{
    content:none!important;
    display:none!important;
  }
  .home .hero h1{
    font-size:1.28rem;
    line-height:1.85;
    letter-spacing:.05em;
  }
  .home .hero .sub{
    font-size:.86rem;
    line-height:2;
    margin:26px auto 0;
  }
  .home .hero-badges{
    display:flex!important;
    margin-top:26px;
  }
  .home .hero-img{
    position:static!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:min(390px,100%);
    height:188px;
    margin-top:34px;
    clip-path:none!important;
  }
  .home .hero .quick-actions{
    position:static!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    width:auto;
    max-width:none;
    margin-top:20px;
  }
  .home .gateway{
    display:grid!important;
    position:static!important;
    grid-template-columns:1fr;
    margin-top:22px;
  }
}

/* v9: copy the reference first-view composition */
.home .today-bar{
  display:none;
}
.home .hero{
  min-height:calc(100svh - 92px);
  padding:56px 0 70px;
  background:linear-gradient(180deg,#fbfaf3 0%,#f5f8f1 100%);
  text-align:left;
}
.home .hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  opacity:1;
  background:#fbfaf3;
  clip-path:polygon(0 0,100% 0,100% 14%,0 43%);
}
.home .hero::after{
  content:"";
  position:absolute;
  right:26px;
  top:24px;
  z-index:4;
  width:54px;
  height:54px;
  border-radius:50%;
  background:#2f9b82;
  box-shadow:0 10px 28px rgba(6,63,53,.16);
}
.home .hero .container{
  max-width:none;
  width:100%;
  min-height:calc(100svh - 170px);
  padding:0 34px;
  position:relative;
  z-index:3;
}
.home .hero .container::after{
  content:"";
  position:absolute;
  right:44px;
  top:41px;
  z-index:8;
  width:20px;
  height:14px;
  background:
    linear-gradient(#fff,#fff) 0 0/20px 2px no-repeat,
    linear-gradient(#fff,#fff) 0 6px/20px 2px no-repeat,
    linear-gradient(#fff,#fff) 0 12px/20px 2px no-repeat;
}
.home .hero-kicker{
  position:relative;
  z-index:5;
  color:#78938c;
  font-size:1.02rem;
  font-weight:700;
  letter-spacing:.08em;
  margin:0 0 22px;
}
.home .hero h1{
  position:relative;
  z-index:5;
  max-width:610px;
  padding-top:0;
  color:#35a98c;
  font-size:clamp(3rem,5.2vw,5.4rem);
  line-height:1.48;
  letter-spacing:.08em;
  font-weight:800;
  margin:0;
}
.home .hero h1::before,
.home .hero h1::after{
  content:none;
}
.home .hero .sub{
  position:relative;
  z-index:5;
  color:#35a98c;
  font-size:1rem;
  font-weight:800;
  letter-spacing:.18em;
  margin:18px 0 0 10px;
}
.home .hero-badges{
  display:none;
}
.home .hero-img{
  position:absolute;
  z-index:1;
  left:34px;
  right:34px;
  bottom:126px;
  width:auto;
  max-width:none;
  height:min(58vh,620px);
  margin:0;
  border-radius:10px;
  box-shadow:none;
  clip-path:polygon(0 36%,100% 0,100% 100%,0 100%);
  opacity:.74;
}
.home .hero-img::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.18);
}
.home .hero-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 48%;
  filter:saturate(.78) brightness(1.08);
}
.home .hero .quick-actions{
  position:absolute;
  z-index:6;
  right:36px;
  bottom:94px;
  width:min(560px,52vw);
  margin:0;
  border-radius:8px;
  background:rgba(255,255,255,.94);
  box-shadow:0 12px 34px rgba(6,63,53,.14);
}
.home .gateway{
  display:none;
}
.home .gw{
  background:rgba(255,255,255,.96);
}

@media(max-width:759px){
  .home .hero{
    min-height:calc(100svh - 68px);
    padding:36px 0 64px;
  }
  .home .hero::before{
    clip-path:polygon(0 0,100% 0,100% 15%,0 38%);
  }
  .home .hero::after{
    width:50px;
    height:50px;
    right:22px;
    top:20px;
  }
  .home .hero .container{
    min-height:calc(100svh - 132px);
    padding:0 24px;
  }
  .home .hero .container::after{
    right:37px;
    top:36px;
  }
  .home .hero-kicker{
    font-size:.8rem;
    line-height:1.8;
    margin-bottom:20px;
  }
  .home .hero h1{
    font-size:2.8rem;
    line-height:1.55;
    letter-spacing:.06em;
  }
  .home .hero .sub{
    font-size:.78rem;
    margin-left:4px;
  }
  .home .hero-img{
    left:24px;
    right:24px;
    top:360px;
    bottom:auto;
    height:48vh;
    clip-path:polygon(0 34%,100% 0,100% 100%,0 100%);
  }
  .home .hero .quick-actions{
    left:24px;
    right:24px;
    bottom:86px;
    width:auto;
  }
}

/* requested hero/logo and sticky CTA adjustments */
.home .hero h1{
  padding-top:0;
}
.home .hero h1::before{
  content:none;
}
.home .sticky-cta .tel{
  background:#fff;
  color:#f39800;
  border-top:2.5px solid #f39800;
}
.home .sticky-cta .reserve{
  background:#f39800;
  color:#fff;
}

/* v2 final logo mark override */
.home .hero h1::before{
  background:url("../img/logo-mark.jpg") center/contain no-repeat;
  border-radius:0;
}

/* v2 final logo mark override */
.home .hero h1::before{
  background:url("../img/logo-mark.jpg") center/contain no-repeat;
  border-radius:0;
}

/* v2 final logo mark override */
.home .hero h1::before{
  background:url("../img/logo-mark.jpg") center/contain no-repeat;
  border-radius:0;
}

/* v2 logo asset swap */
.home .logo::before{
  content:none;
}
.home .logo img{
  display:block;
  width:210px;
  height:auto;
  flex:0 0 auto;
}
.home .logo span{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
.home .hero h1::before{
  background:url("../img/logo-mark.jpg") center/contain no-repeat;
  border-radius:0;
}

@media(max-width:759px){
  .home .logo img{
    width:178px;
  }
  .home .hero h1::before{
    width:112px;
    height:112px;
  }
}

/* ===== トップページ redesign v2: Morinosato-like faithful direction ===== */
body.home{
  --home-green:#26967d;
  --home-green-dark:#063f35;
  --home-green-muted:#7ab99a;
  --home-cream:#f8f7ef;
  --home-cream-2:#eef7f1;
  --home-line:#d9cfb6;
  --home-gold:#df9142;
  --home-ink:#0d3f35;
  background:var(--home-cream);
}
.home .site-header{
  background:rgba(248,247,239,.97);
  box-shadow:none;
}
.home .header-inner{
  max-width:1120px;
  min-height:92px;
  padding:16px 24px;
  gap:22px;
}
.home .logo{
  flex:0 0 auto;
  letter-spacing:.08em;
}
.home .logo::before{
  width:48px;
  height:48px;
  background:
    radial-gradient(circle at 50% 70%, #cbb18f 0 16%, transparent 17%),
    radial-gradient(ellipse at 42% 45%, #cbb18f 0 9%, transparent 10%),
    radial-gradient(circle at 37% 30%, #80bd91 0 8%, transparent 9%),
    radial-gradient(circle at 52% 22%, #80bd91 0 9%, transparent 10%),
    radial-gradient(circle at 65% 36%, #80bd91 0 8%, transparent 9%),
    radial-gradient(circle at 55% 48%, #ee9747 0 6%, transparent 7%),
    #fffdf6;
}
.home .home-nav{
  display:flex;
  align-items:stretch;
  justify-content:center;
  gap:0;
  margin-left:auto;
}
.home .home-nav a{
  min-width:98px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:4px 16px;
  border-left:1px solid rgba(6,63,53,.18);
  color:var(--home-green-dark);
  text-decoration:none;
  font-size:.78rem;
  font-weight:700;
  line-height:1.25;
}
.home .home-nav a:last-child{
  border-right:1px solid rgba(6,63,53,.18);
}
.home .home-nav span{
  color:var(--home-green);
  font-size:1.18rem;
  line-height:1;
  font-weight:400;
}
.home .header-cta{
  margin-left:8px;
}
.home .btn-tel,
.home .btn-reserve{
  min-width:126px;
  min-height:48px;
  border-radius:8px;
  font-size:.78rem;
}
.home .btn-tel{
  order:2;
}
.home .btn-reserve{
  order:1;
}
.home .menu-btn{
  min-width:56px;
  height:48px;
  font-size:1.22rem;
}

.home .today-bar{
  max-width:980px;
  margin:72px auto 0;
  border-top:1px dashed rgba(223,145,66,.55);
  border-bottom:0;
  padding:18px 12px 0;
  background:transparent;
  color:var(--home-green-dark);
}

.home .hero{
  min-height:calc(100svh - 96px);
  padding:88px 0 104px;
  background:
    radial-gradient(ellipse at 6% 42%, rgba(255,255,255,.65) 0 6%, transparent 7%),
    radial-gradient(ellipse at 91% 39%, rgba(255,255,255,.72) 0 7%, transparent 8%),
    radial-gradient(ellipse at 20% 79%, rgba(255,255,255,.6) 0 8%, transparent 9%),
    linear-gradient(180deg,var(--home-cream) 0%,var(--home-cream) 50%,var(--home-cream-2) 100%);
}
.home .hero::before{
  width:210px;
  height:170px;
  left:-26px;
  top:auto;
  bottom:10%;
  opacity:.62;
  background:
    radial-gradient(ellipse at 45% 70%, rgba(38,150,125,.28) 0 9%, transparent 10%),
    radial-gradient(ellipse at 52% 58%, rgba(38,150,125,.35) 0 7%, transparent 8%),
    radial-gradient(ellipse at 61% 47%, rgba(38,150,125,.25) 0 6%, transparent 7%),
    linear-gradient(48deg, transparent 0 56%, rgba(38,150,125,.22) 57% 60%, transparent 61%);
}
.home .hero::after{
  width:320px;
  height:210px;
  right:-90px;
  bottom:-10px;
  opacity:.48;
  background:
    linear-gradient(166deg, transparent 0 28%, rgba(230,218,173,.6) 29% 34%, rgba(255,253,246,.82) 35% 100%),
    radial-gradient(ellipse at 73% 70%, rgba(38,150,125,.24) 0 8%, transparent 9%);
}
.home .hero .container{
  max-width:980px;
}
.home .hero h1{
  max-width:760px;
  color:var(--home-green);
  font-size:clamp(1.55rem,2.2vw,2.18rem);
  line-height:1.8;
  letter-spacing:.09em;
  position:relative;
  padding-top:0;
}
.home .hero h1::before{
  content:none;
  position:absolute;
  left:50%;
  top:0;
  width:126px;
  height:126px;
  transform:translateX(-50%);
  border-radius:0;
  background:url("../img/logo-mark.jpg") center/contain no-repeat;
}
.home .hero h1::after{
  content:"OGIKUBO TWIN";
  display:block;
  color:var(--home-gold);
  font-size:.72rem;
  letter-spacing:.18em;
  font-weight:700;
  line-height:1;
  margin:22px 0 0;
}
.home .hero .sub{
  max-width:560px;
  margin-top:26px;
  color:#173e36;
  font-size:.94rem;
  line-height:2.15;
}
.home .hero-badges{
  max-width:700px;
  margin-top:34px;
}
.home .badge{
  background:transparent;
  border-color:rgba(38,150,125,.28);
  color:var(--home-green-dark);
}
.home .hero-img{
  width:min(360px,78vw);
  height:210px;
  margin:46px auto 0;
  border-radius:4px;
  box-shadow:0 14px 34px rgba(6,63,53,.11);
  opacity:.92;
}
.home .hero-img img{
  object-position:center 58%;
}
.home .hero .quick-actions{
  max-width:520px;
  margin-top:28px;
  gap:0;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(6,63,53,.08);
  border-radius:8px;
  box-shadow:0 10px 24px rgba(6,63,53,.09);
  overflow:hidden;
}
.home .hero .qa{
  border:0;
  border-right:1px solid rgba(6,63,53,.1);
  border-radius:0;
  box-shadow:none;
  background:transparent;
  padding:14px 10px;
}
.home .hero .qa:last-child{
  border-right:0;
}
.home .hero .qa .ico{
  display:none;
}
.home .hero .qa::after{
  content:" →";
  color:var(--home-green);
}
.home .gateway{
  max-width:760px;
  margin-top:18px;
  gap:10px;
}
.home .gw{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(6,63,53,.12);
  border-bottom:2px solid var(--home-gold);
  border-radius:8px;
  box-shadow:0 12px 26px rgba(6,63,53,.08);
}

.home section{
  background:#fffdf7;
}
.home section:nth-of-type(even){
  background:var(--home-cream);
}
.home .sec-title{
  font-size:clamp(1.42rem,2vw,1.92rem);
  line-height:1.8;
}
.home .dept,
.home .prev-card,
.home .spec-card,
.home .policy-box,
.home .info-table{
  border-radius:6px;
}

@media(min-width:1180px){
  .home .hero-img{
    position:absolute;
    right:58px;
    bottom:62px;
    margin:0;
    width:270px;
    height:180px;
  }
  .home .hero .quick-actions{
    position:absolute;
    right:58px;
    bottom:24px;
    width:420px;
    margin:0;
  }
  .home .gateway{
    margin-top:34px;
  }
}

@media(max-width:980px){
  .home .home-nav{
    display:none;
  }
  .home .header-inner{
    min-height:72px;
  }
  .home .today-bar{
    margin-top:0;
  }
}

@media(max-width:759px){
  .home .header-inner{
    min-height:66px;
  }
  .home .logo::before{
    width:38px;
    height:38px;
  }
  .home .today-bar{
    padding-top:12px;
  }
  .home .hero{
    min-height:auto;
    padding:54px 0 72px;
  }
  .home .hero h1{
    font-size:1.28rem;
    line-height:1.85;
    letter-spacing:.05em;
    padding-top:0;
  }
  .home .hero h1::before{
    content:none;
    display:none;
  }
  .home .hero h1::after{
    font-size:.72rem;
    margin-top:18px;
  }
  .home .hero .sub{
    font-size:.86rem;
    line-height:2;
  }
  .home .hero-badges{
    margin-top:26px;
  }
  .home .hero-img{
    height:188px;
    margin-top:34px;
  }
  .home .hero .quick-actions{
    max-width:none;
    margin-top:20px;
  }
  .home .hero .qa{
    padding:13px 4px;
    font-size:.72rem;
  }
  .home .hero .qa small{
    font-size:.72rem;
  }
}

/* v2 final overrides: keep desktop clean and non-overlapping */
@media(min-width:981px){
  .home .header-inner{
    max-width:1280px;
    gap:16px;
  }
  .home .logo{
    font-size:1.02rem;
  }
  .home .logo small{
    font-size:.72rem;
  }
  .home .home-nav a{
    min-width:86px;
    padding:4px 12px;
  }
  .home .btn-tel,
  .home .btn-reserve{
    min-width:116px;
    padding-left:14px;
    padding-right:14px;
  }
}

@media(min-width:1180px){
  .home .hero-img,
  .home .hero .quick-actions{
    position:static;
    right:auto;
    bottom:auto;
  }
  .home .hero-img{
    width:min(390px,78vw);
    height:220px;
    margin:46px auto 0;
  }
  .home .hero .quick-actions{
    width:520px;
    margin:22px auto 0;
  }
  .home .gateway{
    margin-top:22px;
  }
}

/* v8 final: enlarge waiting-room photo like the reference */
.home .hero-img{
  width:min(980px,100%);
  max-width:980px;
  height:clamp(300px,42vw,460px);
  margin:42px auto 0;
}

@media(min-width:1180px){
  .home .hero-img{
    width:min(980px,100%);
    max-width:980px;
    height:460px;
    margin:42px auto 0;
  }
  .home .hero .quick-actions{
    width:520px;
    margin:24px auto 0;
  }
}

@media(max-width:759px){
  .home .hero-img{
    width:100%;
    height:300px;
    margin-top:30px;
  }
}

/* v14: clean background, sharper photo, one-line header name, access emphasis */
.home .hero{background:#fbfaf3!important;}
.home .hero::before,.home .hero::after,.home .hero .container::after{content:none!important;display:none!important;}
.home .logo img{width:78px;height:68px;object-fit:contain;}
.home .logo span{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:nowrap;color:#f39800;font-size:1.35rem;font-weight:800;letter-spacing:0;}
.home .logo small{display:none;}
.home .hero-img{box-shadow:0 16px 42px rgba(6,63,53,.08);}
.home .hero-img img{filter:none!important;object-position:center center!important;}
@media(max-width:759px){
  .home .header-inner{padding:14px 24px;}
  .home .logo{gap:10px;}
  .home .logo img{width:86px;height:72px;}
  .home .logo span{font-size:1.35rem;line-height:1;}
  .home .hero{padding-bottom:112px;}
  .home .hero .quick-actions{display:grid;grid-template-columns:1fr;margin-top:18px;margin-bottom:18px;}
  .home .hero .quick-actions .qa:not([href="#access"]){display:none;}
  .home .hero .quick-actions .qa[href="#access"]{display:flex;min-height:64px;border:1.5px solid #f39800;border-bottom:3px solid #f39800;color:#f39800;background:#fff;font-size:1rem;}
  .home .hero .quick-actions .qa[href="#access"] small{color:#7a6f60;}
}

/* v15: remove extra hero label and make access the only above-fold utility CTA on mobile */
.home .hero h1::after{
  content:none!important;
  display:none!important;
}

@media(max-width:759px){
  .home .hero{
    padding-top:58px;
    padding-bottom:136px;
  }
  .home .hero .quick-actions{
    margin-top:18px;
    margin-bottom:28px;
  }
  .home .hero .quick-actions .qa[href="#access"]{
    align-items:center;
    justify-content:flex-start;
    flex-direction:row;
    gap:14px;
    min-height:74px;
    padding:14px 18px;
    text-align:left;
    box-shadow:0 16px 34px rgba(243,152,0,.12);
  }
  .home .hero .quick-actions .qa[href="#access"] .ico{
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:#fff4df;
    color:#f39800;
    font-size:1.35rem;
    flex:0 0 auto;
  }
  .home .hero .quick-actions .qa[href="#access"] small{
    margin-top:1px;
    font-size:.72rem;
  }
  .home .hero .quick-actions .qa[href="#access"]::after{
    content:"→";
    margin-left:auto;
    color:#f39800;
    font-size:1.35rem;
    line-height:1;
  }
  .home .gateway{
    margin-bottom:28px;
  }
}

/* v16: transparent logo mark, previous green tone, clearer photo, access in fixed CTA */
body.home{
  --home-green:#26967d;
  --home-green-dark:#063f35;
  --home-green-muted:#7ab99a;
}

.home .logo{
  gap:8px;
}
.home .logo img{
  width:62px!important;
  height:54px!important;
  object-fit:contain;
}
.home .logo span{
  color:#f39800;
  font-family:"Hiragino Maru Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
  font-size:1.16rem!important;
  font-weight:700;
  line-height:1;
  letter-spacing:.01em;
}
.home .hero h1{
  color:var(--home-green)!important;
}
.home .hero h1 .accent{
  color:var(--home-green-dark)!important;
}
.home .today-bar b{
  color:var(--home-green)!important;
}
.home .hero-img{
  background:#fffef9;
}
.home .hero-img img{
  filter:brightness(1.02) contrast(1.03) saturate(1.02)!important;
}
.home .hero .quick-actions .qa[href="#access"]{
  display:none!important;
}
.home .sticky-cta{
  grid-template-columns:unset;
  grid-auto-flow:column;
  grid-auto-columns:1fr;
}
.home .sticky-cta .access{
  background:#fff;
  color:#f39800;
  border-top:2.5px solid #f39800;
}

@media(max-width:759px){
  .home .header-inner{
    padding:14px 24px;
  }
  .home .logo img{
    width:64px!important;
    height:54px!important;
  }
  .home .logo span{
    font-size:1.08rem!important;
  }
  .home .hero{
    padding-bottom:118px;
  }
  .home .hero .quick-actions{
    display:none!important;
  }
  .home .gateway{
    margin-top:24px;
    margin-bottom:28px;
  }
  .home .sticky-cta a{
    padding:13px 4px;
    font-size:.92rem;
    white-space:nowrap;
  }
  .home .sticky-cta .tel{
    font-size:.88rem;
  }
}

/* v18: header logo balance, remove today strip, readable local/service copy */
.home .header-inner{
  align-items:center;
}
.home .logo{
  align-items:center;
  gap:13px;
  min-width:0;
}
.home .logo img{
  width:74px!important;
  height:60px!important;
  object-fit:contain;
  flex:0 0 auto;
}
.home .logo span{
  font-size:1.3rem!important;
  line-height:1;
  transform:translateY(3px);
}
.home .hero .sub{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  line-height:1.75;
  max-width:760px;
}
.home .hero .sub span{
  display:block;
}
.home .hero-badges{
  row-gap:12px;
  column-gap:10px;
  align-items:center;
}
.home .badge{
  line-height:1.45;
  white-space:nowrap;
}

@media(max-width:759px){
  .home .site-header{
    position:sticky;
  }
  .home .header-inner{
    min-height:82px;
    padding:12px 24px;
    align-items:center;
  }
  .home .logo{
    gap:10px;
    flex:1 1 auto;
    max-width:calc(100% - 66px);
  }
  .home .logo img{
    width:70px!important;
    height:58px!important;
  }
  .home .logo span{
    font-size:1.18rem!important;
    transform:translateY(3px);
    white-space:nowrap;
  }
  .home .hero{
    padding-top:64px;
  }
  .home .hero .sub{
    gap:3px;
    font-size:.9rem;
    line-height:1.8;
    margin-top:26px;
  }
  .home .hero-badges{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    width:100%;
    max-width:390px;
    margin-top:22px;
  }
  .home .badge{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:6px 8px;
    font-size:.72rem;
    white-space:normal;
    text-align:center;
  }
}

@media(max-width:390px){
  .home .logo img{
    width:64px!important;
    height:54px!important;
  }
  .home .logo span{
    font-size:1.08rem!important;
  }
  .home .hero-badges{
    grid-template-columns:1fr;
  }
}

/* v20: tighter hero opening and clearer SEO/service grouping below the photo */
.home .hero{
  padding-top:42px;
}
.home .service-summary{
  color:var(--home-green-dark);
  font-weight:700;
}
.home .service-summary span{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.home .service-summary b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:88px;
  padding:2px 9px;
  border:1px solid rgba(38,150,125,.25);
  border-radius:999px;
  color:var(--home-green);
  background:#fff;
  font-size:.72rem;
  line-height:1.5;
  white-space:nowrap;
}
.home .hero-badges{
  max-width:780px;
}
.home .badge{
  background:#fff;
}

@media(max-width:759px){
  .home .hero{
    padding-top:20px;
  }
  .home .hero h1{
    margin-top:0;
  }
  .home .hero-img{
    margin-top:26px;
  }
  .home .service-summary{
    gap:8px;
    margin-top:24px;
    font-size:.86rem;
    line-height:1.65;
  }
  .home .service-summary span{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:7px;
    width:100%;
    max-width:390px;
    text-align:left;
  }
  .home .service-summary b{
    min-width:72px;
    padding:2px 7px;
    font-size:.72rem;
  }
  .home .hero-badges{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:390px;
    margin-top:18px;
  }
  .home .badge{
    min-height:36px;
  }
  .home .badge:last-child{
    grid-column:1 / -1;
  }
}

@media(max-width:390px){
  .home .service-summary span{
    grid-template-columns:1fr;
    text-align:center;
  }
  .home .service-summary b{
    justify-self:center;
  }
  .home .hero-badges{
    grid-template-columns:1fr;
  }
}

/* v22: mobile hero section consolidation for readability + local search extraction */
.home .hero{
  padding-top:14px;
}
.home .hero-img{
  margin-top:22px;
  border-radius:12px;
}
.home .hero-info{
  max-width:780px;
  margin:16px auto 0;
  padding:16px 18px;
  background:#fff;
  border:1px solid rgba(38,150,125,.18);
  border-radius:12px;
  box-shadow:0 10px 30px rgba(6,63,53,.06);
}
.home .hero-info-title{
  margin:0;
  color:var(--home-green-dark);
  font-size:.96rem;
  text-align:center;
  line-height:1.7;
  letter-spacing:.01em;
}
.home .service-summary{
  list-style:none;
  margin:12px 0 0;
  padding:0;
  gap:8px;
  font-weight:700;
}
.home .service-summary li{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:9px;
  align-items:center;
}
.home .service-summary .summary-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:88px;
  padding:2px 9px;
  border:1px solid rgba(38,150,125,.25);
  border-radius:999px;
  color:var(--home-green);
  background:#f8fdfb;
  font-size:.72rem;
  line-height:1.5;
  white-space:nowrap;
}
.home .service-summary .summary-text{
  color:var(--home-green-dark);
}
.home .hero-badges{
  list-style:none;
  margin-top:14px;
  margin-bottom:0;
  padding:0;
  max-width:none;
  width:100%;
}
.home .badge{
  margin:0;
  background:#f7fcfa;
}

@media(max-width:759px){
  .home .hero .container{
    display:flex;
    flex-direction:column;
  }
  .home .hero{
    padding-top:8px;
  }
  .home .hero h1{
    order:1!important;
    line-height:1.58;
  }
  .home .hero-img{
    order:2!important;
    margin-top:18px;
    border-radius:10px;
  }
  .home .hero-info{
    order:3!important;
    max-width:390px;
    margin-top:14px;
    padding:13px 12px 12px;
    border-radius:10px;
  }
  .home .hero-info-title{
    font-size:.82rem;
    text-align:left;
    line-height:1.6;
  }
  .home .service-summary{
    margin-top:10px;
    gap:7px;
    font-size:.84rem;
    line-height:1.62;
  }
  .home .service-summary li{
    grid-template-columns:74px 1fr;
    gap:7px;
    align-items:start;
  }
  .home .service-summary .summary-tag{
    min-width:74px;
    font-size:.72rem;
    padding:2px 6px;
  }
  .home .hero-badges{
    margin-top:12px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    max-width:none;
  }
  .home .gateway{
    order:4!important;
  }
  .home .badge{
    min-height:38px;
    font-size:.72rem;
    line-height:1.5;
    padding:7px 8px;
  }
  .home .badge:last-child{
    grid-column:1 / -1;
  }
}

@media(max-width:390px){
  .home .service-summary li{
    grid-template-columns:1fr;
    text-align:center;
  }
  .home .service-summary .summary-tag{
    justify-self:center;
  }
}

/* v25: refine badge frame design inside hero info card */
.home .hero-badges{
  gap:10px;
}
.home .hero-badges .badge{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:8px 12px 8px 30px;
  border:1px solid rgba(38,150,125,.38);
  border-bottom:2px solid rgba(38,150,125,.56);
  border-radius:999px;
  background:linear-gradient(180deg,#ffffff 0%,#eef9f5 100%);
  box-shadow:0 3px 10px rgba(6,63,53,.06);
  color:var(--home-green-dark);
  font-weight:700;
  line-height:1.45;
  letter-spacing:0;
}
.home .hero-badges .badge::before{
  content:"";
  position:absolute;
  left:12px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#f39800;
  box-shadow:0 0 0 3px rgba(243,152,0,.14);
}

@media(max-width:759px){
  .home .hero-badges{
    gap:8px;
  }
  .home .hero-badges .badge{
    min-height:39px;
    padding:7px 8px 7px 25px;
    font-size:.72rem;
  }
  .home .hero-badges .badge::before{
    left:9px;
    width:8px;
    height:8px;
  }
}

/* Iconify icon system (global) */
iconify-icon{
  display:inline-flex;
  width:1em;
  height:1em;
  line-height:1;
  vertical-align:-0.08em;
}
iconify-icon svg{
  width:100%;
  height:100%;
  display:block;
  fill:currentColor;
}
.ico{
  display:grid;
  place-items:center;
}
.ico iconify-icon{
  display:block;
  font-size:1em;
}
.btn-tel iconify-icon,
.btn-reserve iconify-icon,
.menu-btn iconify-icon,
.sticky-cta iconify-icon,
.drawer-close iconify-icon,
.drawer a iconify-icon,
.spec-card h3 iconify-icon,
.today-bar iconify-icon{
  line-height:1;
}
.menu-btn iconify-icon{
  font-size:1.1em;
}
.drawer a iconify-icon{
  margin-right:8px;
}
.drawer-close iconify-icon{
  margin-right:6px;
}
.spec-card h3 iconify-icon{
  margin-right:4px;
}

/* home page color tweak */
.home .drawer a iconify-icon{
  color:var(--home-green);
}

/* Tighten top-page gap before MEDICAL section */
.home .hero + section{
  padding-top:46px;
}

@media(max-width:759px){
  .home .hero + section{
    padding-top:30px;
  }
}

/* v32: improve header CTA readability (reserve / phone) */
.home .btn-reserve{
  background:#f39800!important;
  border-color:#d88400!important;
  color:#063f35!important;
}
.home .btn-tel{
  background:#fff!important;
  border:2px solid #f39800!important;
  color:#a85a00!important;
}
.home .btn-reserve small{
  color:#063f35!important;
  font-weight:700;
}
.home .btn-tel small{
  color:#a85a00!important;
  font-weight:700;
}
.home .hero .quick-actions .qa[href="#access"]{
  display:flex!important;
}

/* ===== 2026-06-29 トップ ヒーロー刷新：四角写真の自動カルーセル（斜線カット廃止）＋予約ボタン色＋Instagram導線 ===== */
.home .hero{text-align:center!important;}
.home .hero::before,.home .hero::after{display:none!important;}
.home .hero .container{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:auto!important;max-width:780px!important;height:auto!important;min-height:0!important;margin:0 auto!important;padding:0 20px!important;clip-path:none!important;opacity:1!important;box-shadow:none!important;}
.hero-carousel{position:relative;margin:22px auto 0;max-width:760px;height:clamp(240px,40vw,440px);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.12);background:#f3efe7;}
.hero-carousel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease;}
.hero-carousel img.active{opacity:1;}
@media(max-width:759px){
  .home .hero{min-height:0!important;padding:40px 0 44px!important;}
  .home .hero .container{min-height:0!important;}
  .hero-carousel{height:62vw;max-width:100%;}
  .home .hero-img{clip-path:none!important;}
}
/* 予約ボタン：色合いを工夫（奥行きのあるオレンジグラデ＋影で主役感） */
.btn-reserve,.home .btn-reserve{background:var(--orange-pale,#fff3e0)!important;border:2px solid var(--orange,#f08300)!important;color:var(--orange-dark,#c96b00)!important;box-shadow:0 2px 8px rgba(240,131,0,.15)!important;}
.btn-reserve span,.home .btn-reserve span{font-size:.88rem!important;font-weight:800!important;text-shadow:none!important;color:var(--orange-dark,#c96b00)!important;}
.btn-reserve small,.home .btn-reserve small{font-size:.72rem!important;font-weight:700!important;opacity:1!important;text-shadow:none!important;color:var(--orange-dark,#c96b00)!important;letter-spacing:.01em;}
.home .sticky-cta .reserve{background:#f39800!important;color:#fff!important;}
/* Instagram 導線ボタン */
.insta-cta{display:flex;align-items:center;gap:12px;max-width:520px;margin:16px auto 0;padding:14px 18px;border-radius:14px;text-decoration:none;color:var(--orange-dark,#b9560f);background:#fff;border:1.5px solid var(--orange,#e3741f);box-shadow:0 3px 12px rgba(227,116,31,.12);font-weight:700;}
.insta-cta iconify-icon{font-size:1.7rem;flex:none;color:var(--orange,#e3741f);}
.insta-cta span{flex:1;font-size:.92rem;line-height:1.3;}
.insta-cta small{display:block;font-weight:500;font-size:.75rem;color:var(--gray,#888);}
.insta-cta .arrow{flex:none;font-size:1.4rem;font-weight:700;color:var(--orange,#e3741f);}

/* ===== 2026-06-29 ヒーロー 最終上書き（積層した実験CSSを高詳細度で完全制圧・flex縦並び） ===== */
body.home .hero{position:static!important;min-height:0!important;height:auto!important;padding:48px 0 40px!important;overflow:visible!important;}
body.home .hero::before,body.home .hero::after{display:none!important;}
body.home .hero .container{display:flex!important;flex-direction:column!important;align-items:center!important;position:static!important;width:auto!important;max-width:820px!important;height:auto!important;min-height:0!important;margin:0 auto!important;padding:0 20px!important;clip-path:none!important;opacity:1!important;transform:none!important;box-shadow:none!important;}
body.home .hero .container>*{position:static!important;inset:auto!important;width:100%!important;}
body.home .hero .hero-carousel{position:relative!important;max-width:1040px!important;height:clamp(240px,36vw,470px)!important;margin:22px auto 0!important;border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.12);}
body.home .hero .hero-carousel img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover;}

/* ===== 2026-06-30 ロゴ文字をPCで拡大（モバイルは据え置き） ===== */
body.home .logo span{font-size:1.65rem!important;}
@media(max-width:759px){ body.home .logo span{font-size:1.3rem!important;} }

/* ===== 2026-06-30 クイックアクションを大アイコン(イラスト)主役に ===== */
body.home .hero .qa{padding:18px 10px!important;gap:5px!important;font-size:.94rem!important;}
body.home .hero .qa::after{display:none!important;}
body.home .hero .qa .ico{display:none!important;}
body.home .hero .qa .qa-ill{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:rgba(25,133,111,.10);margin:0 auto 6px;}
body.home .hero .qa .qa-ill svg{width:36px;height:36px;fill:var(--home-green,#19856f);}

/* ===== 2026-06-30 予防カードも大アイコン(イラスト)主役に ===== */
body.home .prev-card{padding-top:18px!important;font-size:.96rem!important;}
body.home .prev-card .ico{display:none!important;}
body.home .prev-card .prev-ill{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:rgba(240,131,0,.10);margin:0 auto 8px;}
body.home .prev-card .prev-ill svg{width:36px;height:36px;fill:var(--orange,#f08300);}

/* ===== 2026-07-04 お知らせ・ブログ欄の作り込み =====
   お知らせ=手動更新の告知枠／ブログ=REST(_embed)からサムネ・カテゴリ色バッジ付きカード3枚。
   移設前は現ブログへ直接fetch(CORS確認済)・移設後は同一ドメインblog/を自動優先。 */
.notice-box{display:flex;gap:12px;align-items:flex-start;max-width:720px;margin:0 auto 26px;
  padding:14px 16px;background:var(--orange-pale,#fff3e0);border:1.5px solid rgba(240,131,0,.45);
  border-left:5px solid var(--orange,#f08300);border-radius:10px;text-align:left;
  box-shadow:0 3px 12px rgba(240,131,0,.12)}
.notice-tag{flex:0 0 auto;font-size:.72rem;font-weight:700;color:#fff;background:var(--orange,#f08300);
  border-radius:999px;padding:4px 11px;margin-top:2px;white-space:nowrap}
.notice-box ul{list-style:none;margin:0;padding:0}
.notice-box li{font-size:.88rem;font-weight:600;line-height:1.75;color:var(--ink,#333)}
/* お知らせとブログの区切り小見出し */
.blog-sub{display:flex;align-items:baseline;gap:8px;max-width:720px;margin:0 auto 10px;
  font-size:.92rem;color:var(--home-green-dark,#0d4a3c)}
.blog-sub small{font-size:.72rem;font-weight:600;color:#8a9a90}
@media(min-width:760px){.blog-sub{max-width:920px}}
.notice-box li time{color:var(--orange-dark,#c96f00);font-weight:700;font-size:.76rem;margin-right:8px}
.notice-photo{display:block;margin-top:6px}
.notice-photo img{max-width:220px;max-height:130px;border-radius:8px;display:block}
.news-cards{display:grid;gap:12px;max-width:720px;margin:0 auto}
.news-card{display:flex;gap:12px;align-items:center;background:#fff;
  border:1px solid rgba(38,150,125,.16);border-radius:12px;padding:10px;
  text-decoration:none;color:var(--ink,#333);box-shadow:0 2px 10px rgba(6,63,53,.05)}
.news-card:active{transform:translateY(1px)}
.news-card .thumb{flex:0 0 96px;width:96px;height:72px;border-radius:8px;overflow:hidden;background:#f4efe6}
.news-card .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.news-card .body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;text-align:left}
.news-card .meta{display:flex;gap:8px;align-items:center;font-size:.72rem;color:#7a6a5e}
.news-card .ncat{color:#fff;border-radius:999px;padding:1px 9px;font-size:.72rem;font-weight:700;white-space:nowrap}
.news-card .ttl{font-size:.85rem;font-weight:600;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-more{text-align:center;margin-top:14px}
.news-more a{font-size:.84rem;font-weight:700;color:var(--orange-dark,#c96f00);text-decoration:none}
@media(min-width:760px){
  .news-cards{grid-template-columns:repeat(3,1fr);max-width:920px}
  .news-card{flex-direction:column;align-items:stretch;padding:0 0 14px;gap:10px}
  .news-card .thumb{width:100%;flex:none;height:150px;border-radius:12px 12px 0 0}
  .news-card .body{padding:0 14px}
  .news-card.no-thumb{padding-top:14px}
}

/* ===== 2026-07-03 モバイルヒーロー：写真をヘッダー直下・全幅・大きく =====
   院長指示: 現HPのデザイン性（全幅の大きな写真）に寄せる。余白を詰め、写真を主役に。
   full-bleedは margin: calc(50% - 50vw) 方式（containerの左右paddingを打ち消して画面幅いっぱい）。 */
@media(max-width:759px){
  body.home .hero{padding-top:0!important;}
  body.home .hero .hero-carousel{
    width:100vw!important;max-width:none!important;
    margin:0 calc(50% - 50vw)!important;
    height:clamp(380px,58vh,600px)!important;
    border-radius:0;
    box-shadow:0 10px 24px rgba(0,0,0,.10);
  }
}

/* ===== 2026-07-04 モバイルヒーロー仕上げ：タイトルを写真下部にオーバーレイ（現HPのデザイン性に寄せる・院長指示） =====
   h1を写真の下部に白文字で重ね、下側だけ薄暗いグラデで可読性を確保。
   ⚠ top の clamp はカルーセルの height と同じ値で連動（変えるときは両方揃える）。 */
@media(max-width:759px){
  body.home .hero .container{position:relative!important}
  body.home .hero .hero-carousel::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:42%;
    background:linear-gradient(180deg,rgba(15,25,22,0) 0%,rgba(15,25,22,.62) 100%);
    pointer-events:none;z-index:1;
  }
  /* >h1 で書く理由: 既存の `body.home .hero .container>*{position:static!important}` に
     詳細度で勝つため（負けるとtransformだけ効いて元の場所に空白が残る） */
  body.home .hero .container>h1{
    /* top/left/right は既存の inset:auto!important に勝つため !important 必須 */
    position:absolute!important;left:0!important;right:0!important;z-index:2;
    top:clamp(380px,58vh,600px)!important;transform:translateY(-100%)!important;
    margin:0!important;padding:0 20px 16px;
    color:#fff!important;font-size:1.5rem;line-height:1.5;letter-spacing:.04em;
    text-shadow:0 1px 12px rgba(0,0,0,.45);
    pointer-events:none;
  }
  body.home .hero .container>h1 .accent{color:#ffc078!important}
}

/* ===== 2026-06-30 トリミング節に Instagram ライブフィード（Behold）設置 ===== */
behold-widget.insta-feed{display:block;max-width:720px;margin:0 auto 14px;min-height:80px;}

/* ===== 2026-07-02 診療案内グリッド：Phosphor duotone・科別カラー（試作・D案） ===== */
.dept .dico-svg{width:34px;height:34px;display:block;margin:0 auto}
body.home .dept .ico.dico{filter:none}

/* ===== 2026-07-03 アイコンD案 全サイト展開（院長指示） =====
   js/iconify-mdi.json の中身を Phosphor duotone の描画に総入替（mdi:名はそのまま）。
   カテゴリ系グリッドは D案パレット8色をローテーションで着色。
   （トップ診療案内はインラインSVGで個別着色済＝inline styleが優先されるので不干渉） */
.dept-grid .dept:nth-child(8n+1) .ico iconify-icon{color:#5f9a90}
.dept-grid .dept:nth-child(8n+2) .ico iconify-icon{color:#6fa663}
.dept-grid .dept:nth-child(8n+3) .ico iconify-icon{color:#9d82c4}
.dept-grid .dept:nth-child(8n+4) .ico iconify-icon{color:#cf8296}
.dept-grid .dept:nth-child(8n+5) .ico iconify-icon{color:#6b8fc4}
.dept-grid .dept:nth-child(8n+6) .ico iconify-icon{color:#8a86cc}
.dept-grid .dept:nth-child(8n+7) .ico iconify-icon{color:#cf9a52}
.dept-grid .dept:nth-child(8n+8) .ico iconify-icon{color:#d88a6a}
.dz-grid .dz-sym:nth-child(8n+1) .ic iconify-icon{color:#5f9a90}
.dz-grid .dz-sym:nth-child(8n+2) .ic iconify-icon{color:#cf8296}
.dz-grid .dz-sym:nth-child(8n+3) .ic iconify-icon{color:#cf9a52}
.dz-grid .dz-sym:nth-child(8n+4) .ic iconify-icon{color:#6b8fc4}
.dz-grid .dz-sym:nth-child(8n+5) .ic iconify-icon{color:#9d82c4}
.dz-grid .dz-sym:nth-child(8n+6) .ic iconify-icon{color:#6fa663}
.dz-grid .dz-sym:nth-child(8n+7) .ic iconify-icon{color:#d88a6a}
.dz-grid .dz-sym:nth-child(8n+8) .ic iconify-icon{color:#8a86cc}
.feat h3 iconify-icon{color:var(--home-green,#19856f)}

/* ===== 2026-07-03 トップ hero-info＝C2「数字スタット型」（院長選定） =====
   ピル型バッジ5つ（キーワードの雲・ボタン誤認）を廃止し、
   数字主役の4スタット（6名/1,300件/24時間/月1回）に置換。
   SEO: 削った語はsummary行とスタットのラベルに実テキストとして温存。 */
.home .hero-stats{
  list-style:none;margin:12px 0 0;padding:11px 0 0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:6px;
  border-top:1px dashed rgba(25,133,111,.25);text-align:center;
}
.home .hero-stats li small{display:block;font-size:.72rem;color:#5a7a70;font-weight:600;line-height:1.4}
.home .hero-stats li b{display:block;font-size:1.02rem;color:var(--home-green-dark);line-height:1.3;margin-top:1px}
.home .hero-stats li b i{font-style:normal;font-size:.72rem;font-weight:700}
@media(max-width:759px){
  .home .hero-stats li small{font-size:.72rem}
  .home .hero-stats li b{font-size:.95rem}
}

/* ===== 2026-07-03 下層ヒーローバッジ＝B案「一枚の情報帯型」（全下層ページ統一・院長承認） =====
   ピル型はアンカーボタンと同形状で「押せそう」に見えるため廃止。
   薄い緑の帯1枚に✓項目をまとめ、強調を保ちつつボタン感・浮遊感を解消する。
   .page-hero スコープ＝トップの .hero-info 内バッジ（別コンポーネント）には影響しない。 */
.home .page-hero .hero-badges{
  display:flex;gap:4px 22px;justify-content:center;flex-wrap:wrap;
  max-width:520px;margin:16px auto 0;padding:9px 18px;
  background:rgba(25,133,111,.06);border-radius:10px;
}
.home .page-hero .hero-badges .badge{
  position:static;display:inline;min-height:0;padding:0;
  border:none;border-radius:0;background:transparent;box-shadow:none;
  font-size:.78rem;font-weight:600;color:var(--home-green-dark,#0d4a3c);
  white-space:normal;line-height:1.5;letter-spacing:0;
}
.home .page-hero .hero-badges .badge::before{
  content:"✓ ";position:static;width:auto;height:auto;
  border-radius:0;background:none;box-shadow:none;
  color:var(--home-green,#19856f);font-weight:700;
}

/* ===== 2026-07-02 予防医療カード再設計：モバイルは横並びリストで密度UP（枠デカ・余白過多の解消） ===== */
.prev-card .pc-title{display:block;line-height:1.3}
@media(max-width:759px){
  body.home .prev-cards{grid-template-columns:1fr;gap:10px}
  body.home .prev-card{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 44px 14px 14px;position:relative}
  body.home .prev-card .prev-ill{width:56px;height:56px;margin:0;flex:0 0 auto}
  body.home .prev-card .prev-ill svg{width:32px;height:32px}
  body.home .prev-card .pc-body{flex:1 1 auto;min-width:0}
  body.home .prev-card .pc-title{font-size:1.14rem;font-weight:700}
  body.home .prev-card small{font-size:.82rem;margin-top:3px}
  body.home .prev-card::after{content:"›";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:1.7rem;line-height:1;color:var(--home-green);font-weight:700;margin:0}
}

/* v62: 診療案内 総合診療ハブ＋主な診療科ラベル＋その他リンク */

.dept-more{display:block;text-align:center;margin-top:14px;font-size:.82rem;font-weight:700;
  color:var(--orange-dark);text-decoration:none}
.dept-more:active{opacity:.7}
@media(min-width:760px){
  
  
}

/* v64: 日本語の読みやすい改行ルール
   ・見出し=text-wrap:balanceで一語だけ次行に落ちるのを防ぐ
   ・本文=禁則処理(line-break:strict)で句読点や小さい仮名が行頭に来ないようにしつつ、
     各行を枠の右端まで詰める（標準的な日本語の折り返し）。
   ※以前は word-break:auto-phrase で文節折り返ししていたが、行の右側に余白が出て
     「幅いっぱいに見えない」ため取りやめ（2026-07-05 院長指摘）。 */
body{line-break:strict}
h1,h2,h3,h4,.sec-title,.hero-info-title,.pc-title,.page-hero h1,.hero h1,.cta-band p{text-wrap:balance}
.sub,.sec-lead,summary,.badge{text-wrap:pretty}

/* v63: 緊急受診サイン（フラットなカードリスト・箱の入れ子や部分強調をやめて統一） */
.urgent{background:#fff4ef}
.urgent-list{list-style:none;display:grid;gap:9px;margin:16px 0 0}
.urgent-list li{position:relative;padding:12px 14px 12px 42px;background:#fff;border:1px solid #eecabb;
  border-radius:10px;font-size:.9rem;line-height:1.7;font-weight:600}
.urgent-list li::before{content:"!";position:absolute;left:13px;top:50%;transform:translateY(-50%);
  display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#e07a4f;
  color:#fff;font-size:.74rem;font-weight:800}
.urgent-note{font-size:.88rem;margin-top:15px}

/* v66: 症状からみる受診の目安（受診レベルで2グループに集約・レベル見出し＋該当症状リスト＋原因の補足） */
.guide-list{display:grid;gap:12px;margin-top:16px}
.guide-item{background:#fff;border:1px solid var(--line);border-left-width:4px;border-radius:10px;padding:14px 16px}
.guide-item.now{border-left-color:#e07a4f}
.guide-item.soon{border-left-color:#e0a300}
.guide-item.calm{border-left-color:#6fa663}
.gi-lv{font-weight:800;font-size:1rem;margin-bottom:9px}
.guide-item.now .gi-lv{color:#cf5a2a}
.guide-item.soon .gi-lv{color:#b58200}
.guide-item.calm .gi-lv{color:#4f8a3f}
.gi-syms{list-style:none;display:grid;gap:6px;margin:0 0 10px}
.gi-syms li{position:relative;padding-left:17px;font-size:.92rem;font-weight:600;line-height:1.65}
.gi-syms li::before{content:"";position:absolute;left:3px;top:.6em;width:7px;height:7px;border-radius:50%}
.guide-item.now .gi-syms li::before{background:#e07a4f}
.guide-item.soon .gi-syms li::before{background:#e0a300}
.guide-item.calm .gi-syms li::before{background:#6fa663}
.gi-cause{font-size:.85rem;color:var(--gray);line-height:1.75}


/* ===== 健診プラン比較表 (prevention/checkup) 2026-07-07 ===== */
.plan-wrap{overflow-x:auto;margin:16px 0 0;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px}
.plan-table{border-collapse:collapse;width:100%;min-width:632px;background:#fff;font-size:.88rem;line-height:1.3}
.plan-table th,.plan-table td{border:1px solid var(--line);padding:5px 8px;text-align:center;vertical-align:middle}
.plan-table thead th{vertical-align:top;padding:9px 8px}
.plan-table .plan-name{display:block;font-weight:700;font-size:.9rem;line-height:1.25}
.plan-table .plan-sub{display:block;font-weight:400;font-size:.72rem;color:var(--gray);margin-top:3px;line-height:1.35}
.plan-table thead .corner,.plan-table tbody th,.plan-table tfoot th{position:sticky;left:0;z-index:2;text-align:left;background:#faf6ef;white-space:normal;min-width:140px;max-width:176px;font-weight:600;font-size:.82rem;line-height:1.28}
.plan-table thead .corner{z-index:3;vertical-align:middle}
.plan-table tbody tr:nth-of-type(odd) td{background:#fcfbf8}
.plan-table thead th.p1{background:#fdeee7}.plan-table thead th.p2{background:#eef6ea}
.plan-table thead th.p3{background:#eaf2fa}.plan-table thead th.p4{background:#f1eafb}
.plan-table thead .p1 .plan-name{color:#c1481f}.plan-table thead .p2 .plan-name{color:#3f8637}
.plan-table thead .p3 .plan-name{color:#245f97}.plan-table thead .p4 .plan-name{color:#5f3f96}
.plan-table td.y{font-weight:700;font-size:1.02rem}
.plan-table td.p1.y{color:#d0562c}.plan-table td.p2.y{color:#4f9a45}
.plan-table td.p3.y{color:#2f74b5}.plan-table td.p4.y{color:#7a53b0}
.plan-table tfoot .price th,.plan-table tfoot .price td{background:#fbf3ea;padding:9px 8px}
.plan-table tfoot .price td{font-weight:700;font-size:1.05rem;color:#2a2118}

/* ===== 健診 結果セクション (report / benefit) 2026-07-08 ===== */
.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}
.benefit{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 18px;text-align:center}
.benefit .b-ico{display:inline-flex;width:54px;height:54px;align-items:center;justify-content:center;border-radius:50%;background:#edf5ea;color:#4f9a45;font-size:1.6rem;margin-bottom:12px}
.benefit h3{font-size:1rem;font-weight:700;margin:0 0 7px;color:#2a2118}
.benefit p{font-size:.87rem;color:var(--gray);margin:0;line-height:1.75}
.report-pages-note{margin-top:18px;text-align:center;font-size:.86rem;color:var(--gray)}
.report-pages-note .rp{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:20px;padding:4px 12px;margin:4px 3px;font-size:.8rem;color:#5c5346;font-weight:500}
.report-pages-note small{display:block;margin-top:8px;color:var(--gray);font-size:.76rem}
.benefit .b-body{min-width:0}
@media(max-width:720px){.benefit-grid{grid-template-columns:1fr;gap:11px}.benefit{text-align:left;display:flex;gap:14px;align-items:center;padding:15px 16px}.benefit .b-body{flex:1}.benefit .b-ico{margin-bottom:0;flex:none;width:46px;height:46px;font-size:1.35rem}.benefit h3{margin-bottom:4px}}

/* ===== 読みやすさ第3ルール: 文節折り返し (2026-07-10 / tools/wrap-phrases.py とセット) =====
   見出し(h1/.sec-title/h3/FAQ質問summary)=文節スパン.w(inline-blockで文節の途中では折れない・カッコ内不可分)
   導入文(.sec-lead/.page-hero .sub)=wbr+keep-allで文節・句読点でのみ折り返す
   本文(カード内説明文/FAQ/リスト)=左寄せ+keep-all=wbr(文節)でのみ折り単語の途中で折らない(2026-07-20)。両端揃え時代の「行末まで詰める標準折り返し(7/5)」は左寄せ化で廃止 */
.w{display:inline-block;max-width:100%;word-break:keep-all;overflow-wrap:anywhere}
.sec-lead,.page-hero .sub,.gw small,.dept-more{word-break:keep-all;overflow-wrap:anywhere}
/* カード内説明文・FAQ回答・リスト＝左寄せ（読みやすさ優先・両端揃えの字間の間延びを構造的に回避／2026-07-19院長決定）。見出し・リード文の中央揃えは別途維持 */
.steps .step p,.fbody p,.policy-box p,.policy-box li,.benefit p,.faq-list .a,.urgent-list li,.urgent-note,.gi-syms li,.gi-cause,.gi-act{text-align:left;word-break:keep-all;overflow-wrap:anywhere}
.jt{word-break:keep-all;overflow-wrap:anywhere}
/* 持ち物リスト等: モバイルは項目名の下に説明を縦積み(2026-07-11院長指示) */
@media(max-width:759px){
  .info-table.stack-m tr{display:block;padding:9px 13px;border-bottom:1px solid var(--line)}
  .info-table.stack-m tr:last-child{border-bottom:none}
  .info-table.stack-m th,.info-table.stack-m td{display:block;width:auto;border-bottom:none;padding:0}
  .info-table.stack-m th{white-space:normal;margin-bottom:2px}
}
.nb{white-space:nowrap}
.policy-box p+p,.fbody p+p,.b-body p+p{margin-top:9px}
.policy-box p+p.cl,.fbody p+p.cl,.b-body p+p.cl{margin-top:2px}
a.tap{display:block;width:fit-content;margin-top:8px;white-space:nowrap;max-width:100%;text-align:left}
.dept-more{white-space:nowrap}
/* ゲートウェイ等のカード=タイトル/サブタイトルとも左寄せ(hero中央揃えの継承を遮断・2026-07-10院長指示) */
.gw{text-align:left}

/* ===== 歯科・治療の様子フォトグリッド (2026-07-11 旧サイトan12-17流用) ===== */
.flow-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}
.flow-photos figure{margin:0}
.flow-photos img{width:100%;height:120px;object-fit:cover;border-radius:10px;display:block}
.flow-photos figcaption{font-size:.74rem;color:var(--gray);text-align:center;margin-top:3px}
@media(max-width:640px){.flow-photos{grid-template-columns:repeat(2,1fr)}.flow-photos img{height:100px}}

/* ===== 求人・病院紹介スライドカルーセル (2026-07-11) ===== */
.slide-deck{position:relative;max-width:720px;margin:0 auto;border-radius:12px;overflow:hidden;box-shadow:0 6px 20px rgba(6,66,54,.12);background:#fff}
.slide-deck img{width:100%;display:none}
.slide-deck img.on{display:block}
.sd-btn{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:none;background:rgba(38,34,27,.55);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding-bottom:4px}
.sd-prev{left:8px}.sd-next{right:8px}
.sd-btn:active{background:rgba(38,34,27,.8)}
.sd-count{position:absolute;right:10px;bottom:8px;background:rgba(38,34,27,.55);color:#fff;font-size:.74rem;padding:2px 10px;border-radius:12px}

.case-gallery img{height:150px}
@media(max-width:640px){.case-gallery{grid-template-columns:repeat(3,1fr)}.case-gallery img{height:96px}}

/* CTAバンドの2ボタン版（3列グリッドに2個で左寄りになるのを防ぐ） */
.quick-actions.qa2{grid-template-columns:repeat(2,1fr);max-width:420px;margin-left:auto;margin-right:auto}

/* ===== モバイル: メニューボタンを常に表示（ロゴが伸びてボタンを画面外へ押し出すのを防ぐ） ===== */
@media(max-width:759px){
  .header-inner,.home .header-inner{flex-wrap:nowrap;gap:8px}
  .logo,.home .logo{flex:1 1 auto;min-width:0}
  .logo span,.home .logo span{min-width:0;overflow-wrap:anywhere}
  .menu-btn,.home .menu-btn{flex:0 0 auto}
}

/* ボタン1個/2個のときの整列（2026-09-04・メディアクエリの3列指定に勝つよう末尾に置く） */
.quick-actions.qa1{grid-template-columns:1fr!important;max-width:340px;margin-left:auto!important;margin-right:auto!important}
.quick-actions.qa2{grid-template-columns:repeat(2,1fr)!important}

/* ── アクセシビリティ改善（2026-09-04 監査レポート対応） ─────────── */
/* 本文へスキップ（キーボード/読み上げ利用者向け。フォーカス時のみ表示） */
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--orange);color:#fff;
  padding:10px 18px;border-radius:0 0 10px 0;font-weight:700;text-decoration:none}
.skip-link:focus{left:0}
/* タップ領域の確保（フッター・ドロワーの細いリンク） */
.f-links a{display:inline-block;padding:8px 6px}
.drawer a{min-height:44px;display:flex;align-items:center}

/* 2026-09-25 採点対応：更新日・関連するページ・フッターの診療時間・H1 の地域名 */
.updated{font-size:.8rem;color:#6b7680;text-align:right;margin:10px 0 0}
.related-sec{padding:10px 0 0}
.related-title{font-size:1rem;margin:0 0 6px}
.related-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.related-list a{display:inline-block;padding:7px 12px;border:1px solid #cfd8dc;border-radius:999px;font-size:.92rem;text-decoration:none}
.f-hours{font-size:.86rem;margin:2px 0 8px}
.h1-area{font-size:.6em;font-weight:500;color:#6b7680}
