/* Shared visual language: neutral surfaces, soft accents, readable cards. */
:root {
  --ink:#27312e; --muted:#606b67; --line:#e1e5e3;
  --brand:#4a7c59; --blue:#4a7c59; --bg:#f8f6f0; --white:#fff;
  --coral:#ff7e67; --butter:#fff3d6;
  --radius:24px; --shadow:0 4px 20px rgb(39 49 46 / 3%);
  font-family:"Pretendard","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Malgun Gothic",sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.8; letter-spacing:-.02em;
}
body { background:var(--bg); }
button,input,select { font-family:inherit; }
h1,h2,h3 { color:var(--ink); text-wrap:balance; }
h1 { font-size:clamp(1.9rem,3.5vw,2.9rem); line-height:1.3; letter-spacing:-.055em; }
p { line-height:1.85; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid #667f73; outline-offset:4px;
}
.wrap { max-width:1180px; }
.site-header { background:#ffffffed; border-color:var(--line); }
.header-inner { min-height:84px; gap:48px; }
.brand { font-size:1.4rem; }
.brand-mark { border-radius:12px; transform:none; background:var(--brand); }
.brand-mark svg { transform:none; }
.header-inner nav a { color:var(--muted); font-size:.875rem; }
.header-inner nav a[aria-current=page] { color:var(--brand); }
.header-caption { background:#edf1ee; border:0; color:#53675c; }
.finder-head { padding-top:48px; padding-bottom:40px; }
.finder-title { min-height:220px; margin-bottom:24px; }
.hero-copy { max-width:65%; }
.hero-art { opacity:.9; right:8px; }
.kicker { color:#5b7166; font-size:.78rem; font-weight:650; letter-spacing:.025em; }
.kicker::before { background:#a9bfb0; }
.intro { color:var(--muted); font-size:1rem; line-height:1.9; }
.data-label,.edition span,.eyebrow,.card-date,.search-status,.footer-bottom,.category-tile small { color:var(--muted); }
.search-form { border:1px solid #cdd7d1; border-radius:12px; background:#fff; box-shadow:var(--shadow); padding:9px 9px 9px 22px; }
.search-form input { font-size:1rem; }
.search-form input::placeholder { color:#68756e; }
.search-form button { border-radius:9px; background:var(--brand); min-height:46px; }
.search-form:focus-within { border-color:#7d9689; box-shadow:0 0 0 3px #dfe9e3; }
.category-grid { gap:16px; margin-top:24px; }
.category-tile,.place-card,.filters,.visit-box,.local-box,.source-card,.region-link,.fee-section,.empty-state {
  background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow);
}
.category-tile { padding:22px 18px; }
.category-tile small { word-break:keep-all; }
.category-tile:hover,.category-tile.selected { background:#f1f6f3; border-color:#b9cbbf; }
.category-icon,.place-card .category-icon,.detail-header .category-icon { border-radius:12px; }
.blue { background:#e6edf3; color:#4d667b; }
.violet { background:#ede8f4; color:#756183; }
.green { background:#e4ede5; color:#506d55; }
.orange { background:#f3e9e1; color:#8c6849; }
.results-section { background:var(--bg); border-color:var(--line); padding:36px 0 56px; }
.directory-layout { gap:28px; }
.filters { padding:24px; }
.filters select,.sort-label select { background:#fff; border-color:#d7ded9; border-radius:9px; color:var(--ink); }
.filters>label:not(.checkbox-label),.filter-note { color:var(--muted); }
.filter-note,.coverage-note,.section-caption { font-size:.82rem; line-height:1.85; }
.results-toolbar h2 span { background:#e5ece7; color:var(--brand); }
.results-grid { gap:18px; }
.place-card { padding:25px 22px; gap:16px; }
.place-card:hover { transform:translateY(-2px); border-color:#b8c8bf; box-shadow:0 12px 30px #263c300a; }
.place-card h3 { font-size:1.06rem; line-height:1.65; }
.eyebrow { font-size:.76rem; margin-bottom:8px; }
.address { color:var(--muted); font-size:.875rem; line-height:1.8; margin:12px 0; }
.tags { gap:6px; }
.tags span { background:#f0f3f1; color:#526459; border-radius:6px; font-size:.75rem; padding:4px 9px; }
.card-date { font-size:.75rem; border-color:#eef1ef; padding-top:14px; margin-top:20px; }
.pagination a,.pagination button { min-width:44px; min-height:44px; border-radius:10px; background:#fff; }
.pagination a[aria-current],.pagination button[aria-current] { background:var(--brand); color:#493327; }
.prose { padding-top:48px; }
.prose h1 { font-size:clamp(1.9rem,3.2vw,2.6rem); margin-bottom:24px; }
.family-hub { max-width:1100px; }
.family-hub>p { max-width:800px; color:var(--muted); }
.family-entry { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:30px 0; }
.family-entry a { min-width:0; padding:22px 20px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:var(--shadow); gap:9px; }
.family-entry a:nth-child(4n+2) { background:#f3f0f7; }
.family-entry a:nth-child(4n+3) { background:#f0f5f2; }
.family-entry a:nth-child(4n+4) { background:#f8f3ee; }
.family-entry strong { font-size:1rem; line-height:1.65; color:var(--ink); }
.family-entry span { color:var(--muted); font-size:.8rem; }
.family-entry a:hover,.family-entry a[aria-current] { background:#e6eee9; border-color:#9bb5a5; }
.family-hub>section:not(.coverage-notice) { padding:26px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); margin:20px 0; }
.family-hub>section>h2 { margin:0 0 18px; font-size:1.1rem; }
.family-hub>section>h2 a { color:var(--ink); text-decoration:none; }
.coverage-notice,.prose .coverage-notice { background:#eaf0ed; border:1px solid #d7e2db; border-radius:12px; padding:24px 28px; margin:28px 0; }
.coverage-notice h2 { font-size:1.08rem; margin:0 0 10px; line-height:1.6; }
.coverage-notice p { color:#53665b; font-size:.875rem; margin:7px 0; }
.condition-links { gap:10px; }
.condition-links a { background:#f7f8f7; color:#465b50; border:1px solid #e3e8e5; border-radius:10px; min-height:44px; padding:10px 15px; font-size:.85rem; text-decoration:none; }
.condition-links a:hover { border-color:#b1c3b7; background:#eaf1ed; }
.condition-links a[aria-current] { background:var(--brand); color:#fff; }
.family-hub nav[aria-label="지역 바로가기"] { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:24px 0 36px; }
.family-hub nav[aria-label="지역 바로가기"] a { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 18px; background:#fff; box-shadow:var(--shadow); border-radius:12px; }
.condition-main>h1 { font-size:clamp(1.8rem,3.3vw,2.5rem); }
.summary-box { border:1px solid #dde6e0; border-radius:12px; background:#eef3f0; padding:28px; }
.summary-box p { color:#53665b; font-size:.96rem; }
.family-check,.share-card { border:1px solid var(--line); border-radius:12px; padding:26px; box-shadow:var(--shadow); }
.family-check { background:#fff; }
.family-check h2,.share-card h2 { font-size:1.15rem; line-height:1.6; }
.family-check dl>div { padding:13px 0; border-color:#e7ece9; }
.family-check dt,.family-check dd { font-size:.9rem; overflow-wrap:anywhere; min-width:0; }
.share-card { background:#f0edf5; }
.share-actions button { border:1px solid #d9d2e1; border-radius:9px; background:#fff; color:#544761; min-height:44px; }
.detail-layout>article,.detail-aside,.results-main { min-width:0; }
.detail-header h1 { font-size:clamp(1.7rem,3vw,2.35rem); }
.visit-box,.local-box { padding:26px; }
.primary-button { background:var(--brand); color:#fff; border-radius:9px; font-size:.9rem; }
.secondary-button { background:#fff; border-radius:9px; font-size:.9rem; }
.map-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:16px 0 12px; }
.map-link { display:flex; align-items:center; justify-content:center; min-height:46px; padding:12px 8px; border:1px solid; border-radius:12px; font-size:.82rem; font-weight:650; text-align:center; word-break:keep-all; }
.map-link--naver { background:#e5eee8; border-color:#ccdcd1; color:#3c5c4c; }
.map-link--kakao { background:#f3eedf; border-color:#e4dbc1; color:#62573d; }
.map-link--naver:hover { background:#dce9e0; color:#314d3e; }
.map-link--kakao:hover { background:#ede5d0; color:#554a30; }
.info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:20px 0 0; }
.info-item { min-width:0; padding:22px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); }
.info-item--wide { grid-column:1/-1; }
.info-item dt { font-size:.8rem; font-weight:550; color:var(--muted); margin-bottom:8px; }
.info-item dd { margin:0; font-size:1rem; line-height:1.8; font-weight:600; word-break:keep-all; overflow-wrap:anywhere; }
.fee-section { padding:26px; }
.fee-examples>div { background:#edf2ef; border-radius:12px; }
.condition-stats span { background:#e8eeea; color:#415e50; border-radius:12px; padding:12px 18px; }
.comparison-scroll { background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); border-radius:12px; overflow:auto; overscroll-behavior-x:contain; }
.comparison-table { border-top:0; border-collapse:separate; border-spacing:0; }
.comparison-table th,.comparison-table td { padding:20px; background:#fff; border-color:#e8ece9; }
.comparison-table thead th { background:#edf2ef; color:#4d6256; }
.comparison-table small { color:var(--muted); }
.region-link,.source-card { padding:25px; }
.source-note { margin:22px 0; padding:24px; background:#edf0ee; border-radius:12px; }
.source-note p { color:var(--muted); font-size:.84rem; }
.region-link span { font-size:.82rem; }
.preview-note { background:#edf2ef; }
/* AdSense Slot: reserved space only. No ad script or tracking is loaded. */
.ad-slot { display:grid; place-items:center; min-height:120px; width:100%; max-width:970px; margin:36px auto; padding:24px; background:#ecefef; border:1px solid #e0e5e3; border-radius:12px; color:#66716c; }
.ad-slot span { font-size:.75rem; letter-spacing:.06em; }
.directory>.ad-slot { width:calc(100% - 56px); }
footer { background:#fff; border-color:var(--line); margin-top:20px; }
.footer-inner p,.footer-bottom { color:var(--muted); }
@media(max-width:1000px) {
  .header-inner { gap:28px; }
  .family-entry { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .home-family { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .category-tile { padding:18px 13px; }
  .directory-layout { grid-template-columns:195px minmax(0,1fr); }
}
@media(max-width:680px) {
  .wrap { padding-left:20px; padding-right:20px; }
  .header-inner { min-height:76px; padding:15px 20px; row-gap:14px; flex-wrap:wrap; }
  .brand { font-size:1.3rem; }
  .header-inner nav { width:100%; margin:0; justify-content:space-between; gap:10px; }
  .header-inner nav a,.header-inner nav a:last-child { display:block; font-size:.875rem; min-height:40px; padding:8px 0; }
  .finder-head { padding-top:30px; }
  .finder-title { min-height:190px; }
  .hero-copy { max-width:100%; }
  .hero-copy h1 { font-size:2rem; }
  .hero-copy .intro { max-width:72%; font-size:.91rem; }
  .hero-art { width:104px; right:0; top:62px; opacity:.78; }
  .search-form { padding:7px 7px 7px 13px; gap:9px; }
  .search-form input { font-size:.94rem; }
  .search-form button { padding:11px 18px; }
  .category-grid { gap:12px; }
  .category-tile { padding:17px 13px; gap:10px; }
  .category-tile small { font-size:.74rem; }
  .family-entry,.home-family { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .family-entry a { padding:18px 14px; }
  .family-entry strong { font-size:.94rem; }
  .family-entry span { font-size:.77rem; }
  .family-hub nav[aria-label="지역 바로가기"] { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .family-hub nav[aria-label="지역 바로가기"] a { padding:14px; font-size:.86rem; }
  .family-hub>section:not(.coverage-notice) { padding:20px; }
  .coverage-notice,.prose .coverage-notice { padding:20px; }
  .coverage-notice p { font-size:.86rem; }
  .condition-links { gap:8px; }
  .condition-links a { padding:10px 12px; font-size:.83rem; }
  .directory-layout { grid-template-columns:minmax(0,1fr); }
  .filters { padding:19px; }
  .place-card { padding:22px 18px; gap:12px; }
  .place-card h3 { font-size:1rem; }
  .detail-layout { grid-template-columns:minmax(0,1fr); gap:16px; }
  .info-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  .info-item { padding:20px; }
  .family-check,.share-card,.fee-section,.summary-box,.visit-box,.local-box { padding:22px; }
  .family-check dl>div { flex-wrap:wrap; gap:5px 12px; }
  .fee-examples { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .fee-examples>div { padding:12px 8px; }
  .fee-examples strong { font-size:1rem; overflow-wrap:anywhere; }
  .ad-slot { min-height:100px; margin:28px auto; }
  .directory>.ad-slot { width:calc(100% - 40px); }
  .footer-inner { padding:30px 20px; }
  .footer-bottom { margin:0 20px; }
}
@media(max-width:359px) {
  .hero-art { display:none; }
  .hero-copy .intro { max-width:100%; }
  .category-tile { gap:7px; padding:14px 10px; }
  .family-entry a { padding:15px 12px; }
}
@media(prefers-reduced-motion:reduce) {
  .place-card:hover,.category-tile:hover { transform:none; }
}
.room-coverage-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 20px 0; }
.room-coverage-grid a { display: flex; flex-direction: column; gap: 4px; padding: 16px; min-height: 100px; background: #fff; border: 1px solid #e2e7e4; border-radius: 12px; box-shadow: 0 2px 8px rgb(39 49 46 / 3%); text-decoration: none; }
.room-coverage-grid span { font-size: .85rem; color: #405f54; }
.room-coverage-grid small { font-size: .75rem; color: #606b67; }
@media (max-width: 680px) { .room-coverage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .room-coverage-grid a { padding: 12px; } }

/* Warm lifestyle surfaces. Source facts remain separate from visitor ratings. */
.site-header { background:#f8f6f0f5; border-bottom:1px solid #e9e6dd; }
.brand-mark { background:var(--coral); border-radius:14px; color:#3d3931; }
.header-caption { background:#e8eee3; border-radius:999px; padding:8px 14px; }
.header-inner nav a[aria-current=page] { color:#345a40; box-shadow:inset 0 -2px var(--coral); }
.line-icon { display:block; width:28px; height:28px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.category-icon svg { fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.category-tile,.place-card,.filters,.visit-box,.local-box,.source-card,.region-link,.empty-state,.family-check,.share-card,.summary-box,.fee-section,.coverage-notice,.prose .coverage-notice { border-radius:24px; border-color:#e9e7df; box-shadow:var(--shadow); }
.category-icon,.place-card .category-icon,.detail-header .category-icon { border-radius:16px; }
.blue,.green { background:#e8f0e7; color:#45664b; }
.orange { background:#fff0e5; color:#a14d36; }
.violet { background:#f0edf5; color:#72617f; }
.tags span { border-radius:999px; background:#edf3e9; color:#3e6246; padding:5px 11px; }
.eyebrow { display:flex; flex-wrap:wrap; gap:8px; align-items:center; color:#65705f; }
.eyebrow span,.detail-header .eyebrow { background:var(--butter); color:#75603a; border-radius:999px; padding:5px 12px; width:fit-content; }
.search-form { border-radius:22px; border-color:#e5e6db; box-shadow:0 8px 30px #473f2e07; }
.search-form button,.primary-button { border-radius:14px; background:#4a7c59; }
.family-hub { padding-top:32px; }
.outing-hero { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:20px; padding:40px 42px; border-radius:32px; background:#eeeede; margin-bottom:28px; overflow:hidden; }
.outing-hero h1 { font-size:clamp(1.9rem,3.2vw,2.8rem); line-height:1.35; margin:12px 0 18px; max-width:600px; }
.outing-hero .kicker { color:#536749; }
.outing-lead { color:#5f6b57; font-size:.95rem; }
.outing-jump { display:inline-flex; align-items:center; gap:24px; background:#fffdf6; color:#344a36; border-radius:999px; min-height:44px; padding:10px 20px; font-size:.875rem; font-weight:650; text-decoration:none; margin-top:8px; }
.outing-jump span { color:#a44f37; }
.outing-illustration { position:relative; min-width:0; padding-bottom:36px; }
.outing-illustration img { display:block; width:100%; height:auto; }
.outing-sticker { display:flex; align-items:center; gap:8px; position:absolute; bottom:5px; left:10%; transform:rotate(-5deg); background:var(--butter); color:#716044; border:4px solid #fffdf4; border-radius:16px; padding:10px 16px; font-size:.85rem; box-shadow:0 6px 16px #69592c0d; }
.outing-sticker .line-icon { width:20px; height:20px; color:#a65139; }
.family-entry { gap:16px; scroll-margin-top:28px; }
.family-entry a { padding:24px; border:1px solid #ece9e0; border-radius:24px; background:#fff; box-shadow:var(--shadow); position:relative; }
.family-entry .line-icon { box-sizing:content-box; padding:12px; border-radius:18px; background:#edf2e7; color:#4a704f; margin-bottom:10px; }
.family-entry a:nth-child(4n+1) .line-icon { background:#ffebe2; color:#a74d35; }
.family-entry a:nth-child(4n+2) .line-icon { background:#f0ebf6; color:#756181; }
.family-entry a:nth-child(4n+4) .line-icon { background:var(--butter); color:#816b39; }
.family-entry a:nth-child(n) { background:#fff; }
.family-entry a[aria-current] { border-color:#88a17c; background:#f0f4e9; }
.family-entry a[aria-current]::after { content:"선택됨"; position:absolute; top:20px; right:16px; color:#426246; font-size:.7rem; font-weight:700; }
.family-entry strong { font-size:1rem; }
.family-entry span { font-size:.8rem; }
.family-hub>section:not(.coverage-notice) { border-radius:24px; padding:28px; }
.coverage-notice,.prose .coverage-notice { background:#f0f3e9; border-color:#e0e6d8; }
.condition-links a { border-radius:999px; background:#fff; border-color:#e5e5db; }
.summary-box { background:#fff4e9; }
.summary-box h2 { color:#78513c; }
.summary-box p { color:#6b5e51; }
.detail-header { padding:12px 0; }
.detail-header h1 { font-size:clamp(1.7rem,2.9vw,2.5rem); line-height:1.45; }
.visit-snapshot { margin:28px 0; }
.snapshot-heading h2 { margin:6px 0 18px; font-size:1.3rem; }
.snapshot-heading .kicker { margin-bottom:4px; }
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.feature-card { display:flex; flex-direction:column; gap:10px; min-width:0; background:#fff; border:1px solid #ece9df; border-radius:22px; padding:22px 16px; box-shadow:var(--shadow); }
.feature-card>.line-icon { color:#827661; margin-bottom:5px; }
.feature-card.is-confirmed { background:#edf3e8; border-color:#dce6d5; }
.feature-card.is-confirmed>.line-icon { color:#4a7c59; }
.feature-label { color:#5c6459; font-size:.8rem; font-weight:600; }
.feature-card strong { font-size:1.05rem; line-height:1.55; overflow-wrap:anywhere; }
.feature-card small { color:#687064; font-size:.73rem; line-height:1.75; }
.information-meter { padding:22px 24px; background:#fff; border-radius:22px; border:1px solid #ece9df; margin-top:12px; }
.information-meter>div { display:flex; justify-content:space-between; gap:12px; font-size:.85rem; }
.information-meter>div>span { color:#58704f; }
.information-meter meter { display:block; width:100%; height:12px; margin-top:12px; border:0; background:#efeee7; border-radius:20px; }
.information-meter meter::-webkit-meter-bar { background:#efeee7; border:0; border-radius:20px; }
.information-meter meter::-webkit-meter-optimum-value { background:#8faa7a; border-radius:20px; }
.information-meter meter::-moz-meter-bar { background:#8faa7a; border-radius:20px; }
.information-meter p { color:var(--muted); font-size:.75rem; margin:10px 0 0; }
.lifestyle-accordion { border:1px solid #e5e5da; border-radius:24px; background:#fff; padding:0; margin:28px 0; overflow:hidden; }
.lifestyle-accordion>summary { display:flex; justify-content:space-between; align-items:center; gap:12px; cursor:pointer; min-height:64px; padding:20px 24px; font-size:1.05rem; font-weight:700; list-style:none; }
.lifestyle-accordion>summary::-webkit-details-marker { display:none; }
.lifestyle-accordion>summary::after { content:"+"; font-size:1.5rem; color:#647b58; font-weight:400; }
.lifestyle-accordion[open]>summary::after { content:"−"; }
.accordion-hint { font-size:.75rem; color:#65705f; font-weight:400; margin-left:auto; }
.accordion-body { padding:0 24px 24px; }
.lifestyle-accordion[open]>.accordion-body { animation:unfold .2s ease-out; }
.lifestyle-accordion .info-grid { margin-bottom:0; }
.info-item { border-radius:16px; background:#f8f8f3; box-shadow:none; }
.share-card { background:#fff3d6; border-color:#f0e5c7; }
.share-actions button { border-radius:999px; border-color:#e2d9c5; }
/* AdSense Slot: quiet, separate from navigation and facility actions. */
.ad-slot { background:#eeede8; border-color:#e3e1d9; border-radius:24px; }
.family-entry a,.category-tile,.place-card,.condition-links a,button,.outing-jump,.map-link { transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease; }
@media(hover:hover) { .family-entry a:hover,.category-tile:hover,.place-card:hover { transform:translateY(-3px) scale(1.01); box-shadow:0 12px 30px #3b453310; } button:hover,.outing-jump:hover,.map-link:hover { transform:translateY(-1px); } }
.family-entry a:active,button:active,.outing-jump:active { transform:scale(.99); }
@keyframes unfold { from { opacity:.3; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
.library-detail { max-width:1080px; }
.library-detail .detail-header { max-width:880px; padding-bottom:12px; }
.library-detail .detail-header h1 { margin-top:14px; }
.library-section-heading { margin:26px 0 18px; }
.library-section-heading .kicker { margin:0 0 6px; }
.library-section-heading h2 { font-size:1.25rem; margin:0; line-height:1.5; }
.library-decision-grid { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:16px; }
.decision-card { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:26px; border-radius:24px; border:1px solid #e8e5dc; background:#fff; box-shadow:var(--shadow); }
.decision-card>.line-icon { color:#687a5c; }
.decision-label { font-size:.83rem; color:#596651; font-weight:600; }
.decision-card>strong { font-size:1.35rem; line-height:1.55; letter-spacing:-.04em; word-break:keep-all; overflow-wrap:anywhere; }
.decision-card p { margin:0; font-size:.85rem; color:#5f665a; }
.decision-card small { font-size:.75rem; color:#686d61; line-height:1.8; }
.decision-card>a { min-height:44px; display:flex; align-items:center; font-size:.8rem; margin-top:auto; color:#3e6344; text-underline-offset:4px; }
.decision-room { background:#eaf0df; border-color:#dce5ce; }
.decision-room>strong { font-size:1.6rem; }
.decision-badge { border-radius:999px; padding:6px 12px; background:#fffdf3; color:#4d663c; font-size:.75rem; }
.library-information-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:18px; }
.library-information-grid>section { min-width:0; padding:28px; background:#fff; border:1px solid #e8e5dc; border-radius:24px; box-shadow:var(--shadow); }
.library-information-grid h3 { display:flex; align-items:center; gap:10px; font-size:1rem; margin:0 0 18px; }
.library-information-grid h3 .line-icon { width:22px; height:22px; color:#667e55; }
.library-information-grid dl { margin:0; }
.library-information-grid dl>div { display:grid; grid-template-columns:minmax(95px,.8fr) minmax(0,1.3fr); gap:12px; padding:13px 0; border-bottom:1px solid #efeee7; font-size:.875rem; }
.library-information-grid dt { color:#68705f; }
.library-information-grid dd { margin:0; font-weight:550; overflow-wrap:anywhere; }
.room-hours-note { padding:16px 18px; margin-top:18px; background:#f7f5ec; border-radius:16px; }
.room-hours-note strong { font-size:.83rem; color:#635c48; }
.room-hours-note p { margin:6px 0 0; font-size:.8rem; color:#6b675a; }
.library-detail .source-note { padding:12px 0; }
.library-detail .source-note h2 { font-size:.95rem; }
.library-action-card { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:28px; background:#eef2e7; border:1px solid #dee5d3; border-radius:24px; }
.library-action-card h3 { margin:0 0 8px; font-size:1.15rem; }
.library-action-card p { font-size:.9rem; margin:0 0 8px; }
.library-action-card small { color:#626c57; font-size:.78rem; }
.library-contact { display:flex; flex-wrap:wrap; gap:6px 18px; font-size:.8rem; }
.library-contact a { display:flex; align-items:center; min-height:44px; text-underline-offset:4px; }
.library-detail .share-card { margin-top:20px; }
.library-detail .related { margin:30px 0; }
.library-detail .related-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.library-detail .related .place-card { padding:20px 16px; }
.library-detail .related .category-icon { display:none; }
.library-secondary,.library-actions,#library-mobility { scroll-margin-top:24px; }
@media(max-width:680px) {
  .wrap { max-width:440px; margin-left:auto; margin-right:auto; padding-left:18px; padding-right:18px; }
  .header-inner { max-width:440px; margin:auto; padding-left:18px; padding-right:18px; }
  .family-hub { padding-top:22px; }
  .outing-hero { grid-template-columns:minmax(0,1fr); padding:28px 24px 18px; border-radius:28px; gap:0; }
  .outing-hero h1 { font-size:1.85rem; margin-bottom:12px; }
  .outing-lead { font-size:.86rem; }
  .outing-illustration { width:88%; max-width:290px; margin:12px auto 0; padding-bottom:25px; }
  .outing-sticker { padding:6px 10px; font-size:.75rem; bottom:0; }
  .family-entry { gap:12px; }
  .family-entry a { padding:20px 15px; border-radius:22px; }
  .family-entry .line-icon { padding:10px; width:25px; height:25px; margin-bottom:6px; }
  .family-entry strong { font-size:.9rem; }
  .family-entry a[aria-current]::after { top:12px; right:10px; font-size:.63rem; }
  .feature-grid { gap:7px; }
  .feature-card { border-radius:17px; padding:16px 10px; gap:8px; }
  .feature-card strong { font-size:.83rem; }
  .feature-label { font-size:.73rem; }
  .feature-card small { font-size:.69rem; }
  .information-meter { padding:18px; }
  .lifestyle-accordion { padding:0; }
  .lifestyle-accordion>summary { padding:20px 18px; font-size:1rem; flex-wrap:wrap; }
  .accordion-hint { font-size:.7rem; }
  .accordion-body { padding:0 18px 20px; }
  .detail-header h1 { font-size:1.7rem; }
  .family-hub>section:not(.coverage-notice) { padding:22px 18px; }
  .footer-inner { max-width:440px; margin:auto; }
  .library-decision-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .library-detail .breadcrumbs { margin:18px 0 22px; }
  .library-detail .detail-header { padding:0; }
  .library-detail .detail-header h1 { font-size:1.5rem; margin:12px 0; }
  .library-detail .detail-address { margin:8px 0; }
  .library-primary .library-section-heading { margin:20px 0 14px; }
  .library-primary .library-section-heading .kicker { display:none; }
  .decision-card { padding:19px 15px; gap:10px; border-radius:22px; }
  .decision-card>strong { font-size:1.02rem; }
  .decision-card p { font-size:.8rem; }
  .decision-card small,.decision-card>a { font-size:.73rem; }
  .decision-room { grid-column:1/-1; padding:20px; display:grid; grid-template-columns:32px minmax(0,1fr); gap:7px 12px; }
  .decision-room>* { grid-column:2; }
  .decision-room>.line-icon { grid-column:1; grid-row:1/3; }
  .decision-room .decision-badge { width:fit-content; }
  .decision-room>strong { font-size:1.5rem; }
  .decision-room .line-icon { width:32px; height:32px; }
  .library-section-heading h2 { font-size:1.14rem; }
  .library-information-grid,.library-action-card { grid-template-columns:minmax(0,1fr); }
  .library-information-grid>section,.library-action-card { padding:22px 18px; }
  .library-information-grid dl>div { grid-template-columns:minmax(85px,.8fr) minmax(0,1.2fr); font-size:.82rem; gap:10px; }
  .library-detail .related-grid { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) {
  .family-entry a,.category-tile,.place-card,.condition-links a,button,.outing-jump,.map-link { transition:none; }
  .family-entry a:hover,.category-tile:hover,.place-card:hover,button:hover,.outing-jump:hover,.map-link:hover,.family-entry a:active,button:active,.outing-jump:active { transform:none; }
  .lifestyle-accordion[open]>.accordion-body { animation:none; }
}

/* Detail pages use one app-sized frame at every viewport width. */
body:has(.detail-main) { background:#f8f9fa; }
body:has(.detail-main) .header-inner,body:has(.detail-main) .footer-inner { max-width:440px; margin:auto; padding:18px 16px; flex-wrap:wrap; gap:14px; }
body:has(.detail-main) .header-caption { display:none; }
body:has(.detail-main) .header-inner nav { width:100%; margin:0; display:flex; justify-content:space-between; gap:8px; }
body:has(.detail-main) .header-inner nav a { display:block; font-size:.82rem; min-height:44px; padding:10px 0; }
body:has(.detail-main) .footer-bottom { max-width:408px; margin:auto; padding:18px 16px; }
.wrap.detail-main { width:100%; max-width:440px; margin:0 auto; padding:0 16px 24px; }
.detail-main .breadcrumbs { margin:18px 0; font-size:.7rem; flex-wrap:wrap; }
.detail-main .detail-layout { display:block; }
.detail-main article,.detail-main .detail-aside { min-width:0; }
.detail-main .detail-aside,.detail-main .visit-box { position:static; }
.detail-hero-card { padding:24px 20px; border:1px solid #eceef0; border-radius:24px; background:#fff; box-shadow:0 4px 20px #263c3005; margin:0 0 16px; }
.detail-main .detail-hero-card .detail-header { padding:0; }
.detail-main .detail-header .eyebrow { font-size:.72rem; padding:4px 10px; margin:0 0 12px; }
.detail-main .detail-header h1 { font-size:1.5rem; line-height:1.4; margin:10px 0; }
.detail-main .detail-header .category-icon { width:38px; height:38px; margin-bottom:12px; }
.detail-main .detail-address { font-size:.78rem; line-height:1.8; color:#71776f; margin:10px 0 16px; }
.hero-badges { display:flex; flex-wrap:wrap; gap:7px; margin:16px 0; }
.hero-badges>span { display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:6px 10px; background:#eff4ea; color:#46663c; font-size:.72rem; font-weight:600; }
.hero-badges>span:nth-child(2) { color:#78633f; background:#fff5df; }
.hero-badges .line-icon { width:16px; height:16px; }
.hero-dashboard { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; }
.hero-dashboard>div { min-width:0; padding:14px; background:#f7f8f6; border-radius:16px; }
.hero-dashboard .hero-room { grid-column:1/-1; background:#eff4e9; }
.hero-dashboard dt { font-size:.72rem; color:#687360; margin-bottom:7px; }
.hero-dashboard dd { font-size:1.02rem; font-weight:700; line-height:1.6; margin:0; overflow-wrap:anywhere; }
.hero-dashboard .hero-room dd { font-size:1.4rem; letter-spacing:-.04em; }
.hero-caution { font-size:.71rem; line-height:1.8; color:#74796f; margin:14px 0 0; }
.detail-section-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; border:1px solid #e8ece7; border-radius:16px; background:#fff; padding:5px; margin:0 0 20px; }
.detail-section-nav a { display:flex; justify-content:center; align-items:center; min-height:44px; font-size:.78rem; font-weight:600; border-radius:11px; text-decoration:none; color:#5c6955; }
.detail-section-nav a:hover,.detail-section-nav a:focus-visible { background:#eef4e8; }
.detail-main .library-section-heading { margin:18px 0 12px; }
.detail-main .library-section-heading .kicker { display:none; }
.detail-main .library-section-heading h2 { font-size:1.02rem; }
.detail-main .library-information-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.detail-main .library-information-grid>section { background:#fff; padding:22px 20px; border:1px solid #eceef0; }
.detail-main .library-information-grid h3 { font-size:.94rem; }
.detail-main .library-information-grid dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 12px; }
.detail-main .library-information-grid dl>div { display:block; min-width:0; padding:0; border:0; }
.detail-main .library-information-grid dt { font-size:.71rem; margin-bottom:6px; }
.detail-main .library-information-grid dd { font-size:.97rem; font-weight:650; line-height:1.65; }
.detail-main .library-mobility dl>div:last-child { grid-column:1/-1; }
.detail-main .room-hours-note { padding:14px; margin-top:18px; }
.detail-main .room-hours-note strong { font-size:.75rem; }
.detail-main .room-hours-note p,.detail-main .section-caption { font-size:.74rem; }
.detail-main .library-actions { background:#fff; border:1px solid #eceef0; border-radius:24px; padding:22px 20px; margin:16px 0; box-shadow:var(--shadow); }
.detail-main .library-actions .library-section-heading { margin:0 0 18px; }
.detail-main .library-action-card { display:block; padding:0; background:none; border:0; }
.detail-main .library-action-card h3 { font-size:.92rem; }
.detail-main .library-action-card p { font-size:.8rem; }
.detail-main .library-action-card small { font-size:.73rem; }
.detail-main .library-contact { font-size:.75rem; gap:4px; }
.detail-main .library-contact a { width:100%; }
.detail-main .related-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.detail-main .related .place-card { margin:0; padding:18px 14px; }
.detail-main .related .category-icon { display:none; }
.detail-main .lifestyle-accordion,.detail-main .source-note.lifestyle-accordion,.detail-main .family-check.lifestyle-accordion { background:#fff; border:1px solid #eceef0; padding:0; border-radius:24px; margin:16px 0; }
.detail-main .lifestyle-accordion>summary { font-size:.92rem; min-height:64px; padding:18px 20px; }
.detail-main .accordion-hint { font-size:.69rem; }
.detail-main .accordion-body { padding:0 20px 20px; }
.detail-main .info-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.detail-main .info-item { padding:14px 12px; }
.detail-main .info-item dt { font-size:.7rem; }
.detail-main .info-item dd { font-size:.92rem; }
.detail-main .summary-box,.detail-main .visit-box,.detail-main .local-box,.detail-main .share-card { padding:22px 20px; border:1px solid #eceef0; border-radius:24px; background:#fff; margin:16px 0; }
.detail-main .summary-box h2,.detail-main .visit-box h2,.detail-main .local-box h2,.detail-main .share-card h2 { font-size:1rem; }
.detail-main .summary-box p,.detail-main .visit-box p,.detail-main .local-box p,.detail-main .share-card p { font-size:.8rem; }
.detail-main .visit-snapshot { margin:20px 0 0; }
.detail-main .snapshot-heading .kicker { display:none; }
.detail-main .snapshot-heading h2 { font-size:.88rem; margin:0 0 12px; }
.detail-main .feature-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.detail-main .feature-card { border:0; padding:12px 9px; border-radius:14px; background:#f5f7f3; gap:8px; box-shadow:none; }
.detail-main .feature-card .line-icon { width:22px; height:22px; }
.detail-main .feature-label { font-size:.68rem; }
.detail-main .feature-card strong { font-size:.85rem; }
.detail-main .feature-card small { font-size:.65rem; line-height:1.7; }
.detail-main .information-meter { border:0; background:#f8f9f6; border-radius:14px; padding:14px; }
.detail-main .information-meter>div { font-size:.75rem; }
.detail-main .information-meter p { font-size:.67rem; }
.detail-main .fee-examples { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.detail-main .fee-examples>div { padding:12px 8px; }
.detail-main .fee-examples strong { font-size:1rem; overflow-wrap:anywhere; }
.detail-main .ad-slot { width:100%; }
#library-summary,#library-hours-heading,#library-actions { scroll-margin-top:20px; }

/* Region -> district -> facility: one selected region, toggleable district cards. */
.region-explorer { margin:24px 0 36px; }
.region-explorer>h2 { font-size:1.35rem; margin:0 0 18px; }
.region-picker { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0 0 24px; }
.region-picker a { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:76px; padding:18px 22px; border:1px solid #dedfd6; border-radius:18px; background:#fff; text-decoration:none; color:#42513c; box-shadow:var(--shadow); }
.region-picker strong { font-size:1.2rem; }
.region-picker span { font-size:.82rem; color:#6d7664; }
.region-picker a[aria-pressed=true] { background:#e6efdb; border:2px solid #789163; padding:17px 21px; }
.region-picker a:hover { background:#f0f4e8; }
.region-panel[hidden] { display:none; }
.region-panel { padding:26px; border:1px solid #e4e6db; border-radius:24px; background:#f0f3e9; scroll-margin-top:24px; }
.region-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.region-panel-heading h2 { margin:0; font-size:1.6rem; }
.region-panel .region-all { display:inline-flex; align-items:center; min-height:44px; padding:10px 16px; border-radius:999px; background:#4a6d40; color:#fff; font-size:.87rem; font-weight:650; text-decoration:none; }
.district-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; margin-top:20px; }
.district-disclosure { border:1px solid #e0e5d7; border-radius:20px; background:#fff; overflow:hidden; box-shadow:var(--shadow); min-width:0; }
.district-disclosure[open] { grid-column:1/-1; }
.district-disclosure>summary { display:flex; align-items:center; gap:12px; min-height:76px; padding:18px 22px; cursor:pointer; list-style:none; }
.district-disclosure>summary::-webkit-details-marker { display:none; }
.district-disclosure>summary>strong { font-size:1.1rem; }
.district-count { font-size:.8rem; padding:4px 10px; border-radius:999px; color:#59714c; background:#f0f4e8; margin-left:auto; white-space:nowrap; }
.district-toggle::after { content:'+'; font-size:1.4rem; color:#68815c; }
.district-disclosure[open] .district-toggle::after { content:'−'; }
.district-body { padding:0 22px 22px; }
.district-body>.section-caption { margin:0 0 16px; }
.district-facilities { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.district-facilities .place-card { min-width:0; padding:20px 16px; box-shadow:none; background:#fafbf7; }
.district-facilities .category-icon { display:none; }
.district-facilities .card-arrow { display:none; }
.district-facilities .place-card h3 { font-size:1rem; }
.district-all { display:flex; justify-content:center; align-items:center; min-height:48px; margin-top:16px; background:#edf3e5; color:#405e34; border-radius:14px; font-size:.9rem; font-weight:650; text-decoration:none; }
.condition-hub .outing-hero { display:block; padding:28px; margin-bottom:18px; }
.condition-hub .outing-hero h1 { font-size:1.9rem; margin:10px 0 0; max-width:none; }
.condition-hub .outing-illustration,.condition-hub .outing-lead,.condition-hub .outing-jump { display:none; }
.condition-switcher { border:1px solid #e5e6de; border-radius:18px; background:#fff; margin:16px 0; }
.condition-switcher>summary { cursor:pointer; padding:16px 20px; min-height:52px; font-size:.9rem; font-weight:600; }
.condition-switcher>.family-entry { padding:0 16px 16px; margin:0; }
.region-index-group { margin:28px 0; }
.region-index-group h2 { font-size:1.2rem; margin-bottom:16px; }
@media(max-width:680px) {
  .region-picker { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .region-picker a { padding:16px; min-height:70px; }
  .region-picker a[aria-pressed=true] { padding:15px; }
  .region-picker strong { font-size:1.12rem; }
  .region-picker span { font-size:.75rem; }
  .region-panel { padding:20px 14px; }
  .region-panel-heading h2 { font-size:1.3rem; }
  .region-all { padding:9px 12px; font-size:.78rem; }
  .district-grid { grid-template-columns:minmax(0,1fr); gap:10px; }
  .district-disclosure>summary { padding:17px 16px; min-height:70px; }
  .district-disclosure>summary>strong { font-size:1.05rem; }
  .district-body { padding:0 14px 16px; }
  .district-facilities { grid-template-columns:minmax(0,1fr); }
  .condition-hub .outing-hero { padding:24px 20px; }
  .condition-hub .outing-hero h1 { font-size:1.55rem; }
}
