/* Progressive enhancement must preserve each component's responsive display. */
.js-only { display:none!important; }
.has-js .js-only { display:revert!important; }
.has-js button.js-only { display:inline-flex!important;align-items:center;justify-content:center; }
.has-js .intent-list.js-only { display:flex!important; }
.has-js .menu-button.js-only { display:none!important; }
[hidden],.has-js [hidden] { display:none!important; }

/* Editorial rhythm, with room for accents and longer translations. */
h1,h2,h3 { text-wrap:balance;overflow-wrap:break-word; }
button,select,summary { -webkit-tap-highlight-color:transparent; }
button,a,select,summary { touch-action:manipulation; }
:focus-visible { outline-color:var(--gold-dark); }
.hero :focus-visible,.site-header :focus-visible,.site-footer :focus-visible { outline-color:#e2b868; }
.hero-content h1 { max-width:950px; }
.hero-copy { line-height:1.75; }
.hero-intents { margin-top:32px; }
.intent-chip { padding:10px 18px;line-height:1.4;font-weight:600; }
.section-heading > div,.section-heading > p,.header-actions { min-width:0; }
.section-heading > div { flex:1 1 60%; }
.section-heading > p { flex:1 1 40%;font-size:.95rem; }
.eyebrow { line-height:1.5; }
.neighborhood-content h2 { line-height:1.08; }
.mobile-menu a { padding-block:12px; }

/* One card system for picks, collection results and neighbourhood pages. */
.picks-grid,.results-grid { gap:20px;border:0; }
.picks-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.results-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.pick-card,.pick-card:not(:nth-child(3n+1)),.pick-card:nth-child(even),.pick-card:nth-child(odd),.place-card,.place-card:nth-child(even) {
 grid-column:auto;display:flex;flex-direction:column;min-width:0;min-height:0;padding:28px;border:1px solid var(--line);background:var(--white);gap:0;
}
.pick-card { border-top-color:var(--gold); }
.pick-number { color:var(--gold-dark);font:1.25rem/1.2 var(--serif);margin-bottom:24px; }
.pick-card h3,.place-card h3 { margin:0 0 16px;font-size:clamp(1.75rem,2.7vw,2.45rem);line-height:1.16; }
.place-card h3 a,.pick-card h3 a,.itinerary-card h3 a { text-decoration:none;text-underline-offset:5px; }
.place-card h3 a:hover,.pick-card h3 a:hover,.itinerary-card h3 a:hover { text-decoration:underline; }
.pick-card > p,.place-card > p { margin:0 0 20px;color:var(--ink-soft);font-size:.92rem;line-height:1.7; }
.pick-card .place-meta,.place-card .place-meta { margin-bottom:14px;color:var(--gold-dark);font-size:.67rem;font-weight:650;letter-spacing:.06em;line-height:1.65;text-transform:uppercase; }
.pick-card .visit-summary,.place-card .visit-summary { display:grid;gap:6px;margin-bottom:24px;font-size:.8rem;line-height:1.6; }
.visit-summary span:first-child { color:var(--ink);font-weight:600; }
.card-actions,.practical-links,.detail-toolbar { display:flex;flex-wrap:wrap;gap:12px;align-items:center; }
.pick-card .card-actions,.place-card .card-actions { margin-top:auto;padding-top:18px;border-top:1px solid var(--line); }
.pick-card .card-actions .card-button,.place-card .card-actions .card-button {
 position:static;min-width:44px;width:auto;min-height:46px;height:auto;padding:10px 16px;border:1px solid var(--ink);background:var(--ink);color:var(--white);font-size:.78rem;line-height:1.5;font-weight:600;
}
.place-card .card-actions .card-button::after { content:none; }
.save-place,.shortlist-panel button,.guide-detail button[data-print] { min-height:46px;min-width:44px;padding:10px 16px;border:1px solid var(--line);background:transparent;border-radius:0;cursor:pointer;font:600 .78rem/1.5 var(--sans); }
.save-place:hover,.shortlist-panel button:hover { border-color:var(--ink); }
.save-place[aria-pressed=true],#show-saved[aria-pressed=true] { background:var(--ink);color:var(--white);border-color:var(--ink); }
.itinerary-top { flex-wrap:wrap;gap:12px;line-height:1.5; }
.itinerary-card h3 { line-height:1.15; }
.itinerary-stops li { padding-block:16px;line-height:1.6; }
.itinerary-stops a { text-decoration:none; }
.itinerary-stops a:hover { text-decoration:underline; }
.itinerary-card > .text-link { margin-bottom:16px;line-height:1.5;text-decoration:none; }
.itinerary-card > .card-button { margin-top:auto;line-height:1.5; }

/* Compact filter groups; explanatory copy remains available on demand. */
.filter-panel { padding:28px 0; }
.practical-filters { display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 8px; }
.practical-filters label { min-height:46px;display:flex;align-items:center;gap:10px;padding:9px 13px;cursor:pointer;border:1px solid var(--line);background:var(--white);font-size:.78rem;line-height:1.5; }
.practical-filters label:has(:checked) { border-color:var(--gold-dark);background:var(--paper-deep); }
.practical-filters input { flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--gold-dark); }
.filter-help { max-width:80ch;margin-bottom:20px; }
.filter-help summary { width:fit-content;min-height:44px;padding:12px 0;cursor:pointer;font-size:.78rem;color:var(--ink-soft); }
.filter-help[open] { padding-bottom:12px; }
.filter-help .guide-note { margin:0;padding-left:16px;border-left:1px solid var(--gold); }
.filter-selects { gap:16px;margin-top:8px; }
.filter-selects label { min-width:0;gap:9px;line-height:1.5; }
.filter-selects select { min-width:0;min-height:50px;font-weight:500; }
.filter-summary { flex-wrap:wrap;margin-top:22px;gap:8px 20px;align-items:center; }
.clear-button { line-height:1.5; }
.guide-note { font-size:.8rem;line-height:1.7;color:var(--ink-soft);max-width:85ch; }
.shortlist-panel { margin:28px 0;padding:28px;border:1px solid var(--line);border-top:2px solid var(--gold);background:var(--paper-deep); }
.shortlist-panel h3 { margin:0 0 12px;font-size:1.9rem;line-height:1.15; }
.shortlist-panel p { max-width:78ch;font-size:.85rem;line-height:1.7;color:var(--ink-soft); }
.shortlist-panel .card-actions { margin-top:20px; }
.shortlist-panel button { background:var(--white); }
#shortlist-status:empty { display:none; }
#shortlist-status:not(:empty) { margin:16px 0 0; }
#share-url { width:100%;padding:12px;min-height:46px;margin-top:12px;border:1px solid var(--line);font:1rem/1.5 var(--sans); }

