.sh-directory{--sh-navy:#1c2b3a;--sh-coral:#e8734f;--sh-mint:#2f8f76;--sh-gold:#f2a33c;--sh-cream:#fdf6ec;max-width:1120px;margin:0 auto;color:#2a333c}.sh-directory *{box-sizing:border-box}.sh-directory__filters{display:grid;grid-template-columns:2fr 1fr;gap:12px;padding:18px;background:var(--sh-cream);border-top:4px solid var(--sh-coral);border-radius:10px}.sh-directory__filters label{font-weight:700;font-size:.9rem}.sh-directory__filters input[type=search],.sh-directory__filters select{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid #c9c0b3;border-radius:6px;background:#fff}.sh-directory__count{margin:18px 0;color:#6b6b6b}.sh-directory__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.sh-hotel{border:1px solid #e2ddd2;border-radius:12px;padding:20px;background:#fff;box-shadow:0 4px 14px rgba(28,43,58,.07);overflow:hidden}.sh-hotel__media{position:relative;margin:-20px -20px 18px;background:var(--sh-navy);overflow:hidden}.sh-hotel__media--photo{aspect-ratio:16/9}.sh-hotel__media--placeholder{height:54px;margin-bottom:14px}.sh-hotel__media img{display:block;width:100%;height:100%;object-fit:cover}.sh-hotel__media-placeholder{display:flex;height:100%;flex-direction:row;gap:12px;align-items:center;justify-content:center;color:#fff;background:linear-gradient(100deg,#1c2b3a 0 66%,#2f8f76 66% 85%,#f2a33c 85%)}.sh-hotel__media-placeholder b{font-size:.78rem;letter-spacing:.18em}.sh-hotel__media-placeholder small{margin:0;font-size:.62rem;letter-spacing:.2em;color:#fdf6ec}.sh-hotel__head{display:flex;justify-content:space-between;gap:14px}.sh-hotel__name{font-size:1.08rem;font-weight:700;line-height:1.45;color:var(--sh-navy);margin:0}.sh-hotel__name a{color:inherit!important;text-decoration:none!important}.sh-hotel__name a:hover{text-decoration:underline!important}.sh-hotel__loc{font-weight:700;color:var(--sh-mint);font-size:1.02rem;margin:2px 0 0}.sh-hotel__badges{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.sh-hotel__badge--age{background:#fde9df;color:#a8481f;font-size:.8rem;font-weight:700;padding:4px 8px;border-radius:5px;display:inline-flex;align-items:center;min-height:32px}.sh-hotel__price{font-size:.92rem;color:#3d4a55}.sh-hotel__price strong{color:var(--sh-navy);font-size:1.05rem}.sh-hotel__price small{color:#6b6b6b}.sh-hotel__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.sh-button{display:inline-block;padding:10px 14px;border:1px solid var(--sh-navy);border-radius:6px;color:var(--sh-navy)!important;text-decoration:none!important;font-weight:700;background:#fff;min-height:44px;line-height:24px}.sh-button--primary{color:#fff!important;background:var(--sh-navy);border-color:var(--sh-navy)}.sh-directory__empty{padding:20px;background:#fff6ea;border-left:5px solid var(--sh-gold)}@media(max-width:800px){.sh-directory__filters,.sh-directory__grid{grid-template-columns:1fr}.sh-hotel__head{display:block}}
/* 星評価（画像を使わず、背景クリップで塗りつぶし幅%を表現） */
.sh-stars{position:relative;display:inline-block;line-height:1;font-size:1.05rem;letter-spacing:2px;vertical-align:middle}
.sh-stars__track{color:#dcd6c9}
.sh-stars__fill{position:absolute;top:0;left:0;width:var(--sh-percent,0%);overflow:hidden;white-space:nowrap;color:var(--sh-gold, #f2a33c)}
.sh-stars--empty{color:#8c8577;font-size:.86rem;font-weight:700}
.sh-stars__label{margin-left:6px;font-size:.86rem;color:#5a6069;font-weight:700;vertical-align:middle}
.sh-hotel__rating,.sh-hotel-detail__rating{margin:8px 0}
/* 都道府県まとめ */
.sh-pref-summary{background:#f6f8fa;border:1px solid #e2ddd2;border-radius:10px;padding:18px 20px;margin:0 0 26px}
.sh-pref-summary__lead{margin:0 0 12px;font-size:1.02em;line-height:1.75}
.sh-pref-summary__lead strong{font-size:1.2em;color:var(--sh-coral,#e8734f)}
.sh-pref-summary__stats{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.sh-pref-summary__stats li{display:flex;align-items:baseline;gap:6px;background:#fff;border:1px solid #e2ddd2;border-radius:6px;padding:6px 11px;font-size:.88em}
.sh-pref-summary__stat-label{color:#596875}
.sh-pref-summary__stat-value{font-weight:700;color:#1c2b3a}
/* 都道府県索引（トップページ） */
.sh-pref-index{margin:22px 0}
.sh-pref-index__region{margin:0 0 18px}
.sh-pref-index__region-name{font-size:.95em;margin:0 0 8px;padding-left:10px;border-left:4px solid #f2a33c;color:#1c2b3a}
.sh-pref-index__list{list-style:none;display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0}
.sh-pref-index__list a,.sh-pref-index__none{display:flex;align-items:baseline;gap:6px;border-radius:6px;padding:7px 12px;font-size:.9em;text-decoration:none;min-height:44px}
.sh-pref-index__list a{background:#1c2b3a;color:#fff!important}
.sh-pref-index__list a small{color:var(--kfh-ink,#553e46);opacity:.85;font-size:.92em;font-weight:700}
.sh-pref-index__none{background:#f1f0ec;color:#8c8577;border:1px dashed #d5cfc1}
.sh-pref-index__none small{font-size:.78em}
/* 近隣県 */
.sh-pref-nearby{background:#f6f8fa;border:1px solid #e2ddd2;border-radius:10px;padding:16px 18px;margin:26px 0 0}
.sh-pref-nearby__title{margin:0 0 8px;font-size:.95em}
.sh-pref-nearby__links{margin:0 0 10px;line-height:2;font-size:.92em}
.sh-pref-nearby__hub{margin:0;font-size:.92em}
/* ホテル個別ページ */
.sh-hotel-detail{margin-top:28px;padding-top:22px;border-top:1px solid #e2ddd2}
.sh-hotel-detail__meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-weight:700;color:var(--sh-mint,#2f8f76)}
.sh-hotel-detail__gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:16px 0}
.sh-hotel-detail__gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.sh-hotel-detail__special{line-height:1.8;margin:14px 0}
.sh-hotel-detail__evidence,.sh-hotel-detail__price{background:#f6f8fa;border:1px solid #e2ddd2;border-radius:10px;padding:16px 18px;margin:18px 0}
.sh-hotel-detail__evidence h3,.sh-hotel-detail__price h3{margin:0 0 8px;font-size:1rem}
.sh-hotel-detail__price-value{font-size:1.3rem;font-weight:700;color:var(--sh-navy,#1c2b3a);margin:6px 0}
.sh-hotel-detail__price-updated{font-size:.85rem;color:#6b6b6b}
.sh-hotel-detail__disclaimer{font-size:.8rem;color:#6b6b6b;line-height:1.7;margin-top:10px}
.sh-hotel-detail__reserve{margin:22px 0}
/* タップ領域は44px以上を確保する（複製元の実測反省を踏襲） */
.sh-directory__check{min-height:44px;display:inline-flex;align-items:center;gap:.4em;padding:6px 12px}
.sh-directory__check input{min-width:22px;min-height:22px}
.sh-directory input[type=search],.sh-directory select{min-height:46px;font-size:16px}
@media(max-width:480px){.sh-directory__grid{gap:14px}}
/* v1.0.34 パンくず */
.sh-breadcrumb{font-size:.85em;color:#666;margin:0 0 12px}.sh-breadcrumb a{color:#2f8f76;text-decoration:none}

/* v1.0.37 添い寝の案内（施設の記載） */
.sh-hotel-detail__soine-notice{border:1px solid #d9d9d9;border-radius:8px;padding:14px 18px;margin:0 0 18px;background:#fafafa}
.sh-hotel-detail__soine-notice h3{font-size:1.05em;margin:0 0 10px}
.sh-hotel-detail__soine-notice ul{margin:0 0 10px;padding-left:1.4em}
.sh-hotel-detail__soine-notice li{margin:0 0 4px;line-height:1.6}
.sh-hotel-detail__soine-notice-note{font-size:.8em;color:#666;margin:0}

/* v1.0.40: 県固有ブロック（A〜D） */
.sh-pref-block{margin:1.6em 0}
.sh-pref-block__title{font-size:1.15em;margin:0 0 .6em}
.sh-pref-block__note{font-size:.88em;opacity:.8;margin:.6em 0 0}
.sh-pref-summary__price{margin:.6em 0 0}
.sh-pref-chains__list,.sh-pref-grade__list{padding-left:1.2em}
.sh-pref-chains__list li,.sh-pref-grade__list li{margin:.35em 0}
.sh-pref-areas__list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4em .8em}
.sh-pref-areas__list li{background:var(--kfh-cream,#fff7f0);border-radius:999px;padding:.25em .8em;font-size:.92em}
.sh-pref-areas__count{margin-left:.35em;font-weight:700}
/* v1.0.42: 市区町村ページへのリンク */
a.sh-pref-areas__name{text-decoration:underline;font-weight:700}
.sh-city-back{margin:1.2em 0}

/* v1.0.43: 最近確認したホテル */
.sh-recent__lead{font-size:.92em;margin:0 0 .8em}
.sh-recent__list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.sh-recent__item{background:#fff;border:1px solid #eadfd8;border-radius:10px;padding:10px 14px}
.sh-recent__name{font-weight:700;display:block;line-height:1.45}
.sh-recent__meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.85em;margin-top:6px;color:#5d5d5d}
.sh-recent__meta .sh-hotel__badge--age{min-height:26px;padding:2px 8px}
@media(max-width:800px){.sh-recent__list{grid-template-columns:1fr}}

/* v1.0.45 */
.sh-pref-summary__note{margin:.6em 0 0;font-size:.95em}

/* v1.0.48: 同じ市区町村のほかのホテル */
.sh-nearby{margin:1.8em 0}
.sh-nearby__heading{margin:0 0 .6em}
.sh-nearby__more{margin:.8em 0 0;font-size:.95em}

/* v1.0.52: layout=grouped（県ページの見本レイアウト） */
.sh-city-jump{margin:18px 0 8px;padding:14px 16px;background:#fff;border:1px solid #e2ddd2;border-radius:10px}.sh-city-jump__label{margin:0 0 8px;font-weight:700;font-size:.9rem;color:var(--sh-navy)}.sh-city-jump__list{display:flex;flex-wrap:wrap;gap:8px}.sh-city-jump__item{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 12px;border:1px solid var(--sh-navy);border-radius:999px;color:var(--sh-navy)!important;text-decoration:none!important;font-weight:700;font-size:.92rem;background:#fff}.sh-city-jump__item em{font-style:normal;font-weight:400;font-size:.8rem;color:#2f8f76}.sh-city-jump__item small{font-weight:400;color:#6b6b6b;font-size:.8rem}.sh-city-jump__item:hover,.sh-city-jump__item:focus-visible{background:var(--sh-cream)}.sh-city-jump__item[hidden],.sh-city-group[hidden]{display:none!important}.sh-city-group{margin:28px 0 0;scroll-margin-top:80px}.sh-city-group__title{margin:0 0 6px!important;padding:8px 0 8px 12px!important;border-left:5px solid var(--sh-mint);font-size:1.15rem;color:var(--sh-navy)}.sh-city-group__link{margin:0 0 12px;font-size:.9rem}.sh-hotel__rule{margin:6px 0 10px;padding:8px 10px;background:#f1f7f5;border-radius:6px;font-size:.86rem;line-height:1.6;color:#2a4a42}.sh-directory .sh-hotel__actions--compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-items:stretch}.sh-hotel__actions--compact .sh-hotel__actions-label{grid-column:1/-1;font-size:.82rem;font-weight:700;color:#6b6b6b}.sh-hotel__actions--compact .sh-button{min-height:40px;padding:8px 6px;font-size:.88rem;line-height:22px;text-align:center}body:not(.home) .sh-hotel__actions--compact .sh-button{padding:8px 6px!important;border-width:2px!important;box-shadow:2px 2px 0 var(--kfh-ink,#1c2b3a)!important;font-size:.9rem!important;line-height:22px!important;min-height:40px}.sh-hotel__more{display:inline-block;margin-top:10px;font-size:.9rem;font-weight:700;color:var(--sh-navy)!important}
/* v1.0.53: 見本レイアウトのカード（小さい写真＋宿ごとの特徴） */
.sh-hotel--compact{padding:16px}.sh-hotel__top{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;align-items:start}.sh-hotel__thumb{display:block;width:104px;height:78px;border-radius:8px;overflow:hidden;background:var(--sh-navy)}.sh-hotel__thumb img{display:block;width:100%;height:100%;object-fit:cover}.sh-hotel__thumb-placeholder{display:flex;height:100%;align-items:center;justify-content:center;color:#fff;font-size:.62rem;letter-spacing:.14em;font-weight:700}.sh-hotel--compact .sh-hotel__name{font-size:1rem}.sh-hotel--compact .sh-hotel__badges{margin:6px 0 0}.sh-hotel--compact .sh-hotel__badge--age{min-height:26px;font-size:.76rem}.sh-hotel--compact .sh-hotel__rating{margin:6px 0 0}.sh-hotel__facts{margin:12px 0 0;padding:0;display:grid;gap:4px;font-size:.88rem;line-height:1.55}.sh-hotel__facts>div{display:grid;grid-template-columns:4.2em minmax(0,1fr);gap:8px}.sh-hotel__facts dt{margin:0;font-weight:700;color:#6b6b6b;font-size:.8rem;padding-top:1px}.sh-hotel__facts dd{margin:0;color:#2a333c}.sh-hotel--compact .sh-hotel__rule{margin:10px 0 0}.sh-hotel--compact .sh-hotel__price{margin:10px 0 0;font-size:.88rem}
