/* Editorial type roles. Load after site.css. Font source and checks:
   evidence/design/typography.md. Headings are roman by default; word-level emphasis is explicit. */
@font-face {
  font-family: Newsreader;
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url('assets/fonts/Newsreader-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Newsreader;
  font-style: italic;
  font-weight: 400 600;
  font-display: swap;
  src: url('assets/fonts/Newsreader-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Canonical typography and link behaviour. Layout belongs to component files. */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.site-main :is(h1,h2,h3,h4),.home-page :is(h1,h2,h3,h4){font-optical-sizing:auto;text-wrap:balance;overflow-wrap:break-word}
.page-heading h1,.lead-story h1{font:500 var(--text-page-title)/1.15 var(--font-heading);letter-spacing:-.025em;font-synthesis:none;max-inline-size:30ch}
.page-heading>p{font:400 var(--text-lead)/1.55 var(--font-ui);max-inline-size:62ch;text-wrap:pretty}
.section-title,.directory-intro h2,.content-section>h2,.feature-spread h2,.hub-feature h2,.food-feature h2,.story-feature h2,.medical-entry h2{font:500 var(--text-section-title)/1.25 var(--font-heading);letter-spacing:-.015em;font-synthesis:none}
/* Supporting labels share a quiet UI role; major editorial headlines retain Newsreader. */
.home-page .home-planning-notes .section-title,
.home-page .home-practical>h2,
.home-page .sidebar-directory h2,
.home-page .rail-promo h2,
.home-page .destination-intro h2,
.site-main .travel-action h2,
.site-main .more-reading-preview .section-heading h2,
.site-main .article-follow-section .section-heading h2,
.site-main .article-place-section>h2,
.site-main .living-task-section .home-section-heading h2,
.site-main .destination-provider-group .home-section-heading h3,
.site-main .profile-details>h2,
.briefs>h2{font:var(--weight-heading-utility) var(--text-heading-utility)/1.4 var(--font-heading-utility);letter-spacing:0;font-style:normal;font-synthesis:none;text-wrap:pretty}
.home-page .compact-article-copy h3,.site-main .compact-article-copy h3,
:is(.home-page,.site-main) .news-card--compact .news-card-copy :is(h2,h3,h4),
:is(.home-page,.site-main) .event-copy :is(h2,h3){font:var(--weight-heading-utility) var(--text-heading-utility)/1.4 var(--font-heading-utility);letter-spacing:0;text-wrap:pretty}
.story-card :is(h2,h3,h4),.destination-card h3,.secondary-story h2,.home-reading-item h3,.home-food-feature h3,.home-culture-feature-copy h3,.home-culture-link,.home-destination-copy h3,.home-provider-copy h3,.home-event-copy h3,.home-living-choice-copy h3,.provider-card-title,.listing-card h2,.search-result h2,.credit-grid h2{font:500 var(--text-card-title)/1.3 var(--font-heading);letter-spacing:-.015em;font-synthesis:none}
.home-living-feature-copy h3{font:500 var(--text-section-title)/1.25 var(--font-heading);letter-spacing:-.015em}
.story-card>p,.destination-card p,.home-provider-copy>p,.home-destination-copy>p,.home-reading-item p,.home-food-feature p,.home-culture-feature-copy p,.home-living-choice-copy>p,.listing-card>p:not(.caption):not(.provider-meta){font:400 var(--text-body)/1.6 var(--font-ui);text-wrap:pretty}
.mega-group h3,.footer-column h2{font:600 var(--text-utility)/1.5 var(--font-ui);letter-spacing:0;text-transform:none}
.mega-feature-copy strong{font:500 1.25rem/1.3 var(--font-heading);font-style:normal}
.article-body{max-width:68ch;font:400 var(--text-reading-body)/1.65 var(--font-story);letter-spacing:0;font-optical-sizing:auto}
.article-body>h2,.prose h2{font:500 var(--text-reading-heading)/1.3 var(--font-heading);margin-block:2em .75em;letter-spacing:-.015em}
.article-body>h3{font:500 var(--text-card-title)/1.35 var(--font-heading);margin-block:1.5em .65em}
.article-body>p+ p{margin-block-start:1em}
.article-body :is(strong,b){font-weight:600}
.article-body :is(em,i){font-style:italic}
.article-body :is(.choice-grid,.transport-comparison,.day-plan,.budget-tool,.content-notice,.provider-card,.sources-block,.table-scroll){font-family:var(--font-ui);font-size:var(--text-body);line-height:1.6}
.article-body :is(.choice-grid h3,.transport-comparison h2,.day-plan h2,.content-notice h2){font:500 var(--text-card-title)/1.3 var(--font-heading)}
.article-body .sources-block h2,.profile-page .profile-layout .content-section>h2{font:600 var(--text-body)/1.5 var(--font-ui);font-style:normal;letter-spacing:0}
.text-link,.read-link,.source-link,.home-card-action{color:var(--color-text);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:from-font;text-decoration-skip-ink:auto}
:is(.text-link,.read-link,.source-link,.home-card-action):is(:hover,:focus-visible){color:var(--color-action)}
.story-card :is(h2,h3,h4)>a,.destination-card,.home-destination-card,.home-provider-copy h3>a,.provider-card-title>a,.listing-card h2>a,.home-event-copy h3>a,.home-reading-link,.home-culture-link,.article-follow-title{color:var(--color-text);text-decoration:none}
:is(.story-card :is(h2,h3,h4)>a,.home-provider-copy h3>a,.provider-card-title>a,.listing-card h2>a,.home-event-copy h3>a,.home-reading-link,.home-culture-link,.article-follow-title):is(:hover,:focus-visible){color:var(--color-action-text);text-decoration:underline;text-underline-offset:.16em}
.article-body a,.prose a{text-decoration:underline;text-underline-position:from-font;text-decoration-thickness:from-font;text-decoration-skip-ink:auto}
.option-price,.budget-total output,.fact-list dd{font-variant-numeric:lining-nums tabular-nums}
@media(max-width:640px){.page-heading h1,.lead-story h1{line-height:1.2}.mega-feature-copy strong{font-size:1.125rem}.budget-inputs input,.directory-controls input,.directory-controls select{font-size:1rem}}
@media(max-width:380px){.story-card :is(h2,h3,h4),.home-provider-copy h3,.provider-card-title,.home-event-copy h3{line-height:1.4}}
@media print{.page-heading h1{font-size:30pt}.article-body{max-width:none;font-size:11pt}}

/* A preview's image and title share one hover/focus treatment. */
:is(.story-card,.compact-article,.lead-story,.secondary-story,.home-food-feature,.news-card):has(>a:hover) :is(h1,h2,h3,h4)>a,
:is(.story-card,.compact-article,.lead-story,.secondary-story,.home-food-feature,.news-card):focus-within :is(h1,h2,h3,h4)>a,
.provider-card:has(.provider-image:hover) .provider-card-title>a,
.home-provider-card:has(.home-provider-image:hover) .home-provider-copy h3>a{
 color:var(--color-action-text);text-decoration:underline;text-underline-offset:.16em;
}
.destination-card:is(:hover,:focus-visible) h3{color:var(--color-action-text);text-decoration:underline;text-underline-offset:.16em}

/* Final owner-directed scale: supporting card and calendar titles sit 2px below the 18px section label. */
.home-page .home-planning-grid .compact-article-copy h3,
:is(.home-page,.site-main) .event-copy :is(h2,h3){font-size:calc(var(--text-heading-utility) - 2px)}
