/* Quiet, readable city guides; existing explorer tokens provide the brand. */
.city-guide-page { min-height:100dvh; }
.city-directory { max-width:1200px; padding-block:50px; }
/* The paginated CMS list has no A–Z letter column. Keep its layout independent. */
.cms-directory-group { padding-block:24px 30px; border-bottom:1px solid var(--line); }
.cms-directory-summary { font-size:14px; color:var(--muted); margin:0 0 20px; }
.cms-guide-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 24px; }
.cms-guide-list>li { min-width:0; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:14px; background:var(--surface); overflow:hidden; }
.cms-guide-card { display:flex; flex-direction:column; flex:1; min-width:0; padding:24px; color:var(--ink); text-decoration:none; background:var(--surface); overflow-wrap:anywhere; transition:transform .18s; }
.cms-guide-card:hover { border-color:var(--accent); }
.cms-guide-card:active { transform:scale(.98); }
.cms-guide-card h2 { font:400 1.65rem/1.3 Georgia,serif; margin:0; }
.cms-guide-card h2 span { display:inline-block; font:400 12px/1.6 'Segoe UI',sans-serif; color:var(--muted); margin-left:7px; }
.cms-guide-title { font-size:17px; font-weight:600; line-height:1.55; margin:14px 0 10px; }
.cms-guide-summary { font-size:14px; line-height:1.8; color:var(--muted); margin:0 0 18px; max-width:60ch; }
.cms-guide-meta { display:flex; flex-wrap:wrap; gap:6px 16px; font-size:12px; color:var(--muted); margin:0 0 18px; }
.cms-guide-card .city-guide-tags { margin:auto 0 0; padding:0; gap:7px; }
.cms-guide-card .city-guide-tags li { max-width:100%; font-size:11px; }
.cms-guide-read { display:flex; align-items:center; justify-content:space-between; color:var(--accent); font-size:13px; font-weight:600; margin-top:20px; }
.cms-guide-card:hover .cms-guide-read { text-decoration:underline; }
.cms-card-actions { padding:16px 24px; border-top:1px solid var(--line); margin-top:auto; }
.cms-guide-list>li:focus-within { outline:2px solid var(--accent); outline-offset:3px; }
.cms-directory-empty { padding:28px; border:1px solid var(--line); background:var(--surface); }
.cms-directory-empty h2 { font:400 1.7rem/1.3 Georgia,serif; margin:0 0 12px; }
.cms-directory-empty p { color:var(--muted); font-size:14px; }
.cms-directory-empty a { display:inline-flex; align-items:center; min-height:44px; font-size:13px; color:var(--accent); }
.cms-directory-pages { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px; padding:24px 0; font-size:13px; color:var(--accent); }
.cms-directory-pages a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 16px; border:1px solid var(--line); background:var(--surface); text-decoration:none; }
.cms-directory-pages a:hover { border-color:var(--accent); }
.cms-directory-pages span { color:var(--muted); }
@media(max-width:760px) { .cms-guide-list { grid-template-columns:minmax(0,1fr); gap:16px; } .cms-guide-card { padding:22px; } }
.city-guide-body p { white-space:pre-line; }
.city-directory-intro { max-width:750px; }
.city-directory-intro h1 { font:400 clamp(2.6rem,5vw,4rem)/1.08 Georgia,serif; letter-spacing:-.04em; margin:15px 0 24px; }
.city-directory-intro p { font-size:16px; line-height:1.85; color:var(--muted); max-width:65ch; }
.city-directory-intro .cms-library-count { font-size:13px; }
.directory-alphabet { display:flex; flex-wrap:wrap; gap:8px; padding-block:28px; border-bottom:1px solid var(--line); }
.directory-alphabet a { display:grid; place-items:center; min-width:44px; min-height:44px; border:1px solid var(--line); background:var(--surface); text-decoration:none; color:var(--accent); font-size:13px; }
.directory-alphabet a:hover { background:var(--soft); }
.directory-group { display:grid; grid-template-columns:80px minmax(0,1fr); gap:26px; padding-block:32px; border-bottom:1px solid var(--line); scroll-margin-top:20px; }
.directory-group>h2 { font:400 2.7rem Georgia,serif; color:var(--accent); margin:12px 0; }
.directory-group ul { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px 30px; }
.directory-group li { display:flex; flex-direction:column; min-width:0; }
.directory-group li>a { display:block; flex:1; padding:20px; text-decoration:none; background:var(--surface); border:1px solid var(--line); min-height:145px; }
.directory-group li>a:hover { border-color:var(--accent); }
.directory-city { display:flex; flex-wrap:wrap; align-items:center; gap:8px 15px; }
.directory-city h3 { font:400 1.6rem Georgia,serif; margin:0; }
.directory-city h3 span { font:400 12px 'Segoe UI',sans-serif; margin-left:7px; color:var(--muted); }
.directory-city .journal-new-label { margin:0; }
.directory-group p { font-size:15px; line-height:1.7; color:var(--muted); margin:12px 0; }
.directory-group small { font-size:12px; color:var(--accent); }
@media(max-width:760px) { .city-directory { padding-block:30px; } .directory-group { grid-template-columns:40px minmax(0,1fr); gap:14px; } .directory-group ul { grid-template-columns:minmax(0,1fr); gap:14px; } .directory-group li>a { min-height:0; } }
.city-guide-page .nav-actions a { display:inline-flex; align-items:center; min-height:44px; }
.city-guide-shell { max-width:1280px; }
.city-guide-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; margin:27px 0 32px; color:var(--muted); font-size:11px; }
.city-guide-breadcrumb a { text-decoration:none; }
.city-guide-breadcrumb a:hover { color:var(--accent); text-decoration:underline; }
.city-guide-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); gap:clamp(28px,5vw,78px); align-items:center; padding-bottom:54px; border-bottom:1px solid var(--line); }
.city-guide-location { margin:21px 0 11px; color:var(--muted); font-size:13px; }
.city-guide-location span { margin-left:9px; color:var(--accent); font-size:12px; }
.city-guide-hero h1 { font:400 clamp(2.35rem,4.1vw,4rem)/1.08 Georgia,serif; letter-spacing:-.035em; margin:0 0 23px; text-wrap:balance; }
.city-guide-dek { max-width:55ch; font-size:16px; line-height:1.85; color:var(--muted); margin:0 0 22px; }
.city-guide-tags { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0 0 25px; }
.city-guide-tags li { border:1px solid var(--line); border-radius:30px; padding:4px 10px; font-size:12px; color:var(--accent); }
.city-guide-tags a { display:inline-block; padding:5px 0; text-decoration:none; }
.city-guide-tags a:hover { text-decoration:underline; }
.directory-group .city-guide-tags { display:flex; gap:7px; margin:12px 0 0; }
.city-guide-disclosure,.city-guide-date { color:var(--muted); font-size:12px; line-height:1.7; margin:4px 0; }
.city-guide-utility { display:grid; gap:16px; padding:20px 0; margin-bottom:14px; border-block:1px solid var(--line); }
.city-guide-meta { display:flex; flex-wrap:wrap; gap:10px 20px; color:var(--muted); font-size:13px; line-height:1.7; }
.city-guide-meta strong { font-weight:600; color:var(--ink); }
.city-guide-meta .city-guide-date { flex-basis:100%; margin:0; }
.city-guide-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.city-guide-actions .share-button,.city-guide-actions .account-save-button { margin:0; min-height:44px; }
.city-guide-disclosure { color:var(--accent); }
.city-guide-date time { font-variant-numeric:tabular-nums; }
.city-guide-photo { margin:0; min-width:0; }
.city-guide-photo img { width:100%; height:auto; aspect-ratio:5/4; display:block; object-fit:cover; background:var(--faint); }
.city-guide-photo figcaption { margin-top:13px; color:var(--muted); line-height:1.7; }
.city-guide-photo-caption { display:block; font-size:12px; margin-bottom:6px; }
.city-guide-photo-credit { display:block; font-size:11px; overflow-wrap:anywhere; }
.city-guide-photo-credit a { text-decoration-color:var(--line); }
.city-guide-photo-credit a:hover { text-decoration-color:currentColor; }
.city-guide-no-photo { min-height:380px; display:grid; align-content:center; padding:42px; border:1px solid var(--line); background:var(--soft); }
.city-guide-no-photo>span { font:400 clamp(2.5rem,5vw,4.5rem)/1.2 Georgia,serif; color:var(--accent); }
.city-guide-no-photo>p { font:400 1.5rem Georgia,serif; margin:12px 0 28px; }
.city-guide-no-photo>small { font-size:12px; color:var(--muted); }
.city-guide-layout { display:grid; grid-template-columns:minmax(210px,.64fr) minmax(0,1.5fr); gap:clamp(34px,8vw,120px); align-items:start; padding:62px 0 58px; }
.city-guide-aside { position:sticky; top:25px; padding-top:5px; }
.city-guide-aside h2 { font:400 1.8rem/1.2 Georgia,serif; letter-spacing:-.02em; margin:12px 0 17px; }
.city-guide-duration { margin:0 0 26px; font-size:13px; color:var(--accent); }
.city-guide-aside ol { list-style:decimal-leading-zero; margin:0; padding:21px 0 23px 26px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
.city-guide-aside li { padding:6px 0 6px 7px; }
.city-guide-aside li a { display:inline-block; color:var(--ink); text-decoration:none; line-height:1.7; }
.city-guide-aside li a:hover { text-decoration:underline; }
.city-guide-text-link { display:block; color:var(--accent); font-size:12px; line-height:1.8; padding:13px 0 5px; border-top:1px solid var(--line); }
.city-guide-pending { border-top:1px solid var(--line); padding-top:14px; color:var(--muted); font-size:11px; line-height:1.8; margin-bottom:0; }
.city-guide-region-link { display:inline-block; color:var(--muted); font-size:11px; padding:8px 0; }
.city-guide-body { max-width:760px; min-width:0; }
.city-guide-body:focus-visible { outline:3px solid var(--accent); outline-offset:10px; }
.city-guide-body h2,.city-guide-discoveries h2,.city-guide-cta h2 { font:400 clamp(1.9rem,3vw,2.55rem)/1.17 Georgia,serif; letter-spacing:-.025em; margin:10px 0 20px; text-wrap:balance; }
.city-guide-body p { font-size:16px; line-height:1.9; margin:0; max-width:65ch; overflow-wrap:break-word; }
.city-guide-body section { scroll-margin-top:30px; }
.city-guide-chapter { margin:0 0 48px; }
.city-guide-taste { border-top:1px solid var(--line); padding:33px 0 40px; }
.city-guide-practical { border-left:2px solid var(--accent); padding:27px 30px; background:var(--soft); }
.city-guide-practical h2 { font-size:1.85rem; margin-bottom:16px; }
.city-guide-practical p { font-size:15px; line-height:1.9; }
.city-guide-practical .city-guide-verification { border-top:1px solid var(--line); padding-top:15px; margin-top:19px; font-size:13px; color:var(--muted); }
.city-guide-discoveries { border-top:1px solid var(--line); padding:42px 0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:60px; }
.city-guide-discoveries h2 { font-size:2rem; }
.city-guide-discoveries p { font-size:12px; color:var(--muted); line-height:1.8; max-width:42ch; }
.city-guide-discoveries ul { list-style:none; padding:0; margin:0; }
.city-guide-discoveries li+li { border-top:1px solid var(--line); }
.city-guide-discoveries li a { display:flex; justify-content:space-between; align-items:center; gap:24px; text-decoration:none; padding:17px 0; transition:transform .18s; }
.city-guide-discoveries strong { display:block; font-size:14px; font-weight:500; line-height:1.6; }
.city-guide-discoveries small { display:block; font-size:10px; color:var(--muted); margin-top:3px; }
.city-guide-discoveries a>span:last-child { color:var(--accent); font-size:18px; }
.city-guide-discoveries li a:hover strong { text-decoration:underline; }
.city-guide-discoveries li a:active { transform:scale(.98); }
.city-guide-cta { background:var(--soft); border:1px solid var(--line); padding:35px 40px; display:flex; align-items:center; justify-content:space-between; gap:34px; }
.city-guide-cta h2 { font-size:2.15rem; margin:10px 0; }
.city-guide-cta p { margin:0; max-width:57ch; font-size:12px; color:var(--muted); }
.city-guide-cta .primary-button { flex-shrink:0; display:inline-block; font-size:12px; padding:13px 18px; text-decoration:none; transition:transform .18s; }
.city-guide-next { display:flex; flex-wrap:wrap; align-items:center; gap:16px 30px; padding:34px 0 10px; }
.city-guide-next ul { display:flex; flex-wrap:wrap; gap:24px; padding:0; margin:0; list-style:none; }
.city-guide-next li a { display:inline-block; font-size:13px; padding:8px 0; text-decoration:none; }
.city-guide-next li a:hover { text-decoration:underline; }
.city-guide-next li span { margin-left:9px; color:var(--accent); }
.city-guide-next>.city-guide-region-link { margin-left:auto; }
@media(max-width:1000px) { .city-guide-hero { gap:30px; } .city-guide-layout { gap:50px; grid-template-columns:220px minmax(0,1fr); } .city-guide-cta { align-items:start; flex-direction:column; gap:22px; } .city-guide-discoveries { gap:34px; } }
@media(max-width:760px) { .city-guide-page .shell { width:calc(100% - 36px); } .city-guide-page .nav { min-height:75px; gap:18px; } .city-guide-page .brand { font-size:16px; gap:8px; } .city-guide-page .nav-actions { font-size:10px; gap:13px; } .city-guide-breadcrumb { margin:22px 0 28px; } .city-guide-hero { grid-template-columns:minmax(0,1fr); gap:28px; padding-bottom:35px; } .city-guide-hero h1 { max-width:20ch; font-size:2.55rem; } .city-guide-dek { max-width:60ch; font-size:14px; } .city-guide-photo img { aspect-ratio:16/11; } .city-guide-no-photo { min-height:260px; } .city-guide-layout { grid-template-columns:minmax(0,1fr); gap:36px; padding:34px 0 38px; } .city-guide-aside { position:static; padding:0 0 25px; border-bottom:1px solid var(--line); } .city-guide-aside h2 { font-size:1.65rem; } .city-guide-aside h2 br { display:none; } .city-guide-aside ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 26px; } .city-guide-aside li { padding:6px 0 6px 3px; } .city-guide-aside nav { max-width:540px; } .city-guide-duration { margin-bottom:19px; } .city-guide-text-link { border:0; padding-top:0; } .city-guide-body h2 { font-size:2rem; } .city-guide-body p { font-size:14px; line-height:1.9; } .city-guide-chapter { margin-bottom:36px; } .city-guide-practical { padding:23px; } .city-guide-practical p { font-size:13px; } .city-guide-discoveries { grid-template-columns:minmax(0,1fr); gap:10px; padding:31px 0; } .city-guide-discoveries h2 { font-size:1.9rem; margin-bottom:12px; } .city-guide-cta { padding:25px; } .city-guide-cta h2 { font-size:1.85rem; } .city-guide-next { gap:10px 23px; padding-top:25px; } .city-guide-next>.eyebrow { width:100%; } .city-guide-next ul { gap:20px; } .city-guide-next>.city-guide-region-link { margin-left:0; } .city-guide-page .footer { margin-top:20px; } }
@media(max-width:390px) { .city-guide-page .brand { font-size:14px; } .city-guide-page .seal { width:27px; height:30px; } .city-guide-page .nav-actions { flex-direction:column; align-items:flex-end; gap:6px; } .city-guide-aside ol { grid-template-columns:minmax(0,1fr); } .city-guide-hero h1 { font-size:2.25rem; } }
@media(max-width:600px) { .city-guide-page .nav { flex-wrap:wrap; gap:4px 18px; padding-block:12px; } .city-guide-page .nav-actions { flex-direction:row; flex-wrap:wrap; justify-content:flex-start; align-items:center; gap:4px 18px; } .cms-directory-pages span { flex-basis:100%; order:-1; } }
@media(prefers-reduced-motion:reduce) { .city-guide-page *, .city-guide-page *::before, .city-guide-page *::after { transition:none!important; scroll-behavior:auto!important; } }

