/* CityDayOut — October 2026 brandbook. Shared by every publishing template. */
@font-face {font-family:'Noto Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/noto-sans-latin.woff2') format('woff2');}
@font-face {font-family:'Noto Serif Display';font-style:normal;font-weight:300 600;font-display:swap;src:url('/assets/fonts/noto-serif-display-latin.woff2') format('woff2');}
@font-face {font-family:'Noto Serif Display';font-style:italic;font-weight:300 600;font-display:swap;src:url('/assets/fonts/noto-serif-display-italic-latin.woff2') format('woff2');}

:root {
  color-scheme:dark;
  --paper:#15120f;
  --paper-light:#221c18;
  --ink:#f8f2e9;
  --muted:#d4c5b6;
  --line:#4c3e33;
  --line-soft:#362b24;
  --coral:#e6ab5d;
  --coral-light:#efbd7c;
  --terracotta:#c9804d;
  --lime:#33281e;
  --blue:#29231f;
  --lilac:#30251f;
  --sans:'Noto Sans',Arial,sans-serif;
  --serif:'Noto Serif Display',Georgia,serif;
  --container:1200px;
  --gutter:clamp(20px,4.5vw,64px);
  --radius:12px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*,*::before,*::after {box-sizing:border-box;}
html {scroll-behavior:smooth;scroll-padding-top:24px;-webkit-text-size-adjust:100%;}
body {margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;font-weight:400;line-height:1.8;-webkit-font-smoothing:antialiased;}
::selection {background:var(--coral);color:var(--paper);}
h1,h2,h3,h4,p,figure {margin:0;}
h1,h2,h3,h4 {font-weight:400;line-height:1.4;text-wrap:balance;}
a {color:inherit;text-decoration:none;text-underline-offset:5px;}
button,input,select,textarea {font:inherit;color:inherit;max-width:100%;}
button,select {cursor:pointer;}
button {appearance:none;}
img,svg,video {display:block;max-width:100%;}
img {height:auto;}
svg {flex-shrink:0;}
picture {display:block;}
select option {background:var(--paper-light);color:var(--ink);}
[hidden] {display:none !important;}
:focus-visible {outline:2px solid var(--coral);outline-offset:5px;}
main,section,article,aside,nav,form,.container,.header-inner,.brand,.header-actions,.hero-copy,.hero-art,.section-heading,.city-card,.city-card-body,.place-card,.place-body,.guide-card,.guide-art,.guide-body,.feature-copy,.feature-art,.city-hero-copy,.article-main,.article-aside,.step-content,.event-info,.result-copy,.detail-panel {min-width:0;}
main {min-height:55vh;padding-bottom:24px;}
.container {width:min(100% - var(--gutter)*2,var(--container));margin-inline:auto;}

/* Navigation and wordmark. */
.site-header {position:relative;z-index:30;background:var(--paper);}
.header-inner {display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:94px;padding-block:17px;border-bottom:1px solid var(--line-soft);}
.brand {display:inline-flex;align-items:center;gap:12px;flex-shrink:0;}
.brand > span:last-child {display:flex;flex-direction:column;min-width:0;}
.brand-mark {display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--terracotta);color:var(--ink);}
.brand-mark svg {width:24px;height:24px;}
.brand-word {font-family:var(--serif);font-size:27px;font-weight:400;letter-spacing:-.035em;line-height:1.5;white-space:nowrap;}
.brand-dot {color:var(--coral);}
.brand-note {display:block;color:var(--muted);font-size:8px;font-weight:500;line-height:1.8;letter-spacing:1.5px;}
.desktop-nav {display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:10px 26px;font-size:12px;font-weight:450;}
.desktop-nav a {padding-block:9px;}
.desktop-nav a,.mobile-nav a,.footer-links a {transition:color 180ms ease;}
.desktop-nav a:hover,.mobile-nav a:hover,.footer-links a:hover {color:var(--coral);}
.desktop-nav a[aria-current='page'] {color:var(--coral);text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:1px;text-underline-offset:8px;}
.header-actions {display:flex;align-items:center;gap:14px;flex-shrink:0;}
.icon-button {display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:10px;border:1px solid var(--line-soft);border-radius:50%;background:transparent;font-size:12px;line-height:1.8;transition:background 180ms ease,border-color 180ms ease;}
.icon-button:hover {background:var(--paper-light);border-color:var(--coral);}
.icon-button svg {width:19px;height:19px;}
.saved-link {display:flex;align-items:center;gap:8px;min-height:44px;font-size:12px;line-height:1.8;white-space:nowrap;}
.saved-link > svg {width:20px;height:20px;}
.saved-count {display:grid;place-items:center;min-width:22px;min-height:22px;padding:2px 6px;border:1px solid var(--line);border-radius:50%;color:var(--coral);font-size:10px;line-height:1.6;}
.menu-toggle {display:none;}
.mobile-nav {display:grid;gap:3px;padding:14px var(--gutter) 20px;border-bottom:1px solid var(--line);background:var(--paper-light);}
.mobile-nav a {display:flex;align-items:center;min-height:44px;padding-block:9px;font-size:14px;line-height:1.8;}

