@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');

:root{font-family:'Noto Sans KR',system-ui,-apple-system,sans-serif;color:#232631;background:#fff;font-synthesis:none;--brand:#bb481e;--brand-hover:#a43e1d;--brand-soft:#fff0e9;--surface-warm:#fff8f2;--blue:var(--brand);--muted:#5c6571;--line:#e6e5eb;--control-border:#85818d;--focus:#137cbd;line-height:1.65}
*{box-sizing:border-box}
body{margin:0;font-size:1rem}
button,input,select{font:inherit;color:inherit}
button,a,input,select,summary{-webkit-tap-highlight-color:transparent}
button,summary{cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
a{color:var(--brand)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
[hidden]{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:15px}
.skip:focus{top:10px}
.ui-icon{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Navigation and a concise introduction keep discovery within reach. */
.sidebar{background:#fff;border-bottom:1px solid var(--line);padding:16px max(24px,calc((100% - 1200px)/2));display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-size:1.375rem;font-weight:800;color:#232631;white-space:nowrap;letter-spacing:-.025em}
.brand-symbol{display:inline-flex;color:#fff;background:#ef6938;width:38px;height:38px;border-radius:13px;align-items:center;justify-content:center;font-family:Arial;font-size:28px;font-weight:700;letter-spacing:0}
.brand-symbol span{color:#fff0a7;font-size:18px;align-self:flex-start}
.beta{font-size:.625rem;color:var(--brand-hover);letter-spacing:.04em;align-self:flex-end;margin-bottom:6px}
nav{display:flex;align-items:center;gap:4px;margin-left:auto}
.nav{border:0;background:transparent;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:10px;color:var(--muted);font-size:.9375rem;font-weight:600;white-space:nowrap;min-height:44px}
.nav.active{background:var(--brand-soft);color:var(--brand-hover)}
.nav b{font-size:.8125rem;background:#f7f6f8;color:var(--muted);padding:0 6px;border-radius:6px}
.profile-button{border:1px solid var(--brand);border-radius:10px;padding:10px 16px;min-height:44px;font-size:.875rem;font-weight:600;white-space:nowrap;color:var(--brand-hover);background:#fff}
.workspace{margin:0}
main{max-width:1248px;margin:auto;padding:32px 24px 0}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.heading-copy{min-width:0}
h1{font-size:2rem;line-height:1.45;letter-spacing:-.025em;margin:0;font-weight:700;word-break:keep-all;overflow-wrap:anywhere}
.page-heading p{font-size:1rem;color:var(--muted);margin:8px 0 0;line-height:1.65;word-break:keep-all}
.family-context{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;max-width:none;flex-shrink:0}
.family-context #family-description{display:none}
.family-shortcut{display:flex;align-items:center;justify-content:center;gap:8px;background:#fff8e9;border:1px solid #94774b;border-radius:10px;padding:8px 12px;min-height:44px;font-size:.875rem;font-weight:600;color:#674b21;max-width:100%;white-space:normal}
.family-shortcut>span:first-child{font-size:1.125rem;line-height:1}
.family-shortcut>span:last-child{margin-left:auto}

/* Homepage illustration is decorative; all copy and controls remain real HTML. */
.page-heading.home-hero{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:18px;min-height:280px;padding:32px;border-radius:16px;background:#fff9ef;overflow:hidden}
.home-hero .heading-copy{position:relative;z-index:1;width:54%}
.page-heading.home-hero h1{font-size:2.25rem;line-height:1.4}
.page-heading.home-hero .public-intro{font-size:1rem;max-width:410px;color:#39332e}
.hero-kicker{font-weight:600;color:var(--brand)!important}
.hero-art{position:absolute;inset:0 0 0 auto;width:62%;z-index:-1}
.hero-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:55% 46%}
.home-hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fff9ef 31%,#fff9eff5 39%,#fff9ef99 50%,#fff9ef00 67%)}
.home-hero .family-context{position:relative;width:auto;padding:0;background:transparent;z-index:1}
@media(max-width:1000px){.page-heading.home-hero{min-height:250px;padding:24px}.page-heading.home-hero h1{font-size:1.875rem}.home-hero .heading-copy{width:56%}.hero-art{width:66%}}
@media(max-width:760px){.page-heading.home-hero{padding:16px;min-height:0;gap:12px}.home-hero .heading-copy{width:100%}.home-hero .hero-kicker{display:flex;align-items:center;min-height:82px;width:calc(100% - 132px);margin:0 0 12px;font-size:.875rem}.page-heading.home-hero h1{font-size:1.5rem}.page-heading.home-hero .public-intro{display:block;font-size:.875rem;margin:8px 0 0;max-width:none}.hero-art{width:152px;height:112px;inset:0 0 auto auto}.hero-art img{object-position:50% 40%}.home-hero::after{background:linear-gradient(0deg,#fff9ef 0%,#fff9ef00 36%)}.home-hero .family-shortcut{font-size:.875rem;white-space:normal}}

/* Separate opt-in flow: site notifications and family edits keep their own state. */
.kakao-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;background:#fff8e9;border:1px solid #eddfc5;border-radius:14px;margin:20px 0}
.kakao-entry p,.family-kakao-link p{margin:4px 0;font-size:.875rem;color:var(--muted)}
.family-kakao-link{margin:16px 0;padding:16px;background:#fff8e9;border-radius:12px}
.kakao-topics{display:grid;gap:12px}
.kakao-topics label,.kakao-consent{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:10px;border:1px solid var(--control-border);border-radius:10px;cursor:pointer}
.kakao-topics input,.kakao-consent input{width:20px;height:20px;flex:none;margin:3px 0;accent-color:var(--brand)}
.kakao-status{background:#fff1d6;color:#805610;border-radius:10px;padding:12px 16px;font-size:.9375rem}
.kakao-channel{display:inline-flex;align-items:center;text-decoration:none;max-width:100%;overflow-wrap:anywhere}
.kakao-privacy{margin:20px 0}.kakao-privacy summary{min-height:44px;font-weight:600}.kakao-privacy p{font-size:.875rem;color:var(--muted);overflow-wrap:anywhere}
.kakao-actions{display:flex;flex-wrap:wrap;gap:10px}.kakao-actions button{white-space:normal}
.form-error{color:#a13d37;font-weight:600;line-height:1.65;margin:16px 0}.form-error:empty{display:none}
.kakao-watch-section{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}.kakao-watch-section h3{font-size:1rem;margin:0}
.kakao-watches{list-style:none;padding:0;margin:8px 0}.kakao-watches li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:8px 0}.kakao-watches span{overflow-wrap:anywhere;min-width:0}.kakao-watches button{flex:none}
.kakao-retry{padding:16px;border:1px solid #a13d37;border-radius:12px;margin:20px 0}.kakao-retry p{margin:0 0 8px}
.discovery-card .card-bottom .watch-program-button{margin-top:8px;font-size:.8125rem;white-space:normal;line-height:1.5}
@media(max-width:760px){.kakao-entry{align-items:stretch;flex-direction:column}.kakao-watches li{align-items:flex-start;flex-direction:column}#kakao-dialog{padding:20px}#kakao-dialog .dialog-heading h2{font-size:1.25rem}}

/* Search first, optional discovery tools second, then type and conditions. */
.family-search-panel{background:var(--surface-warm);border:1px solid #eee3d9;border-radius:16px;padding:20px;margin-bottom:16px}
.nearby-controls{display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));align-items:end;gap:16px}
.nearby-controls>label{display:flex;flex-direction:column;gap:6px;min-width:0}
.control-label{font-size:.875rem;font-weight:600;color:#3c3840}
.search{min-width:0}
.search-field{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--control-border);border-radius:10px;padding:10px 14px;min-height:48px}
.search-field .ui-icon{color:var(--brand)}
.search input{border:0;background:transparent;width:100%;min-width:0;outline:none;font-size:1rem}
.search input::placeholder{color:var(--muted)}
.search-field:focus-within{outline:3px solid var(--focus);outline-offset:3px}
.nearby-controls select{width:100%;min-width:0;min-height:48px;border:1px solid var(--control-border);background:#fff;border-radius:10px;padding:8px 12px;font-size:1rem}
.explore-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px}
.explore-tools .outline-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border-color:var(--control-border);background:#fff;font-size:.875rem}
.explore-tools-label{margin-left:auto;color:var(--muted);font-size:.875rem}
.nearby-status{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.875rem;color:var(--muted);margin:10px 0 0;line-height:1.7}
.reservation-disclaimer{flex:1 1 340px}
.discovery-bar{margin:0 0 8px;border-bottom:1px solid var(--line)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--control-border);background:#fff;border-radius:999px;padding:9px 15px;min-height:44px;font-size:.875rem;color:#5b5560}
.chip.selected{background:#32303c;border-color:#32303c;color:#fff}
.chip small{font-size:.8125rem;margin-left:3px}
.type-filter{gap:8px;flex-wrap:wrap}
.type-filter .chip{background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;padding:10px 14px;font-size:1rem;font-weight:600;white-space:nowrap}
.type-filter .chip.selected{color:var(--brand-hover);border-bottom-color:var(--brand);background:transparent}
.quick-filters{display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap;font-size:.875rem;margin:0 0 8px}
.quick-filters label{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.quick-filters input,.shared-options input{width:18px;height:18px;accent-color:var(--brand)}
.quick-filters .text-button{margin-left:auto;min-height:44px}
.results-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:0 20px;border-top:1px solid var(--line);margin-bottom:16px}
.filter-panel{min-width:0}
.filter-panel[open]{grid-column:1/-1;border-bottom:1px solid var(--line)}
.filter-panel[open]+.results-heading{grid-column:1/-1;justify-content:space-between}
.filter-panel summary{display:flex;align-items:center;gap:12px;list-style:none;min-height:48px;font-size:.875rem;font-weight:600;padding:8px 0}
.filter-panel summary::-webkit-details-marker{display:none}
#filter-summary{font-size:.875rem;font-weight:400;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filter-chevron{font-size:1.125rem;margin-left:2px}
.filter-panel[open] .filter-chevron{transform:rotate(180deg)}
.filter-content{padding:12px 0 20px}
.filter-group{display:grid;grid-template-columns:145px minmax(0,1fr);gap:14px;align-items:start;margin-bottom:16px}
.filter-group>strong{padding:10px 0;font-size:.875rem}
.filter-group>strong small{display:block;font-size:.8125rem;font-weight:400;color:var(--muted)}
.coverage-note{font-size:.875rem;color:var(--muted);margin:10px 0 0;line-height:1.7}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px}
h2{font-size:1.375rem;margin:0;line-height:1.5;letter-spacing:-.02em}
.results-heading{margin:2px 0;gap:16px}
.results-heading h2{font-size:1rem;font-weight:600}
.section-heading h2 span{color:var(--brand-hover);margin-left:5px}
.section-heading h2 .result-label{color:var(--muted);margin-left:0;font-weight:400}
.sort-label select{border:1px solid var(--control-border);background:#fff;border-radius:10px;padding:8px 12px;max-width:230px;min-height:44px;font-size:.875rem;color:#3c3840}

/* Compact cards with clearly labelled official or representative media. */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.card{--category-color:#a44825;--category-surface:#fff0e6;background:#fff;border:1px solid #e5dfdb;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.card[data-category='자연과학']{--category-color:#3e705c;--category-surface:#edf6f0}
.card[data-category='독서']{--category-color:#6e5590;--category-surface:#f3eef9}
.card[data-category='놀이체험']{--category-color:#956820;--category-surface:#fff7df}
.card[data-category='체육']{--category-color:#396e90;--category-surface:#edf5fa}
.card:hover{border-color:#cba68f;box-shadow:0 6px 20px #5833230a}
.card-body{padding:20px;display:flex;flex-direction:column;flex:1}
.card-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.category-label{font-size:.8125rem;color:var(--category-color);background:var(--category-surface);border-radius:6px;padding:4px 8px;font-weight:700}
.save-button{border:0;background:#faf8f6;border-radius:50%;width:44px;height:44px;font-size:1.6rem;color:#81757a;line-height:1;flex-shrink:0}
.save-button.saved{color:#b74620;background:#fff0e9}
.institution{font-size:.875rem;color:var(--muted);line-height:1.5;margin:0 0 3px}
.card h3{font-size:1.25rem;line-height:1.55;margin:0 0 12px;letter-spacing:-.025em;word-break:keep-all;overflow-wrap:anywhere}
.title-button{display:block;width:100%;border:0;background:none;text-align:left;font:inherit;line-height:inherit;font-weight:700;padding:0;color:#292733;min-height:44px}
.card-tags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:6px}
.badge,.tag{display:inline-flex;align-items:center;border-radius:6px;font-size:.875rem;padding:2px 6px;line-height:1.55}
.badge{background:#edf1fc;color:#3f5791;font-weight:600}
.badge.open{background:#e5f3e9;color:#21603b}
.badge.facility{background:#eeebfc;color:#5b448d}
.badge.closed{background:#edf0f2;color:#54616b}
.badge.unknown{background:#fff1d6;color:#805610}
.tag{background:#f5f3f2;color:#70646a}
.recommendation-reason{font-size:.875rem;line-height:1.45;color:var(--category-color);margin:0 0 6px}
.card-meta{display:grid;gap:8px;font-size:1rem;line-height:1.65;margin:0;padding-top:12px;border-top:1px solid #f0ece8}
.card-meta>div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px}
.card-meta dt{color:var(--muted);font-size:.875rem;padding-top:2px}
.card-meta dd{margin:0;font-weight:500;color:#3c3840;overflow-wrap:anywhere;word-break:keep-all}
.price-line{margin-top:8px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.price-line>span{font-size:.8125rem;color:var(--muted)}
.price-line strong{font-size:.9375rem;color:#292630;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}
.card-guidance{font-size:.875rem;color:var(--muted);line-height:1.5;margin:4px 0 6px}
.card-bottom{margin-top:auto;padding-top:16px}
.card-bottom>span{display:block;font-size:.8125rem;line-height:1.5;margin-bottom:4px}
.card-bottom button{display:flex;width:100%;justify-content:space-between;align-items:center;gap:12px;border:1px solid #efded2;color:#a43e1d;background:#fff8f3;border-radius:9px;padding:8px 10px;font-size:.875rem;font-weight:700;min-height:44px}
.card-bottom button:hover{background:#ffebdd}

.operator-label{background:#edf3e8;color:#35563b;font-size:.8125rem;font-weight:700;padding:4px 8px;border-radius:7px}
.card-top .save-button{margin-left:auto;min-width:44px;min-height:44px}
.activity-label{--activity-ink:#5c566b;--activity-surface:#f1eff5;display:inline-flex;align-items:center;gap:5px;border-radius:7px;background:var(--activity-surface);color:var(--activity-ink);line-height:1.5;padding:3px 7px;word-break:keep-all}
.activity-label svg{width:16px;height:16px;flex:none}
.activity-label[data-activity="active-play"]{--activity-ink:#725223;--activity-surface:#fff3df}
.activity-label[data-activity="art-making"]{--activity-ink:#93421f;--activity-surface:#fcf0e8}
.activity-label[data-activity="science-nature"]{--activity-ink:#334b73;--activity-surface:#edf2fa}
.activity-label[data-activity="reading-language"]{--activity-ink:#6b437a;--activity-surface:#f5eef7}
.activity-label[data-activity="sports"]{--activity-ink:#54448b;--activity-surface:#f0effb}
.activity-label[data-activity="performance-culture"]{--activity-ink:#83485b;--activity-surface:#fceef2}
.activity-label[data-activity="culture"]{--activity-ink:#83485b;--activity-surface:#fceef2}
.activity-label[data-activity="festival"]{--activity-ink:#79521d;--activity-surface:#fff2de}
.card-body:not(:has(.card-artwork)) .institution{margin-top:2px}
.card-artwork{position:relative;width:100%;height:96px;margin:2px 0 8px;background:#f7f2eb;border-radius:10px;overflow:hidden}
.card-artwork img{display:block;width:100%;height:100%;object-fit:cover}
.card-artwork figcaption{position:absolute;right:6px;bottom:6px;margin:0;background:#ffffffed;border-radius:5px;padding:2px 6px;font-size:.75rem;color:#5b554f;line-height:1.5}
.card{container-type:inline-size}
.card-identity{margin-bottom:8px;min-width:0}
.card-identity.with-thumbnail{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:start;gap:12px}
.card-identity-text{min-width:0}
.card-identity h3{margin-bottom:0}
.category-thumbnail{margin:0;background:var(--category-surface);border:1px solid #e8e3de;border-radius:10px;overflow:hidden}
.category-thumbnail img{display:block;width:100%;height:48px;object-fit:cover}
.category-thumbnail figcaption{text-align:center;font-size:.8125rem;line-height:1.5;padding:2px 0;color:#62585d;background:#fffaf5}
@container (max-width:330px){.card-identity.with-thumbnail{grid-template-columns:64px minmax(0,1fr);gap:9px}.category-thumbnail img{height:42px}}
.pagination{display:grid;justify-items:center;gap:8px;margin:20px 0 4px}.pagination[hidden]{display:none}.pagination-summary{font-size:.8125rem;line-height:1.5;color:var(--muted);text-align:center}.pagination-buttons{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap}.pagination button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#292733;font-weight:650}.pagination button.current{background:var(--blue);border-color:var(--blue);color:#fff}.pagination button:disabled{opacity:.42}.pagination-gap{padding:0 2px;color:var(--muted)}

/* Shared views, dialogs and account controls. */
.text-button{border:0;background:none;color:var(--blue);font-size:.875rem;padding:8px 0;text-decoration:underline;text-underline-offset:4px;min-height:44px}
.outline-button{border:1px solid #c6bdb7;background:white;border-radius:10px;padding:10px 16px;font-size:.875rem;min-height:44px}
.primary-button{display:inline-block;background:var(--blue);color:#fff;text-decoration:none;border:0;border-radius:10px;padding:13px 20px;font-size:1rem;font-weight:700;min-height:48px;text-align:center}
.primary-button:hover{background:#a43e1d}
.empty{grid-column:1/-1;border:1px dashed #d2c4ba;background:white;border-radius:16px;text-align:center;padding:48px 24px;color:var(--muted);line-height:1.9}
.empty strong{display:block;font-size:1.25rem;color:#39303b;margin-bottom:8px}
.empty button{margin-top:18px}
.muted,.view-help{font-size:1rem;color:var(--muted);line-height:1.8}
.view-help{margin:0 0 22px}
.parent-feedback{margin:16px 0;border-top:1px solid var(--line);padding-top:8px}
.parent-feedback>summary{min-height:44px;align-content:center;cursor:pointer;font-weight:600}
.parent-feedback-content{padding:4px 0}
#detail-dialog .parent-feedback .small-note{font-size:.875rem;line-height:1.65;background:transparent;border:0;padding:0;margin:8px 0;overflow-wrap:anywhere}
.parent-feedback-links{padding-left:20px;margin:12px 0}
.parent-feedback-links li{margin:8px 0}
.parent-feedback-links a{display:inline-flex;align-items:center;min-height:44px;flex-wrap:wrap;max-width:100%}
.saved-view-controls{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.saved-view-controls button{min-height:44px}
.saved-view-controls button[aria-pressed="true"]{background:#fff0e9;color:#a43e1d;border-color:#bb481e;font-weight:700}
.saved-past{margin-top:20px;border-top:1px solid var(--line);padding-top:8px}
.saved-past>summary{min-height:44px;align-content:center;cursor:pointer;font-weight:600}
.saved-updates{margin-top:24px;border-top:1px solid var(--line);padding-top:12px}
.saved-updates>summary{cursor:pointer;min-height:44px;align-content:center;font-weight:700}
.saved-updates>summary b{background:#fff0e9;border-radius:6px;padding:2px 7px;margin-left:6px;font-size:.875rem}
.interest-clear-dialog{max-width:420px}
.interest-clear-dialog p{line-height:1.65;margin:16px 0 24px;overflow-wrap:anywhere}
.interest-clear-actions{display:flex;justify-content:flex-end;gap:12px}
.interest-clear-actions button{min-height:44px}
.family-region-actions{display:flex;justify-content:flex-end;margin:-8px 0 4px}
.family-region-actions button,.saved-heading-actions button{min-height:44px}
.saved-heading-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px 16px}
@media(max-width:760px){.saved-heading-actions{justify-content:flex-start}}
.family-region-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:12px;align-items:end}
.family-region-controls label{display:flex;flex-direction:column;gap:6px;font-size:.875rem;font-weight:600;min-width:0}
.family-region-controls select{min-width:0;width:100%;min-height:48px;border:1px solid #85818d;border-radius:10px;padding:8px;background:white;font:inherit;font-size:1rem}
.family-region-selected{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:12px 0 0;padding:0}
.family-region-chip{min-height:44px;padding:8px 12px;border:1px solid #85818d;border-radius:10px;background:#fff0e9;color:#a43e1d;font:inherit;font-size:.875rem;overflow-wrap:anywhere;text-align:left}
.family-region-status{margin:8px 0;font-size:.875rem;line-height:1.6;color:var(--muted)}
.family-region-status:empty{display:none}
@media(max-width:420px){.family-region-controls{gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.family-region-controls>button{grid-column:2;justify-self:end}.family-region-controls select{padding:8px 4px}}
.timeline-item{display:flex;gap:20px;align-items:flex-start;background:white;border:1px solid var(--line);border-radius:14px;padding:22px;margin:14px 0}
.date-tile{width:68px;flex-shrink:0;text-align:center;background:#fff0e5;color:#a43d16;border-radius:10px;padding:10px;font-size:.875rem}
.date-tile strong{display:block;font-size:1.65rem}
.timeline-item>div:last-child{min-width:0;overflow-wrap:anywhere}
.timeline-item h3{font-size:1.0625rem;margin:0 0 8px}
.timeline-item p,.timeline-item a{font-size:.9375rem;line-height:1.8}
.timeline-item p{color:var(--muted);margin:5px 0}
.change{background:#f7f4f1;padding:12px;border-radius:8px}
.notice{display:flex;gap:8px;color:var(--muted);font-size:.8125rem;margin:28px 0 0;padding-top:20px;border-top:1px solid var(--line);line-height:1.7}
.notice-dot{display:none}
footer{padding:18px 0 24px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.75rem;color:var(--muted)}
footer b{margin:0 7px}
dialog{width:min(650px,calc(100% - 28px));max-height:90dvh;border:1px solid #e5dfdb;border-radius:20px;padding:30px;color:#292733;background:#fff;box-shadow:0 24px 100px #30251e40}
dialog::backdrop{background:#302a3566;backdrop-filter:blur(3px)}
.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:18px}
.dialog-heading h2{font-size:1.5rem;overflow-wrap:anywhere;word-break:keep-all}
.eyebrow{font-size:.8125rem;color:var(--blue);font-weight:700;margin:0 0 6px}
.close{border:0;background:#f5f2ef;border-radius:50%;width:44px;height:44px;font-size:1.65rem;flex-shrink:0}
.field{display:flex;flex-direction:column;gap:8px;margin:20px 0;font-weight:600}
.field select{border:1px solid #a49a94;border-radius:10px;padding:12px;background:#fff;min-height:48px}
fieldset{border:0;padding:0;margin:22px 0;min-width:0}
legend{font-weight:600;margin-bottom:12px}
.interest-options{display:flex;gap:8px;flex-wrap:wrap}
.interest-options label{padding:10px;background:#f7f4f1;border-radius:8px;min-height:44px}
.interest-options input{accent-color:var(--blue)}
.small-note{font-size:.875rem;line-height:1.85;color:var(--muted);margin:20px 0;padding:14px;background:#f7f6f8;border-radius:10px}
form>.primary-button{width:100%}
.detail-facts{display:grid;grid-template-columns:94px minmax(0,1fr);gap:16px;font-size:1rem;line-height:1.8;margin:26px 0}
.detail-facts dt{color:var(--muted)}
.detail-facts dd{margin:0;overflow-wrap:anywhere}
.detail-actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:12px}
.detail-actions .primary-button{flex:1}
.detail-source{font-size:.8125rem;line-height:1.8;color:var(--muted);overflow-wrap:anywhere}
#about-dialog{box-sizing:border-box;width:min(680px,calc(100% - 32px));padding:28px}
#about-dialog .dialog-heading{align-items:center;margin-bottom:20px}
#about-dialog .dialog-heading h2{font-size:1.25rem;line-height:1.5;margin:0}
#about-dialog .close{flex-shrink:0;min-width:44px;min-height:44px}
#about-dialog>p{font-size:1rem;line-height:1.7;color:#5c6571;margin:0 0 16px;word-break:keep-all;overflow-wrap:anywhere}
#source-list{margin-top:24px;padding-top:24px;border-top:1px solid #e6e5eb}
#source-list h3{font-size:1rem;line-height:1.5;margin:0 0 12px}
#source-list .small-note{font-size:.875rem;line-height:1.7;margin:0 0 16px;padding:16px;word-break:keep-all;overflow-wrap:anywhere}
.info-sources{list-style:none;margin:0;padding:0}
.info-sources li{padding:16px 0;border-top:1px solid #e6e5eb}
.info-sources li:first-child{padding-top:0;border-top:0}
.info-sources li:last-child{padding-bottom:0}
.info-sources a{display:inline-block;font-size:1rem;font-weight:600;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere;text-underline-offset:3px}
.info-sources p{font-size:.875rem;line-height:1.7;color:#5c6571;margin:6px 0 0;word-break:keep-all;overflow-wrap:anywhere}
@media(max-width:760px){#about-dialog{padding:20px}#about-dialog .dialog-heading{gap:12px;margin-bottom:16px}#about-dialog .dialog-heading h2{font-size:1.125rem}#source-list{margin-top:20px;padding-top:20px}}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(180px);padding:14px 22px;background:#332d39;color:#fff;border-radius:12px;box-shadow:0 5px 24px #0002;max-width:90vw;width:max-content;font-size:.9375rem;z-index:100;text-align:center;transition:transform .18s}
.toast.visible{transform:translateX(-50%) translateY(0)}
.shared-options{display:grid;gap:10px;margin:20px 0}
.shared-options label{display:flex;align-items:center;gap:9px;min-height:44px}
.children-heading,.child-card-heading,.account-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.children-heading{margin:26px 0 12px}
.children-heading p{font-size:.8125rem;color:var(--muted);margin:2px 0 0}
.child-cards{display:grid;gap:14px}
.child-card{border:1px solid var(--line);border-radius:14px;padding:18px;background:#fffdfb}
.child-card fieldset{margin:14px 0 0}
.child-card .field{margin:12px 0}
.account-actions{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.family-reset-section{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}
.family-reset-section>button{min-height:44px;max-width:100%;text-align:left;white-space:normal}
.danger{color:#a13d37}
.account-actions .danger{margin-left:auto}
.notification-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.notification-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:10px}
.notification-card.unread{border-color:#e4a98f;box-shadow:inset 4px 0 #dc6739}
.notification-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.8125rem;color:var(--muted)}
.new-badge{background:#fff0e8;color:#a83d17;border-radius:20px;padding:4px 9px;font-weight:700}
.notification-card h3{font-size:1.2rem;line-height:1.5;margin:0}
.notification-target{margin:0;color:var(--muted)}
.notification-price{font-size:1.05rem}
.notification-reasons{list-style:none;padding:0;margin:4px 0 8px;display:grid;gap:8px}
.notification-reasons li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;font-size:.875rem;background:#f7f6f8;border-radius:9px;padding:10px}
.notification-reasons li strong{color:#a43d17}
.notification-reasons li span{color:#555866;overflow-wrap:anywhere}
.notification-card .primary-button{margin-top:auto;width:100%}

@media(max-width:1100px){
  .sidebar{gap:12px;padding:14px 24px;flex-wrap:wrap}
  .brand{font-size:1.25rem}

}
@media(max-width:760px){
  .sidebar{padding:12px 16px 0;gap:10px;display:grid;grid-template-columns:1fr auto}
  .brand{font-size:1.125rem;gap:7px}.brand-symbol{width:32px;height:32px;font-size:25px;border-radius:11px}.beta{font-size:.5625rem}

  main{padding:12px 16px 0}

  .filter-line{gap:8px 14px}.filter-line .text-button{margin-left:0}

  .section-heading{flex-wrap:wrap}h2{font-size:1.2rem}
  .timeline-item{padding:18px;gap:14px}.detail-facts{grid-template-columns:76px minmax(0,1fr);gap:14px;font-size:.9375rem}
  dialog{padding:22px}.detail-actions{flex-direction:column}.dialog-heading h2{font-size:1.3rem}
  footer{align-items:flex-start;justify-content:flex-start}footer>span{width:100%}
  .notification-grid{grid-template-columns:1fr;gap:16px}.notification-card{padding:18px}.notification-reasons li{grid-template-columns:1fr;gap:2px}
}
@media(max-width:360px){
  .brand{font-size:1rem}.beta{display:none}

  .children-heading,.account-actions{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.availability-panel{margin:20px 0;padding:18px;border:1px solid #dce4df;border-radius:14px;background:#f5f8f6}.availability-panel strong{font-size:18px}.availability-panel p{font-size:14px;line-height:1.65;margin:8px 0}.availability-available{color:#176b43}.availability-closed{color:#4b5563}.availability-unknown{color:#805117}.availability-time{color:#536259}.availability-panel button{margin-top:8px}
.badge.available{background:#dff4e6;color:#145c39}.badge.unknown{background:#fff1d9;color:#76501c}.badge.closed{background:#eceef1;color:#4b5563}

.map-coverage-note{font-size:.8125rem;line-height:1.5;color:var(--muted);margin:0}
.freshness-notice{margin:8px 0 18px;color:#536259;font-size:.9rem;line-height:1.6}.freshness-notice.stale{color:#87501d;font-weight:650}

.session-list{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}.session-list li{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;background:#fff;border:1px solid #e8dfd5;border-radius:10px;padding:10px 12px}.session-list li>span{flex:1 1 190px;font-weight:650}.session-list li>strong{white-space:nowrap}.session-list li>small{color:#625f66}
.availability-panel{background:#fafaf9;border-color:#e7e6e2;margin:22px 0 12px;padding:16px}.availability-panel strong{font-size:1rem}.availability-panel p{color:#555d63}.availability-panel .availability-unknown,.availability-panel .availability-unsupported{color:#3d4850}.availability-panel .outline-button{font-size:.8125rem}.detail-facts{font-size:.9375rem;line-height:1.65}.detail-facts dt{color:#646b75}.detail-facts dd{word-break:keep-all;overflow-wrap:anywhere}#detail-dialog .small-note{font-size:.8125rem;line-height:1.65;margin:16px 0;padding:12px}

.map-panel{box-sizing:border-box;width:min(1180px,calc(100% - 24px));height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);padding:12px 16px;overflow:auto;overscroll-behavior:contain}
.map-panel[open]{display:flex;flex-direction:column;gap:6px}
.map-panel .dialog-heading{align-items:center;margin:0;flex-shrink:0}
.map-panel h2{font-size:1.125rem;margin:0}
.map-panel .close{flex-shrink:0;min-width:44px;min-height:44px}
#region-map{display:flex;flex-direction:column;gap:6px;flex:1 0 auto;min-height:0}
.map-stage{display:flex;flex-direction:column;min-height:220px;flex:1 0 220px;border:1px solid #dce7e6;border-radius:12px;overflow:hidden}
.map-panel .region-map-canvas{display:block;width:100%;height:0;min-height:220px;flex:1 0 220px;background:#eaf3f5;touch-action:none;cursor:grab}
.country-background{pointer-events:none}.country-background-land{fill:#f7f5ec;stroke:#b7c9c1;stroke-width:1.2}
.map-region-name{margin:0;font-size:.875rem;line-height:1.5;flex-shrink:0}
.map-return{align-self:center;width:min(320px,100%);margin:0;min-height:44px;flex-shrink:0}
.map-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;flex-shrink:0}
.map-region-picker{display:flex;align-items:center;gap:8px;font-size:.875rem;font-weight:600;margin:0;min-width:0;max-width:100%}
.map-region-picker select{width:220px;max-width:calc(100% - 40px);min-width:0;min-height:44px;border:1px solid #85818d;border-radius:10px;padding:8px 12px;background:#fff;font:inherit}
.map-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.8125rem;color:#5c6571;line-height:1.5;margin:0;flex-shrink:0}
.map-legend>span{display:inline-flex;align-items:center;gap:6px}
.map-key{display:inline-block;width:12px;height:12px;border:1px solid #85818d;border-radius:3px;background:#edf0f2}.map-key.has-programs{background:#bddcc4}.map-key.selected{background:#fff;border:2px solid #bb481e}
.map-notes{flex-shrink:0;font-size:.8125rem;color:var(--muted);line-height:1.5}
.map-notes summary{cursor:pointer}.map-notes p{margin:6px 0 0}
@media(max-width:760px){.map-panel{width:calc(100% - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px)}.map-panel[open],#region-map{gap:5px}.map-stage{min-height:200px;flex-basis:200px}.map-panel .region-map-canvas{min-height:200px;flex-basis:200px}}
.region-shape{fill:#ece9e1;stroke:#fff;stroke-width:1.4;cursor:pointer}.region-shape.has-programs{fill:#dce8d4}.region-shape.selected{fill:#f5b68c;stroke:#bb481e;stroke-width:2}.region-shape:hover,.region-shape:focus{fill:#e8cbb0;stroke:#633b23;stroke-width:2;outline:none}.region-label{font-size:18px;fill:#394238;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:3;stroke-linejoin:round}.region-label.selected{font-weight:700}.program-marker{fill:#bb481e;stroke:white;stroke-width:3;cursor:pointer}.program-marker.selected{fill:#255d44;stroke-width:5}.program-marker:focus{stroke:#161f18;outline:none}.map-help,.map-source{font-size:.875rem;color:#62665d;line-height:1.65;margin:12px 0 0}.map-source{font-size:.8125rem}
.selected-program{outline:3px solid #bb481e;outline-offset:2px}
@media(max-width:760px){.map-panel{padding:10px}.map-panel h2{font-size:1.125rem}.map-toolbar{justify-content:center}.map-region-picker{margin-right:auto}.map-panel .region-label{display:none}.region-label.selected{display:block;font-size:38px}}
@media(max-width:760px){#detail-dialog{padding:22px}#detail-dialog .dialog-heading h2{font-size:1.25rem;line-height:1.45}#detail-dialog .detail-facts{grid-template-columns:76px minmax(0,1fr);gap:10px;font-size:.875rem}}

.coverage-details{margin-top:10px}.coverage-details>summary{font-size:.875rem;color:var(--muted);cursor:pointer}

.badge.festival-upcoming{color:#8b4821;background:#fff0df}.badge.festival-active{color:#206241;background:#e8f5ec}
.festival-dialog{box-sizing:border-box;width:min(1000px,calc(100% - 32px));padding:24px;overflow:auto}.festival-dialog .dialog-heading h2{font-size:1.25rem;margin:0}.festival-dialog .view-help{margin:8px 0 0;font-size:.875rem}.festival-dialog .close{flex-shrink:0}.festival-return{width:100%;margin-top:12px}@media(max-width:760px){.festival-dialog{width:calc(100% - 24px);padding:16px}.festival-dialog .dialog-heading h2{font-size:1.125rem}.festival-dialog .festival-day{padding:8px 3px}}
.festival-calendar-toolbar,.festival-month-navigation,.festival-calendar-filters{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.festival-calendar-toolbar{justify-content:space-between}.festival-month-navigation h2{font-size:1.25rem;margin:0}.festival-month-navigation button{min-width:44px;min-height:44px}.festival-calendar-filters label{display:flex;align-items:center;gap:8px;font-size:.875rem}.festival-calendar-filters select{border:1px solid #85818d;background:white;border-radius:8px;padding:8px;min-height:44px;max-width:240px;font:inherit}.festival-calendar-summary{margin:16px 0 12px}.festival-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e6e5eb;border:1px solid #e6e5eb;border-radius:12px;overflow:hidden}.festival-weekday{text-align:center;background:#f7f6f8;padding:10px 0;font-size:.875rem;color:#5c6571}.festival-day{min-height:90px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;border:0;padding:12px;background:white;color:#232631;text-align:left;font-size:1rem;cursor:pointer}.festival-day small{font-size:.8125rem;display:flex;align-items:center;gap:4px;color:#a43e1d}.festival-event-dot{width:6px;height:6px;border-radius:50%;background:#bb481e}.festival-day.outside{background:#f7f6f8;color:#85818d;cursor:default}.festival-day.today>span{font-weight:700;text-decoration:underline;text-underline-offset:4px}.festival-day[aria-pressed=true]{background:#fff0e9;box-shadow:inset 0 0 0 2px #bb481e}.festival-day:focus-visible{outline:3px solid #137cbd;outline-offset:-3px}.festival-day-results{margin-top:22px}.festival-day-results h3{font-size:1.125rem;margin:0 0 12px}.festival-day-results h3 span{font-size:.875rem;font-weight:400;color:#5c6571}.festival-event-row{display:flex;gap:16px;align-items:center;justify-content:space-between;border-bottom:1px solid #e6e5eb;padding:14px 0}.festival-event-row>div{min-width:0}.festival-event-row h4{margin:0 0 6px;font-size:1rem;line-height:1.55;overflow-wrap:anywhere}.festival-event-row p{font-size:.875rem;line-height:1.7;color:#5c6571;margin:2px 0}.festival-event-row button{flex-shrink:0;min-height:44px}.festival-calendar-empty{padding:20px;background:#f7f6f8;border-radius:10px;font-size:.9375rem;line-height:1.7;color:#5c6571}
@media(max-width:760px){.festival-day{min-height:68px;padding:8px 5px;font-size:.875rem}.festival-day small{font-size:.8125rem}.festival-count-label{display:none}.festival-calendar-toolbar{gap:12px}.festival-month-navigation{gap:8px}.festival-month-navigation h2{font-size:1.125rem}.festival-calendar-filters{width:100%;gap:8px}.festival-calendar-filters label{min-width:0;flex:1;flex-direction:column;align-items:stretch;gap:4px}.festival-calendar-filters select{width:100%;max-width:none;min-width:0}.festival-event-row{gap:8px}.festival-event-row button{padding:8px 10px;font-size:.8125rem}}
.visitor-counter{font-size:13px;line-height:1.6;color:var(--text-muted,#5c6571);overflow-wrap:anywhere}

/* Request H67: readable controls, compact copy, optional map/calendar. */

.condition-detail{border:0;background:none;padding:0;text-decoration:underline;color:#a43e1d;text-align:left;font-size:inherit;min-height:44px}
.map-tools{display:flex;flex-wrap:wrap;max-width:100%;justify-content:center;align-items:center;gap:6px;margin:0;flex-shrink:0}
.map-tools button{min-width:44px;min-height:44px;padding:6px 12px}
.map-tools span{font-size:.8125rem;color:var(--muted)}
.map-region-name{font-size:.875rem;font-weight:600;line-height:1.5;min-height:21px;margin:0;text-align:center;flex-shrink:0}
.map-panel .region-map-canvas:active{cursor:grabbing}
.region-shape{fill:#edf0f2;stroke:#85818d;stroke-width:1;vector-effect:non-scaling-stroke}
.region-shape.has-programs{fill:#bddcc4}
.region-shape.selected{stroke:#bb481e;stroke-width:3;fill:#edf0f2}
.region-shape.has-programs.selected{fill:#bddcc4}
.region-shape:hover,.region-shape:focus{fill:#edf0f2;stroke:#137cbd;stroke-width:3}
.region-shape.has-programs:hover,.region-shape.has-programs:focus{fill:#bddcc4}
.map-panel .region-label{display:block;font-weight:600;fill:#232631}
.map-help{font-size:.8125rem;line-height:1.5;margin-top:8px}
.map-source{margin-top:4px}
.festival-dialog{width:min(880px,calc(100% - 24px));padding:16px}
.festival-dialog .dialog-heading{margin-bottom:8px}
.festival-calendar-toolbar{gap:8px;margin-bottom:8px}
.festival-calendar-filters label{display:flex;flex-direction:column;gap:3px;align-items:stretch;min-width:0}
.festival-calendar-filters select{min-width:0;width:100%;max-width:100%}
.festival-calendar-summary{margin:8px 0!important;padding:0!important;font-size:.8125rem!important}
.festival-weekday{padding:4px 0;font-size:.8125rem}
.festival-dialog .festival-day{min-height:44px;height:48px;padding:4px 6px;gap:0;font-size:.875rem;flex-direction:row;justify-content:space-between;align-items:center}
.festival-count-label{display:none}
.festival-day small{font-size:.75rem}.festival-day-results{margin-top:12px}
.festival-day-results h3{font-size:1rem;margin-bottom:6px}
.festival-event-row{gap:8px;padding:8px 0}
.festival-event-row h4{font-size:.875rem;line-height:1.5;margin-bottom:3px}
.festival-event-row p{font-size:.8125rem;line-height:1.5}
.festival-calendar-empty{padding:10px;font-size:.8125rem}
.festival-dialog .small-note{padding:0;font-size:.8125rem;line-height:1.5;margin:8px 0}

@media(max-width:1250px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){.page-heading{align-items:flex-start;flex-direction:column;gap:16px}.family-context{max-width:none;width:100%;padding:10px 16px}.family-context #family-description{flex:1 1 220px}.sidebar{gap:16px;flex-wrap:wrap}.sidebar nav{margin-left:auto}.nearby-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.nearby-controls .search{grid-column:1/-1}}
@media(max-width:760px){
 .sidebar{padding:12px 16px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.brand{font-size:1.125rem}.brand-symbol{width:32px;height:32px}.beta{font-size:.625rem}.sidebar .profile-button{grid-column:2;grid-row:1;font-size:.875rem;padding:8px;max-width:120px;white-space:normal}.sidebar nav{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px;margin:0}.nav{padding:10px 12px;font-size:.875rem}.nav b{font-size:.8125rem}
 main{padding:24px 16px 0}.page-heading{margin-bottom:20px}.page-heading h1{font-size:1.5rem}.page-heading p{font-size:1rem}.family-context{gap:8px;padding:12px}.family-context #family-description{font-size:.875rem;flex:1 1 120px}.family-shortcut{font-size:.875rem;flex:0 0 auto;white-space:nowrap}
 .family-search-panel{padding:16px;margin-bottom:12px}.nearby-controls{gap:12px}.control-label{font-size:.875rem}.explore-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}.explore-tools-label{display:none}.explore-tools .outline-button{padding:8px 4px;white-space:normal}.explore-tools .ui-icon{display:none}.nearby-status{gap:6px}.reservation-disclaimer{flex-basis:100%}
 .type-filter{gap:4px;flex-wrap:wrap}.type-filter .chip{font-size:.875rem;padding:10px 8px}.quick-filters{gap:4px 16px}.quick-filters .text-button{margin-left:0}
 .results-toolbar{grid-template-columns:minmax(0,1fr);gap:0;margin-bottom:16px}.filter-panel[open],.filter-panel[open]+.results-heading{grid-column:auto}.filter-panel summary,#filter-summary{font-size:.875rem}.filter-content{padding:12px 0 16px}.filter-group{grid-template-columns:minmax(0,1fr);gap:8px}.filter-group>strong{padding:0}.filter-group>strong small{display:inline;margin-left:8px}.chip{font-size:.875rem}.coverage-note{font-size:.875rem}.results-heading{justify-content:space-between;flex-wrap:wrap;gap:8px;margin:8px 0 0}.results-heading h2{font-size:1rem}.result-label{display:inline}.sort-label select{font-size:.875rem;max-width:100%;padding:8px}
 .cards{grid-template-columns:minmax(0,1fr);gap:16px}.card-body{padding:20px}.card h3{font-size:1.25rem}
}
@media(max-width:360px){.brand{font-size:1rem}.beta{display:none}.sidebar .profile-button{max-width:100px;font-size:.875rem}.family-search-panel{padding:12px}.card-body{padding:16px}.type-filter .chip{padding:10px 6px}.results-heading{align-items:flex-start}.sort-label{width:100%}.sort-label select{width:100%}}

/* Discovery revision: a compact catalogue, with optional clearly labelled images. */
main{padding-top:24px}
.family-search-panel{display:block;padding:12px 16px;margin-bottom:8px;background:#faf9f6;border-radius:12px}
.nearby-controls{grid-template-columns:minmax(200px,1fr) minmax(0,2fr);gap:14px;align-items:start}
.search-options{min-width:0}
.search-options>summary{display:none;min-height:44px;align-items:center;justify-content:space-between;font-size:.8125rem;font-weight:600;color:#5c5660;list-style:none}
.search-options>summary::-webkit-details-marker{display:none}
.search-options-content{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}
.region-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.region-selects label{display:flex;flex-direction:column;gap:4px;min-width:0}
.nearby-controls>label{gap:4px}
.control-label{font-size:.8125rem}
.search-field{padding:8px 12px;min-height:44px}
.search input,.nearby-controls select{font-size:.875rem}
.nearby-controls select{min-height:44px;padding:8px}
.explore-tools{align-self:end;gap:6px;margin:0;flex-wrap:nowrap}
.explore-tools-label{display:none}
.explore-tools .outline-button{font-size:.8125rem;padding:8px;gap:5px}
.explore-tools .ui-icon{width:16px;height:16px}
.nearby-status{grid-column:1/-1;font-size:.75rem;margin:0;line-height:1.6}
.reservation-disclaimer{flex:1 1 320px}
.type-filter{gap:4px}
.type-filter .chip{font-size:.875rem;padding:8px 12px}
.quick-filters{margin-bottom:0}
.results-toolbar{margin-bottom:4px}
.discovery-options{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line)}
.discovery-options .discovery-bar{margin:0;border:0}
.discovery-options .quick-filters{gap:8px 14px}
.results-toolbar{border-top:0;margin-bottom:10px}
.card-view-switch{display:flex;flex:none;border:1px solid #b6afa9;border-radius:9px;padding:3px;background:#faf9f7;gap:2px}
.card-view-switch button{border:0;min-height:44px;padding:8px 12px;font-size:.8125rem;background:transparent;border-radius:6px;white-space:nowrap;color:#5c5660}
.card-view-switch button[aria-pressed=true]{background:#fff;box-shadow:0 1px 4px #4533211a;font-weight:700;color:var(--brand-hover)}
.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.discovery-card{--type-color:#245f95;--type-wash:#edf4fb;border-radius:12px;background:#fff;border-top:4px solid var(--type-color)}
.discovery-card.facility-card{--type-color:#326a52;--type-wash:#edf5ef}
.discovery-card.experience-card{--type-color:#735391;--type-wash:#f4eff8}
.discovery-card.festival-card{--type-color:#a45026;--type-wash:#fff2e9}
.content-type{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:700;color:var(--type-color)}
.content-type svg{width:20px;height:20px;flex:none}
.discovery-card .card-body{padding:12px 14px;position:relative}
.discovery-card .card-top{min-height:38px;margin:-12px -14px 10px;padding:9px 48px 8px 14px;background:var(--type-wash)}
.discovery-card .activity-label{font-size:.75rem;padding:2px 5px;gap:4px}
.discovery-card .activity-label svg{width:14px;height:14px}
.discovery-card .save-button{position:absolute;right:6px;top:4px;background:transparent}
.discovery-card .institution{font-size:.75rem;line-height:1.5;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:26px}
.discovery-card h3{font-size:1.0625rem;line-height:1.4;margin:0 0 6px}
.discovery-card .title-button{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:48px;line-height:1.4}
.discovery-card .card-tags{margin:0 0 8px;gap:4px;min-height:21px}
.discovery-card .badge,.discovery-card .tag{font-size:.75rem;line-height:1.5;padding:1px 5px}
.discovery-card .card-meta{border:0;padding:0;gap:4px;font-size:.8125rem;line-height:1.55}
.discovery-card .card-meta>div{grid-template-columns:32px minmax(0,1fr);gap:6px}
.discovery-card .card-meta dt{font-size:.75rem;padding:0}
.discovery-card .card-meta dd{font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.discovery-card .card-fee dd{font-weight:600;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow:hidden;min-height:0}
.discovery-card .card-bottom{padding-top:8px}
.discovery-card .card-bottom button{background:#fff;border-color:#e6e0dc;font-size:.8125rem;padding:6px 9px}
.discovery-card .card-bottom small{display:block;color:#68626b;font-size:.6875rem;line-height:1.5;margin-top:5px}
.discovery-card>.card-artwork{height:124px;border-radius:0;margin:0;background:#f3f0e9}
.discovery-card>.card-artwork figcaption{font-size:.6875rem;right:8px;bottom:8px}
.discovery-card>.example-artwork img[src$='.svg']{object-fit:contain;padding:8px 22px}
.discovery-card:has(>.card-artwork) .card-body{padding-top:10px}
.cards[data-card-view='compact'] .card-top{min-height:0;height:0;margin:0;padding:0}
.cards[data-card-view='compact'] .activity-label{display:none}
.cards[data-card-view='compact'] .institution{padding-right:34px}
.cards[data-card-view='compact'] .title-button{padding-right:24px}
.cards[data-card-view='compact'] .facility-card .card-when{display:none}
.cards[data-card-view='compact'] .card-fee dd{min-height:0}
.cards[data-card-view='compact'] .card-bottom small{display:none}
.cards[data-card-view='compact'] .card-bottom button{font-size:.75rem}
@media(max-width:1100px){
 .search-options-content{grid-template-columns:minmax(0,1fr)}
 .explore-tools{justify-content:flex-start}
 .nearby-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
 .nearby-controls .search{grid-column:auto}
 .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
 .page-heading{flex-direction:row;align-items:center}
 .family-context{width:auto;flex-shrink:0}
}
@media(max-width:760px){
 main{padding-top:18px}
 .page-heading{align-items:center;flex-wrap:nowrap;gap:8px;margin-bottom:10px}
 .page-heading h1{font-size:1.25rem}
 .page-heading .public-intro{display:none}
 .family-shortcut{min-height:44px;padding:6px 8px;font-size:.75rem;gap:5px}
 .family-search-panel{padding:12px;gap:8px;margin-bottom:6px}
 .nearby-controls{grid-template-columns:minmax(0,1fr);gap:4px}
 .nearby-controls .search{grid-column:1/-1}
 .search-options>summary{display:flex}
 .search-options[open]>summary span{transform:rotate(180deg)}
 .search-options-content{gap:8px;margin-top:4px}
 .explore-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:6px}
 .explore-tools .outline-button{white-space:nowrap;font-size:.75rem;padding:6px 3px}
 .nearby-status{gap:2px}
 .type-filter{flex-wrap:nowrap;overflow-x:auto;max-width:100%;gap:4px;scrollbar-width:thin}
 .type-filter .chip{font-size:.8125rem;padding:8px 7px;flex:none}
 .quick-filters{font-size:.8125rem;gap:0 12px}
 .quick-filters .text-button{font-size:.75rem;margin-left:auto}
 .results-toolbar{grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
 .results-heading{grid-column:1/-1;margin:0;gap:6px}
 .results-heading h2{font-size:.875rem}
 .sort-label{width:auto}
 .sort-label select{font-size:.75rem;max-width:174px;padding:6px}
 .filter-panel summary,#filter-summary{font-size:.8125rem}
 .discovery-options{display:block}
 .discovery-options .discovery-bar{border-bottom:1px solid var(--line)}
 .results-heading{display:grid;grid-template-columns:minmax(0,1fr) auto}
 .results-heading h2{grid-column:auto}
 .results-heading .result-label{display:none}
 .card-view-switch{margin-left:auto;padding:2px}
 .card-view-switch button{padding:6px 10px;font-size:.75rem}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .discovery-card .card-body{padding:10px}
 .discovery-card .card-top{margin:-10px -10px 8px;padding:9px 34px 9px 10px;min-height:40px}
 .content-type{font-size:.6875rem;gap:4px;line-height:1.4}
 .content-type svg{width:16px;height:16px}
 .discovery-card .activity-label{font-size:.6875rem;padding:2px 3px;gap:3px}
 .discovery-card .activity-label svg{display:none}
 .discovery-card .save-button{right:0;top:0;font-size:1.4rem}
 .discovery-card .institution{font-size:.6875rem;padding-right:14px}
 .discovery-card h3{font-size:1rem}
 .discovery-card .title-button{min-height:46px}
 .discovery-card .card-tags .tag{display:inline-flex}
 .discovery-card .card-meta{font-size:.75rem;gap:3px}
 .discovery-card .card-meta>div{grid-template-columns:26px minmax(0,1fr);gap:4px}
 .discovery-card .card-meta dt{font-size:.6875rem}
 .discovery-card .card-fee dd{min-height:0}
 .discovery-card .card-bottom small{font-size:.625rem}
 .discovery-card>.card-artwork{height:90px}
 .discovery-card>.example-artwork img[src$='.svg']{padding:5px 12px}
 .discovery-card>.card-artwork figcaption{font-size:.625rem;padding:1px 4px;right:4px;bottom:4px}
}
@media(max-width:359px){.cards{grid-template-columns:minmax(0,1fr)}.discovery-card h3{font-size:1.0625rem}.discovery-card .card-meta{font-size:.8125rem}.discovery-card .card-tags .tag{display:inline-flex}.results-heading{grid-template-columns:minmax(0,1fr)}.card-view-switch{margin-left:0;justify-self:start}.sort-label{width:100%}.sort-label select{max-width:none;width:100%}}

/* Approved national collection map, retained while integrating the final home UI. */
.map-panel.collection-panel{height:auto;width:min(920px,calc(100% - 24px));max-width:calc(100% - 24px);max-height:90dvh}
.collection-panel #region-map{display:block;flex:none;min-width:0}
.collection-total{margin:8px 0 16px;font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums}
.collection-layout{display:grid;gap:24px;min-width:0}
.collection-visual,.collection-detail{min-width:0}
.collection-panel .collection-svg{display:block;width:100%;flex:none;min-height:0;background:transparent;border-radius:0;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.collection-shape{fill:#137cbd;stroke:#d2d6dd;stroke-width:.8;vector-effect:non-scaling-stroke;cursor:pointer}
.collection-shape[data-total="0"]{fill:#edf0f2;fill-opacity:1}
.collection-district[data-total="0"][data-unassigned="true"]{fill:#fff1d6;fill-opacity:1}
.collection-key.collection-key-unassigned{background:#fff1d6;border:1px solid #85818d}
.collection-district{stroke:#85818d;stroke-width:.65}
.collection-district-detail{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);margin-bottom:16px}
.collection-district-detail h3{margin:0 0 8px;font-size:1rem}.collection-district-detail p{margin:8px 0;font-size:.875rem}
.collection-district-actions{display:flex;flex-wrap:wrap;gap:8px}.collection-district-actions button{min-height:44px}
.collection-shape.selected{stroke:var(--brand);stroke-width:2}
.collection-shape:focus-visible{stroke:#137cbd;stroke-width:3;outline:none}
.collection-line{fill:none;stroke:var(--line);stroke-width:1;pointer-events:none}
.collection-label{fill:#232631;font-size:14px;paint-order:stroke;stroke:white;stroke-width:3px;stroke-linejoin:round;pointer-events:none}
.collection-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.8125rem;margin:8px 0}
.collection-legend>span{display:inline-flex;align-items:center;gap:6px}
.collection-key{display:inline-block;width:16px;height:12px;background:#137cbd}.collection-key-empty{background:#edf0f2}.collection-key.few{opacity:.22}.collection-key.some{opacity:.48}.collection-key.many{opacity:.83}
.collection-detail>label{display:block;margin-bottom:8px;font-weight:600}
.collection-detail>select{width:100%;min-height:44px;border:1px solid #85818d;border-radius:10px;background:#fff;padding:8px 12px}
.collection-detail>[role="status"]{font-size:.9375rem;margin:14px 0}
.collection-table{width:100%;border-collapse:collapse;font-size:.9375rem;font-variant-numeric:tabular-nums}
.collection-table th,.collection-table td{border-bottom:1px solid var(--line);padding:8px 0;text-align:right}
.collection-table th:first-child{text-align:left}.collection-table th{font-weight:600}.collection-table tbody th{width:60%}
.collection-table .text-button{min-height:44px;padding:8px 4px;text-align:left}.collection-table .text-button[aria-pressed="true"]{font-weight:700;color:var(--brand)}
.collection-map .map-help,.collection-map .map-source{margin:8px 0;font-size:.8125rem}
.collection-map .map-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.collection-map .map-tools button{min-width:44px;min-height:44px}.collection-map .map-tools output{font-variant-numeric:tabular-nums;font-size:.875rem}