/* Progressive GET discovery: the library remains usable without JavaScript. */
.cms-guide-discovery { border:1px solid var(--line); border-radius:16px; background:var(--surface); padding:26px; margin:28px 0 22px; }
.cms-filter-heading h2 { font-size:20px; line-height:1.4; margin:0 0 6px; }
.cms-filter-heading p { font-size:14px; line-height:1.7; color:var(--muted); margin:0 0 22px; }
.cms-guide-filters { display:grid; grid-template-columns:minmax(190px,1.5fr) repeat(3,minmax(140px,1fr)); gap:16px; }
.cms-guide-filters>div { min-width:0; }
.cms-guide-filters label { display:block; font-size:12px; font-weight:600; margin-bottom:8px; }
.cms-guide-filters input,.cms-guide-filters select { width:100%; min-width:0; min-height:46px; border:1px solid var(--line); border-radius:7px; padding:10px 12px; background:var(--surface); color:var(--ink); font:inherit; font-size:15px; }
.cms-filter-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; }
.cms-filter-actions button { min-height:46px; padding:10px 20px; border:1px solid var(--accent); border-radius:7px; background:var(--accent); color:var(--cp-accent-fg,var(--surface)); font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
.cms-filter-actions button:active { transform:scale(.98); }
.cms-filter-actions a { display:inline-flex; align-items:center; min-height:44px; color:var(--accent); font-size:13px; }
.cms-filter-actions p { flex:1 1 260px; margin:0; font-size:12px; line-height:1.7; color:var(--muted); }
.cms-style-filters { border-top:1px solid var(--line); margin-top:20px; padding-top:5px; }
.cms-style-filters summary { cursor:pointer; min-height:44px; padding:13px 0; color:var(--accent); font-size:14px; font-weight:600; }
.cms-style-filters>p { font-size:12px; line-height:1.7; color:var(--muted); margin:0 0 18px; }
.cms-tag-group { display:grid; grid-template-columns:100px minmax(0,1fr); gap:12px; margin:14px 0; }
.cms-tag-group h3 { margin:12px 0 0; font-size:12px; font-weight:600; color:var(--muted); }
.cms-tag-group>div { display:flex; flex-wrap:wrap; gap:8px; }
.cms-filter-tag,.cms-tag-limit { display:inline-flex; align-items:center; min-height:44px; padding:9px 13px; border:1px solid var(--line); border-radius:30px; color:var(--ink); font-size:12px; line-height:1.5; text-decoration:none; }
.cms-filter-tag:hover { border-color:var(--accent); }
.cms-filter-tag.is-active { color:var(--accent); background:var(--soft); border-color:var(--accent); }
.cms-tag-limit { color:var(--muted); }
.cms-active-filters { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px; }
.cms-active-filters a { display:inline-flex; align-items:center; gap:12px; max-width:100%; min-height:44px; padding:8px 12px; border:1px solid var(--line); border-radius:7px; color:var(--accent); font-size:12px; overflow-wrap:anywhere; text-decoration:none; }
.cms-guide-discovery :is(input,select,button,a,summary):focus-visible,.cms-active-filters a:focus-visible,.cms-directory-pages a:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.cms-directory-group { scroll-margin-top:100px; }
.cms-directory-empty { border-radius:14px; }
.cms-directory-empty a+a { margin-left:20px; }
@media(max-width:980px) { .cms-guide-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) { .city-guide-dek { font-size:16px; } .city-guide-body p { font-size:16px; line-height:1.9; } .city-guide-practical p { font-size:15px; } .city-guide-practical .city-guide-verification { font-size:13px; } .city-guide-meta { font-size:12px; } }
@media(max-width:560px) { .cms-guide-discovery { padding:20px; } .cms-guide-filters { grid-template-columns:minmax(0,1fr); } .cms-guide-filters input,.cms-guide-filters select { font-size:16px; } .cms-filter-actions p { flex-basis:100%; } .cms-tag-group { grid-template-columns:minmax(0,1fr); gap:8px; } .cms-tag-group h3 { margin-top:0; } .cms-card-actions { padding-inline:22px; } .cms-guide-title { font-size:16px; } }
@media(prefers-reduced-motion:reduce) { .cms-filter-actions button:active { transform:none; } }