/* Editorial type and common actions. */
.eyebrow {display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--coral);font-size:10px;font-weight:550;line-height:1.9;letter-spacing:1.5px;text-transform:uppercase;}
.display-title {font-family:var(--serif);font-size:clamp(46px,5.5vw,80px);font-weight:300;line-height:1.45;letter-spacing:-.038em;overflow-wrap:anywhere;}
.display-title em,.section-title em,.article-content h2 em {color:var(--coral);font-weight:inherit;}
.lede {max-width:50ch;color:var(--muted);font-size:clamp(14px,1.2vw,16px);line-height:1.9;}
.button {display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 23px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:550;line-height:1.8;text-align:center;overflow-wrap:anywhere;transition:background 180ms ease,color 180ms ease,border-color 180ms ease;}
.button svg {width:17px;height:17px;}
.button-dark {border-color:var(--coral);background:var(--coral);color:var(--paper);}
.button-dark:hover {border-color:var(--coral-light);background:var(--coral-light);}
.button-outline {background:transparent;color:var(--ink);}
.button-outline:hover {border-color:var(--coral);background:var(--paper-light);}
.text-link {display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;min-width:0;max-width:100%;min-height:44px;padding-block:8px;color:var(--coral);font-size:12px;font-weight:500;line-height:1.9;overflow-wrap:anywhere;}
.text-link svg {width:16px;height:16px;transition:transform 180ms var(--ease);}
.text-link:hover svg {transform:translateX(3px);}
.text-link:hover {text-decoration:underline;}

