:root {
  color-scheme: light;
  --paper: #f4f0e6;
  --paper-light: #fcfaf5;
  --ink: #18343a;
  --forest: #194b55;
  --ocean: #174751;
  --ocean-dark: #123942;
  --moss: #68765c;
  --clay: #b85f43;
  --muted: #586b69;
  --rule: #d8d2c4;
  --sand: #e9e2d3;
  --sage: #e7e9df;
  --focus: #984931;
  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --sans: "Avenir Next", Avenir, "Segoe UI", "Helvetica Neue", sans-serif;
  --gutter: clamp(1.25rem, 5vw, 5rem);
  --content-width: 1440px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 1rem; -webkit-font-smoothing: antialiased; }
body.menu-is-open { overflow: hidden; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
button, input, select { font: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
::selection { color: white; background: var(--forest); }
[hidden] { display: none !important; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 20; top: .75rem; left: .75rem; padding: .8rem 1rem; color: white; background: var(--forest); transform: translateY(-160%); transition: transform .2s ease; }
.skip-link:focus { transform: translateY(0); }
.site-header { position: sticky; top: 0; z-index: 9; height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 0 var(--gutter); border-bottom: 1px solid rgba(252, 250, 245, .18); color: var(--paper-light); background: var(--ocean); box-shadow: 0 2px 12px rgba(17, 47, 54, .08); }
.policy-navigation { color: var(--forest); font-size: .79rem; }
.policy-navigation:hover { text-decoration: underline; text-underline-offset: .25em; }
.wordmark { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--serif); font-size: 1.4rem; letter-spacing: -.055em; font-weight: 600; white-space: nowrap; }
.wordmark-mark { display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-family: var(--sans); font-size: .79rem; letter-spacing: -.03em; }
.wordmark-period { color: var(--clay); }
.primary-navigation { display: flex; align-items: center; gap: clamp(1.25rem, 3.5vw, 3.4rem); height: 100%; }
.primary-navigation a, .saved-nav { font-size: .79rem; letter-spacing: .01em; }
.primary-navigation a { position: relative; display: grid; height: 100%; place-items: center; }
.primary-navigation a::after { position: absolute; right: 0; bottom: 20px; left: 0; height: 1px; content: ""; background: var(--clay); transform: scaleX(0); transform-origin: left; transition: transform .22s ease; }
.primary-navigation a:hover::after { transform: scaleX(1); }
.primary-navigation .nav-newsletter { color: var(--paper-light); text-decoration: underline; text-decoration-color: var(--clay); text-underline-offset: .3em; }
.saved-nav { display: inline-flex; align-items: center; gap: .38rem; padding: .5rem 0 .5rem .5rem; border: 0; background: transparent; cursor: pointer; }
.saved-nav svg { width: 20px; height: 20px; }
.saved-count { min-width: 18px; height: 18px; padding: 0 .3rem; display: inline-grid; place-items: center; border: 1px solid rgba(252, 250, 245, .5); border-radius: 99px; font-size: .63rem; }
.menu-toggle { display: none; }

.hero { position: relative; display: grid; min-height: min(670px, 76vw); grid-template-columns: minmax(0, .93fr) minmax(380px, 1.07fr); align-items: center; gap: clamp(2.5rem, 6.6vw, 7rem); padding: 5.2rem var(--gutter) 5rem; overflow: hidden; }
.hero-copy { position: relative; z-index: 1; width: min(100%, 560px); padding: .7rem 0 1.2rem; }
.eyebrow { margin: 0; color: var(--moss); font-size: .68rem; font-weight: 650; letter-spacing: .17em; line-height: 1.5; text-transform: uppercase; }
.hero-copy > .eyebrow { display: flex; align-items: center; gap: .75rem; }
.eyebrow-line { display: inline-block; width: 30px; height: 1px; background: var(--clay); }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { margin: 1.35rem 0 1.4rem; font-family: var(--serif); font-size: clamp(4rem, 7.3vw, 7rem); font-weight: 400; letter-spacing: -.077em; line-height: .96; }
h1 em, h2 em { color: var(--forest); font-weight: 400; }
.hero-intro { width: min(100%, 415px); margin-bottom: 2rem; color: #5e655c; font-size: .98rem; line-height: 1.82; }
.button { min-height: 49px; display: inline-flex; align-items: center; justify-content: center; gap: 1.1rem; padding: .8rem 1.15rem; border: 1px solid var(--forest); cursor: pointer; font-size: .78rem; font-weight: 550; transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-dark { color: white; background: var(--forest); }
.button-dark:hover { background: #20372a; border-color: #20372a; }
.button-outline { background: transparent; }
.button-outline:hover { color: white; background: var(--forest); }
.hero-actions { display:flex; flex-direction:column; align-items:flex-start; gap:.55rem; margin-bottom:2.8rem; }
.hero-cta { margin-bottom:0; }
.hero-finder-trigger { min-height: 42px; display: inline-flex; align-items: center; gap: .55rem; padding: .2rem .1rem; border: 0; border-bottom: 1px solid var(--clay); color: var(--forest); background: transparent; font-size: .73rem; cursor: pointer; }
.hero-finder-trigger:hover { color: var(--clay); }
.hero-finder-trigger span { font-size: 1rem; }
.hero-country-link { padding:.15rem 0; color:var(--forest); font-size:.72rem; text-decoration:underline; text-decoration-color:var(--clay); text-underline-offset:.2em; }
.hero-country-link:hover { color:#9d4e38; }
.hero-cta > span { font-size: 1rem; }
.hero-notes { display: flex; flex-wrap: wrap; gap: .65rem 1.05rem; color: var(--muted); font-size: .66rem; }
.hero-notes span + span::before { content: "·"; padding-right: 1.05rem; color: var(--clay); }
.hero-photo { position: relative; align-self: stretch; min-width: 0; min-height: 450px; }
.hero-photo > img { position: absolute; inset: 0; }
.hero-photo::after { position: absolute; inset: 43% 0 0; content: ""; background: linear-gradient(transparent, rgba(20, 32, 24, .45)); }
.hero-image-note { position: absolute; z-index: 1; right: 2rem; bottom: 1.9rem; left: 2rem; display: grid; gap: .42rem; color: white; }
.image-note-label { font-size: .62rem; letter-spacing: .13em; text-transform: uppercase; }
.image-note-title { font-family: var(--serif); font-size: 1.55rem; }
.hero-index { position: absolute; right: var(--gutter); top: 2.6rem; color: white; font-size: .64rem; letter-spacing: .11em; }
.intro-strip { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; padding: 1.15rem var(--gutter); color: white; background: var(--forest); font-size: .68rem; letter-spacing: .04em; }
.intro-strip-center { color: #d3d8ce; font-family: var(--serif); font-size: .9rem; font-style: italic; letter-spacing: .015em; }
.section-wrap { width: 100%; max-width: var(--content-width); margin-right: auto; margin-left: auto; padding-right: var(--gutter); padding-left: var(--gutter); }
.featured-section { padding-top: clamp(5.2rem, 10vw, 9.2rem); padding-bottom: 5.5rem; }
.section-topline { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--rule); }
.section-number { color: var(--muted); font-size: .67rem; letter-spacing: .065em; }
.featured-grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(2.5rem, 7.8vw, 8rem); padding-top: 2.4rem; }
.featured-image { position: relative; height: clamp(340px, 43vw, 550px); overflow: hidden; }
.photo-link img { transition: transform .65s cubic-bezier(.2, .65, .25, 1); }
.photo-link:hover img { transform: scale(1.035); }
.photo-caption { position: absolute; right: .9rem; bottom: 1rem; left: .9rem; color: white; font-size: .68rem; text-shadow: 0 1px 5px rgba(0, 0, 0, .55); }
.featured-copy { max-width: 420px; padding: 1.7rem 0; }
.featured-copy h2, .collection-heading h2, .journal-heading h2, .about-copy h2 { margin: 1.1rem 0 1.1rem; font-family: var(--serif); font-size: clamp(2.75rem, 5vw, 4.75rem); font-weight: 400; letter-spacing: -.065em; line-height: 1.03; }
.featured-copy > p:not(.eyebrow) { margin: 0 0 1.7rem; color: var(--muted); font-size: .89rem; line-height: 1.85; }
.guide-facts { display: grid; gap: .65rem; margin-bottom: 1.8rem; padding: 1rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); color: var(--muted); font-size: .7rem; }
.guide-facts span::before { margin-right: .55rem; color: var(--clay); content: "—"; }
.text-link { display: inline-flex; align-items: center; gap: .9rem; padding: .15rem 0; border: 0; border-bottom: 1px solid var(--clay); background: transparent; font-size: .76rem; cursor: pointer; transition: gap .2s ease; }
.text-link:hover { gap: 1.25rem; }

.ad-slot { min-height: 102px; display: flex; align-items: center; gap: 1.4rem; margin-top: 1rem; margin-bottom: 2rem; padding-top: 1.2rem; padding-bottom: 1.2rem; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.ad-label { flex-shrink: 0; color: var(--muted); font-size: .61rem; letter-spacing: .13em; text-transform: uppercase; }
.ad-copy { display: grid; gap: .35rem; padding-left: 1.3rem; border-left: 1px solid var(--rule); color: #60675e; font-family: var(--serif); font-size: .93rem; font-style: italic; }
.ad-copy span + span { color: var(--muted); font-family: var(--sans); font-size: .65rem; font-style: normal; }
.ad-indicator { display: grid; width: 31px; height: 31px; place-items: center; margin-left: auto; border: 1px solid var(--rule); border-radius: 50%; color: var(--muted); font-size: .58rem; }

.destinations-section { padding-top: clamp(4rem, 7vw, 6.7rem); padding-bottom: clamp(5.3rem, 9vw, 8.3rem); }
.collection-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding-top: 2.1rem; }
.collection-heading h2 { margin-top: 0; margin-bottom: .65rem; font-size: clamp(3.2rem, 5.8vw, 5.3rem); }
.section-description, .collection-aside { margin-bottom: .25rem; color: var(--muted); font-size: .84rem; line-height: 1.65; }
.collection-aside { padding-bottom: .5rem; font-family: var(--serif); font-size: 1rem; font-style: italic; }
.destination-controls { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(165px, .34fr) minmax(168px, .34fr); gap: .75rem; margin-top: 2rem; }
.search-control, .select-control { min-height: 48px; display: flex; align-items: center; gap: .7rem; padding: 0 .9rem; border: 1px solid var(--rule); background: var(--paper-light); }
.search-control:focus-within, .select-control:focus-within { outline: 2px solid #aa7554; outline-offset: 2px; }
.search-control svg { flex: 0 0 18px; width: 18px; color: var(--moss); }
.search-control input, .select-control select { width: 100%; min-width: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: .76rem; }
.search-control input::placeholder { color: #84877f; }
.select-control { position: relative; }
.select-control select { height: 100%; padding-right: .5rem; cursor: pointer; }
.results-count { margin: 1rem 0 0; color: var(--muted); font-size: .7rem; }
.destination-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.8rem 1.2rem; padding-top: 1rem; }
.country-directory-promo { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-top:clamp(2.5rem,5vw,4.25rem); padding:clamp(1.25rem,3vw,2rem); border-left:3px solid var(--clay); background:#e9e5d9; }
.country-directory-promo h3 { margin:.35rem 0; font:400 clamp(1.5rem,2.7vw,2.1rem)/1.15 var(--serif); }
.country-directory-promo p:not(.eyebrow) { margin:0; color:var(--muted); font-size:.76rem; line-height:1.6; }
.country-directory-promo .button { flex:0 0 auto; }
.destination-card { min-width: 0; }
.card-image-button { position: relative; display: block; width: 100%; aspect-ratio: 1.33; padding: 0; overflow: hidden; border: 0; background: #e4e6df; cursor: pointer; text-align: left; }
.card-image { display: block; width: 100%; height: 100%; overflow: hidden; }
.card-image img { transition: transform .5s ease; }
.card-image-button:hover img { transform: scale(1.045); }
.card-photo-index { position: absolute; right: .75rem; bottom: .7rem; display: grid; width: 33px; height: 33px; place-items: center; color: var(--ink); background: var(--paper); font-family: var(--serif); font-size: .84rem; }
.card-body { padding: .85rem .02rem 0; }
.card-meta { display: flex; justify-content: space-between; gap: .7rem; color: var(--muted); font-size: .61rem; letter-spacing: .055em; }
.card-title-row { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .65rem; }
.card-title-row h3 { margin: 0; font-family: var(--serif); font-size: clamp(1.45rem, 2.15vw, 1.85rem); font-weight: 400; letter-spacing: -.04em; }
.card-title-button { padding: 0; border: 0; background: transparent; cursor: pointer; font: inherit; text-align: left; }
.card-title-button:hover { color: var(--forest); }
.favorite-button { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--rule); border-radius: 50%; background: transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.favorite-button:hover, .favorite-button.is-saved { color: var(--forest); border-color: var(--forest); background: #e8ebe4; }
.favorite-button:hover { transform: scale(1.07); }
.favorite-button svg { width: 20px; height: 20px; }
.card-country { margin: -.12rem 0 .75rem; color: var(--moss); font-size: .72rem; }
.card-summary { min-height: 3em; margin: 0; color: #62685f; font-size: .77rem; line-height: 1.7; }
.card-footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: .95rem; padding-top: .8rem; border-top: 1px solid var(--rule); font-size: .65rem; }
.card-footer-muted { color: var(--muted); }
.card-read-link { padding: .25rem 0; border: 0; border-bottom: 1px solid var(--clay); background: transparent; font-size: .65rem; cursor: pointer; }
.card-read-link span { padding-left: .3rem; }
.empty-state { padding: 5rem 1rem; text-align: center; }
.empty-state-mark { color: var(--clay); font-family: var(--serif); font-size: 2rem; }
.empty-state h3 { margin: .7rem 0 .5rem; font-family: var(--serif); font-size: 1.8rem; font-weight: 400; }
.empty-state p { margin: 0 auto 1.4rem; color: var(--muted); font-size: .83rem; }

.journal-section { padding: clamp(4rem, 8vw, 7rem) 0 clamp(5rem, 9vw, 8rem); background: #ecece4; }
.journal-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; padding-top: 1.7rem; }
.journal-heading h2 { margin: 0; font-size: clamp(3rem, 5.4vw, 5.1rem); }
.journal-heading > p { width: min(270px, 35%); margin: 0 0 .5rem; color: var(--muted); font-family: var(--serif); font-size: 1.02rem; font-style: italic; line-height: 1.65; }
.journal-grid { display: grid; grid-template-columns: 1.25fr .75fr; align-items: start; gap: 1.5rem; margin-top: 2.4rem; }
.journal-card-featured { display: grid; grid-template-columns: 1.28fr .72fr; grid-template-rows: auto auto; column-gap: 1.4rem; }
.journal-image { display: block; height: clamp(225px, 30vw, 370px); overflow: hidden; background: #dfe3da; }
.journal-card-featured .journal-image { grid-row: span 3; }
.journal-meta { display: flex; justify-content: space-between; gap: .6rem; margin-top: 1rem; color: var(--muted); font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; }
.journal-card h3 { margin: .72rem 0 .55rem; font-family: var(--serif); font-size: clamp(1.55rem, 2.5vw, 2.15rem); font-weight: 400; letter-spacing: -.045em; line-height: 1.1; }
.journal-card > p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.7; }
.journal-card:not(.journal-card-featured) .journal-image { height: clamp(215px, 25vw, 320px); }
.newsletter-section { display: grid; grid-template-columns: .92fr 1.08fr; min-height: 435px; background: #e5e5dc; }
.newsletter-image { min-height: 435px; overflow: hidden; }
.newsletter-image img { object-position: center 57%; }
.newsletter-copy { align-self: center; width: min(100%, 580px); padding: 4rem clamp(2rem, 7vw, 7rem); }
.newsletter-copy h2 { margin: 1rem 0 1rem; font-family: var(--serif); font-size: clamp(3.2rem, 5.5vw, 5rem); font-weight: 400; letter-spacing: -.07em; line-height: .98; }
.newsletter-copy > p:not(.eyebrow, .newsletter-message) { max-width: 360px; margin-bottom: 1.5rem; color: #62675f; font-size: .84rem; line-height: 1.75; }
.newsletter-copy form { display: flex; max-width: 430px; border-bottom: 1px solid #6f786e; }
.newsletter-copy form input { flex: 1; min-width: 0; height: 48px; padding: 0 .25rem; border: 0; outline: 0; background: transparent; font-size: .79rem; }
.newsletter-copy form:focus-within { outline: 2px solid #aa7554; outline-offset: 3px; }
.newsletter-copy form input:focus-visible { outline: 0; }
.newsletter-copy form input::placeholder { color: #767b71; }
.newsletter-copy form button { display: flex; align-items: center; gap: .65rem; padding: 0 .15rem 0 .6rem; border: 0; background: transparent; font-size: .75rem; cursor: pointer; white-space: nowrap; }
.newsletter-copy form button:disabled { opacity: .6; cursor: wait; }
.newsletter-message { min-height: 1.2em; max-width: 420px; margin: .65rem 0 0; color: var(--muted); font-size: .66rem; line-height: 1.5; }
.newsletter-message.is-error { color: #873e30; }
.newsletter-message.is-success { color: var(--forest); }
.about-section { display: grid; grid-template-columns: .5fr 1fr .4fr; align-items: center; gap: 2rem; padding-top: clamp(5rem, 9vw, 8.5rem); padding-bottom: clamp(5rem, 9vw, 8.5rem); }
.about-section > .eyebrow { align-self: start; padding-top: 1rem; }
.about-copy { max-width: 570px; }
.about-copy h2 { margin: 0 0 1.25rem; font-size: clamp(2.8rem, 5vw, 4.3rem); }
.about-copy > p { max-width: 455px; margin-bottom: 1.45rem; color: var(--muted); font-size: .84rem; line-height: 1.85; }
.policy-page { width: min(820px, calc(100% - 2 * var(--gutter))); min-height: calc(100vh - 156px); margin: 0 auto; padding: clamp(4rem, 9vw, 8rem) 0; }
.policy-page h1 { margin: 1.1rem 0 1.5rem; font-family: var(--serif); font-size: clamp(3.4rem, 8vw, 6rem); font-weight: 400; letter-spacing: -.075em; line-height: 1; }
.policy-page h2 { margin: 2.3rem 0 .7rem; font-family: var(--serif); font-size: 1.55rem; font-weight: 400; letter-spacing: -.035em; }
.policy-page > p:not(.eyebrow) { max-width: 680px; color: var(--muted); font-size: .88rem; line-height: 1.85; }
.policy-page a:not(.text-link) { color: var(--forest); text-decoration: underline; text-underline-offset: .15em; }
.policy-draft-notice { margin: 1.4rem 0 2.1rem; padding: 1rem 1.1rem; border-left: 3px solid var(--clay); color: #5e5147 !important; background: #eeebe1; font-size: .8rem !important; }
.policy-draft-notice strong { color: var(--ink); }
.policy-page > .text-link { margin-top: 1.3rem; }
.about-signoff { justify-self: end; max-width: 150px; color: var(--muted); font-family: var(--serif); font-size: .82rem; font-style: italic; line-height: 1.6; }
.about-signoff em { display: block; margin-top: .5rem; color: var(--ink); font-size: 1.02rem; }
.site-footer { padding: 3.5rem var(--gutter) 1.3rem; color: #ecede7; background: #26392e; }
.footer-main { display: grid; grid-template-columns: 1.45fr 1fr 1fr 1fr; gap: 2rem; max-width: var(--content-width); margin: 0 auto; padding-bottom: 3rem; }
.wordmark-light { color: #f5f3ed; }
.footer-brand > p { margin: .95rem 0 0; color: #b7c0b7; font-family: var(--serif); font-size: .9rem; font-style: italic; line-height: 1.65; }
.footer-column { display: grid; align-content: start; justify-items: start; gap: .75rem; }
.footer-heading { margin: .4rem 0 .3rem; color: #b7c0b7; font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-column a { color: #f0efe9; font-size: .72rem; transition: color .2s; }
.footer-column a:hover { color: #d7ad91; }
.draft-marker { color: #cdb397; font-size: .58rem; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .7rem 1.4rem; max-width: var(--content-width); margin: 0 auto; padding-top: 1.1rem; border-top: 1px solid rgba(255, 255, 255, .18); color: #b7c0b7; font-size: .63rem; }
.footer-bottom a { color: #f0efe9; }

dialog { color: var(--ink); background: var(--paper-light); }
dialog::backdrop { background: rgba(26, 34, 29, .62); backdrop-filter: blur(2px); }
.destination-dialog { position: fixed; inset: 0; width: min(970px, calc(100% - 2rem)); max-width: none; max-height: min(760px, calc(100% - 2rem)); padding: 0; overflow: auto; border: 0; box-shadow: 0 22px 90px rgba(0, 0, 0, .2); }
.destination-dialog[open] { animation: dialog-in .22s ease both; }
@keyframes dialog-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.dialog-close { position: absolute; z-index: 2; top: .8rem; right: .85rem; width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid rgba(38, 53, 44, .23); border-radius: 50%; background: rgba(251, 250, 246, .92); font-size: 1.45rem; line-height: 1; cursor: pointer; }
.dialog-body { display: grid; min-height: 560px; grid-template-columns: .9fr 1.1fr; }
.detail-figure { min-width: 0; min-height: 560px; margin: 0; background: #e4e6df; }
.detail-image { min-height: 560px; background: #e4e6df; }
.detail-image img { min-height: 560px; object-fit: cover; }
.detail-figure .destination-photo-credit { padding: .4rem .7rem .55rem; background: var(--paper-light); }
.detail-copy { align-self: center; padding: 3.5rem clamp(2rem, 5vw, 4.6rem); }
.detail-copy h2, .saved-dialog-heading h2 { margin: 1rem 0 1rem; font-family: var(--serif); font-size: clamp(2.8rem, 5vw, 4.15rem); font-weight: 400; letter-spacing: -.07em; line-height: 1; }
.detail-summary { color: #485449; font-family: var(--serif); font-size: 1.1rem; line-height: 1.55; }
.detail-overview { color: var(--muted); font-size: .79rem; line-height: 1.8; }
.detail-facts { display: grid; gap: .85rem; margin: 1.25rem 0 1.5rem; padding: 1.2rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); color: #646a61; font-size: .7rem; line-height: 1.6; }
.detail-facts strong { display: block; margin-bottom: .18rem; color: var(--ink); font-size: .64rem; }
.detail-save { font-size: .72rem; }
.saved-dialog { position: fixed; inset: 0 0 0 auto; width: min(470px, 100%); max-width: none; height: 100%; max-height: 100%; padding: 2.5rem clamp(1.25rem, 4vw, 2.6rem); overflow: auto; border: 0; box-shadow: -10px 0 55px rgba(0, 0, 0, .15); }
.saved-dialog[open] { animation: drawer-in .25s ease both; }
@keyframes drawer-in { from { opacity: .6; transform: translateX(25px); } to { opacity: 1; transform: translateX(0); } }
.saved-dialog-heading { display: flex; justify-content: space-between; gap: 1rem; padding-right: 2.5rem; }
.saved-dialog-heading h2 { margin-bottom: 0; font-size: 3rem; }
.saved-intro { margin: 1rem 0 1.7rem; color: var(--muted); font-size: .77rem; line-height: 1.65; }
.saved-list { border-top: 1px solid var(--rule); }
.saved-empty { padding: 2.5rem .3rem; }
.saved-empty > span { color: var(--clay); font-size: 1.8rem; }
.saved-empty h3 { margin: .8rem 0 .4rem; font-family: var(--serif); font-size: 1.65rem; font-weight: 400; }
.saved-empty p { max-width: 295px; margin-bottom: 1rem; color: var(--muted); font-size: .76rem; line-height: 1.6; }
.saved-empty .text-link { font-size: .7rem; }
.saved-item { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .75rem 0; border-bottom: 1px solid var(--rule); }
.saved-item-open { flex: 1; min-width: 0; display: flex; align-items: center; gap: .9rem; padding: 0; border: 0; background: transparent; cursor: pointer; text-align: left; }
.saved-thumb { flex: 0 0 76px; width: 76px; height: 68px; overflow: hidden; background: #e4e6df; }
.saved-item-copy { display: grid; gap: .3rem; }
.saved-item-copy strong { font-family: var(--serif); font-size: 1.16rem; font-weight: 400; }
.saved-item-copy span { color: var(--muted); font-size: .68rem; }
.saved-remove { padding: .5rem 0; border: 0; border-bottom: 1px solid var(--rule); background: transparent; color: var(--muted); font-size: .65rem; cursor: pointer; }
.saved-remove:hover { color: #873e30; }

@media (min-width: 1600px) {
  :root { --gutter: max(6.5rem, calc((100vw - 1300px) / 2)); }
}
@media (min-width: 901px) {
  html { font-size: clamp(18px, 1.35vw, 20px); }
}
@media (max-width: 900px) {
  .site-header { height: 70px; gap: 1rem; }
  .primary-navigation { gap: 1.25rem; }
  .hero { min-height: 560px; grid-template-columns: .95fr 1.05fr; gap: 2.1rem; padding-top: 4.2rem; padding-bottom: 4.2rem; }
  .hero h1 { font-size: clamp(3.65rem, 8vw, 5.4rem); }
  .hero-photo { min-height: 380px; }
  .hero-notes { gap: .5rem; }
  .hero-notes span + span::before { padding-right: .5rem; }
  .destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.3rem 1.1rem; }
  .card-title-row h3 { font-size: 1.75rem; }
  .about-section { grid-template-columns: .42fr 1fr; }
  .about-signoff { grid-column: 2; justify-self: start; margin-top: -.5rem; }
  .footer-main { grid-template-columns: 1.2fr 1fr 1fr; row-gap: 2.4rem; }
  .footer-brand { grid-row: span 2; }
  .footer-column:last-child { grid-column: 2; }
}
@media (max-width: 650px) {
  :root { --gutter: 1.2rem; }
  html { scroll-padding-top: 4.5rem; }
  .site-header { height: 65px; gap: .45rem; }
  .wordmark { gap: .4rem; font-size: 1.25rem; }
  .wordmark-mark { width: 24px; height: 24px; font-size: .7rem; }
  .menu-toggle { display: inline-flex; align-items: center; gap: .42rem; margin-left: auto; padding: .6rem .5rem; border: 0; background: transparent; font-size: .74rem; cursor: pointer; }
  .menu-icon { position: relative; width: 16px; height: 12px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); transition: transform .2s; }
  .menu-icon::before { position: absolute; top: 5px; left: 0; width: 100%; height: 1px; background: var(--ink); content: ""; }
  .menu-toggle[aria-expanded="true"] .menu-icon { border-color: transparent; }
  .menu-toggle[aria-expanded="true"] .menu-icon::before { transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-icon::after { position: absolute; top: 5px; left: 0; width: 100%; height: 1px; background: var(--ink); content: ""; transform: rotate(-45deg); }
  .primary-navigation { position: fixed; z-index: 4; inset: 65px 0 0; display: flex; align-items: stretch; flex-direction: column; justify-content: center; gap: 0; padding: 1rem var(--gutter) 4rem; background: var(--paper); opacity: 0; pointer-events: none; transform: translateY(-8px); transition: opacity .2s, transform .2s; }
  .primary-navigation.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
  .primary-navigation a { min-height: 62px; display: flex; justify-content: space-between; border-bottom: 1px solid var(--rule); font-family: var(--serif); font-size: 1.7rem; }
  .primary-navigation a::after { display: none; }
  .primary-navigation a::before { color: var(--clay); content: "↗"; font-family: var(--sans); font-size: 1rem; order: 2; }
  .saved-nav { gap: .2rem; padding-right: 0; font-size: .67rem; }
  .saved-nav svg { width: 18px; }
  .saved-count { min-width: 16px; height: 16px; padding: 0 .2rem; font-size: .58rem; }
  .hero { min-height: initial; grid-template-columns: minmax(0, 1fr); gap: 2rem; padding-top: 4rem; padding-bottom: 2.5rem; }
  .hero-copy { padding: 0; }
  .eyebrow { font-size: .62rem; }
  .hero h1 { margin: 1rem 0 1rem; font-size: clamp(3.7rem, 16vw, 5.3rem); }
  .hero-intro { max-width: 380px; margin-bottom: 1.4rem; font-size: .89rem; }
  .hero-actions { margin-bottom:1.5rem; }
  .hero-notes { gap: .4rem .55rem; font-size: .59rem; }
  .hero-notes span + span::before { padding-right: .55rem; }
  .hero-photo { min-height: 0; aspect-ratio: 1.24; }
  .hero-image-note { right: 1.2rem; bottom: 1.2rem; left: 1.2rem; }
  .hero-image-note .image-note-title { font-size: 1.3rem; }
  .hero-index { top: auto; right: var(--gutter); bottom: 1.3rem; color: white; font-size: .56rem; }
  .intro-strip { justify-content: center; gap: .45rem; padding-top: 1rem; padding-bottom: 1rem; font-size: .6rem; text-align: center; }
  .intro-strip > span:first-child, .intro-strip > span:last-child { display: none; }
  .intro-strip-center { font-size: .83rem; }
  .featured-section { padding-top: 4.5rem; padding-bottom: 4rem; }
  .section-topline { gap: .5rem; padding-bottom: .75rem; }
  .section-number { font-size: .57rem; text-align: right; }
  .featured-grid { grid-template-columns: 1fr; gap: 1.6rem; padding-top: 1.5rem; }
  .featured-image { height: 360px; }
  .featured-copy { padding: 0; }
  .featured-copy h2 { font-size: clamp(3rem, 11vw, 4.1rem); }
  .featured-copy > p:not(.eyebrow) { font-size: .83rem; }
  .ad-slot { min-height: 90px; gap: .8rem; margin-top: .5rem; margin-bottom: 1rem; }
  .ad-copy { gap: .3rem; padding-left: .8rem; font-size: .82rem; }
  .ad-copy span + span { font-size: .58rem; line-height: 1.4; }
  .ad-indicator { flex: 0 0 27px; width: 27px; height: 27px; font-size: .52rem; }
  .destinations-section { padding-top: 4rem; padding-bottom: 4.5rem; }
  .collection-heading { align-items: start; padding-top: 1.5rem; }
  .collection-heading h2 { margin-bottom: .45rem; font-size: 3.5rem; }
  .section-description { max-width: 250px; font-size: .77rem; }
  .collection-aside { display: none; }
  .country-directory-promo { align-items:flex-start; flex-direction:column; }
  .destination-controls { grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: 1.3rem; }
  .search-control { grid-column: span 2; min-height: 46px; }
  .select-control { min-height: 44px; padding: 0 .6rem; }
  .select-control select { font-size: .68rem; }
  .destination-grid { gap: 2rem .8rem; padding-top: .6rem; }
  .card-image-button { aspect-ratio: .95; }
  .card-meta { gap: .25rem; font-size: .54rem; }
  .card-title-row { align-items: start; margin-top: .5rem; }
  .card-title-row h3 { font-size: clamp(1.22rem, 6vw, 1.55rem); line-height: 1.05; }
  .favorite-button { flex-basis: 33px; width: 33px; height: 33px; margin-top: -.2rem; }
  .favorite-button svg { width: 17px; }
  .card-country { margin-top: .1rem; font-size: .65rem; }
  .card-summary { min-height: 0; font-size: .69rem; line-height: 1.55; }
  .card-footer { align-items: start; flex-direction: column; gap: .45rem; font-size: .6rem; }
  .card-read-link { font-size: .61rem; }
  .journal-section { padding-top: 4rem; padding-bottom: 4.5rem; }
  .journal-heading { align-items: start; flex-direction: column; gap: .5rem; padding-top: 1.4rem; }
  .journal-heading h2 { font-size: 3.5rem; }
  .journal-heading > p { width: auto; max-width: 285px; font-size: .9rem; }
  .journal-grid { grid-template-columns: 1fr; gap: 2rem; margin-top: 1.6rem; }
  .journal-card-featured { display: block; }
  .journal-image, .journal-card:not(.journal-card-featured) .journal-image { height: 300px; }
  .journal-card h3 { font-size: 1.8rem; }
  .journal-card > p { max-width: 350px; }
  .newsletter-section { grid-template-columns: 1fr; }
  .newsletter-image { min-height: 0; height: 225px; }
  .newsletter-copy { padding: 2.6rem var(--gutter) 3rem; }
  .newsletter-copy h2 { font-size: 4rem; }
  .about-section { grid-template-columns: 1fr; gap: 1rem; padding-top: 4.4rem; padding-bottom: 4rem; }
  .about-section > .eyebrow { padding: 0; }
  .about-copy h2 { font-size: 3.5rem; }
  .about-copy > p { font-size: .8rem; }
  .about-signoff { grid-column: 1; justify-self: start; margin: .5rem 0 0; }
  .site-footer { padding-top: 2.6rem; padding-bottom: 1rem; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 2rem 1rem; padding-bottom: 2.1rem; }
  .footer-brand { grid-column: span 2; grid-row: auto; margin-bottom: .3rem; }
  .footer-column:last-child { grid-column: auto; }
  .footer-column { gap: .7rem; }
  .footer-heading { min-height: 1em; font-size: .59rem; }
  .footer-column a { font-size: .66rem; line-height: 1.35; }
  .footer-bottom { gap: .55rem; font-size: .58rem; }
  .footer-bottom > :first-child { flex-basis: 100%; }
  .destination-dialog { width: calc(100% - 1rem); max-height: calc(100% - 1rem); }
  .dialog-body { grid-template-columns: 1fr; }
  .detail-figure { min-height: 0; }
  .detail-image { min-height: 0; height: 235px; }
  .detail-image img { min-height: 0; }
  .detail-copy { padding: 1.75rem 1.3rem 1.6rem; }
  .detail-copy h2 { font-size: 3rem; }
  .detail-summary { font-size: 1rem; }
  .detail-overview { font-size: .75rem; }
  .saved-dialog { padding-top: 2.1rem; }
}
@media (max-width: 380px) {
  :root { --gutter: 1rem; }
  .hero h1 { font-size: 3.55rem; }
  .hero-notes { font-size: .54rem; }
  .destination-grid { grid-template-columns: 1fr; gap: 1.7rem; }
  .card-image-button { aspect-ratio: 1.3; }
  .card-meta { font-size: .6rem; }
  .card-title-row h3 { font-size: 1.6rem; }
  .card-footer { align-items: center; flex-direction: row; font-size: .64rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Interactive polish and local owner desk. */
.hero-copy > * { animation: editorial-rise .65s both; }
.hero-copy > *:nth-child(2) { animation-delay: .08s; }
.hero-copy > *:nth-child(3) { animation-delay: .15s; }
.hero-photo img { transition: transform 1s cubic-bezier(.2,.65,.25,1), filter .6s ease; }
.hero-photo:hover img { transform: scale(1.035); filter: saturate(1.06); }
.card-image-link { perspective: 900px; }
.card-image-link img { transition: transform .7s cubic-bezier(.2,.65,.25,1), filter .5s ease; }
.card-image-link:hover img, .card-image-link:focus-visible img { transform: scale(1.055) rotate(.5deg); filter: saturate(1.12); }
.photo-link { overflow: hidden; }
.destination-card, .journal-card { transition: box-shadow .3s ease; }
.destination-card:hover, .journal-card:hover { box-shadow: 0 12px 32px rgba(38,53,44,.09); }
.discovery-card { transition: transform .4s cubic-bezier(.2,.65,.25,1), filter .4s ease; }
.discovery-card:hover { transform: translateY(-5px); filter: saturate(1.12); }
@keyframes editorial-rise { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }
.owner-entry { padding: .2rem 0; border: 0; color: #f0efe9; background: transparent; font: inherit; font-size: inherit; cursor: pointer; }
.owner-entry:hover { color: #d7ad91; }
.owner-dialog { position: fixed; inset: 0 0 0 auto; width: min(520px,100%); max-width: none; height: 100%; max-height: 100%; padding: clamp(1.5rem,5vw,3rem); overflow: auto; border: 0; box-shadow: -10px 0 55px rgba(0,0,0,.15); }
.owner-dialog[open] { animation: drawer-in .25s ease both; }
.owner-heading h2 { margin: .55rem 0 .7rem; font: 400 clamp(2.7rem,7vw,4rem)/1 var(--serif); letter-spacing: -.07em; }
.owner-heading h2 em { color: var(--forest); }
.owner-heading > p:last-child { max-width: 390px; color: var(--muted); font-size: .79rem; line-height: 1.7; }
.owner-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: .6rem; margin: 1.5rem 0 2rem; }
.owner-stats article { display: grid; gap: .4rem; padding: .85rem; border: 1px solid var(--rule); }
.owner-stats span { color: var(--muted); font-size: .62rem; }
.owner-stats strong { font: 400 1.8rem var(--serif); }
.owner-tools { border-top: 1px solid var(--rule); }
.owner-tools h3 { margin: 1.2rem 0 .5rem; font: 400 1.65rem var(--serif); }
.owner-tools button { width: 100%; display: flex; justify-content: space-between; padding: .9rem .1rem; border: 0; border-bottom: 1px solid var(--rule); background: transparent; text-align: left; font-size: .78rem; cursor: pointer; }
.owner-tools button:hover { color: var(--clay); }
.owner-feedback { margin-top: 1rem; color: var(--muted); font-size: .68rem; line-height: 1.6; }
.reveal-on-scroll { opacity: 0; transform: translateY(14px); transition: opacity .65s ease, transform .65s cubic-bezier(.2,.65,.25,1); }
.reveal-on-scroll.is-visible { opacity: 1; transform: translateY(0); }
body.evening-mode { --paper: #e8e5db; --paper-light: #f0eee6; --ink: #1c2b23; --rule: #c9c8bd; --forest: #263d31; }
body.reduce-photo-motion .card-image-link img, body.reduce-photo-motion .photo-link img { transform: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) { .hero-copy > * { animation: none; } .reveal-on-scroll { opacity: 1; transform: none; transition: none; } }

/* Version 2.0: an ocean-and-sand palette, with warm-print editorial typography. */
.wordmark-light .wordmark-mark { color: #eef0e9; }
.hero { gap: clamp(2rem, 5vw, 5rem); }
.hero h1 { font-size: clamp(4.2rem, 7.1vw, 7rem); letter-spacing: -.082em; }
.hero-intro { color: #526461; }
.hero-photo { background: #d4dfdc; }
.hero-photo::after { background: linear-gradient(transparent 25%, rgba(12, 39, 47, .55)); }
.hero-index { color: #fff; text-shadow: 0 1px 5px rgba(0, 0, 0, .6); }
.intro-strip { background: var(--forest); }
.section-number { color: #6a7370; }
.button, .search-control, .select-control, .favorite-button, .card-photo-index, .ad-indicator { border-radius: 2px; }
.button-dark { background: var(--forest); }
.button-dark:hover, .button-outline:hover { background: #102f38; }
.button-outline { border-color: var(--forest); color: var(--forest); }
.featured-image { background: #d8e1db; }
.featured-copy h2, .collection-heading h2, .journal-heading h2, .about-copy h2 { text-wrap: balance; }
.featured-copy > p:not(.eyebrow) { color: #5e6a66; }
.ad-slot { border-color: #d4d0c4; }
.ad-label { color: #6c6d63; }
.destination-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 1.55rem; }
.search-control { grid-column: span 2; }
.search-control, .select-control { min-height: 52px; border-color: #d7d2c5; background: var(--paper-light); }
.search-control input, .select-control select { min-height: 44px; }
.destination-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.35rem 1.4rem; padding-top: 1.35rem; }
.destination-card { min-width: 0; overflow: hidden; background: var(--paper-light); }
.destination-photo { margin: 0; }
.card-image-button, .card-image-link { position: relative; display: block; width: 100%; aspect-ratio: 1.32; padding: 0; overflow: hidden; border: 0; background: #d7e0dd; cursor: pointer; text-align: left; }
.destination-photo-credit { padding: .3rem 1rem 0; color: #64716c; font-size: .48rem; line-height: 1.4; overflow-wrap: anywhere; }
.destination-photo-credit a { color: inherit; text-decoration: underline; text-decoration-color: rgba(99, 112, 105, .52); text-underline-offset: .12em; }
.destination-photo-credit a:hover { color: #8d4836; }
.finder-result-figure { margin: 0; }
.finder-result-figure .destination-photo-credit { padding: .3rem .6rem 0; font-size: .44rem; }
.card-photo-index { background: var(--paper-light); color: var(--forest); }
.card-body { padding: .9rem 1rem 1rem; }
.card-title-row { align-items: start; }
.card-title-row h3 { font-size: clamp(1.48rem, 2vw, 1.8rem); }
.card-title-button { text-decoration-color: transparent; text-decoration-line: underline; text-underline-offset: .17em; transition: text-decoration-color .2s; }
.card-title-button:hover { color: var(--forest); text-decoration-color: var(--clay); }
.favorite-button { flex: 0 0 39px; width: 39px; height: 39px; }
.favorite-button:hover, .favorite-button.is-saved { color: var(--forest); border-color: #8b9b8a; background: #e7e9df; }
.card-country { margin-top: .13rem; }
.card-summary { min-height: 3.2em; font-size: .79rem; }
.card-style-tags { display: flex; flex-wrap: wrap; gap: .35rem; min-height: 1.9rem; margin-top: .55rem; }
.card-style-tags span, .guide-tag { display: inline-flex; align-items: center; padding: .25rem .46rem; border: 1px solid #dcded4; color: #5c695e; background: #f4f3ec; font-size: .61rem; line-height: 1.2; }
.card-footer { display: flex; align-items: center; justify-content: space-between; gap: .65rem; margin-top: .8rem; padding-top: .65rem; }
.card-read-link { border-bottom-color: var(--clay); color: var(--forest); font-size: .7rem; }
.card-utilities { display: flex; gap: .75rem; }
.card-utility-link { min-height: 35px; padding: .35rem 0; border: 0; border-bottom: 1px solid transparent; color: #657069; background: transparent; font-size: .65rem; cursor: pointer; }
.card-utility-link:hover, .card-utility-link[aria-pressed="true"] { border-color: var(--clay); color: var(--forest); }
.card-utility-link[aria-pressed="true"]::before { content: "✓ "; }
.empty-state h3 { font-size: 2rem; }
.journal-section { background: #e9e9df; }
.journal-image { background: #d5ded8; }
.journal-card-featured .journal-image, .journal-card:not(.journal-card-featured) .journal-image { min-width: 0; }
.journal-card h3 a:hover, .related-card h3 a:hover { text-decoration: underline; text-decoration-color: var(--clay); text-underline-offset: .19em; }
.newsletter-section { background: #e7e5d8; }
.newsletter-copy form { border-bottom-color: var(--forest); }
.newsletter-copy form button { color: var(--forest); }
.about-section { grid-template-columns: .53fr 1fr .4fr; }
.about-copy > p { color: #596762; }
.site-footer { background: var(--ocean-dark); }
.footer-bottom { border-top-color: rgba(238, 241, 235, .24); }
.saved-dialog, .destination-dialog, .compare-dialog, .finder-dialog { background: #fbf9f4; }
.favorite-button:focus-visible, .card-utility-link:focus-visible, .guide-secondary-action:focus-visible { outline-offset: 3px; }
.saved-count { min-height: 21px; border-color: #bec7bd; color: var(--forest); }
.destination-dialog { border-top: 4px solid var(--clay); }
.detail-save.button-outline { color: var(--forest); background: transparent; }
.destination-dialog .detail-save.button-outline:hover { color: white; }
.saved-dialog { border-left: 4px solid var(--clay); }
.policy-page { max-width: 790px; }
.policy-page h1, .policy-page h2 { color: var(--ink); }
.policy-page > p:not(.eyebrow) { color: #5b6864; }
.policy-draft-notice { border-left-color: var(--clay); background: #eae5d8; }
.policy-navigation { color: var(--forest); }
.discovery-section { padding-top: clamp(4rem, 8vw, 7rem); padding-bottom: clamp(4rem, 7vw, 6rem); }
.discovery-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding: 2.2rem 0 1.7rem; }
.discovery-heading h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.9rem, 5vw, 4.6rem); font-weight: 400; letter-spacing: -.075em; }
.discovery-heading h2 em { color: var(--forest); }
.discovery-heading > p { max-width: 300px; margin: 0 0 .45rem; color: var(--muted); font-size: .82rem; line-height: 1.7; }
.discovery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.discovery-card { position: relative; min-height: 265px; display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; overflow: hidden; padding: 1.15rem; color: white; background-color: #24505a; isolation: isolate; transition: transform .24s ease; }
.discovery-card::before { display: none; }
.discovery-card::after { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(180deg, rgba(17, 43, 48, .24), rgba(17, 43, 48, .73)); }
.discovery-card > img { position: absolute; z-index: -2; inset: 0; transition: transform .5s ease; }
.discovery-card:hover { transform: translateY(-4px); }
.discovery-card:hover > img { transform: scale(1.04); }
.discovery-number { font-size: .58rem; letter-spacing: .12em; }
.discovery-card-title { font-family: var(--serif); font-size: clamp(1.65rem, 2.5vw, 2.15rem); letter-spacing: -.045em; line-height: 1.05; }
.discovery-card-detail { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding-top: .72rem; border-top: 1px solid rgba(255,255,255,.55); font-size: .66rem; }
.discovery-card:focus-visible { outline: 3px solid var(--clay); outline-offset: 4px; }
.compare-tray { position: fixed; z-index: 8; right: 50%; bottom: max(1.1rem, env(safe-area-inset-bottom)); width: min(660px, calc(100vw - 2rem)); display: flex; align-items: center; gap: .8rem; padding: .7rem .8rem .7rem 1rem; border: 1px solid #cacfc6; background: #fbf9f4; box-shadow: 0 8px 36px rgba(16, 44, 49, .15); transform: translateX(50%); }
.compare-tray p { flex: 1; margin: 0; font-size: .72rem; }
.compare-hint { display: block; margin-top: .15rem; color: var(--muted); font-size: .61rem; }
.compare-tray .button { min-height: 41px; padding: .55rem .75rem; font-size: .69rem; }
.compare-tray .button:disabled, .trip-share:disabled { opacity: .46; cursor: not-allowed; transform: none; }
.compare-clear { padding: .45rem .25rem; border: 0; background: transparent; color: var(--muted); font-size: .62rem; cursor: pointer; }
.compare-clear:hover { color: var(--ink); text-decoration: underline; text-underline-offset: .2em; }
.compare-dialog { position: fixed; inset: 50% auto auto 50%; width: min(950px, calc(100% - 2rem)); max-width: none; max-height: min(720px, calc(100% - 2rem)); padding: clamp(1.3rem, 4vw, 3.2rem); overflow: auto; border: 0; border-top: 4px solid var(--clay); box-shadow: 0 20px 85px rgba(0, 0, 0, .22); transform: translate(-50%, -50%); }
.compare-dialog[open] { animation: compare-in .2s ease both; }
@keyframes compare-in { from { opacity: 0; margin-top: 9px; } to { opacity: 1; margin-top: 0; } }
.compare-dialog h2 { margin: .65rem 0 .6rem; font-family: var(--serif); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 400; letter-spacing: -.07em; }
.compare-intro { max-width: 580px; color: var(--muted); font-size: .79rem; line-height: 1.6; }
.comparison-table-wrap { width: 100%; overflow-x: auto; }
.comparison-table-wrap table { width: 100%; border-collapse: collapse; text-align: left; }
.comparison-table-wrap th, .comparison-table-wrap td { min-width: 138px; padding: .88rem .75rem; border-bottom: 1px solid var(--rule); font-size: .73rem; line-height: 1.6; vertical-align: top; }
.comparison-table-wrap thead th { color: var(--forest); font-family: var(--serif); font-size: 1.08rem; font-weight: 400; }
.comparison-table-wrap tbody th { width: 118px; min-width: 118px; color: var(--muted); font-size: .66rem; font-weight: 500; }
.comparison-link { color: var(--forest); text-decoration: underline; text-decoration-color: var(--clay); text-underline-offset: .18em; }
.saved-dialog-heading h2 { letter-spacing: -.07em; }
.trip-note { padding: .7rem; color: var(--forest); background: #e9ede5; font-size: .7rem; line-height: 1.55; }
.trip-share { width: 100%; margin-top: 1rem; }
.trip-feedback { min-height: 2.4em; margin: .55rem 0; color: var(--muted); font-size: .65rem; line-height: 1.55; }
.finder-dialog { position: fixed; inset: 50% auto auto 50%; width: min(1050px, calc(100% - 2rem)); max-width: none; max-height: min(850px, calc(100% - 2rem)); padding: clamp(1.35rem, 4vw, 3.2rem); overflow: auto; border: 0; border-top: 4px solid var(--clay); box-shadow: 0 20px 85px rgba(0, 0, 0, .22); transform: translate(-50%, -50%); }
.finder-dialog[open] { animation: compare-in .2s ease both; }
.finder-heading { max-width: 650px; padding-right: 2rem; }
.finder-heading h2 { margin: .65rem 0 .7rem; font-family: var(--serif); font-size: clamp(2.6rem, 5vw, 4rem); font-weight: 400; letter-spacing: -.07em; line-height: 1; }
.finder-heading h2 em { color: var(--forest); }
.finder-heading > p:last-child { max-width: 560px; margin-bottom: 1.5rem; color: var(--muted); font-size: .8rem; line-height: 1.7; }
.finder-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; padding: 1.2rem; background: #eeece3; }
.finder-form > label { display: grid; align-content: start; gap: .5rem; color: var(--ink); font-size: .67rem; font-weight: 600; }
.finder-form select { width: 100%; min-width: 0; min-height: 46px; padding: .6rem .7rem; border: 1px solid #c9c9bd; border-radius: 0; color: var(--ink); background: #fbf9f4; font-size: .72rem; }
.finder-form-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 1rem; }
.finder-form-actions .button { min-height: 44px; }
.finder-reset { min-height: 44px; padding: .4rem .3rem; border: 0; border-bottom: 1px solid transparent; color: var(--muted); background: transparent; font-size: .68rem; cursor: pointer; }
.finder-reset:hover { border-color: var(--clay); color: var(--forest); }
.finder-results-status { margin: 1.1rem 0 .7rem; color: var(--muted); font-size: .68rem; line-height: 1.55; }
.finder-results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.finder-result { min-width: 0; display: flex; flex-direction: column; background: #f0eee6; }
.finder-result-image { display: block; aspect-ratio: 1.6; overflow: hidden; background: #dce2dc; }
.finder-result-image img { transition: transform .45s ease; }
.finder-result-image:hover img { transform: scale(1.04); }
.finder-result-copy { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: .9rem; }
.finder-result-copy .eyebrow { font-size: .55rem; letter-spacing: .1em; }
.finder-result-copy h3 { margin: .45rem 0; font-family: var(--serif); font-size: 1.45rem; font-weight: 400; letter-spacing: -.035em; }
.finder-result-copy h3 a:hover { text-decoration: underline; text-decoration-color: var(--clay); text-underline-offset: .15em; }
.finder-result-copy > p:not(.eyebrow) { margin: 0 0 .9rem; color: var(--muted); font-size: .69rem; line-height: 1.6; }
.finder-result-actions { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: auto; padding-top: .65rem; border-top: 1px solid #d5d4ca; }
.finder-result-actions .text-link, .finder-save { font-size: .64rem; }
.finder-save { min-height: 38px; padding: .4rem .1rem; border: 0; border-bottom: 1px solid transparent; color: var(--muted); background: transparent; cursor: pointer; }
.finder-save:hover, .finder-save[aria-pressed="true"] { border-color: var(--clay); color: var(--forest); }
.finder-broaden { justify-self: start; }
@media (prefers-reduced-motion: reduce) {
  .finder-dialog[open] { animation: none; }
  .finder-result-image img, .finder-result-image:hover img { transform: none; transition: none; }
}
@media (max-width: 650px) {
  .finder-dialog { width: calc(100% - 1rem); max-height: calc(100% - 1rem); padding: 1.2rem .85rem; }
  .finder-heading { padding: .5rem 2rem 0 0; }
  .finder-heading h2 { font-size: clamp(2.4rem, 11vw, 3.3rem); }
  .finder-heading > p:last-child { font-size: .74rem; }
  .finder-form { grid-template-columns: minmax(0, 1fr); gap: .7rem; padding: .8rem; }
  .finder-form-actions { align-items: flex-start; flex-direction: column; gap: .35rem; padding-top: .3rem; }
  .finder-results { grid-template-columns: minmax(0, 1fr); gap: .7rem; }
  .finder-result { display: grid; grid-template-columns: minmax(95px, .75fr) minmax(0, 1.25fr); }
  .finder-result-image { min-height: 100%; aspect-ratio: auto; }
  .finder-result-copy { padding: .7rem; }
  .finder-result-copy h3 { font-size: 1.25rem; }
  .finder-result-copy > p:not(.eyebrow) { font-size: .65rem; }
  .finder-result-actions { align-items: flex-start; flex-direction: column; gap: .15rem; }
  .finder-save { min-height: 35px; }
}
.trip-link-label { display: grid; gap: .4rem; margin: .65rem 0; color: var(--muted); font-size: .66rem; }
.trip-link-label input { min-width: 0; width: 100%; padding: .6rem; border: 1px solid var(--rule); color: var(--ink); background: white; font-size: .7rem; }
.trip-link-label input[hidden] { display: none; }
.trip-plan-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin:.35rem 0 .75rem; color:var(--muted); font-size:.58rem; letter-spacing:.1em; }
.trip-print-button { min-height:40px; padding:.45rem .7rem; border:1px solid var(--rule); color:var(--forest); background:transparent; font:inherit; font-size:.65rem; letter-spacing:0; cursor:pointer; }
.trip-print-button:hover:not(:disabled) { border-color:var(--clay); color:#873e30; }
.trip-print-button:disabled { opacity:.48; cursor:not-allowed; }
.trip-stop-list { margin:0; padding:0; list-style:none; }
.trip-stop { padding:0 0 .8rem; border-bottom:1px solid var(--rule); }
.trip-stop .saved-item { border-bottom:0; }
.trip-stop-planning { display:grid; grid-template-columns:70px 1fr; gap:.65rem .8rem; padding:0 0 .75rem; }
.trip-stop-planning > label:first-child { display:grid; gap:.3rem; color:var(--muted); font-size:.62rem; }
.trip-stop-planning input[type="number"] { width:100%; min-height:38px; padding:.4rem; border:1px solid var(--rule); color:var(--ink); background:#fff; font:inherit; font-size:.75rem; }
.trip-stop-order { display:flex; align-items:end; gap:.8rem; }
.trip-stop-order button { min-height:36px; padding:.3rem 0; border:0; border-bottom:1px solid var(--rule); color:var(--forest); background:transparent; font:inherit; font-size:.62rem; cursor:pointer; }
.trip-stop-order button:hover:not(:disabled) { color:#873e30; border-color:var(--clay); }
.trip-stop-order button:disabled { opacity:.4; cursor:not-allowed; }
.trip-note-label { grid-column:1/-1; display:grid; gap:.3rem; color:var(--muted); font-size:.62rem; }
.trip-note-label textarea { width:100%; min-height:58px; resize:vertical; padding:.55rem .6rem; border:1px solid var(--rule); color:var(--ink); background:#fff; font:inherit; font-size:.7rem; line-height:1.5; }
.trip-print-heading, .trip-stop-print-summary { display:none; }
.trip-stop-planning :focus-visible, .trip-print-button:focus-visible, .trip-stop-order button:focus-visible { outline:2px solid var(--clay); outline-offset:2px; }
.guide-breadcrumbs { display: flex; align-items: center; gap: .65rem; padding-top: 1.1rem; color: var(--muted); font-size: .69rem; }
.guide-breadcrumbs a:hover { color: var(--forest); text-decoration: underline; text-decoration-color: var(--clay); text-underline-offset: .2em; }
.guide-breadcrumbs > span[aria-current="page"] { color: var(--ink); }
.guide-hero { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); align-items: center; gap: clamp(2rem, 6vw, 5.5rem); padding-top: clamp(2.5rem, 6vw, 5.4rem); padding-bottom: clamp(3rem, 6vw, 5rem); }
.guide-hero-copy { min-width: 0; padding: 1rem 0; }
.guide-location { margin: 1.15rem 0 0; color: #62706b; font-size: .77rem; }
.guide-hero-copy h1, .guide-not-found h1 { margin: .7rem 0 1.1rem; font-family: var(--serif); font-size: clamp(3.2rem, 6.4vw, 5.8rem); font-weight: 400; letter-spacing: -.085em; line-height: .96; overflow-wrap: anywhere; }
.guide-hero-copy h1 em, .guide-not-found h1 em { color: var(--forest); }
.guide-deck { max-width: 480px; color: #596863; font-family: var(--serif); font-size: clamp(1.05rem, 1.6vw, 1.32rem); line-height: 1.6; }
.guide-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; margin-top: 1.5rem; }
.guide-save { font-size: .73rem; }
.guide-secondary-action { max-width: 100%; padding: .5rem .1rem; border: 0; border-bottom: 1px solid #bd795e; color: var(--forest); background: transparent; font-size: .7rem; line-height: 1.5; cursor: pointer; overflow-wrap: anywhere; }
.guide-secondary-action:hover { color: var(--clay); }
.guide-byline { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin-top: 2rem; color: #66716c; font-size: .61rem; }
.guide-byline span + span::before { padding-right: .9rem; color: var(--clay); content: "·"; }
.guide-hero-image { margin: 0; background: #d5dfdc; }
.guide-hero-image img { aspect-ratio: 1.14; }
.guide-hero-image figcaption { display: flex; flex-wrap: wrap; gap: .3rem .6rem; justify-content: space-between; padding: .62rem 0; color: var(--muted); font-size: .6rem; line-height: 1.5; }
.photo-credit a { text-decoration: underline; text-decoration-color: var(--clay); text-underline-offset: .15em; }
.guide-contents-wrap { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); background: #efede4; }
.guide-contents { display: flex; flex-wrap: wrap; gap: .45rem 1.7rem; padding-top: .85rem; padding-bottom: .85rem; }
.guide-contents a { padding: .3rem 0; color: #596863; font-size: .68rem; }
.guide-contents a:hover { color: var(--forest); text-decoration: underline; text-decoration-color: var(--clay); text-underline-offset: .22em; }
.guide-story { padding-top: clamp(4rem, 8vw, 7rem); padding-bottom: clamp(3.7rem, 7vw, 6rem); }
.guide-story-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(1.5rem, 7vw, 7rem); padding-top: 1.2rem; }
.guide-story-grid > h2, .planning-section h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.8rem, 5.4vw, 4.65rem); font-weight: 400; letter-spacing: -.075em; line-height: 1.02; }
.guide-story-copy { max-width: 640px; }
.guide-story-copy p { margin: 0 0 1.25rem; color: #5b6864; font-size: .87rem; line-height: 1.9; }
.guide-story-copy p.guide-overview { color: var(--ink); font-family: var(--serif); font-size: clamp(1.1rem, 1.8vw, 1.36rem); line-height: 1.75; }
.guide-story-copy h3 { margin: 1.5rem 0 .55rem; font-family: var(--serif); font-size: 1.42rem; font-weight: 400; }
.guide-experiences { padding: clamp(3.7rem, 7vw, 6rem) 0; background: #e9e9df; }
.experience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding-top: 1.55rem; }
.experience-note { min-width: 0; padding: 1.15rem; border: 1px solid #d6d5cb; background: rgba(251,249,244,.56); }
.experience-index { color: var(--clay); font-family: var(--serif); font-size: .95rem; }
.experience-note h3 { margin: 1.05rem 0 .6rem; font-family: var(--serif); font-size: 1.48rem; font-weight: 400; letter-spacing: -.035em; }
.experience-note p { margin: 0; color: #5d6863; font-size: .75rem; line-height: 1.8; }
.sample-itinerary { padding-top:clamp(3.5rem,7vw,5.5rem); padding-bottom:clamp(3.5rem,7vw,5.5rem); }
.sample-itinerary h2 { margin:.85rem 0 .65rem; color:var(--ink); font:400 clamp(2.4rem,4.6vw,3.8rem)/1.05 var(--serif); letter-spacing:-.065em; }
.sample-itinerary h2 em { color:var(--clay); }
.itinerary-intro { max-width:650px; margin:0 0 1.45rem; color:var(--muted); font-size:.8rem; line-height:1.8; }
.itinerary-days { margin:0; padding:0; list-style:none; border-top:1px solid var(--rule); }
.itinerary-day { display:grid; grid-template-columns:minmax(90px,.22fr) minmax(0,1fr) minmax(145px,.34fr); gap:1.2rem; align-items:start; padding:1.15rem .1rem; border-bottom:1px solid var(--rule); }
.itinerary-day-label { padding-top:.25rem; color:var(--clay); font-size:.63rem; font-weight:650; letter-spacing:.13em; text-transform:uppercase; }
.itinerary-day h3 { margin:0 0 .32rem; color:var(--ink); font:400 1.45rem/1.2 var(--serif); }
.itinerary-day p { max-width:650px; margin:0; color:var(--muted); font-size:.76rem; line-height:1.75; }
.itinerary-day-note { justify-self:end; padding-top:.28rem; color:var(--moss); font-size:.66rem; }
@media (max-width:650px) { .itinerary-day { grid-template-columns:1fr; gap:.35rem; padding:1rem 0; } .itinerary-day-note { justify-self:start; } }
.planning-section { padding-top: clamp(4rem, 8vw, 7rem); padding-bottom: clamp(3.5rem, 6vw, 5rem); }
.planning-section > .eyebrow { margin-bottom: .75rem; }
.planning-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 7vw, 7rem); margin-top: 1.5rem; }
.planning-grid > p { max-width: 580px; margin: 0; color: #586661; font-family: var(--serif); font-size: clamp(1rem, 1.5vw, 1.22rem); line-height: 1.8; }
.planning-facts { display: grid; gap: .9rem; align-content: start; }
.planning-facts > span { display: grid; grid-template-columns: minmax(100px, .42fr) minmax(0, .92fr); gap: .4rem .8rem; padding-bottom: .72rem; border-bottom: 1px solid var(--rule); color: #5c6963; font-size: .71rem; line-height: 1.6; }
.planning-facts > span > strong { color: var(--ink); font-size: .67rem; font-weight: 600; }
.planning-facts > span > .guide-tag { justify-self: start; margin-right: .15rem; }
.official-link { color: var(--forest); text-decoration: underline; text-decoration-color: var(--clay); text-underline-offset: .2em; }
.official-link:hover { color: var(--clay); }
.guidance-note { max-width: 900px; margin: 1.3rem 0 0; color: #64716b; font-size: .67rem; line-height: 1.7; }
.guide-print-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.6rem; margin-top: 1.4rem; }
.related-section { padding-top: .5rem; padding-bottom: clamp(4rem, 8vw, 6.5rem); }
.related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.15rem; padding-top: 1.3rem; }
.related-image { display: block; aspect-ratio: 1.4; overflow: hidden; background: #d5dfdc; }
.related-image img { transition: transform .4s ease; }
.related-image:hover img { transform: scale(1.03); }
.related-card .card-meta { margin: .75rem 0 0; }
.related-card h3 { margin: .45rem 0 .35rem; font-family: var(--serif); font-size: 1.56rem; font-weight: 400; }
.related-card > p:last-child { color: #626d68; font-size: .75rem; line-height: 1.7; }
.guide-reviews-section { padding-top: clamp(3.5rem, 7vw, 5.5rem); padding-bottom: clamp(3.5rem, 7vw, 5.5rem); border-top: 1px solid var(--rule); }
.guide-reviews-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--rule); }
.guide-reviews-heading h2 { margin: .55rem 0 0; font: 400 clamp(2.4rem, 4.5vw, 3.8rem)/1.05 var(--serif); letter-spacing: -.065em; }
.guide-reviews-heading h2 em { color: var(--forest); }
.guide-reviews-summary { margin: 0 0 .35rem; color: var(--muted); font-size: .72rem; }
.guide-reviews-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .75fr); gap: clamp(1.5rem, 5vw, 4rem); padding-top: 1.5rem; }
.guide-review-list { display: grid; align-content: start; gap: .75rem; }
.guide-review-card, .guide-reviews-empty { margin: 0; padding: 1rem 1.1rem; border: 1px solid var(--rule); background: rgba(252, 250, 245, .65); }
.guide-review-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .7rem; color: var(--muted); font-size: .67rem; }
.guide-review-card-meta time { margin-left: auto; font-size: .62rem; }
.guide-review-stars { color: #9c553b; letter-spacing: .08em; }
.guide-review-card > p, .guide-reviews-empty { color: #566661; font-size: .76rem; line-height: 1.75; }
.guide-review-card > p { margin: .65rem 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.guide-reviews-empty { align-self: start; }
.guide-review-form { display: grid; align-content: start; gap: .55rem; padding: 1.2rem; background: #e9e9df; }
.guide-review-form h3 { margin: 0; font: 400 1.6rem/1.2 var(--serif); }
.guide-review-form > p:not(.guide-review-status) { margin: 0 0 .35rem; color: var(--muted); font-size: .7rem; line-height: 1.7; }
.guide-review-form > label, .guide-rating-fieldset legend { color: var(--ink); font-size: .68rem; font-weight: 600; }
.guide-review-form > input, .guide-review-form textarea { width: 100%; min-width: 0; padding: .65rem .7rem; border: 1px solid #c9c9bd; border-radius: 0; color: var(--ink); background: var(--paper-light); font: inherit; font-size: .76rem; }
.guide-review-form textarea { min-height: 115px; resize: vertical; line-height: 1.6; }
.guide-rating-fieldset { margin: .2rem 0; padding: 0; border: 0; }
.guide-rating-fieldset legend { margin-bottom: .45rem; }
.guide-rating-options { display: flex; gap: .4rem; }
.guide-rating-options label { position: relative; display: grid; min-width: 42px; min-height: 40px; place-items: center; border: 1px solid #c9c9bd; color: var(--forest); background: var(--paper-light); cursor: pointer; font-size: .7rem; }
.guide-rating-options input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.guide-rating-options label:has(input:checked) { border-color: var(--forest); color: white; background: var(--forest); }
.guide-rating-options label:has(input:focus-visible) { outline: 3px solid var(--focus); outline-offset: 3px; }
.guide-review-guidance { color: var(--muted); font-size: .61rem; line-height: 1.6; }
.guide-review-form .button { justify-self: start; min-height: 42px; margin-top: .3rem; font-size: .7rem; }
.guide-review-form .button:disabled { opacity: .58; cursor: not-allowed; }
.guide-review-status { min-height: 1em; margin: .1rem 0 0; color: var(--forest); font-size: .67rem; line-height: 1.6; }
.guide-ad { margin-top: 0; margin-bottom: 3rem; }
@media (max-width: 650px) {
  .guide-reviews-layout { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .guide-review-form { padding: .95rem; }
}
.guide-not-found { min-height: 52vh; display: flex; align-items: flex-start; flex-direction: column; justify-content: center; padding-top: 4rem; padding-bottom: 4rem; }
.guide-not-found h1 { max-width: 650px; margin: 1rem 0; }
.guide-not-found > p:not(.eyebrow) { max-width: 460px; margin-bottom: 1.5rem; color: var(--muted); font-size: .86rem; line-height: 1.7; }
.guide-loading { padding-top: 6rem; padding-bottom: 6rem; }
.contact-card { max-width: 590px; margin-top: 2rem; padding: 1.4rem; border: 1px solid var(--rule); background: var(--paper-light); }
.contact-placeholder { margin-bottom: .85rem; padding: .8rem; border-left: 3px solid var(--clay); color: #625e51; background: #eae5d8; font-size: .78rem; line-height: 1.7; }

@media (min-width: 1600px) {
  :root { --gutter: max(4.2rem, calc((100vw - 1272px) / 2)); }
}
@media (max-width: 900px) {
  .destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.8rem 1.05rem; }
  .discovery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .discovery-card { min-height: 240px; }
  .guide-hero { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
  .guide-hero-copy h1 { font-size: clamp(3rem, 7vw, 4.3rem); }
  .about-section { grid-template-columns: .45fr 1fr; }
  .about-signoff { grid-column: 2; }
}
@media (max-width: 650px) {
  .hero { grid-template-columns: minmax(0, 1fr); gap: 1.7rem; }
  .hero h1 { font-size: clamp(3.65rem, 15vw, 5.15rem); }
  .hero-photo { min-height: 0; aspect-ratio: 1.18; }
  .discovery-section { padding-top: 3.5rem; padding-bottom: 3.4rem; }
  .discovery-heading { align-items: start; flex-direction: column; gap: .45rem; padding: 1.4rem 0 1.2rem; }
  .discovery-heading h2 { font-size: 3.35rem; }
  .discovery-heading > p { max-width: 325px; font-size: .76rem; }
  .discovery-grid { gap: .6rem; }
  .discovery-card { min-height: 203px; padding: .8rem; }
  .discovery-number { font-size: .5rem; }
  .discovery-card-title { font-size: clamp(1.4rem, 6vw, 1.8rem); }
  .discovery-card-detail { align-items: start; font-size: .59rem; }
  .destination-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
  .search-control { grid-column: span 2; min-width: 0; padding: 0 .65rem; }
  .search-control input, .select-control select { min-width: 0; font-size: .66rem; }
  .select-control { min-width: 0; }
  .destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.3rem .65rem; }
  .card-image-button, .card-image-link { aspect-ratio: .98; }
  .card-body { padding: .7rem .65rem .7rem; }
  .card-meta { font-size: .52rem; }
  .card-title-row h3 { font-size: clamp(1.12rem, 5vw, 1.5rem); }
  .favorite-button { flex-basis: 31px; width: 31px; height: 31px; }
  .favorite-button svg { width: 17px; }
  .card-country { font-size: .61rem; }
  .card-summary { min-height: 0; font-size: .67rem; line-height: 1.55; }
  .card-style-tags { gap: .2rem; min-height: 1.6rem; margin-top: .4rem; }
  .card-style-tags span { padding: .18rem .3rem; font-size: .53rem; }
  .card-footer { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .card-utilities { align-items: center; gap: .65rem; }
  .card-read-link, .card-utility-link { min-height: 35px; font-size: .59rem; }
  .compare-tray { gap: .4rem; width: calc(100vw - 1rem); padding: .6rem; }
  .compare-tray p { font-size: .66rem; }
  .compare-hint { font-size: .55rem; }
  .compare-tray .button { min-height: 39px; gap: .4rem; padding: .45rem .55rem; font-size: .61rem; }
  .compare-clear { font-size: .57rem; }
  .compare-dialog { padding: 1.2rem .85rem; }
  .compare-dialog h2 { font-size: 2.5rem; }
  .comparison-table-wrap th, .comparison-table-wrap td { min-width: 115px; padding: .65rem .45rem; font-size: .66rem; }
  .comparison-table-wrap tbody th { min-width: 94px; }
  .guide-breadcrumbs { gap: .38rem; font-size: .61rem; }
  .guide-hero { grid-template-columns: minmax(0, 1fr); gap: 1.6rem; padding-top: 1.55rem; padding-bottom: 2.4rem; }
  .guide-hero-copy { padding: .5rem 0; }
  .guide-hero-copy h1 { font-size: clamp(3.1rem, 12.5vw, 4.55rem); }
  .guide-hero-image img { aspect-ratio: 1.15; }
  .guide-byline { gap: .35rem .7rem; margin-top: 1.3rem; font-size: .56rem; }
  .guide-byline span + span::before { padding-right: .55rem; }
  .guide-contents { gap: .35rem 1rem; padding-top: .65rem; padding-bottom: .65rem; }
  .guide-contents a { font-size: .62rem; }
  .guide-story { padding-top: 3rem; padding-bottom: 3rem; }
  .guide-story-grid { grid-template-columns: minmax(0, 1fr); gap: .85rem; padding-top: .7rem; }
  .guide-story-grid > h2, .planning-section h2 { font-size: 3.05rem; }
  .guide-story-copy p { font-size: .82rem; }
  .guide-story-copy p.guide-overview { font-size: 1.05rem; }
  .experience-grid { grid-template-columns: minmax(0, 1fr); gap: .65rem; padding-top: 1rem; }
  .experience-note { display: grid; grid-template-columns: 28px minmax(0, 1fr); column-gap: .6rem; padding: .85rem; }
  .experience-index { grid-row: span 2; padding-top: .15rem; }
  .experience-note h3 { margin: .05rem 0 .35rem; font-size: 1.27rem; }
  .experience-note p { font-size: .71rem; }
  .planning-section { padding-top: 3.1rem; }
  .planning-section > h2 { font-size: 3rem; }
  .planning-grid { grid-template-columns: minmax(0, 1fr); gap: 1.3rem; margin-top: 1.05rem; }
  .planning-grid > p { font-size: 1rem; }
  .planning-facts > span { grid-template-columns: minmax(82px, .36fr) minmax(0, 1fr); }
  .guidance-note { font-size: .63rem; }
  .guide-print-actions { gap: .65rem 1rem; }
  .guide-print-actions > * { font-size: .65rem; }
  .related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
  .related-image { aspect-ratio: 1.08; }
  .related-card h3 { font-size: 1.3rem; }
  .related-card > p:last-child { font-size: .68rem; }
  .contact-card { padding: .9rem; }
  .trip-link-label input { font-size: .64rem; }
}
@media (max-width: 380px) {
  .destination-grid { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .card-image-button, .card-image-link { aspect-ratio: 1.38; }
  .card-body { padding: .75rem; }
  .card-meta { font-size: .59rem; }
  .card-title-row h3 { font-size: 1.55rem; }
  .card-summary { font-size: .72rem; }
  .card-style-tags span { padding: .2rem .37rem; font-size: .59rem; }
  .card-footer { align-items: center; flex-direction: row; flex-wrap: wrap; justify-content: space-between; }
}
@media print {
  .site-header, .site-footer, .guide-contents, .guide-hero-actions, .guide-print-actions, .related-section, .guide-ad, .saved-dialog, .skip-link { display: none !important; }
  body, .guide-experiences { color: #18333a !important; background: white !important; }
  .guide-hero { grid-template-columns: 1fr 1fr; gap: 1cm; padding: 0 0 .7cm; }
  .guide-story, .guide-experiences, .planning-section { padding: .7cm 0; break-inside: avoid; }
  .guide-hero-copy h1, .guide-story-grid > h2, .planning-section h2 { font-size: 29pt; }
  .guide-hero-image img { max-height: 9cm; }
  .experience-grid { grid-template-columns: repeat(3, 1fr); }
  a { color: inherit; text-decoration: none; }
  body.printing-trip { margin:0; color:#18333a; background:#fff; }
  body.printing-trip > :not(#saved-dialog) { display:none !important; }
  body.printing-trip #saved-dialog[open] { position:static; inset:auto; display:block !important; width:100%; max-width:none; height:auto; max-height:none; margin:0; padding:0; overflow:visible; border:0; box-shadow:none; animation:none; }
  body.printing-trip #saved-dialog::backdrop { display:none; }
  body.printing-trip .dialog-close, body.printing-trip .trip-plan-toolbar, body.printing-trip .trip-link-label, body.printing-trip .trip-share, body.printing-trip .trip-feedback, body.printing-trip .trip-note, body.printing-trip .saved-remove, body.printing-trip .trip-stop-planning { display:none !important; }
  body.printing-trip .saved-dialog-heading { padding:0; }
  body.printing-trip .saved-dialog-heading h2 { font-size:30pt; }
  body.printing-trip .saved-intro { margin:.3cm 0 .7cm; }
  body.printing-trip .trip-print-heading { display:block; margin-bottom:.6cm; }
  body.printing-trip .trip-print-heading h2 { margin:.2cm 0; font:400 22pt/1.1 var(--serif); }
  body.printing-trip .trip-stop-list { padding:0; }
  body.printing-trip .trip-stop { break-inside:avoid; padding:0 0 .3cm; }
  body.printing-trip .saved-item { min-height:0; padding:.2cm 0; }
  body.printing-trip .saved-thumb { width:2cm; height:1.6cm; }
  body.printing-trip .trip-stop-print-summary { display:block; padding:0 0 .1cm 2.9cm; }
  body.printing-trip .trip-stop-print-summary strong { font-size:10pt; }
  body.printing-trip .trip-stop-print-summary p { margin:.1cm 0; font-size:9pt; }
}
/* Version 2.0 editorial pages and shared mobile navigation. */

.journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1.15rem; align-items: start; }
.journal-card-featured { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); grid-template-rows: auto auto 1fr auto; column-gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.journal-card-featured .journal-image { grid-row: auto; }
.journal-card-featured .journal-figure { grid-column: 1; grid-row: 1 / 5; }
.journal-card-featured .journal-meta, .journal-card-featured h3, .journal-card-featured > p, .journal-card-featured .journal-read-link { grid-column: 2; }
.journal-card-featured .journal-image { height: clamp(320px, 38vw, 500px); }
.journal-card .journal-image, .journal-card:not(.journal-card-featured) .journal-image { height: clamp(190px, 23vw, 290px); }
.journal-card h3 { font-size: clamp(1.43rem, 2.1vw, 1.82rem); }
.journal-read-link { display: inline-flex; gap: .55rem; margin-top: .75rem; padding: .2rem 0; border-bottom: 1px solid var(--clay); color: var(--forest); font-size: .67rem; transition: gap .2s ease; }
.journal-read-link:hover { gap: .9rem; }
.field-note-heading { max-width: 930px; padding-top: clamp(3rem, 8vw, 7rem); padding-bottom: 1.7rem; }
.field-note-heading > h1 { max-width: 790px; margin: .85rem 0 .95rem; font-family: var(--serif); font-size: clamp(3.35rem, 7.6vw, 6.4rem); font-weight: 400; letter-spacing: -.085em; line-height: .96; text-wrap: balance; }
.field-note-dek { max-width: 700px; margin: 0; color: #5e6a66; font-family: var(--serif); font-size: clamp(1.1rem, 2vw, 1.45rem); line-height: 1.62; }
.field-note-heading .guide-byline { margin-top: 1rem; }
.field-note-hero { margin: 0 auto; padding-top: .5rem; padding-bottom: 0; }
.field-note-hero img { max-height: 640px; aspect-ratio: 1.83; background: #d7e0dd; object-fit: cover; }
.field-note-hero figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem .6rem; padding-top: .55rem; color: var(--muted); font-size: .61rem; line-height: 1.5; }
.field-note-hero figcaption a { text-decoration: underline; text-decoration-color: var(--clay); text-underline-offset: .15em; }
.field-note-copy { width: min(670px, calc(100% - 2 * var(--gutter))); margin: 0 auto; padding: 2rem 0 3rem; }
.field-note-copy p { margin: 0 0 1.35rem; color: #556560; font-size: .89rem; line-height: 2; }
.field-note-copy p.field-note-lede { color: var(--ink); font-family: var(--serif); font-size: clamp(1.24rem, 2vw, 1.58rem); line-height: 1.7; }
.field-note-related { padding-top: 1.1rem; padding-bottom: clamp(3.7rem, 8vw, 6.5rem); }
.field-note-related > h2 { margin: .9rem 0 0; font-family: var(--serif); font-size: clamp(2.4rem, 4.7vw, 3.9rem); font-weight: 400; letter-spacing: -.07em; }
.field-note-related > h2 em { color: var(--forest); }
.journal-trip-link { flex: 0 0 auto; }

@media (max-width: 900px) {
  .journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1rem; }
  .journal-card .journal-image, .journal-card:not(.journal-card-featured) .journal-image { height: clamp(190px, 32vw, 275px); }
}
@media (max-width: 650px) {
  .journal-grid { grid-template-columns: minmax(0, 1fr); gap: 1.65rem; }
  .journal-card .journal-image, .journal-card:not(.journal-card-featured) .journal-image { height: 245px; }
  .journal-card h3 { margin-top: .55rem; font-size: 1.7rem; }
  .journal-read-link { min-height: 36px; align-items: center; }
  .field-note-heading { padding-top: 3rem; padding-bottom: 1.3rem; }
  .field-note-heading > h1 { font-size: clamp(3rem, 12.5vw, 4.5rem); }
  .field-note-hero img { aspect-ratio: 1.2; }
  .field-note-copy { padding-top: 1.5rem; padding-bottom: 2rem; }
  .field-note-copy p { font-size: .84rem; line-height: 1.85; }
  .field-note-copy p.field-note-lede { font-size: 1.18rem; }
}
@media print {
  .field-note-heading .guide-hero-actions, .field-note-related { display: none !important; }
  .field-note-copy { width: 100%; padding: .5cm 0; }
  .field-note-copy p { color: #222 !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Editorial homepage: full-bleed local photography with source credits kept beside each image. */
.hero {
  width: min(100%, 1680px);
  margin-right: auto;
  margin-left: auto;
  min-height: clamp(590px, 48vw, 735px);
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
  gap: clamp(2.5rem, 5vw, 5.2rem);
  padding-top: clamp(3.2rem, 5vw, 5rem);
  padding-bottom: clamp(3.2rem, 5vw, 5rem);
}
.hero-copy { max-width: 610px; }
.hero h1 { max-width: 620px; font-size: clamp(4.4rem, 6.35vw, 6.3rem); }
.hero-figure { min-width: 0; min-height: 0; display: flex; flex-direction: column; align-self: stretch; margin: 0; }
.hero-photo { flex: 1; min-height: 470px; align-self: auto; overflow: hidden; background: #d6dfdc; }
.hero-photo > img { object-position: center 54%; }
.hero-photo::after { inset: 48% 0 0; background: linear-gradient(transparent, rgba(12, 39, 47, .64)); }
.hero-image-note { right: clamp(1.2rem, 3vw, 2.5rem); bottom: clamp(1.3rem, 3vw, 2.2rem); left: clamp(1.2rem, 3vw, 2.5rem); }
.hero-image-note .image-note-title { max-width: 500px; font-size: clamp(1.55rem, 2.3vw, 2.25rem); }
.hero-index { top: 2rem; }
.home-photo-credit { display: block; min-width: 0; margin: 0; padding: .45rem .05rem 0; color: #64716c; font-size: .53rem; line-height: 1.45; overflow-wrap: anywhere; }
.home-photo-credit a { color: inherit; text-decoration: underline; text-decoration-color: rgba(99, 112, 105, .52); text-underline-offset: .14em; }
.home-photo-credit a:hover { color: #8d4836; }
.featured-figure { min-width: 0; margin: 0; }
.featured-image { display: block; height: clamp(390px, 43vw, 570px); background: #d8e1db; }
.featured-image img { object-position: center 48%; }
.featured-copy { max-width: 500px; }
.discovery-grid { align-items: start; gap: .85rem; }
.discovery-feature { min-width: 0; margin: 0; }
.discovery-card { min-height: clamp(245px, 23vw, 315px); }
.discovery-feature .home-photo-credit { min-height: 2.4em; padding: .42rem .05rem 0; font-size: .49rem; }
.journal-card-featured { grid-template-columns: 1.15fr .85fr; grid-template-rows: auto auto auto; column-gap: 1.8rem; }
.journal-figure { min-width: 0; margin: 0; }
.journal-card-featured .journal-figure { grid-row: span 4; }
.journal-card-featured .journal-image { grid-row: auto; }
.journal-card:not(.journal-card-featured) .journal-figure { display: block; }
.journal-card .home-photo-credit { padding-top: .38rem; font-size: .49rem; }
.newsletter-image { display: flex; flex-direction: column; margin: 0; background: #d6dfdc; }
.newsletter-image img { flex: 1; min-height: 0; object-position: center 50%; }
.newsletter-image .home-photo-credit { padding: .45rem var(--gutter) .65rem; background: var(--paper-light); }
.related-figure { margin: 0; }
.related-card .home-photo-credit { font-size: .47rem; }

@media (min-width: 1600px) {
  .hero { padding-right: var(--gutter); padding-left: var(--gutter); }
}
@media (max-width: 900px) {
  .hero { min-height: 560px; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); gap: 2rem; padding-top: 3.2rem; padding-bottom: 3.2rem; }
  .hero h1 { font-size: clamp(3.7rem, 7vw, 5.4rem); }
  .hero-photo { min-height: 390px; }
  .discovery-card { min-height: 235px; }
}
@media (max-width: 650px) {
  .hero { min-height: 0; grid-template-columns: minmax(0, 1fr); gap: 1.45rem; padding-top: 3.2rem; padding-bottom: 2rem; }
  .hero h1 { font-size: clamp(3.7rem, 15vw, 5.2rem); }
  .hero-figure { width: 100%; }
  .hero-photo { flex: none; min-height: 0; aspect-ratio: 1.2; }
  .hero-image-note .image-note-title { font-size: 1.45rem; }
  .hero-index { bottom: 1.25rem; }
  .home-photo-credit { font-size: .49rem; }
  .featured-figure { width: 100%; }
  .featured-image { height: min(105vw, 410px); }
  .discovery-grid { gap: .6rem; }
  .discovery-feature { display: flex; flex-direction: column; }
  .discovery-card { flex: 1; min-height: 205px; }
  .discovery-feature .home-photo-credit { min-height: 0; font-size: .45rem; }
  .journal-card-featured { grid-column: 1; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; gap: 0; }
  .journal-card-featured .journal-figure { grid-column: 1; grid-row: auto; }
  .journal-card-featured .journal-meta, .journal-card-featured h3, .journal-card-featured > p, .journal-card-featured .journal-read-link { grid-column: 1; }
  .journal-card-featured .journal-image, .journal-image, .journal-card:not(.journal-card-featured) .journal-image { height: 300px; }
  .journal-card .home-photo-credit { font-size: .46rem; }
  .newsletter-image { min-height: 0; height: auto; }
  .newsletter-image img { flex: none; width: 100%; height: 225px; }
  .newsletter-image .home-photo-credit { padding-right: var(--gutter); padding-left: var(--gutter); }
  .related-card .home-photo-credit { font-size: .43rem; }
}

/* Global atlas, country profiles and introductory place notes. */
.popular-section { padding-top: clamp(3rem,6vw,5rem); padding-bottom: clamp(3rem,5vw,4.5rem); }
.popular-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; padding:1.5rem 0 1.2rem; }
.popular-heading h2, .world-heading h2 { margin:0; font-family:var(--serif); font-size:clamp(2.7rem,5.5vw,4.5rem); font-weight:400; letter-spacing:-.07em; line-height:1; }
.popular-heading h2 em, .world-heading h2 em, .country-hero h1 em, .country-places h2 em, .place-heading h1 em { color:var(--clay); font-weight:400; }
.popular-heading p { max-width:330px; margin:0 0 .2rem; color:var(--muted); font-size:.82rem; line-height:1.7; }
.popular-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; }
.popular-place { min-width:0; display:flex; flex-direction:column; overflow:hidden; background:var(--sand); transition:transform .2s ease,background .2s ease; }
.popular-place:hover { background:#e1d7c4; transform:translateY(-2px); }
.popular-place-main { min-width:0; display:flex; flex:1; flex-direction:column; color:var(--ink); }
.popular-place-photo { position:relative; display:block; aspect-ratio:1.62; overflow:hidden; background:#d8d1c2; }
.popular-place-photo img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.popular-place-main:hover .popular-place-photo img { transform:scale(1.035); }
.popular-place-monogram { position:absolute; inset:0; display:none; place-items:center; color:var(--forest); font:italic 2.2rem/1 var(--serif); }
.popular-place-photo.photo-failed .popular-place-monogram { display:grid; }
.popular-place-photo.photo-failed img { display:none; }
.popular-place-copy { position:relative; display:flex; flex:1; flex-direction:column; align-items:flex-start; gap:.25rem; padding:.62rem 2rem .65rem .75rem; }
.popular-place-country { color:var(--muted); font-size:.59rem; letter-spacing:.08em; text-transform:uppercase; }
.popular-place strong { font:400 1.28rem/1.1 var(--serif); }
.popular-place-arrow { position:absolute; right:.7rem; bottom:.75rem; color:var(--clay); }
.popular-photo-credit { min-height:1.55rem; display:block; padding:.25rem .55rem .35rem; color:#5f685f; font-size:.5rem; line-height:1.35; }
.popular-photo-credit a { color:inherit; text-decoration:underline; text-decoration-color:#9c806b; text-underline-offset:.12em; }
.popular-photo-credit a:hover { color:#7b3d2e; }
.popular-photo-credit[hidden], .country-photo-credit[hidden] { display:none; }
.world-section { padding:clamp(4rem,8vw,7rem) 0; color:#f7f3e9; background:#244a48; }
.world-wrap { width:min(1380px,calc(100% - 2 * var(--gutter))); margin:0 auto; }
.world-section .section-topline { border-color:rgba(247,243,233,.22); }
.world-section .eyebrow, .world-section .section-number { color:#d0d3c4; }
.world-heading { padding:1.6rem 0 1.25rem; }
.world-heading h2 em { color:#e5a184; }
.world-heading p { max-width:630px; margin:.85rem 0 0; color:#d4ddd5; font-size:.86rem; line-height:1.75; }
.world-controls { display:grid; grid-template-columns:minmax(280px,2fr) repeat(3,minmax(150px,1fr)); gap:.6rem; margin:1.3rem 0 .8rem; }
.world-search input, .country-search input { width:100%; min-height:50px; padding:.75rem .9rem; border:1px solid #c9c9ba; border-radius:2px; color:var(--ink); background:var(--paper-light); font:inherit; font-size:.78rem; }
.world-section .select-control { min-height:50px; border-color:rgba(255,255,255,.4); background:#faf6ed; }
.world-section .select-control select { min-height:46px; color:#263b3a; }
.world-results { min-height:1.4em; margin:.8rem 0 .7rem; color:#d5ded7; font-size:.72rem; }
.world-results-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.world-result { min-width:0; display:flex; flex-direction:column; align-items:flex-start; padding:1rem 1.05rem 1.05rem; border:1px solid rgba(255,255,255,.15); background:rgba(250,246,237,.97); color:var(--ink); }
.world-result-top { width:100%; display:flex; justify-content:space-between; gap:.5rem; color:#68756c; font-size:.57rem; letter-spacing:.045em; }
.world-result-top span:last-child { color:#7b6859; font-size:.51rem; letter-spacing:.08em; }
.world-result h3 { margin:.8rem 0 .1rem; font:400 1.6rem/1.05 var(--serif); }
.world-result h3 a:hover { color:#9b503a; text-decoration:underline; text-decoration-color:#b86b50; text-underline-offset:.2em; }
.world-result-country { margin:0 0 .45rem; font-size:.68rem; }
.world-result-country a { color:#48675e; }
.world-result > p:not(.world-result-country) { margin:0 0 .8rem; color:#5b6762; font-size:.73rem; line-height:1.65; }
.world-result-tags { display:flex; flex-wrap:wrap; gap:.32rem; margin-top:auto; }
.world-result-tags span { padding:.24rem .48rem; border:1px solid #d7ddcf; border-radius:99px; color:#52634e; background:#eff1e8; font-size:.58rem; }
.world-result-link { display:inline-flex; gap:.5rem; margin-top:.8rem; padding:.25rem 0; border-bottom:1px solid var(--clay); color:#244a48; font-size:.67rem; }
.world-load-more { display:flex; margin:1rem auto 0; color:#f8f3e9; border-color:#d3dbd2; }
.world-load-more:hover { color:#244a48; background:#f5f0e6; }
.world-empty { grid-column:1/-1; padding:1.6rem; border:1px solid rgba(255,255,255,.2); color:#f7f3e9; font-size:.82rem; }
.country-index { margin-top:clamp(3.5rem,7vw,5.5rem); padding-top:1.6rem; border-top:1px solid rgba(247,243,233,.24); }
.country-index-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:.4rem 1.5rem; }
.country-index-heading h3 { margin:0; font:400 2rem var(--serif); }
.country-index-heading p { margin:0; color:#d4ddd5; font-size:.72rem; }
.country-search { display:block; max-width:420px; margin:1rem 0; }
.country-scope { max-width:880px; color:#d3dcd5; font-size:.67rem; line-height:1.7; }
.country-scope a { color:#f2c3a9; text-decoration:underline; text-underline-offset:.18em; }
.country-regions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; }
.country-region { border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.045); }
.country-region summary { display:flex; justify-content:space-between; gap:1rem; padding:.85rem 1rem; color:#fbf7ef; cursor:pointer; font-size:.76rem; }
.country-region summary span { color:#cbd5ce; font-size:.65rem; }
.country-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.15rem .4rem; padding:0 .7rem .75rem; }
.country-link { display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.42rem .35rem; color:#e8ece5; font-size:.68rem; }
.country-link:hover { color:#f2c3a9; background:rgba(255,255,255,.06); }
.country-link[hidden], .country-region[hidden] { display:none; }
.world-page { min-height:60vh; }
.world-page-wrap { width:min(1040px,calc(100% - 2 * var(--gutter))); margin:0 auto; padding-bottom:clamp(4rem,8vw,7rem); }
.world-breadcrumbs { display:flex; flex-wrap:wrap; gap:.5rem; padding-top:1.1rem; color:var(--muted); font-size:.68rem; }
.world-breadcrumbs a { color:var(--forest); text-decoration:underline; text-decoration-color:var(--clay); text-underline-offset:.17em; }
.country-hero { padding:clamp(3rem,7vw,6rem) 0 2.5rem; }
.country-hero h1, .place-heading h1, .country-not-found h1 { margin:.75rem 0 1rem; font:400 clamp(3.3rem,7vw,6rem)/.98 var(--serif); letter-spacing:-.075em; }
.country-intro { max-width:710px; margin:0; color:#52635f; font:1.15rem/1.75 var(--serif); }
.country-coverage { display:inline-block; margin:1rem 0 0; padding:.4rem .65rem; color:#55604f; background:#e8e8da; font-size:.63rem; }
.country-places { padding:1.4rem 0 2.4rem; }
.country-places > h2 { margin:1.2rem 0 1.1rem; font:400 clamp(2.3rem,4vw,3.5rem) var(--serif); letter-spacing:-.055em; }
.country-place-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.15rem; padding-top:1rem; }
.country-place-item { min-width:0; overflow:hidden; background:var(--paper-light); box-shadow:0 7px 22px rgba(26,45,39,.07); }
.country-place-image { position:relative; display:block; aspect-ratio:1.55; margin:0; overflow:hidden; background:linear-gradient(145deg,#82948a,#365d5b); }
.country-place-image::after { position:absolute; inset:35% 0 0; background:linear-gradient(0deg,rgba(13,32,33,.54),transparent); content:""; pointer-events:none; }
.country-place-image img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.country-place-image:hover img { transform:scale(1.035); }
.country-place-image.photo-failed img { display:none; }
.country-place-photo-label { position:absolute; z-index:1; bottom:.8rem; left:.9rem; color:#fffaf0; font:italic 1.1rem/1.1 var(--serif); text-shadow:0 1px 8px rgba(0,0,0,.55); }
.country-place-copy { padding:1.05rem 1.1rem 1.15rem; }
.country-place-item h3 { margin:.42rem 0 .3rem; font:400 1.75rem var(--serif); }
.country-place-item h3 a:hover { color:var(--clay); }
.country-place-item p { max-width:660px; margin:0 0 .65rem; color:var(--muted); font-size:.75rem; line-height:1.65; }
.country-place-copy > .text-link { display:inline-block; margin-top:.6rem; color:var(--forest); font-size:.72rem; }
.country-guide-copy { max-width:780px; margin:.85rem 0; color:var(--muted); font-size:.8rem; line-height:1.8; }
.country-experiences-details { margin-top:1rem; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.country-experiences-details > summary { padding:.85rem 0; color:var(--forest); cursor:pointer; font-size:.75rem; }
.country-experiences-details .country-highlight-grid { padding:.6rem 0 1.1rem; }
.country-empty, .country-note { padding:1.1rem 1.2rem; border-left:3px solid var(--clay); color:#56615b; background:#e9e5d9; font-size:.78rem; line-height:1.7; }
.country-empty p, .country-note p { margin:0; }
.country-empty a { display:inline-block; margin-top:.65rem; color:var(--forest); text-decoration:underline; text-decoration-color:var(--clay); text-underline-offset:.2em; }
.country-note { margin:1.2rem 0 0; }
.country-note strong { display:block; margin-bottom:.3rem; color:var(--ink); }
.country-not-found { min-height:55vh; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:3rem 0; }
.country-not-found > p:not(.eyebrow) { color:var(--muted); }
.place-article { padding-top:1rem; }
.place-heading { max-width:820px; padding:clamp(3rem,7vw,6rem) 0 2.1rem; }
.place-heading .world-result-tags { margin-top:1rem; }
.place-deck { max-width:710px; margin:0; color:#52635f; font:clamp(1.15rem,2vw,1.45rem)/1.7 var(--serif); }
.place-story { width:min(700px,100%); margin:0 auto; padding:1.4rem 0 3.5rem; }
.place-story p { color:#56645e; font-size:.87rem; line-height:1.9; }
.place-story p.place-lede { color:var(--ink); font:1.35rem/1.6 var(--serif); }
.place-hero-photo { height:clamp(230px,38vw,410px); margin:0 0 1.55rem; }
.place-hero-photo.photo-failed img { display:none; }
.place-note-panel { margin:1.35rem 0; padding:1.05rem 1.1rem; border-top:1px solid var(--rule); background:rgba(251,250,246,.62); }
.place-note-panel h2 { margin:.35rem 0 .65rem; font:400 clamp(1.65rem,3vw,2.25rem)/1.15 var(--serif); letter-spacing:-.04em; }
.place-note-panel h2 em { color:var(--clay); font-weight:400; }
.place-note-panel p:not(.eyebrow) { margin:.45rem 0; }
.place-note-panel .text-link { color:var(--forest); font-size:.72rem; text-decoration:underline; text-decoration-color:var(--clay); text-underline-offset:.2em; }
.place-related { padding:1rem 0 2rem; }
.place-related-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; padding-top:1rem; }
.place-related-link { min-height:110px; display:flex; flex-direction:column; justify-content:space-between; gap:.4rem; padding:.8rem; border:1px solid var(--rule); color:var(--ink); background:var(--paper-light); }
.place-related-link:hover { border-color:#b99d81; background:#eee5d6; }
.place-related-link span { color:var(--muted); font-size:.59rem; }
.place-related-link strong { font:400 1.2rem/1.1 var(--serif); }
.world-result { overflow:hidden; padding:0 1.05rem 1.05rem; border:0; background:#fbf7ef; box-shadow:0 8px 24px rgba(8,36,36,.13); transition:transform .22s ease,box-shadow .22s ease; }
.world-result:hover { transform:translateY(-3px); box-shadow:0 13px 30px rgba(8,36,36,.2); }
.world-card-art { position:relative; height:112px; display:flex; align-items:center; justify-content:space-between; gap:.5rem; overflow:hidden; margin:0 -1.05rem .85rem; padding:.85rem 1.05rem; isolation:isolate; color:#fffaf0; background:linear-gradient(115deg,hsl(var(--place-hue) 26% 30%),hsl(calc(var(--place-hue) + 42) 27% 43%)); }
.world-card-photo { position:absolute; z-index:0; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .35s ease; }
.world-card-art.has-photo .world-card-photo { opacity:1; }
.world-card-art.has-photo::before { position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(13,34,37,.3),transparent 80%),linear-gradient(0deg,rgba(13,34,37,.28),transparent 65%); content:""; }
.world-card-art::after { position:absolute; z-index:1; top:-31px; right:56px; width:137px; height:137px; border:1px solid rgba(255,248,231,.28); border-radius:50%; content:""; }
.world-card-art:not(.has-photo)::before { position:absolute; z-index:1; top:-65px; right:22px; width:205px; height:205px; border:1px solid rgba(255,248,231,.34); border-radius:50%; content:""; }
.world-card-monogram { position:relative; z-index:2; flex:0 0 auto; width:64px; height:64px; display:grid; place-items:center; border:1px solid rgba(255,250,240,.72); border-radius:50%; color:#fffaf0; background:rgba(255,250,240,.1); font:italic 1.35rem/1 var(--serif); letter-spacing:-.04em; box-shadow:inset 0 0 0 5px rgba(255,250,240,.06); }
.world-card-art-label { position:relative; z-index:2; max-width:58%; color:rgba(255,250,240,.9); font-size:.55rem; letter-spacing:.13em; line-height:1.5; text-align:right; text-transform:uppercase; text-shadow:0 1px 4px rgba(0,0,0,.35); }
.world-card-orbit { position:absolute; z-index:1; right:15%; bottom:-58px; width:116px; height:116px; border:1px solid rgba(255,250,240,.23); border-radius:50%; pointer-events:none; }
.world-photo-credit { position:absolute; z-index:3; right:.45rem; bottom:.35rem; max-width:80%; overflow:hidden; padding:.18rem .35rem; color:#fffaf0; background:rgba(18,38,39,.78); font-size:.56rem; line-height:1.3; text-overflow:ellipsis; white-space:nowrap; }
.world-photo-credit a { color:inherit; text-decoration:underline; text-underline-offset:.12em; }
.world-photo-credit[hidden] { display:none; }
.world-card-art.has-photo .world-card-monogram { visibility:hidden; opacity:0; }
.world-result-top { padding-bottom:.2rem; }
.world-result h3 { margin:.6rem 0 .1rem; font-size:1.75rem; }
.world-result > p:not(.world-result-country) { min-height:3.5em; font-size:.76rem; }
.field-map { margin:2rem 0 2.5rem; padding:clamp(1rem,2.4vw,2rem); color:var(--ink); background:var(--paper-light); }
.field-map-heading { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; }
.field-map-heading h3 { margin:.4rem 0 .45rem; font:400 clamp(1.9rem,3.8vw,3rem)/1.08 var(--serif); letter-spacing:-.055em; }
.field-map-heading h3 em { color:var(--clay); font-weight:400; }
.field-map-heading > div > p:last-child { max-width:540px; margin:0; color:var(--muted); font-size:.72rem; line-height:1.6; }
.field-map-count { flex:0 0 auto; margin:0 0 .25rem; color:var(--forest); font-size:.68rem; }
.field-map-controls { display:grid; grid-template-columns:minmax(220px,2fr) repeat(2,minmax(150px,1fr)) auto; gap:.55rem; margin:1.1rem 0 .8rem; }
.field-map-controls .world-search input { min-height:46px; }
.field-map-controls .select-control { min-height:46px; }
.field-map-controls .select-control select { min-height:42px; }
.field-map-reset { min-height:46px; padding:.55rem .8rem; border:1px solid var(--rule); color:var(--forest); background:#fffefa; font:inherit; font-size:.67rem; cursor:pointer; }
.field-map-reset:hover { border-color:var(--clay); color:#8a432f; }
.field-map-reset:focus-visible, .field-map-nearby-button:focus-visible { outline:3px solid var(--clay); outline-offset:2px; }
.field-map-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(210px,270px); align-items:stretch; gap:.75rem; }
.field-map-stage { position:relative; min-width:0; aspect-ratio:2/1; overflow:hidden; border:1px solid #d5d9cd; background:#e9eee8; isolation:isolate; }
.field-map-stage.leaflet-container { width:100%; height:100%; background:#e9eee8; color:var(--ink); font-family:var(--sans); }
.field-map-stage .leaflet-control-attribution { padding:.15rem .35rem; color:#26352f; background:rgba(255,254,250,.9); font-size:10px; }
.field-map-stage .leaflet-control-attribution a { color:#164e59; }
.field-map-stage .leaflet-control-zoom a { width:38px; height:38px; color:var(--forest); line-height:36px; }
.field-map-stage .leaflet-control-zoom a:hover { color:#8a432f; }
.field-map-stage .leaflet-control-zoom-in { border-bottom-color:#d6d7cd; }
.field-map-tile-status { position:absolute; z-index:1000; top:.8rem; left:50%; width:max-content; max-width:calc(100% - 2rem); margin:0; padding:.55rem .8rem; color:#273a34; background:rgba(255,254,250,.95); box-shadow:0 1px 5px rgba(20,50,53,.16); font-size:.68rem; line-height:1.5; text-align:center; transform:translateX(-50%); pointer-events:none; }
.field-map-number-icon { border:0; background:transparent; }
.field-map-marker { width:36px; height:36px; display:grid; place-items:center; border:2px solid #fffefa; border-radius:50%; color:#fff; background:var(--ocean); box-shadow:0 2px 9px rgba(20,50,53,.35); font-size:.58rem; font-weight:700; transition:background .16s ease,scale .16s ease; }
.leaflet-marker-icon:hover .field-map-marker, .field-map-marker.is-selected { background:var(--clay); scale:1.12; }
.leaflet-marker-icon:focus-visible { outline:none; }
.leaflet-marker-icon:focus-visible .field-map-marker { outline:3px solid #18343a; outline-offset:2px; }
.field-map-cluster-icon { display:grid; place-items:center; border:2px solid #fffefa; border-radius:50%; color:#fff; background:rgba(22,78,89,.85); box-shadow:0 2px 9px rgba(20,50,53,.32); font-size:.7rem; font-weight:700; }
.field-map-cluster-icon span { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:var(--ocean); }
.field-map-cluster-icon:hover { background:rgba(176,91,67,.85); }
.field-map-side { min-width:0; display:flex; flex-direction:column; gap:.65rem; }
.field-map-preview { min-height:155px; padding:.8rem; border-top:3px solid var(--clay); background:var(--sand); }
.field-map-preview-main { display:grid; grid-template-columns:minmax(76px,.72fr) minmax(0,1.4fr); align-items:start; gap:.7rem; }
.field-map-photo { position:relative; min-width:0; margin:0; }
.field-map-photo img { display:block; width:100%; aspect-ratio:1.08; object-fit:cover; background:#e4e6df; }
.field-map-photo-fallback { position:absolute; inset:0; display:none; place-items:center; color:#f8f4e9; background:linear-gradient(145deg,#8b9b84,#48635e); font:400 1.6rem/1 var(--serif); }
.field-map-photo.photo-failed img { display:none; }
.field-map-photo.photo-failed .field-map-photo-fallback { display:grid; }
.field-map-photo-credit { margin-top:.3rem; color:var(--muted); font-size:.52rem; line-height:1.45; overflow-wrap:anywhere; }
.field-map-photo-credit a { text-decoration:underline; text-decoration-color:rgba(95,105,95,.45); text-underline-offset:.12em; }
.field-map-preview-copy { min-width:0; }
.field-map-preview-copy .eyebrow { margin:.12rem 0 0; font-size:.52rem; line-height:1.45; }
.field-map-preview h4 { margin:.55rem 0 .25rem; font:400 1.65rem/1.1 var(--serif); }
.field-map-preview h4:focus { outline:2px solid var(--clay); outline-offset:3px; }
.field-map-preview-copy > p:last-of-type { margin:0; color:var(--muted); font-size:.62rem; line-height:1.55; }
.field-map-preview-actions { display:flex; flex-direction:column; align-items:flex-start; gap:.1rem; }
.field-map-add-trip { min-height:36px; display:inline-flex; align-items:center; gap:.35rem; margin-top:.5rem; padding:.45rem .6rem; border:1px solid var(--forest); color:#fffefa; background:var(--forest); font:inherit; font-size:.62rem; cursor:pointer; }
.field-map-add-trip:hover { border-color:#8a432f; background:#8a432f; }
.field-map-add-trip:focus-visible { outline:3px solid var(--clay); outline-offset:2px; }
.field-map-add-trip:disabled { border-color:rgba(64,82,69,.22); color:var(--forest); background:rgba(255,254,250,.72); cursor:default; }
.field-map-open { display:inline-flex; gap:.5rem; margin-top:.8rem; padding:.45rem 0 .2rem; border-bottom:1px solid var(--clay); color:var(--forest); font-size:.68rem; }
.field-map-open:hover { color:#8a432f; }
.field-map-nearby { display:flex; flex-wrap:wrap; align-items:center; gap:.3rem; margin-top:.65rem; padding-top:.55rem; border-top:1px solid rgba(64,82,69,.17); }
.field-map-nearby-label { flex:0 0 100%; color:var(--muted); font-size:.56rem; }
.field-map-nearby-button { min-height:32px; display:inline-flex; align-items:center; gap:.28rem; padding:.28rem .4rem; border:1px solid rgba(64,82,69,.2); color:var(--forest); background:rgba(255,254,250,.7); font:inherit; font-size:.57rem; cursor:pointer; }
.field-map-nearby-button:hover { border-color:var(--clay); }
.field-map-nearby-button span { color:var(--muted); font-size:.52rem; }
.field-map-empty { margin:0; color:var(--muted); font-size:.75rem; line-height:1.65; }
.field-map-list { min-height:44px; border:1px solid var(--rule); background:#fffefa; }
.field-map-list summary { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:.7rem; padding:.55rem .7rem; color:var(--forest); cursor:pointer; font-size:.68rem; }
.field-map-list summary span { color:var(--muted); font-size:.61rem; }
.field-map-list ol { max-height:310px; margin:0; padding:0 .6rem .5rem; overflow:auto; list-style:none; }
.field-map-list li { display:grid; grid-template-columns:minmax(0,1fr) 32px; align-items:center; border-top:1px solid var(--rule); }
.field-map-list-select { width:100%; min-width:0; min-height:39px; display:flex; align-items:center; justify-content:space-between; gap:.4rem; padding:.35rem .2rem; border:0; color:var(--ink); background:transparent; font:inherit; font-size:.66rem; text-align:left; cursor:pointer; }
.field-map-list-select span { overflow:hidden; color:var(--muted); font-size:.57rem; text-overflow:ellipsis; white-space:nowrap; }
.field-map-list-select:hover, .field-map-list-select.is-selected { color:#8a432f; }
.field-map-list li > a { display:grid; min-width:32px; min-height:36px; place-items:center; color:var(--forest); }
.field-map-legend { display:flex; flex-wrap:wrap; gap:.45rem 1rem; margin:.65rem 0 0; color:var(--muted); font-size:.59rem; }
.field-map-legend > span { display:inline-flex; align-items:center; gap:.3rem; }
.map-legend-dot { width:10px; height:10px; display:inline-block; border:1px solid #fff; border-radius:50%; background:var(--ocean); box-shadow:0 0 0 1px rgba(20,50,53,.2); }
.map-legend-dot.is-selected { background:var(--clay); }
.field-map-note { margin:.45rem 0 0; color:var(--muted); font-size:.59rem; line-height:1.55; }
.country-link { min-height:42px; justify-content:flex-start; gap:.55rem; padding:.32rem .4rem; border:1px solid rgba(240,234,216,.11); background:rgba(247,243,233,.055); transition:background .16s ease,border-color .16s ease; }
.world-photo-status { min-height:0; margin:.35rem 0 0; color:var(--muted); font-size:.65rem; line-height:1.55; }
.country-list-entry { min-width:0; }
.country-link:hover { color:#f2c3a9; border-color:rgba(242,195,169,.35); background:rgba(247,243,233,.11); }
.country-link-photo { position:relative; flex:0 0 42px; width:42px; height:34px; overflow:hidden; border:1px solid hsla(var(--place-hue) 35% 75% / .5); border-radius:2px; background:linear-gradient(145deg,hsla(var(--place-hue) 32% 59% / .58),hsla(calc(var(--place-hue) + 40) 34% 34% / .62)); }
.country-link-photo::before { position:absolute; inset:0; background:linear-gradient(145deg,transparent 55%,rgba(255,255,255,.14) 56% 58%,transparent 59%); content:""; }
.country-link-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .25s ease; }
.country-link-photo.has-country-photo img { opacity:1; }
.country-photo-credit { display:block; overflow:hidden; margin:.12rem .25rem .25rem 3.35rem; color:#d7d7c9; font-size:.48rem; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.country-photo-credit a { color:inherit; text-decoration:underline; text-underline-offset:.12em; }
.country-photo-credit:hover { color:#f2c3a9; text-decoration:underline; text-underline-offset:.12em; }
.country-empty-search { margin:1rem 0 0; padding:.9rem 1rem; border:1px solid rgba(255,255,255,.2); color:#f6f1e7; font-size:.75rem; }
.country-link-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.country-link-arrow { margin-left:auto; color:#dda184; font-size:.75rem; }
@media (prefers-reduced-motion:reduce) { .world-result { transition:none; } }
.country-highlights { padding:2.5rem 0 2rem; border-top:1px solid var(--rule); }
.country-highlights > h2,.travel-tools > h2 { margin:.9rem 0 .65rem; font:400 clamp(2.3rem,4vw,3.5rem)/1.08 var(--serif); letter-spacing:-.06em; }
.country-highlights > h2 em,.travel-tools > h2 em { color:var(--clay); }
.country-highlight-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.7rem; margin-top:1.2rem; }
.country-highlight { min-width:0; padding:1.05rem; border-top:2px solid var(--moss); background:#e9e5d9; }
.country-highlight h3 { margin:.65rem 0 .4rem; font:400 1.35rem/1.2 var(--serif); }
.country-highlight p,.country-guide-copy { color:var(--muted); font-size:.77rem; line-height:1.7; }
.country-highlight a { display:inline-block; margin-top:.45rem; color:var(--forest); font-size:.64rem; text-decoration:underline; text-decoration-color:var(--clay); text-underline-offset:.18em; }
.country-guide-copy { max-width:760px; }
.travel-tools { width:min(1180px,calc(100% - 2 * var(--gutter))); margin:0 auto; padding:2.2rem 0 clamp(3rem,6vw,5rem); }
.place-article > .travel-tools { width:100%; padding-bottom:2rem; }
.travel-tools-intro { max-width:690px; margin:.4rem 0 1rem; color:var(--muted); font-size:.82rem; line-height:1.7; }
.travel-tool-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.travel-tool-card { min-width:0; display:flex; flex-direction:column; overflow:hidden; border-top:2px solid var(--clay); color:var(--ink); background:#fbf7ef; box-shadow:0 7px 22px rgba(26,45,39,.09); transition:transform .18s ease,box-shadow .18s ease; }
.travel-tool-card:hover { transform:translateY(-2px); box-shadow:0 11px 28px rgba(26,45,39,.14); }
.travel-tool-photo { position:relative; height:clamp(145px,18vw,220px); margin:0; overflow:hidden; background:linear-gradient(145deg,#647b72,#274b4b); }
.country-place-image.travel-tool-photo { height:auto; aspect-ratio:1.55; }
.place-hero-photo.travel-tool-photo { height:clamp(250px,42vw,410px); }
.travel-tool-photo::after { position:absolute; inset:35% 0 0; background:linear-gradient(0deg,rgba(13,32,33,.5),transparent); content:""; pointer-events:none; }
.travel-tool-photo img { width:100%; height:100%; object-fit:cover; opacity:.92; transition:transform .4s ease,opacity .3s ease; }
.travel-tool-card:hover .travel-tool-photo img { transform:scale(1.035); }
.travel-tool-photo.photo-failed img { display:none; }
.travel-photo-label { position:absolute; z-index:1; bottom:.75rem; left:.9rem; color:#fffaf0; font:italic 1.15rem/1.1 var(--serif); text-shadow:0 1px 8px rgba(0,0,0,.55); }
.travel-photo-credit { position:absolute; z-index:2; right:.35rem; bottom:.3rem; max-width:60%; padding:.12rem .25rem; overflow:hidden; color:#fffaf0; background:rgba(17,35,35,.68); font-size:.47rem; text-overflow:ellipsis; white-space:nowrap; }
.travel-photo-credit[hidden] { display:none; }
.travel-photo-credit a { color:inherit; text-decoration:underline; text-underline-offset:.12em; }
.travel-tool-copy { display:flex; flex-direction:column; align-items:stretch; padding:1rem 1rem 1.05rem; }
.travel-tool-kicker { color:#64715f; font-size:.57rem; letter-spacing:.1em; text-transform:uppercase; }
.travel-tool-copy h3 { margin:.45rem 0 .7rem; font:400 1.45rem/1.12 var(--serif); }
.travel-tool-copy > a { display:flex; justify-content:space-between; gap:.55rem; padding:.62rem 0; border-top:1px solid var(--rule); color:var(--forest); font-size:.67rem; line-height:1.5; }
.travel-tool-copy > a:hover { color:#9d4e38; text-decoration:underline; text-decoration-color:var(--clay); text-underline-offset:.2em; }
.travel-tool-copy > a span { flex:0 0 auto; }
.travel-tools-note { max-width:850px; margin:.85rem 0 0; color:var(--muted); font-size:.63rem; line-height:1.65; }
@media (max-width:760px) { .country-highlight-grid,.travel-tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:1000px) { .world-controls { grid-template-columns:repeat(2,minmax(0,1fr)); } .world-results-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .country-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:650px) {
  .field-map { margin:1.6rem 0 2rem; padding:.9rem; }
  .field-map-heading { align-items:flex-start; flex-direction:column; gap:.55rem; }
  .field-map-heading h3 { font-size:2rem; }
  .field-map-controls { grid-template-columns:1fr 1fr; }
  .field-map-search { grid-column:1/-1; }
  .field-map-reset { grid-column:1/-1; }
  .field-map-layout { grid-template-columns:1fr; }
  .field-map-stage { aspect-ratio:1.48/1; }
  .field-map-marker { width:34px; height:34px; }
  .field-map-stage .leaflet-control-zoom a { width:42px; height:42px; line-height:40px; }
  .field-map-preview { min-height:0; padding:.75rem; }
  .field-map-preview-main { grid-template-columns:minmax(104px,.6fr) minmax(0,1.4fr); }
  .field-map-photo img { aspect-ratio:1.15; }
  .field-map-list ol { max-height:260px; }
  .popular-heading { align-items:flex-start; flex-direction:column; gap:.65rem; }
  .popular-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
  .popular-place-copy { padding:.55rem 1.65rem .6rem .6rem; }
  .popular-place strong { font-size:1.12rem; }
  .popular-photo-credit { padding:.22rem .45rem .3rem; font-size:.46rem; }
  .world-controls { grid-template-columns:1fr 1fr; gap:.45rem; }
  .world-search { grid-column:1/-1; }
  .world-section .select-control { min-height:44px; padding:0 .5rem; }
  .world-section .select-control select { min-height:40px; font-size:.65rem; }
  .world-results-grid { grid-template-columns:1fr; gap:.55rem; }
  .world-result { padding:.85rem; }
  .country-regions { grid-template-columns:1fr; }
  .country-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .country-highlight-grid,.travel-tool-grid { grid-template-columns:1fr; }
  .travel-tool-photo { height:190px; }
  .country-place-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .place-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .country-hero { padding-top:2.7rem; }
  .place-heading { padding-top:2.7rem; }
}
@media (max-width:520px) { .country-place-list { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .popular-place { transition:none; } }

/* Shared finishing details for the editorial and atlas pages. */
.site-header { transition: box-shadow .2s ease; }
.primary-navigation a, .saved-nav { color: var(--paper-light); }
.primary-navigation .nav-newsletter { color: var(--paper-light); }
.wordmark-mark { color: var(--paper-light); }
.saved-count { color: var(--paper-light); }
.menu-toggle { color: var(--paper-light); }
.menu-icon { border-color: var(--paper-light); }
.menu-icon::before, .menu-toggle[aria-expanded="true"] .menu-icon::after { background: var(--paper-light); }
.primary-navigation a:hover, .saved-nav:hover { color: #f0c2a8; }
.world-section { background: var(--ocean); }
.world-heading h2 em { color: #efb394; }
.world-result { border-color: rgba(25, 75, 85, .12); background: var(--paper-light); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.world-result:hover, .world-result:focus-within { transform: translateY(-2px); border-color: rgba(25, 75, 85, .35); box-shadow: 0 8px 20px rgba(13, 44, 49, .1); }
.world-result-top { font-size: .66rem; }
.world-result-top span:last-child { color: #715846; font-size: .61rem; }
.world-result-tags span { font-size: .64rem; }
.world-result-link { min-height: 38px; align-items: center; color: var(--ocean); }
.world-card-art { background: hsl(var(--place-hue) 23% 32%); }
.world-card-art::after, .world-card-art:not(.has-photo)::before { display: none; }
.world-photo-credit { font-size: .61rem; }
.popular-place { border-top-color: var(--moss); background: var(--sand); }
.popular-place:hover { background: #e2d5bf; }
.country-place-image, .travel-tool-photo { background: var(--moss); }
.travel-photo-credit { font-size: .58rem; }
.country-place-item, .travel-tool-card { box-shadow: 0 3px 14px rgba(26, 45, 39, .06); }
.country-place-item:hover, .travel-tool-card:hover { box-shadow: 0 8px 24px rgba(26, 45, 39, .1); }
.country-empty, .country-note { background: var(--sand); }
.card-style-tags span, .guide-tag { border-color: #d7d9cd; color: #4c6259; background: #f0f1e8; }
.journal-section, .guide-experiences { background: var(--sage); }
.newsletter-section { background: var(--sand); }
.experience-note { border-color: #d4d7cc; background: rgba(252, 250, 245, .72); }
.field-note-copy { max-width: 720px; margin-right: auto; margin-left: auto; padding-right: var(--gutter); padding-left: var(--gutter); }
.field-note-copy p { color: #465a58; font-size: 1rem; line-height: 1.9; }
.field-note-copy p.field-note-lede { color: var(--ink); font-family: var(--serif); font-size: clamp(1.2rem, 2.2vw, 1.55rem); line-height: 1.75; }
.destination-card:nth-child(5n + 2) .card-image-button { aspect-ratio: 1.18; }
.destination-card:nth-child(5n + 4) .card-image-button { aspect-ratio: 1.48; }

@media (max-width: 650px) {
  .primary-navigation { z-index: 8; background: var(--ocean-dark); }
  .primary-navigation a { color: var(--paper-light); border-color: rgba(252, 250, 245, .22); }
  .primary-navigation a::before { color: #efb394; }
  .menu-toggle { min-height: 44px; }
  .hero-notes { font-size: .64rem; }
  .card-meta { font-size: .62rem; }
  .card-summary { font-size: .74rem; }
  .card-country { font-size: .7rem; }
  .card-footer { font-size: .67rem; }
  .destination-grid { gap: 1.7rem .8rem; }
  .destination-card:nth-child(n) .card-image-button { aspect-ratio: 1.05; }
  .world-result-tags span { font-size: .65rem; }
  .world-section .select-control select { min-height: 44px; font-size: .7rem; }
  .country-link { min-height: 40px; font-size: .73rem; }
  .country-search input, .world-search input { font-size: .82rem; }
  .field-note-copy p { font-size: .96rem; }
  .travel-photo-credit { font-size: .57rem; }
}

@media (max-width: 380px) {
  .hero-notes { font-size: .59rem; }
  .saved-nav { font-size: .64rem; }
  .world-controls { grid-template-columns: 1fr; }
  .world-search { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .site-header, .world-result, .destination-card, .journal-card, .travel-tool-card,
  .popular-place, .hero-photo img, .card-image-link img { transition: none; }
  .leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow,
  .leaflet-cluster-anim .leaflet-spider-leg { transition: none !important; }
}

/* Destination guides: larger editorial pacing and locally credited place photography. */
.destination-guide { overflow: clip; }
.guide-hero {
  width: min(1500px, calc(100% - 2 * var(--gutter)));
  max-width: 1500px;
  min-height: 700px;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  gap: clamp(2.5rem, 6vw, 6rem);
  padding-top: clamp(3rem, 6vw, 5rem);
  padding-bottom: clamp(3.5rem, 7vw, 6rem);
}
.guide-hero-copy { max-width: 610px; }
.guide-hero-copy h1 { font-size: clamp(4rem, 7vw, 7rem); }
.guide-hero-image { width: 100%; }
.guide-hero-image img { width: 100%; height: clamp(470px, 48vw, 690px); aspect-ratio: auto; object-fit: cover; }
.guide-hero-image figcaption { display: grid; justify-content: stretch; gap: .45rem; padding: .65rem .1rem 0; font-size: .59rem; }
.guide-photo-credit { color: #64716c; font-size: .5rem; line-height: 1.45; overflow-wrap: anywhere; }
.guide-photo-credit a { color: inherit; text-decoration: underline; text-decoration-color: rgba(99, 112, 105, .52); text-underline-offset: .13em; }
.guide-photo-credit a:hover { color: #8d4836; }
.guide-contents-wrap { position: sticky; z-index: 3; top: 0; }
.guide-contents { justify-content: space-between; gap: .5rem 1rem; }
.guide-contents a { font-size: .71rem; }
.guide-story { width: min(1190px, calc(100% - 2 * var(--gutter))); max-width: 1190px; padding-top: clamp(5rem, 9vw, 8rem); padding-bottom: clamp(5rem, 9vw, 8rem); }
.guide-story-grid { grid-template-columns: minmax(250px, .75fr) minmax(0, 1fr); gap: clamp(3rem, 9vw, 9rem); padding-top: 2rem; }
.guide-story-grid > h2 { font-size: clamp(3.4rem, 6.2vw, 5.3rem); }
.guide-story-copy { max-width: 720px; }
.guide-story-copy p { font-size: .94rem; line-height: 2; }
.guide-story-copy p.guide-overview { font-size: clamp(1.25rem, 2vw, 1.62rem); }
.guide-field-note { padding: clamp(3.5rem, 7vw, 6rem) 0; color: #f7f3e9; background: #244a48; }
.guide-field-note-inner { display: grid; grid-template-columns: minmax(250px, .8fr) minmax(0, 1fr); gap: clamp(2rem, 8vw, 8rem); align-items: center; }
.guide-field-note .eyebrow { color: #d3d9cf; }
.guide-field-note h2 { margin: .8rem 0 0; font: 400 clamp(2.9rem, 5.6vw, 4.7rem)/1.02 var(--serif); letter-spacing: -.07em; }
.guide-field-note h2 em { color: #efb394; }
.guide-field-note-inner > p { max-width: 720px; margin: 0; color: #e1e6de; font: 400 clamp(1.05rem, 1.7vw, 1.32rem)/1.85 var(--serif); }
.guide-experiences { padding-top: clamp(4.5rem, 9vw, 7.5rem); padding-bottom: clamp(4.5rem, 9vw, 7.5rem); }
.guide-experiences > .section-wrap { width: min(1320px, calc(100% - 2 * var(--gutter))); }
.experience-grid { gap: 1rem; padding-top: 2rem; }
.experience-note { min-height: 0; padding: 0; overflow: hidden; background: rgba(252,250,245,.75); }
.experience-figure { margin: 0; }
.experience-photo { display: block; width: 100%; aspect-ratio: 1.48; object-fit: cover; background: #dce2d8; }
.experience-photo-credit { min-height: 2.2rem; padding: .38rem .8rem; font-size: .56rem; line-height: 1.5; }
.experience-copy { padding: clamp(1.1rem, 2vw, 1.65rem); }
.experience-copy h3 { margin: .55rem 0 .6rem; font-size: clamp(1.55rem, 2.4vw, 2rem); }
.experience-note p { font-size: .82rem; line-height: 1.9; }
.sample-itinerary { width: min(1120px, calc(100% - 2 * var(--gutter))); max-width: 1120px; padding-top: clamp(4.5rem, 8vw, 7rem); padding-bottom: clamp(4.5rem, 8vw, 7rem); }
.itinerary-intro { max-width: 740px; font-size: .88rem; line-height: 1.9; }
.itinerary-day { padding: 1.5rem .1rem; }
.itinerary-day h3 { font-size: 1.62rem; }
.itinerary-day p { font-size: .83rem; line-height: 1.85; }
.planning-section { width: min(1120px, calc(100% - 2 * var(--gutter))); max-width: 1120px; padding-top: clamp(4.5rem, 8vw, 7rem); }
.planning-grid { gap: clamp(2rem, 7vw, 7rem); margin-top: 2rem; }
.planning-grid > p { font-size: clamp(1.12rem, 1.7vw, 1.4rem); line-height: 1.9; }
.related-section { width: min(1320px, calc(100% - 2 * var(--gutter))); max-width: 1320px; padding-top: 2rem; }
.related-guide-figure { margin: 0; }
.related-guide-figure .related-image { aspect-ratio: 1.2; }
.related-guide-figure .guide-photo-credit { padding-top: .38rem; }
.related-card h3 { margin-top: .7rem; font-size: clamp(1.65rem, 2.4vw, 2rem); }
.guide-photo-fallback { width: 100%; min-height: 400px; display: grid; place-items: center; color: #314a42; background: #dce2d8; font: 400 2rem var(--serif); }

@media (max-width: 900px) {
  .guide-hero { min-height: 0; gap: 2rem; }
  .guide-hero-copy h1 { font-size: clamp(3.35rem, 7vw, 5.2rem); }
  .guide-hero-image img { height: clamp(390px, 56vw, 520px); }
  .guide-story-grid { gap: 2.5rem; }
  .guide-field-note-inner { gap: 2.5rem; }
  .experience-note { min-height: 0; }
}
@media (max-width: 650px) {
  .guide-hero { width: calc(100% - 2 * var(--gutter)); grid-template-columns: minmax(0, 1fr); gap: 1rem; padding-top: 1.5rem; padding-bottom: 2.5rem; }
  .guide-hero-copy h1 { font-size: clamp(3.25rem, 12.5vw, 4.6rem); }
  .guide-hero-image img { height: auto; aspect-ratio: 1.06; }
  .guide-hero-image figcaption { font-size: .58rem; }
  .guide-photo-credit { font-size: .47rem; }
  .guide-contents-wrap { position: relative; }
  .guide-contents { justify-content: flex-start; gap: .45rem 1rem; }
  .guide-story { width: calc(100% - 2 * var(--gutter)); padding-top: 3.3rem; padding-bottom: 3.5rem; }
  .guide-story-grid { grid-template-columns: minmax(0, 1fr); gap: .8rem; padding-top: 1rem; }
  .guide-story-grid > h2 { font-size: 3.05rem; }
  .guide-story-copy p { font-size: .86rem; line-height: 1.9; }
  .guide-story-copy p.guide-overview { font-size: 1.15rem; }
  .guide-field-note { padding: 3.1rem 0; }
  .guide-field-note-inner { grid-template-columns: 1fr; gap: 1.15rem; }
  .guide-field-note h2 { font-size: 3.1rem; }
  .guide-field-note-inner > p { font-size: 1.08rem; line-height: 1.8; }
  .guide-experiences { padding: 3.2rem 0; }
  .guide-experiences > .section-wrap { width: calc(100% - 2 * var(--gutter)); }
  .experience-grid { grid-template-columns: minmax(0, 1fr); gap: .7rem; padding-top: 1.2rem; }
  .experience-note { display: block; min-height: 0; padding: 0; }
  .experience-photo { aspect-ratio: 1.5; }
  .experience-photo-credit { padding: .35rem .65rem; font-size: .55rem; }
  .experience-copy { padding: .95rem; }
  .experience-copy h3 { margin: .25rem 0 .4rem; font-size: 1.4rem; }
  .experience-note p { font-size: .77rem; }
  .sample-itinerary, .planning-section { width: calc(100% - 2 * var(--gutter)); padding-top: 3.2rem; padding-bottom: 3.2rem; }
  .related-section { width: calc(100% - 2 * var(--gutter)); }
  .related-grid { grid-template-columns: minmax(0, 1fr); }
  .related-guide-figure .related-image { aspect-ratio: 1.25; }
}

@media print {
  .guide-contents-wrap { position: static; }
  .guide-field-note { color: #18333a !important; background: #fff !important; }
  .guide-field-note .eyebrow, .guide-field-note-inner > p { color: #465a58 !important; }
  .guide-field-note h2 em { color: #80513d !important; }
}
