/* The parent journal supplies the design system. These rules fit its Europe edition. */
.europe-home .hero-copy h1 {
  font-size: clamp(48px, 5.3vw, 92px);
  overflow-wrap: break-word;
  hyphens: none;
}
.hero-index { letter-spacing: 0.1em; }
.europe-stories { grid-template-columns: 1.15fr 1fr; }
.europe-stories .story-image { height: auto; aspect-ratio: 3 / 2; }
.europe-stories .story-image img { height: 100%; object-fit: cover; }
.europe-archive { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.europe-archive .archive-card { min-width: 0; }
.article-title-grid h1,
.page-masthead h1,
.about-hero h1,
.download-title h1 { overflow-wrap: break-word; hyphens: none; }
.masthead-grid h1 { font-size: clamp(60px, 7.5vw, 120px); }
.download-title h1 { line-height: 1; font-size: clamp(62px, 11vw, 158px); }
.filter-bar button { min-height: 44px; }
.filter-bar button [data-i18n] { margin: 0; color: inherit; font: inherit; }
.article-aside ol { margin: 18px 0 0; padding-left: 18px; }
.article-aside li { padding: 8px 0; }
.article-aside a:hover { color: var(--rust); }
.article-prose h2 { scroll-margin-top: 125px; }
.article-prose { min-width: 0; hyphens: auto; }
.article-inline-wide img { aspect-ratio: 3 / 2; }
.article-cover-photo picture img { object-position: center; }
.article-next a { min-width: 0; }
.article-next strong { overflow-wrap: anywhere; }
.europe-player { margin: 0 auto; padding: 0 0 90px; }
.europe-player h2 { margin-bottom: 18px; font: 400 clamp(32px, 4vw, 56px)/1.1 var(--display); }
.europe-player > p { max-width: 720px; margin-bottom: 28px; color: #c7cec9; }
.europe-player .video-frame { margin-bottom: 24px; }
.europe-player .text-link { max-width: 100%; }
.media-facts { margin: 20px 0; font-size: 12px; letter-spacing: 0.05em; }
.download-button { max-width: 100%; }
.download-button span { overflow-wrap: anywhere; }
.download-info { min-width: 0; }
.download-title > p { max-width: 740px; }
.europe-language-list { word-spacing: 0.35em; }
.europe-error { min-height: 62vh; }
.europe-error h1 { max-width: 1000px; }
.europe-error .text-link { margin-top: 35px; }
:lang(zh) .hero-copy h1 { font-size: clamp(40px, 4.7vw, 72px); line-height: 1.3; }
:lang(zh) .article-title-grid h1 { line-height: 1.35; }
:focus-visible { outline: 2px solid var(--rust); outline-offset: 5px; }
@media (min-width: 821px) and (max-width: 1100px) {
  .site-header { padding-inline: 24px; gap: 20px; }
  .site-nav { gap: 20px; }
  .site-nav a { font-size: 10px; letter-spacing: 0.04em; }
  .issue-link { display: none; }
}
@media (max-width: 820px) {
  body.nav-open { overflow: hidden; }
  .site-nav:not(.is-open) { visibility: hidden; }
  .europe-home .hero { min-height: 0; }
  .europe-home .hero-visual { aspect-ratio: 1.2; }
  .europe-home .hero-copy { margin-top: 0; padding: 28px 4px 0; }
  .europe-home .hero-copy .eyebrow { color: var(--moss); }
  .europe-home .hero-copy h1 { color: var(--ink); text-shadow: none; }
  .europe-home .hero-lead { margin-top: 0; }
  .europe-stories, .europe-archive { grid-template-columns: 1fr; }
  .europe-home .hero-copy h1 { font-size: clamp(42px, 8vw, 70px); }
  .europe-player { padding-bottom: 55px; }
  .article-aside { display: block; }
  .article-aside-sticky { position: static; }
  .article-aside ol { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
  .article-aside li { font-size: 12px; }
}
@media (max-width: 560px) {
  .brand-copy strong { font-size: 17px; }
  .brand-copy small { display: block; font-size: 7px; letter-spacing: 0.12em; }
  .header-tools { gap: 12px; }
  .language-select { min-width: 94px; }
  .europe-home .hero-copy h1 { font-size: 43px; }
  :lang(zh) .europe-home .hero-copy h1 { font-size: 38px; }
  .article-title-grid h1 { font-size: 45px; }
  .article-aside ol { grid-template-columns: 1fr; }
  .article-next { grid-template-columns: 1fr; }
  .filter-bar { flex-wrap: wrap; }
  .filter-bar button { padding-inline: 12px; }
  .masthead-grid h1 { font-size: 58px; }
  .europe-player .video-meta { gap: 8px; }
}
@media (max-width: 380px) {
  .site-header { padding-inline: 14px; }
  .brand { gap: 8px; }
  .brand-glyph { width: 28px; height: 28px; }
  .brand-copy strong { font-size: 15px; }
  .header-tools { gap: 8px; }
  .language-select { min-width: 88px; }
}