/* Opening spread and the city picker. */
.hero,.home-hero {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(28px,4vw,64px);padding-block:clamp(38px,5vw,68px) 42px;}
.hero-copy {position:relative;z-index:2;}
.hero-copy .eyebrow {margin-bottom:19px;}
.hero-copy .display-title {max-width:12ch;font-size:clamp(51px,5.45vw,78px);line-height:1.45;}
.hero-copy .lede {margin-top:24px;max-width:41ch;}
.hero-copy > .button,.hero-copy > .hero-actions {margin-top:27px;}
.hero-actions {display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;}
.hero-art {position:relative;padding:0;}
.hero-photo {position:relative;width:100%;aspect-ratio:1.04;object-fit:cover;border-radius:var(--radius);background:var(--paper-light);}
.hero-photo img,.hero-photo picture,.hero-photo picture img {width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.hero-city-search,.hero-city-search form {display:flex;align-items:center;gap:9px;min-width:0;}
.hero-city-search {width:100%;margin-top:31px;padding:6px 6px 6px 18px;border:1px solid var(--line);border-radius:999px;background:var(--paper);}
.hero-city-search form {width:100%;}
.hero-city-search > svg,.hero-city-search form > svg {width:19px;height:19px;color:var(--ink);}
.hero-city-search label {display:flex;align-items:center;gap:9px;flex:1 1 auto;min-width:0;}
.hero-city-search label > svg {width:19px;height:19px;}
.hero-city-search select,.hero-city-search input {display:block;flex:1 1 auto;width:100%;min-width:0;min-height:44px;padding:8px 3px;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:13px;line-height:1.8;}
.hero-city-search button {display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;min-width:52px;min-height:46px;padding:10px 17px;border:1px solid var(--coral);border-radius:999px;background:var(--coral);color:var(--paper);font-size:13px;font-weight:550;line-height:1.8;}
.hero-city-search button svg {width:18px;height:18px;}
.hero-city-search button:hover {background:var(--coral-light);}
.hero-footnote {display:flex;align-items:center;flex-wrap:wrap;gap:3px 12px;margin-top:12px;color:var(--muted);font-size:11px;line-height:1.9;}
.hero-footnote a {color:var(--coral);}
.hero-caption,.image-note {position:relative;display:flex;align-items:baseline;flex-wrap:wrap;justify-content:space-between;gap:5px 12px;margin-top:11px;color:var(--muted);font-size:9px;line-height:1.9;letter-spacing:.35px;}
.hero-caption a,.image-note a {color:var(--coral);}
.editorial-photo {width:100%;height:100%;object-fit:cover;}

/* Search and local filters. */
.search-bar {position:relative;padding:10px;border:1px solid var(--line);border-radius:16px;background:var(--paper-light);}
.search-bar form {display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;align-items:stretch;}
.search-field {display:flex;align-items:center;gap:13px;min-width:0;padding:9px 20px;}
.search-field + .search-field {border-left:1px solid var(--line);}
.search-field svg {width:19px;height:19px;color:var(--coral);}
.search-field label {display:block;min-width:0;width:100%;color:var(--muted);font-size:9px;font-weight:550;line-height:1.9;letter-spacing:1px;text-transform:uppercase;}
.search-field input,.search-field select {display:block;width:100%;min-width:0;min-height:39px;padding:4px 0;border:0;border-radius:0;background:transparent;color:var(--ink);font-size:13px;font-weight:400;line-height:1.9;letter-spacing:normal;text-transform:none;}
.search-field input::placeholder {color:var(--muted);opacity:1;}
.search-submit {display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:145px;min-height:54px;align-self:center;padding:13px 23px;border:1px solid var(--coral);border-radius:999px;background:var(--coral);color:var(--paper);font-size:13px;font-weight:550;line-height:1.8;}
.search-submit:hover {background:var(--coral-light);}
.search-submit svg {width:18px;height:18px;}
.quick-links {display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:15px;}
.quick-links > span,.quick-links > p {margin-right:7px;color:var(--muted);font-size:10px;line-height:1.9;}
.chip {display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 15px;border:1px solid var(--line);border-radius:999px;font-size:10px;line-height:1.8;text-align:center;overflow-wrap:anywhere;transition:background 180ms ease,border-color 180ms ease;}
.chip:hover {background:var(--paper-light);border-color:var(--coral);}
.filter-bar {display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:25px;}
.filter-button {display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 17px;border:1px solid var(--line);border-radius:999px;background:transparent;font-size:11px;line-height:1.9;text-align:center;overflow-wrap:anywhere;transition:background 180ms ease,border-color 180ms ease;}
.filter-button:hover {border-color:var(--coral);background:var(--paper-light);}
.filter-button[aria-pressed='true'] {border-color:var(--coral);background:var(--coral);color:var(--paper);}
.results-count {margin-block:10px;color:var(--muted);font-size:11px;line-height:1.9;}
.filter-bar .results-count {margin-left:auto;}

/* Section headings and the shared content-card system. */
.section {padding-block:clamp(54px,6vw,88px);}
.section + .section {padding-top:0;}
.section-heading {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px 24px;margin-bottom:28px;padding-top:21px;border-top:1px solid var(--line);}
.section-heading > div {min-width:0;}
.section-number {margin-bottom:11px;color:var(--coral);font-size:9px;font-weight:500;line-height:1.9;letter-spacing:1.2px;}
.section-title {font-family:var(--serif);font-size:clamp(31px,3.2vw,44px);font-weight:300;line-height:1.35;letter-spacing:-.035em;overflow-wrap:anywhere;}
.section-copy {max-width:60ch;margin-top:11px;color:var(--muted);font-size:14px;line-height:1.9;}
.city-grid,.place-grid,.guide-grid,.country-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;}
.city-grid {padding-bottom:6px;}
.city-card,.place-card,.guide-card {position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-light);transition:border-color 200ms ease;}
.city-card:hover,.place-card:hover,.guide-card:hover {border-color:#8f6c46;}
.city-image,.place-image,.guide-art {position:relative;display:block;width:100%;aspect-ratio:1.6;background:var(--paper-light);border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;}
.city-image picture,.city-image img,.place-image picture,.place-image img,.guide-art picture,.guide-art img {width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.city-card-body,.place-body,.guide-body {display:flex;flex-direction:column;align-items:flex-start;flex-grow:1;min-width:0;padding:19px 21px 20px;}
.city-country,.guide-label {color:var(--coral);font-size:9px;font-weight:550;line-height:1.9;letter-spacing:1.15px;text-transform:uppercase;}
.city-name {display:flex;align-items:center;gap:12px;width:100%;margin-top:5px;font-family:var(--serif);font-size:30px;font-weight:350;line-height:1.45;letter-spacing:-.03em;overflow-wrap:anywhere;}
.city-name > svg {width:21px;height:21px;margin-left:auto;color:var(--coral);}
.city-description {margin-top:10px;color:var(--muted);font-size:13px;line-height:1.9;}
.city-count {display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%;margin-top:auto;padding-top:15px;color:var(--coral);font-size:11px;line-height:1.9;}
.city-count svg {width:14px;height:14px;}
.place-image > a {display:block;width:100%;height:100%;border-radius:inherit;}
.save-button {position:absolute;top:12px;right:12px;z-index:2;display:grid;place-items:center;width:44px;height:44px;padding:10px;border:1px solid rgba(248,242,233,.3);border-radius:50%;background:rgba(21,18,15,.86);color:var(--ink);transition:background 180ms ease,color 180ms ease;}
.save-button svg {width:18px;height:18px;}
.save-button:hover,.save-button[aria-pressed='true'] {background:var(--coral);color:var(--paper);}
.save-button[aria-pressed='true'] svg {fill:currentColor;}
.place-badge {position:absolute;bottom:11px;left:11px;max-width:calc(100% - 22px);padding:6px 12px;border-radius:999px;background:var(--paper);color:var(--coral);font-size:9px;font-weight:550;line-height:1.8;letter-spacing:.5px;text-transform:uppercase;overflow-wrap:anywhere;}
.place-meta {display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;color:var(--muted);font-size:10px;line-height:1.9;letter-spacing:.6px;text-transform:uppercase;}
.place-meta svg {width:12px;height:12px;}
.place-name {margin-top:8px;font-family:var(--serif);font-size:27px;font-weight:350;line-height:1.45;letter-spacing:-.025em;overflow-wrap:anywhere;}
.place-name a:hover,.guide-title a:hover,.city-name a:hover,.event-title a:hover {text-decoration:underline;text-decoration-thickness:1px;}
.place-summary {margin-top:11px;color:var(--muted);font-size:13px;line-height:1.9;}
.place-footer {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 15px;width:100%;margin-top:auto;padding-top:17px;font-size:11px;line-height:1.9;}
.place-footer > a {display:grid;place-items:center;min-width:44px;min-height:44px;color:var(--coral);}
.place-footer > a svg {width:20px;height:20px;}
.place-footer .text-link {min-height:40px;font-size:12px;}
.price {color:var(--coral);line-height:1.9;overflow-wrap:anywhere;}
.price small {color:var(--muted);font-size:9px;font-weight:400;}
.tone-lime,.tone-lilac,.tone-blue,.tone-coral {background:var(--paper-light);}
.guide-art {display:grid;place-items:center;min-height:0;margin-bottom:0;}
.guide-art svg {width:100%;height:100%;border-radius:inherit;}
.guide-label {margin-bottom:9px;}
.guide-title {font-family:var(--serif);font-size:clamp(25px,2.15vw,31px);font-weight:350;line-height:1.45;letter-spacing:-.03em;overflow-wrap:anywhere;}
.guide-summary {margin-top:13px;color:var(--muted);font-size:13px;line-height:1.95;}
.guide-footer {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 15px;width:100%;margin-top:auto;padding-top:18px;color:var(--coral);font-size:11px;line-height:1.9;}
.guide-footer svg {width:21px;height:21px;}
.illustrated-place,.illustrated-place svg {width:100%;height:100%;border-radius:inherit;}
.city-image .illustrated-place,.place-image .illustrated-place {position:absolute;inset:0;}

/* A second editorial spread. */
.feature-panel {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(28px,4vw,60px);margin-bottom:64px;padding:clamp(25px,4vw,54px);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-light);}
.feature-copy .section-title {max-width:14ch;margin-top:18px;font-size:clamp(34px,3.4vw,49px);line-height:1.35;}
.feature-copy p:not(.eyebrow) {margin-top:21px;color:var(--muted);font-size:13px;line-height:1.9;}
.feature-copy .button {margin-top:25px;}
.feature-art {display:grid;place-items:center;}
.feature-art svg {width:min(100%,310px);height:auto;}
.feature-art img,.feature-art picture {width:100%;aspect-ratio:1.2;object-fit:cover;border-radius:10px;}
.feature-art picture img {height:100%;}

/* City, guide, venue and event pages. */
.breadcrumbs {display:flex;align-items:center;flex-wrap:wrap;gap:6px 9px;padding-block:25px 0;color:var(--muted);font-size:10px;line-height:1.9;overflow-wrap:anywhere;}
.breadcrumbs a:hover {color:var(--coral);text-decoration:underline;}
.breadcrumbs svg {width:10px;height:10px;}
.page-intro {padding-block:41px 37px;}
.page-intro .display-title {max-width:20ch;font-size:clamp(44px,5.2vw,73px);line-height:1.45;}
.page-intro .eyebrow {margin-bottom:17px;}
.page-intro .lede {max-width:68ch;margin-top:24px;}
.city-hero {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(26px,4vw,57px);padding-block:36px 42px;}
.city-hero .eyebrow {margin-bottom:16px;}
.city-hero .display-title {font-size:clamp(47px,5vw,72px);line-height:1.45;}
.city-hero .lede {margin-top:24px;}
.city-hero-copy > .button,.city-hero-copy > .quick-links {margin-top:20px;}
.city-hero-photo {position:relative;width:100%;aspect-ratio:1.2;background:var(--paper-light);border-radius:var(--radius);}
.city-hero-photo img,.city-hero-photo picture {width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.city-hero-photo .image-note {position:absolute;right:10px;bottom:10px;display:block;margin:0;padding:4px 9px;border-radius:999px;background:rgba(21,18,15,.88);font-size:9px;line-height:1.9;}
.guide-hero {margin-bottom:31px;}
.guide-hero img,.guide-hero picture {width:100%;aspect-ratio:2;object-fit:cover;border-radius:var(--radius);}
.article-layout {display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:clamp(30px,4.5vw,65px);padding-bottom:72px;}
.article-hero {margin-block:7px 31px;}
.article-hero > img,.article-hero > picture,.article-hero .illustrated-place {width:100%;aspect-ratio:1.6;object-fit:cover;border-radius:var(--radius);background:var(--paper-light);}
.article-hero picture img {width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.article-hero figcaption {padding-block:10px 0;color:var(--muted);font-size:9px;line-height:1.95;}
.article-hero figcaption a {color:var(--coral);}
.article-content {color:var(--muted);font-size:14px;line-height:2;overflow-wrap:anywhere;}
.article-content p + p {margin-top:18px;}
.article-content a:not(.button):not(.text-link) {color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-decoration-thickness:1px;}
.article-content a:not(.button):not(.text-link):hover {text-decoration-color:var(--coral);}
.article-content h2,.article-content h3 {color:var(--ink);font-family:var(--serif);font-weight:350;line-height:1.45;letter-spacing:-.025em;}
.article-content h2 {margin-bottom:18px;font-size:clamp(28px,2.6vw,37px);}
.article-content h3 {margin-block:25px 13px;font-size:25px;}
.article-content ul,.article-content ol {padding-left:22px;margin-block:18px;}
.article-content li + li {margin-top:9px;}
.article-section {margin-top:33px;padding-top:25px;border-top:1px solid var(--line);}
.article-section:first-child {margin-top:0;}
.article-facts {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 23px;margin-block:8px 27px;padding:8px 23px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-light);}
.fact {min-width:0;padding-block:17px;border-bottom:1px solid var(--line);}
.fact:nth-last-child(-n + 2) {border-bottom:0;}
.fact-label,.detail-label {display:block;color:var(--coral);font-size:9px;font-weight:500;line-height:1.9;letter-spacing:1.2px;text-transform:uppercase;}
.fact-label {margin-bottom:5px;}
.fact-value {display:block;color:var(--ink);font-size:12px;line-height:1.95;overflow-wrap:anywhere;}
.source-list {color:var(--muted);font-size:11px;line-height:1.95;}
.source-list li + li {margin-top:8px;}
.source-list li > a:first-child {display:block;margin-bottom:5px;}
.notice {margin-block:25px;padding:23px 25px;border:1px solid var(--line);border-left:3px solid var(--terracotta);border-radius:0 var(--radius) var(--radius) 0;background:var(--paper-light);color:var(--muted);font-size:12px;line-height:1.95;}
.notice h2 {margin-bottom:10px;color:var(--ink);font-family:var(--serif);font-size:27px;font-weight:350;line-height:1.5;overflow-wrap:anywhere;}
.notice strong {display:block;margin-bottom:5px;color:var(--ink);font-weight:550;}
.detail-panel {padding:25px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-light);}
.detail-panel > h2,.detail-panel > h3 {margin-block:7px 20px;font-family:var(--serif);font-size:29px;font-weight:350;line-height:1.45;letter-spacing:-.025em;overflow-wrap:anywhere;}
.detail-row {display:flex;flex-direction:column;gap:7px;padding-block:15px;border-top:1px solid var(--line);}
.detail-value {color:var(--muted);font-size:12px;line-height:1.95;overflow-wrap:anywhere;}
.detail-value a,a.detail-value {text-decoration:underline;text-decoration-color:var(--line);}
.detail-panel .button {width:100%;margin-top:16px;}
.detail-panel > p:not(.eyebrow) {margin-top:14px;color:var(--muted);font-size:10px;line-height:1.9;}
.sticky-panel {position:sticky;top:24px;}
.article-aside .guide-card,.article-aside .detail-panel + .detail-panel {margin-top:22px;}
.article-aside .guide-art {margin-bottom:18px;border-radius:var(--radius);}
.guide-steps {display:grid;gap:0;margin-top:28px;}
.guide-step {display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:20px;padding-block:27px;border-top:1px solid var(--line);}
.step-number {display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;color:var(--coral);font-family:var(--serif);font-size:21px;line-height:1.5;}
.step-content h2,.step-content h3 {margin-block:7px 13px;line-height:1.45;}
.step-content .place-meta {margin-bottom:12px;}
.guide-step-actions {display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:6px;}
.address-line {display:flex;align-items:flex-start;gap:10px;}
.address-line svg {width:18px;height:18px;margin-top:6px;color:var(--coral);}
.faq-list {margin-top:25px;border-top:1px solid var(--line);}
.faq-list details {border-bottom:1px solid var(--line);}
.faq-list summary {display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-height:54px;padding-block:17px;color:var(--ink);list-style:none;font-size:13px;line-height:1.9;cursor:pointer;}
.faq-list summary::-webkit-details-marker {display:none;}
.faq-list summary::after {content:'+';flex-shrink:0;color:var(--coral);font-family:var(--sans);font-size:22px;font-weight:400;line-height:1.4;}
.faq-list details[open] summary::after {content:'−';}
.faq-list details > :not(summary) {padding-bottom:20px;color:var(--muted);font-size:13px;line-height:1.95;}
.country-card {display:flex;align-items:flex-start;flex-direction:column;min-width:0;padding:27px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-light);}
.country-card h2,.country-card h3 {margin-block:12px;font-family:var(--serif);font-size:33px;font-weight:350;line-height:1.45;letter-spacing:-.035em;overflow-wrap:anywhere;}
.country-card p {color:var(--muted);font-size:12px;line-height:1.95;}
.country-card .text-link {margin-top:auto;padding-top:21px;}
.article-meta {margin-top:22px;color:var(--muted);font-size:10px;line-height:1.95;}
.info-content {max-width:780px;padding-bottom:64px;}