/* Detail drawer: the close control stays within reach, even on short screens. */
.dialog-inner { padding:0 36px 48px;overflow:visible; }
.dialog-toolbar { position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;background:var(--paper);border-bottom:1px solid var(--line); }
.dialog-toolbar .eyebrow { margin:0; }
.dialog-close { position:static;flex:0 0 48px;line-height:1; }
.dialog-inner > .eyebrow { margin-top:32px; }
.dialog-inner h2 { font-size:clamp(2.4rem,6vw,4rem);line-height:1.1; }
.dialog-why { font-size:1.35rem;line-height:1.5; }
.place-dialog { height:100dvh;max-height:100dvh;overscroll-behavior:contain; }
.detail-list > div { gap:16px 24px;padding-block:22px;grid-template-columns:minmax(100px,.38fr) minmax(0,1fr); }
.detail-list dt { line-height:1.6; }
.detail-list dd { margin-left:0;overflow-wrap:anywhere;font-size:.9rem;line-height:1.75; }
.practical-details { border-top:1px solid var(--line);margin-top:28px;padding-top:28px; }
.practical-details h3 { margin-bottom:24px;line-height:1.15; }
.practical-details .guide-note { margin-top:20px; }
.practical-links { align-items:stretch;margin:24px 0;gap:12px; }
.practical-links a { display:flex;align-items:center;min-height:48px;padding:12px 16px;border:1px solid var(--line);font-size:.8rem;line-height:1.6;text-decoration:none; }
.practical-links a:hover { border-color:var(--ink); }
#dialog-page { line-height:1.6;padding-block:10px;text-decoration:none; }
.dialog-actions { margin-top:24px; }
.dialog-actions .button { min-height:50px;padding-block:12px;line-height:1.6; }
.guide-languages { display:flex;flex-wrap:wrap;gap:8px 16px; }
.guide-languages a { display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:4px 8px;font-size:.82rem;text-decoration:none; }
.guide-languages a[aria-current=page] { font-weight:700;box-shadow:inset 0 -1px var(--gold-dark); }
.neighborhood-links { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:32px 0; }
.neighborhood-links a { border-bottom:1px solid var(--line);padding:24px 0;font:1.7rem/1.2 var(--serif);text-decoration:none; }
.editorial-note { border-top:1px solid var(--line);margin-top:48px;padding-top:28px;max-width:80ch; }
.editorial-note h2 { font-size:2rem;line-height:1.15;margin-bottom:20px; }
.editorial-note p { color:var(--ink-soft);font-size:.88rem;line-height:1.75; }
.detail-header { display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:18px;border-bottom:1px solid var(--line); }
.detail-header > a:not(.detail-brand) { font-size:.85rem;text-decoration:none;min-height:44px;display:flex;align-items:center; }
.detail-brand { flex:0 0 auto; }
.detail-brand img { width:48px;height:48px;border-radius:50%; }
.guide-detail { max-width:960px;padding-top:44px;padding-bottom:72px; }
.guide-detail h1 { font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.08;margin:20px 0 28px; }
.guide-detail h2 { font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.16;margin:36px 0 20px; }
.guide-detail .detail-list { margin-top:28px; }
.guide-lede { font-size:1.1rem;line-height:1.8;max-width:74ch; }
.guide-detail li { margin-bottom:12px; }
.guide-detail a,.guide-breadcrumb a { text-underline-offset:4px; }
.guide-breadcrumb { font-size:.8rem;line-height:1.8;margin-bottom:32px; }
.detail-toolbar { padding:12px 0; }
.detail-toolbar > a { min-height:46px;display:flex;align-items:center;padding-inline:12px;font-size:.85rem; }
.route-stops { padding-left:28px; }
.route-stops>li { padding-left:10px;border-bottom:1px solid var(--line);padding-bottom:32px; }
.route-stops>li::marker { color:var(--gold-dark);font-family:var(--serif);font-size:1.2rem; }
.route-transfer { margin-top:24px;padding:24px;background:var(--paper-deep); }
.route-transfer p { margin:12px 0; }
.route-transfer strong { font-size:.82rem; }
.guide-detail .results-grid { margin-top:32px; }
.has-js .guide-detail .card-button { display:none!important; }
.guide-detail ul a { overflow-wrap:anywhere; }
.related-links a { display:inline-block;min-height:44px;padding-block:8px; }