/* Search results, saved places and empty states. */
.empty-state,.no-results {max-width:650px;margin:24px auto 65px;padding:clamp(26px,4vw,52px);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-light);text-align:center;}
.empty-state h2,.no-results h2 {margin-bottom:15px;font-family:var(--serif);font-size:clamp(29px,3.5vw,42px);font-weight:350;line-height:1.45;letter-spacing:-.035em;overflow-wrap:anywhere;}
.empty-state p,.no-results p {color:var(--muted);font-size:13px;line-height:1.95;}
.empty-state .button,.no-results .button {margin-top:24px;}
.empty-state svg {width:54px;height:54px;margin:0 auto 20px;color:var(--coral);}
.search-results {margin-block:29px 65px;border-top:1px solid var(--line);}
.result-item {display:flex;align-items:center;gap:24px;padding-block:24px;border-bottom:1px solid var(--line);min-width:0;}
.result-item h2,.result-item h3 {margin-block:7px;font-family:var(--serif);font-size:29px;font-weight:350;line-height:1.45;letter-spacing:-.025em;overflow-wrap:anywhere;}
.result-title a {overflow-wrap:anywhere;}
.result-item p {color:var(--muted);font-size:12px;line-height:1.95;}
.result-image {flex:0 0 112px;width:112px;min-width:0;border-radius:8px;align-self:flex-start;}
.result-image img {width:100%;height:auto;aspect-ratio:1.3;object-fit:cover;border-radius:inherit;}
.result-item > img {width:105px;aspect-ratio:1.3;object-fit:cover;border-radius:8px;}
.result-item > .button,.result-item > .text-link {flex:0 1 auto;}
.result-copy {min-width:0;flex:1 1 250px;}
.saved-actions {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px;margin-bottom:27px;}
.saved-grid {display:flex;flex-direction:column;gap:0;}
.saved-grid .result-item {display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;padding-block:27px;}
.event-list {border-top:1px solid var(--line);}
.event-row {display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:start;gap:23px;padding-block:26px;border-bottom:1px solid var(--line);}
.event-date {display:flex;align-items:center;flex-direction:column;gap:3px;min-width:0;padding:12px 8px;border:1px solid var(--line);border-radius:10px;background:var(--paper-light);color:var(--coral);font-size:10px;line-height:1.8;text-align:center;text-transform:uppercase;}
.event-date strong {font-family:var(--serif);font-size:33px;font-weight:350;line-height:1.4;}
.event-title {margin-top:5px;margin-bottom:11px;font-family:var(--serif);font-size:29px;font-weight:350;line-height:1.45;letter-spacing:-.025em;overflow-wrap:anywhere;}
.event-meta {display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:11px;line-height:1.95;}
.event-info p {color:var(--muted);font-size:12px;line-height:1.95;}
.event-info p + p {margin-top:9px;}
.status-message {margin-block:13px;padding:14px 17px;border-left:3px solid var(--coral);background:var(--paper-light);color:var(--muted);font-size:12px;line-height:1.95;overflow-wrap:anywhere;}
.toast {position:fixed;z-index:80;bottom:22px;left:50%;width:max-content;max-width:calc(100% - 32px);padding:14px 22px;border:1px solid var(--line);border-radius:12px;background:var(--paper-light);color:var(--ink);box-shadow:0 12px 42px rgba(0,0,0,.24);font-size:12px;line-height:1.95;text-align:center;overflow-wrap:anywhere;transform:translateX(-50%);}
.dialog,dialog {width:min(600px,calc(100% - 32px));max-height:calc(100dvh - 40px);margin:auto;padding:clamp(24px,4vw,40px);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-light);color:var(--ink);}
dialog::backdrop {background:rgba(21,18,15,.78);}
.dialog h2,dialog h2 {margin-bottom:22px;font-family:var(--serif);font-size:36px;font-weight:350;line-height:1.45;letter-spacing:-.035em;}

/* Footer, keyboard access and reduced motion. */
.site-footer {padding-top:48px;border-top:1px solid var(--line);background:#181410;}
.footer-top {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:35px 75px;padding-bottom:36px;}
.footer-top .brand {margin-bottom:17px;}
.footer-top p {max-width:38ch;color:var(--muted);font-size:12px;line-height:1.95;}
.footer-links {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:25px;}
.footer-links h2,.footer-links h3,.footer-links strong,.footer-links > div > span {display:block;margin-bottom:12px;color:var(--coral);font-size:9px;font-weight:500;line-height:1.9;letter-spacing:1.3px;text-transform:uppercase;}
.footer-links a {display:block;min-height:35px;padding-block:7px;color:var(--muted);font-size:12px;line-height:1.95;overflow-wrap:anywhere;}
.footer-bottom {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 20px;padding-block:18px 22px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:9px;line-height:1.95;}
.footer-bottom a {display:inline-block;min-height:30px;padding-block:6px;}
.footer-bottom a:hover {color:var(--coral);text-decoration:underline;}
.sr-only {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link {position:absolute;left:16px;top:-80px;z-index:50;padding:12px 18px;border-radius:8px;background:var(--coral);color:var(--paper);}
.skip-link:focus {top:12px;}

/* The grids reflow before text and controls lose useful space. */
@media (max-width:1100px) {
  .header-inner {gap:18px;}
  .desktop-nav {gap:10px 20px;}
  .header-actions {gap:9px;}
  .hero,.home-hero {gap:34px;}
  .hero-copy .display-title {font-size:clamp(46px,5.5vw,68px);}
  .city-grid,.place-grid,.guide-grid {gap:21px;}
  .city-card-body,.place-body,.guide-body {padding-inline:18px;}
  .article-layout {grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:30px;}
  .detail-panel {padding:22px;}
}

@media (max-width:900px) {
  .header-inner {min-height:83px;padding-block:14px;}
  .desktop-nav {display:none;}
  .menu-toggle {display:inline-flex;}
  .hero,.home-hero {gap:25px;padding-block:40px 33px;}
  .hero-copy .display-title {font-size:clamp(43px,5.7vw,56px);}
  .hero-copy .lede {margin-top:19px;font-size:13px;}
  .hero-copy .eyebrow {margin-bottom:16px;font-size:9px;letter-spacing:1px;}
  .hero-city-search {margin-top:25px;padding-left:12px;gap:6px;}
  .hero-city-search select {font-size:12px;}
  .hero-city-search button {padding-inline:12px;}
  .city-grid,.place-grid,.guide-grid,.country-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:23px;}
  .guide-title {font-size:29px;}
  .search-field {gap:10px;padding-inline:12px;}
  .search-submit {min-width:125px;padding-inline:17px;}
  .article-layout {grid-template-columns:minmax(0,1fr);gap:32px;}
  .article-aside {display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:22px;}
  .article-aside > .sticky-panel {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:22px;}
  .article-aside > .detail-panel.sticky-panel {display:block;}
  .article-aside .guide-art {margin-bottom:0;}
  .article-aside .guide-card,.article-aside .detail-panel + .detail-panel {margin-top:0;}
  .sticky-panel {position:static;}
  .feature-panel {gap:28px;padding:29px;}
  .footer-top {gap:35px;}
}

@media (max-width:700px) {
  :root {--gutter:24px;}
  .hero,.home-hero {grid-template-columns:minmax(0,1fr);gap:30px;padding-top:34px;}
  .hero-copy .display-title {max-width:13ch;font-size:clamp(48px,9.5vw,65px);}
  .hero-copy .lede {max-width:47ch;font-size:14px;}
  .hero-art {width:100%;}
  .hero-photo {aspect-ratio:1.45;}
  .hero-city-search {max-width:520px;}
  .hero-city-search select {font-size:14px;}
  .hero-city-search button {padding-inline:18px;}
  .search-bar {padding:11px;}
  .search-bar form {grid-template-columns:repeat(2,minmax(0,1fr));}
  .search-field {padding:9px 10px 12px;}
  .search-submit {grid-column:1 / -1;width:100%;margin-top:8px;}
  .section-heading {grid-template-columns:minmax(0,1fr);align-items:start;gap:9px;margin-bottom:25px;}
  .section-heading > .text-link {justify-self:start;min-height:40px;padding-block:6px;}
  .city-grid,.place-grid,.guide-grid,.country-grid {gap:22px 18px;}
  .city-card-body,.place-body,.guide-body {padding:17px 17px 19px;}
  .city-name {font-size:28px;}
  .place-name,.guide-title {font-size:26px;}
  .feature-panel {grid-template-columns:minmax(0,1fr);gap:28px;margin-bottom:48px;padding:28px;}
  .feature-copy .section-title {max-width:17ch;font-size:41px;}
  .feature-art img,.feature-art picture {aspect-ratio:1.6;}
  .city-hero {grid-template-columns:minmax(0,1fr);gap:26px;padding-top:29px;}
  .city-hero .display-title {max-width:17ch;font-size:clamp(47px,8.5vw,64px);}
  .city-hero-photo {aspect-ratio:1.6;}
  .page-intro .display-title {font-size:clamp(43px,7vw,59px);}
  .filter-bar .results-count {margin-left:0;flex-basis:100%;}
  .footer-top {grid-template-columns:minmax(0,1fr);gap:29px;}
  .footer-top p {max-width:48ch;}
  .footer-links a {min-height:42px;padding-block:10px;}
  .result-item {flex-wrap:wrap;gap:18px;}
  .result-copy {flex:1 1 180px;}
  .result-item > .button,.result-item > .text-link {margin-left:auto;}
}

@media (max-width:620px) {
  .city-grid,.place-grid,.guide-grid,.country-grid {grid-template-columns:minmax(0,1fr);gap:25px;}
  .city-card-body,.place-body,.guide-body {padding:19px 21px 21px;}
  .city-name {font-size:32px;}
  .place-name,.guide-title {font-size:29px;}
  .article-aside > .sticky-panel {grid-template-columns:minmax(0,1fr);gap:20px;}
  .event-row {grid-template-columns:64px minmax(0,1fr);gap:17px;}
  .event-row > .button,.event-row > .text-link {grid-column:2;justify-self:start;}
}

@media (max-width:480px) {
  :root {--gutter:20px;}
  .header-inner {min-height:79px;gap:12px;padding-block:14px;}
  .brand {gap:9px;}
  .brand-mark {width:29px;height:29px;border-radius:8px;}
  .brand-mark svg {width:20px;height:20px;}
  .brand-word {font-size:23px;}
  .brand-note {font-size:7px;letter-spacing:1.1px;line-height:1.9;}
  .header-actions {gap:8px;}
  .header-search {display:none;}
  .saved-link > span:not(.saved-count) {display:none;}
  .saved-link {gap:5px;}
  .header-actions .icon-button {border-color:transparent;}
  .hero,.home-hero {gap:25px;padding-top:28px;}
  .hero-copy .display-title {max-width:13ch;font-size:clamp(43px,11vw,53px);line-height:1.45;}
  .hero-copy .eyebrow {margin-bottom:14px;font-size:8px;line-height:1.95;letter-spacing:1px;}
  .hero-copy .lede {margin-top:18px;font-size:13px;}
  .hero-copy > .button,.hero-copy > .hero-actions {margin-top:22px;}
  .hero-city-search {padding-left:11px;margin-top:24px;}
  .hero-city-search select {font-size:13px;}
  .hero-city-search button {padding-inline:14px;}
  .hero-photo {aspect-ratio:1.25;}
  .hero-caption,.image-note {gap:4px 8px;font-size:9px;margin-top:10px;}
  .search-bar form {grid-template-columns:minmax(0,1fr);}
  .search-field {padding:8px 5px 12px;gap:12px;}
  .search-field + .search-field {border-left:0;border-top:1px solid var(--line);padding-top:13px;}
  .search-field input,.search-field select {min-height:41px;font-size:16px;}
  .search-submit {grid-column:auto;}
  .quick-links {gap:7px;padding-top:14px;}
  .quick-links > span,.quick-links > p {flex-basis:100%;}
  .chip {min-height:40px;padding-inline:13px;}
  .section {padding-block:48px;}
  .section-title {font-size:32px;}
  .section-copy {font-size:14px;}
  .city-image,.place-image,.guide-art {aspect-ratio:1.6;}
  .city-name {font-size:31px;}
  .place-name,.guide-title {font-size:28px;}
  .city-description,.place-summary,.guide-summary {font-size:13px;}
  .feature-panel {padding:23px;}
  .feature-copy .section-title {font-size:35px;}
  .feature-copy p:not(.eyebrow) {font-size:12px;}
  .page-intro {padding-block:31px 29px;}
  .page-intro .display-title {max-width:17ch;font-size:clamp(39px,10.4vw,49px);line-height:1.45;}
  .page-intro .lede {margin-top:20px;font-size:13px;}
  .city-hero .display-title {font-size:clamp(42px,10.8vw,53px);line-height:1.45;}
  .city-hero-photo {aspect-ratio:1.35;}
  .filter-bar {gap:8px;}
  .filter-button {padding-inline:14px;font-size:10px;}
  .article-layout {padding-bottom:48px;}
  .article-content {font-size:13px;line-height:2;}
  .article-content h2 {font-size:29px;}
  .article-content h3 {font-size:25px;}
  .article-hero {margin-block:4px 25px;}
  .article-hero > img,.article-hero > picture,.article-hero .illustrated-place {aspect-ratio:1.35;}
  .article-facts {grid-template-columns:minmax(0,1fr);padding-inline:21px;}
  .fact:nth-last-child(-n + 2) {border-bottom:1px solid var(--line);}
  .fact:last-child {border-bottom:0;}
  .detail-panel {padding:23px;}
  .detail-panel > h2,.detail-panel > h3 {font-size:28px;}
  .notice {padding:20px;}
  .notice h2 {font-size:25px;}
  .guide-step {grid-template-columns:34px minmax(0,1fr);gap:14px;padding-block:25px;}
  .step-number {width:34px;height:34px;font-size:18px;}
  .step-content h2,.step-content h3 {margin-top:5px;font-size:25px;}
  .result-item {gap:14px;}
  .result-item h2,.result-item h3 {font-size:25px;}
  .result-image {flex-basis:78px;width:78px;}
  .result-image img {aspect-ratio:1;}
  .result-item > img {width:72px;aspect-ratio:1;}
  .result-copy {flex-basis:150px;}
  .saved-grid .result-item {gap:14px;}
  .saved-grid .result-item > .button {margin-left:92px;}
  .event-row {grid-template-columns:57px minmax(0,1fr);gap:15px;}
  .event-date {padding:10px 6px;font-size:9px;}
  .event-date strong {font-size:29px;}
  .event-title {font-size:25px;}
  .site-footer {padding-top:35px;}
  .footer-links {gap:20px;}
  .footer-bottom {align-items:flex-start;flex-direction:column;gap:7px;}
}

@media (max-width:359px) {
  :root {--gutter:16px;}
  .header-inner {gap:8px;}
  .brand {gap:7px;}
  .brand-word {font-size:21px;}
  .brand-note {font-size:7px;letter-spacing:.8px;}
  .brand-mark {width:27px;height:27px;}
  .header-actions {gap:3px;}
  .header-actions .icon-button {min-width:44px;width:44px;}
  .hero-copy .display-title {font-size:42px;}
  .hero-city-search select {font-size:12px;}
  .hero-city-search button {padding-inline:12px;}
  .city-card-body,.place-body,.guide-body {padding-inline:18px;}
  .place-name,.guide-title {font-size:27px;}
  .result-image {flex-basis:68px;width:68px;}
  .saved-grid .result-item > .button {margin-left:82px;}
}

@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto;}
  *,*::before,*::after {animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}

@media print {
  :root {color-scheme:light;--paper:white;--paper-light:white;--ink:black;--muted:#333;--line:#aaa;--coral:#744318;}
  body {background:white;color:black;font-size:11pt;}
  .site-header,.site-footer,.save-button,.search-bar,.hero-city-search,.quick-links,.filter-bar,.toast,.article-aside {display:none;}
  .container {width:100%;}
  .article-layout {display:block;}
  .display-title {font-size:38pt;}
  a[href^='https://']::after {content:' (' attr(href) ')';font-size:9pt;overflow-wrap:anywhere;}
  .article-section,.article-facts,.guide-step {break-inside:avoid;}
}