@media(max-width:1000px) {
 .has-js .menu-button.js-only { display:grid!important;justify-content:center;align-content:center;gap:6px; }
 .picks-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
 .shell,.hero-content { width:calc(100% - 48px); }
 .site-header { padding:14px 24px;gap:12px; }
 .header-actions { gap:8px; }
 .language-control select { width:76px;min-width:76px;min-height:44px;padding:0 20px 0 10px;font-size:16px; }
 .menu-button { width:44px;height:44px; }
 .hero { min-height:720px;min-height:clamp(660px,92svh,820px); }
 .hero-content { padding:140px 0 48px; }
 .hero-content h1 { font-size:clamp(2.6rem,12vw,5rem);line-height:1.06;letter-spacing:-.035em;max-width:100%;margin-bottom:24px; }
 .hero-copy { font-size:.96rem;line-height:1.75;max-width:100%;margin-bottom:28px; }
 .hero-intents { margin-top:28px;padding-top:22px; }
 .hero-intents > p { font-size:.75rem;font-weight:500;margin-bottom:16px; }
 .hero .intent-chip { background:rgba(18,18,15,.35); }
 .hero .intent-chip[aria-pressed=true] { background:#e2b868; }
 .intent-chip { padding:10px 14px; }
 h2 { font-size:clamp(2.1rem,8.7vw,3.5rem);line-height:1.1; }
 .section { padding-block:60px; }
 .section-heading { gap:20px;margin-bottom:28px; }
 .section-heading > p,.intro > p { font-size:.94rem;line-height:1.8; }
 .intro { gap:24px; }
 .collection-heading { grid-template-columns:1fr;align-items:start; }
 .results-grid { grid-template-columns:1fr;gap:16px; }
 .pick-card,.pick-card:not(:nth-child(3n+1)),.pick-card:nth-child(even),.pick-card:nth-child(odd),.place-card,.place-card:nth-child(even) { padding:24px; }
 .neighborhood-feature { min-height:540px; }.neighborhood-content { padding-block:64px; }
 .concierge-band { padding-block:48px; }.concierge-inner { gap:24px; }
 .concierge-inner h2 { font-size:clamp(2.1rem,8.5vw,3.2rem);line-height:1.12; }
 .filter-selects { grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px; }
 .filter-selects label:nth-child(-n+2) { grid-column:1 / -1; }
 .filter-selects label:last-child { grid-column:1 / -1; }
 .filter-selects select { font-size:16px;padding-inline:10px 24px; }
 .practical-filters { gap:8px; }.practical-filters label { padding:10px;font-size:.76rem; }
 .shortlist-panel { padding:24px; }
 .shortlist-panel .card-actions { display:grid;grid-template-columns:1fr;gap:10px; }
 .shortlist-panel button { width:100%;min-height:48px; }
 .shortlist-panel button[data-print] { background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:4px; }
 .guide-detail { padding-top:28px; }.guide-detail h1 { font-size:clamp(2.3rem,10vw,4rem); }
 .guide-detail .results-grid { grid-template-columns:1fr; }.neighborhood-links { grid-template-columns:1fr; }
 .detail-header { flex-wrap:wrap;gap:12px; }
 .detail-header .guide-languages { width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:8px; }
 .dialog-inner { padding:0 24px 40px; }.dialog-inner h2 { font-size:clamp(2.2rem,10vw,3.3rem); }
 .detail-list > div { grid-template-columns:1fr;gap:8px; }
 .practical-links { flex-direction:column; }.practical-links a { width:100%; }
 .dialog-actions { display:grid;grid-template-columns:1fr; }
 .route-stops { padding-left:22px; }.route-stops > li { padding-left:4px; }.route-transfer { padding:20px; }
 .rebook { padding:56px 24px; }.site-footer { padding:44px 0 28px; }.footer-grid { gap:24px; }
}
@media(max-width:520px) {
 .picks-grid { display:grid;grid-template-columns:1fr;gap:16px; }.pick-number { margin-bottom:20px; }
 .itinerary-card,.itinerary-card:first-child,.itinerary-card:last-child { padding:28px 0; }
 .itinerary-card h3 { margin:24px 0 16px;font-size:2rem; }
}
@media(max-width:360px) {
 .shell,.hero-content { width:calc(100% - 40px); }.site-header { padding-inline:20px;gap:8px; }
 .wordmark-main { font-size:1.1rem; }.header-actions { gap:6px; }
 .pick-card,.pick-card:not(:nth-child(3n+1)),.place-card,.place-card:nth-child(even) { padding:20px; }
 .card-actions { gap:8px; }
 .pick-card .card-actions .card-button,.place-card .card-actions .card-button,.save-place { padding-inline:12px; }
 .shortlist-panel { padding:20px; }
 .filter-selects { grid-template-columns:1fr; }
}
@media print {
 .js-only,.has-js .js-only,.site-header,.site-footer,.detail-header,.hero-media,.hero-shade,.neighborhood-feature,.concierge-band,.rebook,dialog { display:none!important; }
 #list-view[hidden] { display:block!important; }body,.hero { background:white!important;color:black!important; }
 .hero { min-height:0; }.hero-content { padding:20px 0; }.section { padding:20px 0; }
 .place-card,.route-stops>li { break-inside:avoid; }.results-grid { display:block; }.place-card { margin-bottom:16px; }
 .guide-note { color:#333; }.hero-copy { color:black; }.guide-detail { max-width:none; }a { color:black; }
}
