/*
Theme Name: Prime Life Asia
Author: Prime Life Asia
Description: Native editorial theme ported from the approved phase-3 reference, commit 99e408b.
Version: 1.2.0
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: prime-life-asia
*/
@font-face{font-family:Manrope;src:url('assets/fonts/manrope.woff2') format('woff2');font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:'Noto Sans Thai';src:url('assets/fonts/notosansthai.woff2') format('woff2');font-weight:400 800;font-display:swap}
:root{--font-manrope:Manrope;--font-thai:'Noto Sans Thai'}
:root {
  --color-paper: #FFFFFF;
  --color-ink: #111111;
  --color-muted: #62625F;
  --color-line: #DDDDDA;
  --color-accent: #894C57;
  --color-panel: #F7F7F5;
  --color-deep: #FFFFFF;
  --font-sans: var(--font-manrope), var(--font-thai), sans-serif;
  --font-editorial: var(--font-manrope), var(--font-thai), sans-serif;
  --spacing: 0.25rem;
  --container-page: 84rem;
  --container-reading: 45rem;
  --breakpoint-sm: 40rem;
  --breakpoint-md: 48rem;
  --breakpoint-lg: 80rem;
}
:root {
  --paper: #FFFFFF;
  --ink: #111111;
  --muted: #62625F;
  --line: #DDDDDA;
  --accent: #894C57;
  --panel: #F7F7F5;
  --deep: #FFFFFF;
  --white: #fff;
  --black: #000;
  --error: #A12A27;
  --success: #326338;
  --font-body: var(--font-manrope), var(--font-thai), sans-serif;
  --font-display: var(--font-manrope), var(--font-thai), sans-serif;
  --text-micro: 0.75rem;
  --text-xs: 0.75rem;
  --text-sm: 0.82rem;
  --text-base: 1rem;
  --text-lg: 1.15rem;
  --text-xl: 1.4rem;
  --text-2xl: 1.5rem;
  --text-card: clamp(1.4rem, 2.3vw, 2rem);
  --text-section: clamp(1.75rem, 3.4vw, 2.7rem);
  --text-title: clamp(2.8rem, 6.1vw, 5.8rem);
  --text-hero: clamp(2.4rem, 4.6vw, 4.5rem);
  --text-masthead: clamp(2.3rem, 7.5vw, 7.2rem);
  --text-display: clamp(4rem, 18vw, 14rem);
  --leading-body: 1.75;
  --leading-title: 1.07;
  --leading-card: 1.18;
  --tracking-label: 0.16em;
  --tracking-title: -0.01em;
  --tracking-masthead: -0.02em;
  --s0: 0;
  --s1: 0.25rem;
  --s2: 0.5rem;
  --s3: 0.75rem;
  --s4: 1rem;
  --s5: 1.25rem;
  --s6: 1.5rem;
  --s7: 1.75rem;
  --s8: 2rem;
  --s10: 2.5rem;
  --s12: 3rem;
  --s14: 3.5rem;
  --s16: 4rem;
  --s20: 5rem;
  --s24: 6rem;
  --s28: 7rem;
  --page-width: 84rem;
  --read-width: 45rem;
  --hero-copy-width: 50rem;
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --section-space: clamp(3.5rem, 7vw, 6rem);
  --grid-gap: clamp(1rem, 2vw, 2rem);
  --grid-three: repeat(3, minmax(0, 1fr));
  --grid-four: repeat(4, minmax(0, 1fr));
  --grid-two: repeat(2, minmax(0, 1fr));
  --grid-mosaic: 1.6fr 1fr 1fr;
  --grid-feature: 1.7fr 1fr;
  --ratio-landscape: 16/10;
  --ratio-wide: 2/1;
  --ratio-portrait: 4/5;
  --ratio-square: 1;
  --ratio-hero: 2/1;
  --ratio-banner: 3.8/1;
  --ratio-article: 2.15/1;
  --border-width: 1px;
  --radius: 0;
  --control-size: 2.75rem;
  --hero-min: 36rem;
  --mobile-hero: 38rem;
  --nav-height: 3.5rem;
  --menu-width: 48rem;
  --dropdown-image-width: 18rem;
  --shade-hero:
    linear-gradient(90deg, rgba(4, 8, 5, 0.88), rgba(4, 8, 5, 0.2) 80%),
    linear-gradient(0deg, rgba(4, 8, 5, 0.65), transparent 65%);
  --shade-card: linear-gradient(
    0deg,
    rgba(4, 8, 5, 0.94),
    rgba(4, 8, 5, 0.06) 80%
  );
  --shade-ad: linear-gradient(90deg, rgba(4, 8, 5, 0.9), rgba(4, 8, 5, 0.08));
  --overlay: rgba(0, 0, 0, 0.96);
  --motion-fast: 180ms;
  --motion-slow: 700ms;
  --ease: ease;
  --shadow-menu: 0 1rem 2rem rgba(0, 0, 0, 0.35);
  --z-nav: 30;
  --z-menu: 80;
  --z-dialog: 100;
}

:root {
  --page-end: 6rem;
}
@media (max-width: 79.99rem) {
  :root {
    --page-end: 4rem;
  }
}
@media (max-width: 47.99rem) {
  :root {
    --page-end: 3rem;
  }
}
:root {
  --logo-masthead: clamp(18rem, 72vw, 64rem);
  --logo-compact: 10rem;
  --logo-footer: 15rem;
  --logo-ratio: 8.5;
}

:root {
  --weight-body: 400;
  --weight-heading: 700;
  --weight-meta: 600;
  --tracking-headline: -0.02em;
}
:root { --card-copy-gap: .5rem; --section-heading-gap: 2rem; --nav-text: .875rem; }
:root { --text-directory-card: calc(var(--text-card) * .7); }

:root { --charcoal: #1D1D1D; --on-dark: #FFFFFF; --muted-on-dark: #C9C9C6; --accent-on-dark: #E5AEB9; --line-on-dark: #646460; --scrim-dialog: rgba(0,0,0,.8); --logo-masthead: clamp(16rem,64vw,57rem); --logo-compact: 8.9rem; --logo-footer: 13.4rem; }

:root { --text-mosaic-lead: calc(var(--text-section) * .7); }

:root { --text-grid-card: max(1.125rem, calc(var(--text-card) * .7)); }

:root { --card-gap: 15px; --card-compact-gap: 8px; --card-copy-gap: var(--card-gap); }

:root { --error-on-dark: #F0AAA1; --success-on-dark: #BBD4A9; --shade-card: linear-gradient(0deg, rgba(17,17,17,.94), rgba(17,17,17,.8)); }

:root { --cta-gap: 80px; }
@media(max-width:79.99rem) { :root { --cta-gap:64px; } }
@media(max-width:47.99rem) { :root { --cta-gap:48px; } }

:root { --shade-overlay: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.5) 30%, rgba(0,0,0,.15) 60%, rgba(0,0,0,0) 100%); }

:root { --text-ui-sm: .875rem; --tracking-ui: .06em; }

:root { --pill-radius:9999px; --pill-dark-border:rgba(255,255,255,.35); }

:root { --ratio-card:3/2; --ratio-person:4/5; }

:root { --logo-header-width:240px; --header-row-height:72px; --header-stuck-height:56px; }
@media(max-width:79.99rem) { :root { --logo-header-width:190px; } }
@media(max-width:47.99rem) { :root { --logo-header-width:150px; } }

:root { --lead-panel-radius:8px; --lead-panel-inset:20px; --lead-panel-padding:24px; --text-lead-panel:clamp(1.25rem,1.8vw,1.5rem); }

* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--s20);
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: var(--text-base)/var(--leading-body) var(--font-body);
}
a {
  color: inherit;
  text-decoration: none;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
  color: inherit;
}
button:disabled {
  cursor: wait;
  opacity: 0.6;
}
img {
  max-width: 100%;
  height: auto;
}
h1,
h2,
h3,
h4,
p,
figure {
  margin: 0;
}
h1,
h2,
h3,
h4 {
  font-family: var(--font-display);
  font-weight: 400;
}
h1 {
  font-size: var(--text-title);
  line-height: var(--leading-title);
  letter-spacing: var(--tracking-title);
}
h2 {
  font-size: var(--text-section);
  line-height: var(--leading-title);
}
h3 {
  line-height: var(--leading-card);
}
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: var(--s1);
}
::selection {
  background: var(--accent);
  color: var(--deep);
}
.container {
  max-width: var(--page-width);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.section {
  margin-block: var(--section-space);
}
.eyebrow {
  font: var(--text-ui-sm)/1.5 var(--font-body);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  color: var(--accent);
}
.muted,
.byline {
  color: var(--muted);
}
.byline {
  font-size: var(--text-ui-sm);
  margin-top: var(--s4);
}
.skip-link {
  position: absolute;
  left: var(--s4);
  top: calc(-1 * var(--s20));
  z-index: var(--z-dialog);
  background: var(--accent);
  color: var(--deep);
  padding: var(--s3);
}
.skip-link:focus {
  top: var(--s4);
}
.button {
  display: inline-flex;
  gap: var(--s8);
  align-items: center;
  justify-content: space-between;
  font-size: var(--text-ui-sm);
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
  line-height: 1.4;
  padding: var(--s4) var(--s6);
  border: var(--border-width) solid var(--accent);
  transition: background var(--motion-fast);
}
.button:hover {
  background: var(--ink);
  color: var(--deep);
  border-color: var(--ink);
}
.button--primary {
  background: var(--accent);
  color: var(--deep);
}
.button--secondary {
  background: transparent;
  color: var(--ink);
}
.button--text {
  padding: var(--s2) 0;
  border: 0;
  gap: var(--s5);
  white-space: nowrap;
}
.button--text:hover {
  background: transparent;
  color: var(--accent);
}
.text-link {
  display: inline-flex;
  gap: var(--s8);
  font-size: var(--text-ui-sm);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  border-bottom: var(--border-width) solid currentColor;
  padding-block: var(--s2);
}
.utility {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--text-ui-sm);
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
  padding-block: var(--s4);
  color: var(--muted);
}
.utility > div {
  display: flex;
  align-items: center;
  gap: var(--s6);
}
.utility a:hover {
  color: var(--ink);
}
.masthead {
  text-align: center;
  padding-block: var(--s4) var(--s8);
}
.masthead > a {
  font-family: var(--font-display);
  font-size: var(--text-masthead);
  letter-spacing: var(--tracking-masthead);
  line-height: 1.1;
  white-space: nowrap;
}
.masthead p {
  font-size: var(--text-ui-sm);
  letter-spacing: 0.4em;
  text-transform: uppercase;
  margin-top: var(--s3);
  color: var(--muted);
}
.nav-shell {
  position: sticky;
  top: 0;
  z-index: var(--z-nav);
  background: var(--paper);
  border-block: var(--border-width) solid var(--line);
}
.nav-inner {
  display: flex;
  align-items: center;
  min-height: var(--nav-height);
}
.desktop-nav {
  display: flex;
  width: 100%;
  justify-content: space-between;
}
.nav-label {
  display: flex;
  align-items: center;
  gap: var(--s1);
}
.nav-label > a {
  font-size: var(--text-ui-sm);
  padding-block: var(--s4);
}
.nav-label button {
  border: 0;
  background: none;
  font-size: var(--text-ui-sm);
  padding: var(--s1);
  color: var(--muted);
}
.nav-item:hover > .nav-label > a {
  color: var(--accent);
}
.small-masthead {
  display: none;
  white-space: nowrap;
  font: var(--text-xl) var(--font-display);
  padding-right: var(--s6);
}
.small-masthead span {
  color: var(--accent);
}
.is-sticky .small-masthead {
  display: block;
}
.nav-dropdown {
  position: absolute;
  top: 100%;
  left: var(--gutter);
  right: var(--gutter);
  max-width: var(--page-width);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr var(--dropdown-image-width);
  gap: var(--s10);
  padding: var(--s10);
  background: var(--panel);
  border: var(--border-width) solid var(--line);
  box-shadow: var(--shadow-menu);
}
.dropdown-links {
  display: grid;
  grid-template-columns: var(--grid-three);
  gap: var(--s4);
  margin-top: var(--s6);
  font-size: var(--text-sm);
}
.dropdown-links a:hover {
  color: var(--accent);
}
.dropdown-feature img {
  width: 100%;
  aspect-ratio: var(--ratio-landscape);
  object-fit: cover;
}
.dropdown-feature .eyebrow {
  display: block;
  margin-top: var(--s4);
}
.dropdown-feature h3 {
  font-size: var(--text-xl);
  margin-top: var(--s2);
}
.mobile-nav-bar {
  display: none;
}
.mobile-menu {
  position: fixed;
  inset: 0;
  background: var(--deep);
  z-index: var(--z-menu);
  overflow: auto;
  padding: var(--s6);
}
.mobile-menu-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-display);
}
.mobile-menu button {
  background: none;
  border: 0;
  font-size: var(--text-xl);
  padding: var(--s3);
}
.mobile-menu nav {
  margin-block: var(--s8);
  display: grid;
}
.mobile-menu nav a {
  display: flex;
  justify-content: space-between;
  padding-block: var(--s3);
  border-bottom: var(--border-width) solid var(--line);
  font: var(--text-2xl) var(--font-display);
}
.mobile-menu nav span {
  font-family: var(--font-body);
  color: var(--accent);
}
.mobile-menu-bottom {
  display: flex;
  gap: var(--s5);
  flex-wrap: wrap;
  font-size: var(--text-sm);
}
.hero-slider {
  position: relative;
  aspect-ratio: var(--ratio-hero);
  min-height: var(--hero-min);
  margin-top: var(--s6);
  overflow: hidden;
  background: var(--panel);
}
.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity var(--motion-slow);
  pointer-events: none;
}
.hero-slide.active {
  opacity: 1;
  pointer-events: auto;
}
.hero-slide > img {
  object-fit: cover;
}
.hero-shade {
  position: absolute;
  inset: 0;
  background: var(--shade-hero);
}
.hero-copy {
  position: absolute;
  left: var(--s12);
  bottom: var(--s16);
  max-width: var(--hero-copy-width);
  padding-right: var(--s12);
}
.hero-copy h1 {
  font-size: var(--text-hero);
  margin-block: var(--s4) var(--s6);
}
.hero-intro {
  max-width: var(--read-width);
  font-size: var(--text-sm);
  color: var(--ink);
  margin-bottom: var(--s6);
}
.hero-controls {
  position: absolute;
  bottom: var(--s6);
  right: var(--s8);
  display: flex;
  align-items: center;
  gap: var(--s4);
  font-size: var(--text-sm);
}
.hero-controls > span {
  margin-right: var(--s6);
}
.counter-divider {
  color: var(--muted);
}
.hero-controls button {
  height: var(--control-size);
  width: var(--control-size);
  border: var(--border-width) solid var(--line);
  background: var(--deep);
}
.hero-controls button:hover {
  background: var(--accent);
  color: var(--deep);
}
.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--s6);
  margin-bottom: var(--s8);
}
.section-heading .eyebrow {
  margin-bottom: var(--s3);
}
.card-grid {
  display: grid;
  grid-template-columns: var(--grid-three);
  gap: var(--grid-gap);
  row-gap: var(--s12);
}
.card-grid.four {
  grid-template-columns: var(--grid-four);
}
.card-grid.two {
  grid-template-columns: var(--grid-two);
}
.photo {
  position: relative;
  width: 100%;
  aspect-ratio: var(--ratio-landscape);
  background: var(--panel);
  overflow: hidden;
}
.photo img {
  object-fit: cover;
  transition: transform var(--motion-slow);
}
.card-image-link:hover img {
  transform: scale(1.035);
}
.card-image-link {
  display: block;
  position: relative;
}
.image-label {
  position: absolute;
  top: var(--s3);
  left: var(--s3);
  padding: var(--s1) var(--s3);
  font-size: var(--text-ui-sm);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  background: var(--accent);
  color: var(--deep);
}
.card-copy {
  padding-top: var(--s4);
}
.story-card h3 {
  font-size: var(--text-card);
  margin-top: var(--s3);
  letter-spacing: var(--tracking-title);
}
.story-card h3 a:hover {
  color: var(--accent);
}
.sample-label {
  display: inline-block;
  margin-left: var(--s3);
  color: var(--muted);
  font-size: var(--text-ui-sm);
  letter-spacing: normal;
}
.card-excerpt {
  font-size: var(--text-sm);
  color: var(--muted);
  margin-top: var(--s4);
}
.story-card--portrait .photo {
  aspect-ratio: var(--ratio-portrait);
}
.story-card--portrait h3 {
  font-size: var(--text-xl);
}
.story-card--compact {
  display: grid;
  grid-template-columns: var(--s24) 1fr;
  gap: var(--s5);
  padding-block: var(--s5);
  border-bottom: var(--border-width) solid var(--line);
}
.story-card--compact .photo {
  aspect-ratio: var(--ratio-square);
}
.story-card--compact .card-copy {
  padding: 0;
}
.story-card--compact h3 {
  font-size: var(--text-lg);
  margin-top: var(--s2);
}
.story-card--compact .byline {
  margin-top: var(--s2);
}
.story-card--compact .eyebrow {
  font-size: var(--text-ui-sm);
}
.story-card--overlay {
  position: relative;
}
.story-card--overlay .photo {
  aspect-ratio: var(--ratio-portrait);
}
.story-card--overlay .card-copy {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--s16) var(--s6) var(--s6);
  background: var(--shade-card);
  pointer-events: none;
}
.story-card--overlay .card-copy a {
  pointer-events: auto;
}
.story-card--overlay .eyebrow,
.story-card--overlay .byline {
  color: var(--ink);
}
.mosaic {
  display: grid;
  grid-template-columns: var(--grid-mosaic);
  gap: var(--grid-gap);
  align-items: start;
}
.mosaic .story-card:first-child {
  grid-row: span 2;
}
.mosaic .story-card:first-child .photo {
  aspect-ratio: var(--ratio-portrait);
}
.mosaic .story-card:first-child h3 {
  font-size: var(--text-section);
}
.mosaic .story-card:not(:first-child) h3 {
  font-size: var(--text-xl);
}
.mosaic .story-card:not(:first-child) .byline {
  display: none;
}
.trending {
  background: var(--panel);
  padding-block: var(--s10);
}
.trending-grid {
  display: grid;
  grid-template-columns: var(--grid-four);
  gap: var(--s8);
}
.trending-item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--s4);
}
.trending-item > span {
  font: var(--text-section) var(--font-display);
  color: var(--accent);
}
.trending-item h3 {
  font-size: var(--text-lg);
}
.trending-item .eyebrow {
  margin-bottom: var(--s3);
}
.feature-grid {
  display: grid;
  grid-template-columns: var(--grid-feature);
  gap: var(--s8);
}
.feature-stack .story-card:first-child {
  padding-top: 0;
}
.ad-slot {
  position: relative;
}
.ad-label {
  text-align: center;
  font-size: var(--text-ui-sm);
  margin-bottom: var(--s3);
  color: var(--muted);
}
.ad-slot > a {
  display: block;
  position: relative;
  overflow: hidden;
}
.ad-slot .photo {
  aspect-ratio: var(--ratio-banner);
  min-height: var(--s28);
}
.ad-copy {
  position: absolute;
  inset: 0;
  background: var(--shade-ad);
  padding: var(--s8) var(--s10);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: start;
  gap: var(--s3);
}
.ad-copy h3 {
  font-size: var(--text-section);
  max-width: var(--hero-copy-width);
}
.ad-copy .text-link {
  margin-top: var(--s3);
}
.ad-slot--feature .photo {
  aspect-ratio: var(--ratio-wide);
  min-height: var(--s28);
}
.partner-grid {
  display: grid;
  grid-template-columns: var(--grid-two);
  gap: var(--grid-gap);
}
.partner-grid .ad-copy h3 {
  font-size: var(--text-card);
}
.newsletter-band {
  background: var(--panel);
  border-block: var(--border-width) solid var(--line);
  padding-block: var(--s16);
}
.newsletter-layout {
  display: grid;
  grid-template-columns: var(--grid-two);
  gap: var(--s16);
  align-items: center;
}
.newsletter-layout h2 {
  margin-block: var(--s4);
  font-size: var(--text-title);
}
.newsletter-layout p:not(.eyebrow) {
  color: var(--muted);
  max-width: var(--read-width);
}
.business-band {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--s8);
  padding-block: var(--s12);
  border-top: var(--border-width) solid var(--line);
}
.business-band h2 {
  margin-block: var(--s3);
}
.footer {
  background: var(--deep);
  padding-block: var(--s16) var(--s8);
}
.footer-top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: var(--s10);
}
.footer-logo {
  font: var(--text-section) var(--font-display);
  line-height: var(--leading-title);
}
.footer-about {
  font-size: var(--text-sm);
  color: var(--muted);
  margin-top: var(--s5);
  max-width: var(--read-width);
}
.footer h3 {
  font: var(--text-ui-sm) var(--font-body);
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
  color: var(--accent);
  margin-bottom: var(--s5);
}
.footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer li {
  margin-bottom: var(--s2);
  font-size: var(--text-sm);
}
.footer a:hover {
  color: var(--accent);
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: var(--s5);
  border-top: var(--border-width) solid var(--line);
  margin-top: var(--s12);
  padding-top: var(--s6);
  font-size: var(--text-ui-sm);
  color: var(--muted);
}
.social-links {
  display: flex;
  gap: var(--s4);
  flex-wrap: wrap;
  font-size: var(--text-ui-sm);
}
.page-intro {
  padding-block: var(--s16) var(--s10);
  max-width: var(--hero-copy-width);
}
.page-intro h1 {
  margin-block: var(--s4) var(--s6);
}
.standfirst {
  font-size: var(--text-lg);
  color: var(--muted);
  max-width: var(--read-width);
}
.chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s3);
  margin-block: var(--s6) var(--s10);
}
.chip {
  border: var(--border-width) solid var(--line);
  padding: var(--s2) var(--s4);
  font-size: var(--text-ui-sm);
}
.chip:hover,
.chip[aria-current="page"] {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--deep);
}
.collection-lead {
  display: grid;
  grid-template-columns: var(--grid-feature);
  gap: var(--s10);
  align-items: center;
  margin-bottom: var(--s12);
}
.collection-lead h2 {
  font-size: var(--text-section);
  margin-block: var(--s4);
}
.collection-lead p:not(.eyebrow) {
  color: var(--muted);
  margin-bottom: var(--s6);
}
.pagination {
  display: flex;
  gap: var(--s3);
  align-items: center;
  justify-content: center;
  margin-block: var(--s12);
  flex-wrap: wrap;
}
.pagination a {
  padding: var(--s2) var(--s4);
  border: var(--border-width) solid var(--line);
  font-size: var(--text-sm);
}
.pagination a[aria-current="page"] {
  background: var(--accent);
  color: var(--deep);
}
.empty-state {
  text-align: center;
  padding: var(--s16) var(--s6);
  border: var(--border-width) solid var(--line);
}
.empty-state h2 {
  margin-block: var(--s5);
}
.empty-state p {
  color: var(--muted);
  margin-bottom: var(--s8);
}
.article-head {
  max-width: var(--hero-copy-width);
  text-align: center;
  margin: auto;
  padding-block: var(--s16) var(--s10);
}
.article-head h1 {
  margin-block: var(--s5) var(--s6);
}
.article-head .standfirst {
  margin-inline: auto;
}
.article-meta {
  font-size: var(--text-ui-sm);
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--s4);
  margin-top: var(--s6);
}
.article-hero .photo {
  aspect-ratio: var(--ratio-article);
}
.caption {
  font-size: var(--text-ui-sm);
  color: var(--muted);
  margin-top: var(--s3);
}
.reading-column {
  max-width: var(--read-width);
  margin-inline: auto;
}
.prose {
  font: var(--text-lg)/var(--leading-body) var(--font-display);
  color: var(--ink);
}
.prose > * + * {
  margin-top: var(--s8);
}
.prose h2 {
  margin-top: var(--s12);
  font-size: var(--text-section);
}
.prose h3 {
  font-size: var(--text-card);
}
.prose p:first-child:first-letter {
  font-size: var(--text-section);
}
.prose img {
  display: block;
  width: 100%;
  height: auto;
}
.prose figcaption {
  font: var(--text-ui-sm)/var(--leading-body) var(--font-body);
  color: var(--muted);
  margin-top: var(--s3);
}
.prose blockquote {
  font-size: var(--text-section);
  font-style: italic;
  line-height: 1.35;
  border-block: var(--border-width) solid var(--line);
  padding-block: var(--s8);
  color: var(--accent);
}
.prose a {
  text-decoration: underline;
  text-underline-offset: var(--s1);
}
.share-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s4);
  font-size: var(--text-ui-sm);
  padding-block: var(--s8);
  border-block: var(--border-width) solid var(--line);
  margin-top: var(--s12);
}
.share-links button {
  background: none;
  border: 0;
  padding: 0;
  text-decoration: underline;
}
.detail-layout {
  display: grid;
  grid-template-columns: var(--grid-feature);
  gap: var(--s12);
  align-items: start;
}
.facts {
  background: var(--panel);
  border: var(--border-width) solid var(--line);
  padding: var(--s8);
}
.facts h2 {
  font-size: var(--text-card);
  margin-bottom: var(--s6);
}
.facts dl {
  margin: 0;
}
.facts dt {
  font-size: var(--text-ui-sm);
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
  margin-top: var(--s5);
}
.facts dd {
  margin: var(--s2) 0 0;
  white-space: pre-line;
  font-size: var(--text-sm);
  overflow-wrap: anywhere;
}
.facts .button {
  margin-top: var(--s6);
  width: 100%;
}
.map {
  width: 100%;
  aspect-ratio: var(--ratio-landscape);
  border: 0;
  margin-top: var(--s8);
  filter: grayscale(0.7);
}
.gallery-grid {
  display: grid;
  grid-template-columns: var(--grid-three);
  gap: var(--s4);
  margin-block: var(--s8);
}
.gallery-grid button {
  position: relative;
  background: none;
  border: 0;
  padding: 0;
  overflow: hidden;
}
.gallery-grid img {
  display: block;
  aspect-ratio: var(--ratio-landscape);
  width: 100%;
  object-fit: cover;
}
.gallery-grid span {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  font-size: var(--text-ui-sm);
  padding: var(--s3);
  background: var(--shade-card);
}
.lightbox {
  position: fixed;
  inset: 0;
  z-index: var(--z-dialog);
  background: var(--overlay);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--s4);
  padding: var(--s8);
}
.lightbox figure {
  max-width: var(--page-width);
  max-height: 90vh;
  text-align: center;
}
.lightbox figure img {
  max-height: 80vh;
  width: auto;
  object-fit: contain;
}
.lightbox figcaption {
  font-size: var(--text-ui-sm);
  margin-top: var(--s3);
}
.lightbox button {
  background: var(--panel);
  border: var(--border-width) solid var(--line);
  width: var(--control-size);
  height: var(--control-size);
  flex-shrink: 0;
}
.lightbox-close {
  position: absolute;
  right: var(--s6);
  top: var(--s6);
}
.ranked-entry {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--s6);
  margin-block: var(--s10);
}
.ranked-entry > span {
  font: var(--text-section) var(--font-display);
  color: var(--accent);
}
.ranked-entry p {
  color: var(--muted);
  margin-top: var(--s4);
}
.filter-bar {
  padding: var(--s6);
  background: var(--panel);
  border: var(--border-width) solid var(--line);
  display: grid;
  grid-template-columns: var(--grid-four);
  gap: var(--s4);
}
.filter-bar label {
  font-size: var(--text-ui-sm);
  color: var(--muted);
}
input:not([type="checkbox"]),
select,
textarea {
  width: 100%;
  padding: var(--s3) var(--s4);
  background: var(--paper);
  color: var(--ink);
  border: var(--border-width) solid var(--line);
  border-radius: var(--radius);
  font-size: var(--text-sm);
  min-height: var(--control-size);
}
select {
  color-scheme: light;
}
textarea {
  resize: vertical;
}
label > input,
label > select,
label > textarea {
  margin-top: var(--s2);
}
.filter-bar .button {
  align-self: end;
  min-height: var(--control-size);
}
.results-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s5);
  margin-block: var(--s6) var(--s8);
  font-size: var(--text-sm);
}
.active-filters {
  display: flex;
  gap: var(--s2);
  flex-wrap: wrap;
}
.active-filters a {
  border: var(--border-width) solid var(--line);
  padding: var(--s1) var(--s3);
  font-size: var(--text-ui-sm);
}
.month-group {
  margin-block: var(--s12);
}
.month-group h2 {
  margin-bottom: var(--s6);
}
.landing-hero {
  position: relative;
  min-height: var(--hero-min);
  margin-top: var(--s6);
}
.landing-hero > .photo {
  position: absolute;
  inset: 0;
  height: 100%;
  aspect-ratio: auto;
}
.landing-copy {
  position: relative;
  min-height: var(--hero-min);
  padding: var(--s16) var(--s12);
  background: var(--shade-hero);
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: center;
}
.landing-copy h1 {
  max-width: var(--hero-copy-width);
  margin-block: var(--s5);
}
.landing-copy .standfirst {
  color: var(--ink);
}
.landing-copy .button {
  margin-top: var(--s8);
}
.service-grid {
  display: grid;
  grid-template-columns: var(--grid-three);
  gap: var(--grid-gap);
}
.service-card {
  border: var(--border-width) solid var(--line);
  padding: var(--s8);
  display: flex;
  flex-direction: column;
  align-items: start;
}
.service-card h3 {
  font-size: var(--text-card);
  margin-block: var(--s4);
}
.service-card p {
  font-size: var(--text-sm);
  color: var(--muted);
  margin-bottom: var(--s6);
}
.service-card .button {
  margin-top: auto;
}
.steps {
  display: grid;
  grid-template-columns: var(--grid-three);
  gap: var(--s10);
}
.steps span {
  font: var(--text-section) var(--font-display);
  color: var(--accent);
}
.steps h3 {
  font-size: var(--text-xl);
  margin-block: var(--s4);
}
.steps p {
  font-size: var(--text-sm);
  color: var(--muted);
}
.enquiry-layout {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: var(--s16);
}
.enquiry-intro h2 {
  margin-block: var(--s4) var(--s6);
}
.enquiry-intro p {
  color: var(--muted);
  font-size: var(--text-sm);
  margin-bottom: var(--s5);
}
.enquiry-form {
  display: grid;
  grid-template-columns: var(--grid-two);
  gap: var(--s5);
  align-content: start;
}
.enquiry-form label {
  font-size: var(--text-sm);
}
.enquiry-form .full {
  grid-column: 1/-1;
}
.enquiry-form .consent {
  display: flex;
  align-items: start;
  gap: var(--s3);
  font-size: var(--text-ui-sm);
  color: var(--muted);
}
input[type="checkbox"] {
  accent-color: var(--accent);
  margin-top: var(--s1);
}
.enquiry-form .form-error {
  display: block;
  font-size: var(--text-ui-sm);
  color: var(--error);
  margin-top: var(--s1);
}
.form-message {
  padding: var(--s4);
  border: var(--border-width) solid var(--line);
  color: var(--ink);
  font-size: var(--text-sm);
}
.form-message.success {
  border-color: var(--success);
}
.form-message.error {
  border-color: var(--error);
}
.honeypot {
  display: none;
}
.newsletter-form {
  grid-template-columns: 1fr;
}
.tabs {
  display: flex;
  gap: var(--s2);
  flex-wrap: wrap;
  margin-bottom: var(--s8);
}
.tabs a {
  border: var(--border-width) solid var(--line);
  padding: var(--s3) var(--s5);
  font-size: var(--text-sm);
}
.tabs a[aria-current="page"] {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--deep);
}
.search-form {
  display: flex;
  gap: var(--s4);
  margin-bottom: var(--s8);
}
.search-form input {
  font-size: var(--text-lg);
}
.review-note {
  border-left: 2px solid var(--accent);
  padding: var(--s4) var(--s6);
  background: var(--panel);
  font-size: var(--text-sm);
  margin-block: var(--s8);
}
.not-found {
  text-align: center;
  padding-block: var(--s20);
}
.not-found .big-number {
  font: var(--text-display)/1 var(--font-display);
  color: var(--accent);
}
.not-found h1 {
  margin-block: var(--s6);
}
.not-found .button {
  margin-top: var(--s8);
}
.preview-note {
  padding: var(--s4);
  text-align: center;
  background: var(--accent);
  color: var(--deep);
  font-size: var(--text-sm);
}
.event-date {
  color: var(--accent);
  font-size: var(--text-ui-sm);
  margin-bottom: var(--s3);
}
@media (min-width: 80rem) {
  .prose figure {
    width: calc(100% + var(--s24));
    margin-left: calc(-1 * var(--s12));
  }
}
@media (max-width: 79.99rem) {
  .desktop-nav {
    gap: var(--s3);
  }
  .nav-label > a {
    font-size: var(--text-ui-sm);
  }
  .is-sticky .small-masthead {
    display: none;
  }
  .hero-copy {
    left: var(--s8);
    bottom: var(--s20);
  }
  .mosaic {
    grid-template-columns: var(--grid-two);
  }
  .mosaic .story-card:first-child {
    grid-row: auto;
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: var(--grid-two);
    gap: var(--s8);
    align-items: center;
  }
  .mosaic .story-card:first-child .photo {
    aspect-ratio: var(--ratio-landscape);
  }
  .footer-top {
    grid-template-columns: var(--grid-two);
  }
  .filter-bar {
    grid-template-columns: var(--grid-three);
  }
  .trending-grid {
    grid-template-columns: var(--grid-two);
  }
  .enquiry-layout {
    gap: var(--s8);
  }
}
@media (max-width: 47.99rem) {
  .utility {
    padding-block: var(--s3);
    font-size: var(--text-ui-sm);
  }
  .utility-date,
  .utility > div > a:not(:last-child) {
    display: none;
  }
  .utility > div {
    gap: var(--s3);
  }
  .masthead {
    padding-block: var(--s3) var(--s6);
  }
  .masthead p {
    letter-spacing: var(--tracking-label);
  }
  .desktop-nav,
  .small-masthead {
    display: none !important;
  }
  .mobile-nav-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    font: var(--text-sm) var(--font-display);
  }
  .mobile-nav-bar > div {
    display: flex;
    align-items: center;
    gap: var(--s5);
  }
  .mobile-nav-bar button {
    border: 0;
    background: none;
    font-size: var(--text-xl);
    padding: var(--s2);
  }
  .hero-slider {
    min-height: var(--mobile-hero);
    margin-top: var(--s4);
  }
  .hero-copy {
    left: var(--s6);
    right: var(--s6);
    padding: 0;
    bottom: var(--s24);
  }
  .hero-copy h1 {
    font-size: var(--text-hero);
  }
  .hero-controls {
    left: var(--s6);
    right: auto;
    bottom: var(--s5);
    gap: var(--s3);
  }
  .hero-controls > span {
    margin-right: var(--s3);
  }
  .section-heading {
    align-items: center;
    margin-bottom: var(--s6);
  }
  .section-heading .button {
    font-size: var(--text-ui-sm);
    gap: var(--s2);
  }
  .card-grid,
  .card-grid.four,
  .card-grid.two {
    grid-template-columns: var(--grid-two);
    row-gap: var(--s8);
  }
  .story-card h3 {
    font-size: var(--text-xl);
  }
  .card-grid.four .eyebrow {
    font-size: var(--text-ui-sm);
  }
  .mosaic {
    grid-template-columns: var(--grid-two);
    row-gap: var(--s8);
  }
  .mosaic .story-card:first-child {
    display: block;
  }
  .mosaic .story-card:first-child h3 {
    font-size: var(--text-section);
  }
  .mosaic .story-card:not(:first-child) h3 {
    font-size: var(--text-lg);
  }
  .feature-grid,
  .newsletter-layout,
  .detail-layout,
  .enquiry-layout,
  .collection-lead {
    grid-template-columns: 1fr;
    gap: var(--s8);
  }
  .feature-stack {
    display: grid;
    grid-template-columns: 1fr;
  }
  .trending-grid {
    gap: var(--s6);
  }
  .trending-item {
    gap: var(--s3);
  }
  .trending-item h3 {
    font-size: var(--text-base);
  }
  .partner-grid,
  .service-grid {
    grid-template-columns: 1fr;
  }
  .ad-copy {
    padding: var(--s6);
  }
  .ad-copy h3 {
    font-size: var(--text-card);
  }
  .ad-slot .photo {
    aspect-ratio: var(--ratio-wide);
    min-height: var(--s28);
  }
  .ad-copy .text-link {
    font-size: var(--text-ui-sm);
  }
  .newsletter-band {
    padding-block: var(--s12);
  }
  .newsletter-layout h2 {
    font-size: var(--text-section);
  }
  .business-band {
    align-items: start;
    flex-direction: column;
  }
  .footer-top {
    gap: var(--s8);
  }
  .footer-brand {
    grid-column: 1/-1;
  }
  .footer-bottom {
    flex-direction: column;
  }
  .page-intro,
  .article-head {
    padding-block: var(--s10) var(--s8);
  }
  .article-head {
    text-align: left;
  }
  .article-meta {
    justify-content: flex-start;
  }
  .article-hero .photo {
    aspect-ratio: var(--ratio-landscape);
  }
  .gallery-grid {
    grid-template-columns: var(--grid-two);
  }
  .lightbox {
    padding: var(--s4);
    gap: var(--s2);
  }
  .lightbox button {
    width: var(--s8);
    height: var(--s8);
  }
  .filter-bar {
    grid-template-columns: var(--grid-two);
    padding: var(--s4);
  }
  .results-meta {
    align-items: start;
    flex-direction: column;
  }
  .landing-hero,
  .landing-copy {
    min-height: var(--mobile-hero);
  }
  .landing-copy {
    padding: var(--s10) var(--s6);
  }
  .steps {
    grid-template-columns: 1fr;
    gap: var(--s8);
  }
  .enquiry-form {
    grid-template-columns: 1fr;
  }
  .enquiry-form .full {
    grid-column: auto;
  }
  .search-form {
    gap: var(--s2);
  }
  .search-form .button {
    padding-inline: var(--s4);
  }
  .caption {
    font-size: var(--text-ui-sm);
  }
  .tabs a {
    padding: var(--s2) var(--s3);
  }
  .share-links {
    gap: var(--s3);
  }
  .share-links > .eyebrow {
    width: 100%;
  }
  .article-head h1 {
    font-size: var(--text-title);
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
/* Responsive QA corrections: constrain the carousel's aspect-ratio sizing. */
.hero-slider {
  width: 100%;
}
.card-copy,
.collection-lead > div,
.detail-layout > div,
.enquiry-layout > div {
  min-width: 0;
}
@media (min-width: 80rem) {
  .detail-layout .prose figure {
    width: 100%;
    margin-left: 0;
  }
}

/* The masthead uses the same self-hosted family as all editorial type. */
.masthead,
.mini-logo,
.footer-logo {
  font-weight: 700;
}
/* Original compact scale, with a shared 12px floor in tokens.css. */
.small-masthead,
.mobile-nav-bar > a {
  font-weight: 700;
}
@media (max-width: 79.99rem) {
  .desktop-nav,
  .small-masthead {
    display: none !important;
  }
  .mobile-nav-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
  }
  .mobile-nav-bar > div {
    display: flex;
    align-items: center;
    gap: var(--s4);
  }
  .mobile-nav-bar button {
    background: none;
    border: 0;
    min-width: var(--control-size);
    min-height: var(--control-size);
  }
}
@media (max-width: 47.99rem) {
  .section-heading {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: var(--s4);
  }
  .button {
    max-width: 100%;
    gap: var(--s4);
  }
  .masthead > a {
    font-size: clamp(1.5rem, 7vw, 3.5rem);
  }
}
/* One card system for homepage modules, collections and related content. */
.card-grid,
.feature-grid,
.partner-grid,
.collection-lead {
  gap: var(--grid-gap);
}
.story-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.card-copy {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.card-copy .eyebrow {
  min-height: 0;
  line-height: 1.4;
}
.story-card h3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  min-height: 0;
}
.card-copy .byline {
  margin-top: 0;
  padding-top: 0;
}
.card-excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.card-grid > div {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.card-grid > div > .story-card {
  flex: 1;
}
.feature-grid {
  align-items: stretch;
}
.feature-stack {
  display: grid;
  grid-template-rows: repeat(4, minmax(0, 1fr));
  gap: var(--grid-gap);
}
.feature-stack .story-card--compact {
  display: grid;
  grid-template-columns: minmax(6rem, 30%) minmax(0, 1fr);
  padding: 0 0 var(--s4);
  gap: var(--s4);
}
.feature-stack .card-image-link,
.feature-stack .photo {
  height: 100%;
}
.feature-stack .photo {
  aspect-ratio: auto;
  min-height: 8rem;
}
.feature-stack .card-copy .eyebrow {
  min-height: 0;
}
.feature-stack .card-copy .byline {
  padding-top: var(--s2);
}
.feature-grid > .story-card > .card-image-link {
  flex: 1;
}
.feature-grid > .story-card > .card-image-link .photo {
  height: 100%;
  aspect-ratio: auto;
  min-height: 20rem;
}
.feature-grid > .story-card > .card-copy {
  flex: 0;
}
.mosaic {
  align-items: stretch;
  grid-template-rows: repeat(2, minmax(22rem, 1fr));
}
.mosaic .story-card,
.mosaic .story-card:first-child {
  display: flex;
  position: relative;
}
.mosaic .card-image-link,
.mosaic .photo,
.mosaic .story-card:first-child .photo {
  height: 100%;
  flex: 1;
  aspect-ratio: auto;
}
.mosaic .card-copy {
  position: absolute;
  inset: auto 0 0;
  padding: var(--s16) var(--s5) var(--s5);
  background: var(--shade-card);
  pointer-events: none;
}
.mosaic .card-copy a {
  pointer-events: auto;
}
.mosaic .card-copy .eyebrow {
  min-height: 0;
}
.mosaic .byline,
.mosaic .story-card:not(:first-child) .byline {
  display: block;
  color: var(--ink);
}
.mosaic .card-excerpt {
  display: none;
}
.mosaic h3 {
  min-height: 0;
}
.collection-lead h2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
@media (max-width: 79.99rem) {
  .mosaic {
    grid-template-rows: auto;
    grid-auto-rows: minmax(24rem, auto);
  }
  .mosaic .story-card:first-child {
    min-height: 26rem;
  }
}
@media (max-width: 47.99rem) {
  .card-grid,
  .card-grid.four,
  .card-grid.two {
    grid-template-columns: 1fr;
  }
  .card-grid .story-card h3 {
    min-height: 0;
  }
  .mosaic {
    grid-template-columns: 1fr;
    grid-auto-rows: minmax(25rem, auto);
  }
  .mosaic .story-card:first-child {
    grid-column: auto;
  }
  .feature-stack {
    grid-template-rows: none;
    grid-auto-rows: 1fr;
  }
  .feature-grid > .story-card > .card-image-link .photo {
    aspect-ratio: var(--ratio-landscape);
    min-height: 0;
  }
  .feature-stack .story-card h3 {
    font-size: var(--text-base);
    min-height: 0;
  }
  .collection-lead {
    gap: var(--grid-gap);
  }
}
.icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--control-size);
  min-height: var(--control-size);
  padding: var(--s2);
  border: 0;
  background: transparent;
  color: inherit;
}
.search-dialog {
  position: fixed;
  inset: 0;
  margin: auto;
  padding: 0;
  width: min(54rem, calc(100% - var(--gutter) * 2));
  max-height: 88dvh;
  color: var(--ink);
  background: transparent;
  border: 0;
  overflow: auto;
}
.search-dialog::backdrop {
  background: var(--scrim-dialog);
  backdrop-filter: blur(5px);
}
.search-panel {
  background: var(--paper);
  padding: var(--s8);
  border: var(--border-width) solid var(--line);
}
.search-heading {
  display: flex;
  justify-content: space-between;
  gap: var(--s4);
  align-items: flex-start;
  margin-bottom: var(--s8);
}
.search-heading h2 {
  font-size: var(--text-section);
}
.search-field {
  display: flex;
  gap: var(--s3);
  margin-block: var(--s3) var(--s4);
}
.search-field input {
  min-width: 0;
  flex: 1;
  padding: var(--s4);
  background: var(--panel);
  color: var(--ink);
  border: var(--border-width) solid var(--line);
}
.search-groups {
  display: grid;
  gap: var(--s8);
  margin-block: var(--s8);
}
.search-groups h3,
.search-suggestions h3 {
  font-size: var(--text-xl);
  margin-bottom: var(--s3);
}
.search-groups ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.search-groups a {
  display: flex;
  justify-content: space-between;
  gap: var(--s4);
  padding-block: var(--s4);
  border-bottom: var(--border-width) solid var(--line);
}
.search-groups a:hover,
.search-groups a:focus-visible {
  color: var(--accent);
}
.search-suggestions {
  margin-top: var(--s8);
}
.search-suggestions .chip {
  background: var(--panel);
}
@media (max-width: 79.99rem) {
  .desktop-search {
    display: none;
  }
}
@media (max-width: 47.99rem) {
  .search-dialog {
    width: 100%;
    max-width: 100%;
    height: 100dvh;
    max-height: 100dvh;
  }
  .search-panel {
    min-height: 100%;
    padding: var(--s5);
  }
  .search-field {
    flex-direction: column;
  }
}
.utility {
  flex-wrap: wrap;
  gap: var(--s3);
  letter-spacing: normal;
  text-transform: none;
}
.social-links,
.utility > .social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}
.social-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--control-size);
  height: var(--control-size);
}
.utility > div:last-child {
  margin-left: auto;
  gap: var(--s5);
}
.utility > div > a:not(:last-child) {
  display: inline-flex;
}
@media (max-width: 47.99rem) {
  .utility {
    justify-content: center;
  }
  .utility > div:last-child {
    margin-left: 0;
    width: 100%;
    justify-content: space-between;
    gap: var(--s2);
  }
}
main#content {
  display: flow-root;
  padding-bottom: var(--page-end);
}
main#content > :last-child,
main#content > :last-child > :last-child {
  margin-bottom: 0;
}
.footer-brand {
  min-width: 0;
}
.footer-logo {
  display: inline-block;
  white-space: nowrap;
  max-width: 100%;
  font-weight: 700;
  font-size: clamp(1.25rem, 2.1vw, 1.75rem);
  letter-spacing: var(--tracking-title);
}
/* Clip only the supplied PNG's transparent outer padding, preserving its pixels. */
.brand-logo {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: var(--logo-compact);
  max-width: 100%;
  aspect-ratio: var(--logo-ratio);
  overflow: hidden;
}
.brand-logo img {
  position: absolute;
  inset: 50% 0 auto;
  width: 100%;
  height: auto;
  transform: translateY(-50%);
}
.brand-logo--masthead {
  width: var(--logo-masthead);
}
.brand-logo--footer {
  width: var(--logo-footer);
}
.masthead > a {
  display: block;
  line-height: 0;
  font-size: 0;
}
.small-masthead {
  flex-shrink: 0;
}
.mobile-nav-bar > a,
.mobile-menu-top > a {
  min-width: 0;
}
@media (max-width: 47.99rem) {
  .brand-logo--masthead {
    width: 100%;
  }
}

@media (max-width: 47.99rem) {
  input:not([type="checkbox"]),
  textarea,
  select,
  .search-field input,
  .filter-bar input,
  .filter-bar select,
  .field input,
  .field textarea,
  .field select,
  .search-form input {
    font-size: var(--text-base);
  }
}
body {
  font-weight: var(--weight-body);
}
h1,
h2,
h3,
h4,
.footer h3 {
  font-weight: var(--weight-heading);
  letter-spacing: var(--tracking-title);
}
h1,
.hero-copy h1,
.article-head h1 {
  letter-spacing: var(--tracking-headline);
}
.eyebrow,
.byline,
.article-meta,
.caption,
figcaption,
.prose figcaption,
.sample-label,
.image-label,
.chip,
.event-date,
.results-meta,
.hero-controls > span {
  font-weight: var(--weight-meta);
}
/* Content flows naturally; equal-height modules stretch their images, not text gaps. */
.card-copy, .story-card--compact .card-copy { flex: 0; gap: var(--card-copy-gap); }
.story-card h3, .card-copy .eyebrow, .feature-stack .card-copy .eyebrow { min-height: 0; height: auto; }
.story-card .card-copy > *, .story-card--compact .card-copy > *, .feature-stack .card-copy .byline { margin: 0; padding-top: 0; }
.story-card { justify-content: flex-start; }
.section-heading { margin-bottom: var(--section-heading-gap); }
.card-grid { align-items: stretch; }
.feature-stack { grid-template-rows: repeat(4, auto); align-content: stretch; }
.feature-stack .story-card { align-items: start; }
.nav-label, .mobile-menu .nav-label { display: inline-flex; align-items: center; }
.nav-label > a, .dropdown-links a, .mobile-menu nav a { font-size: var(--nav-text); font-weight: 500; }
.nav-label button { display: inline-flex; align-items: center; justify-content: center; }
.nav-chevron { transition: transform var(--motion-fast); flex-shrink: 0; }
[aria-expanded="true"] > .nav-chevron { transform: rotate(180deg); }
.mobile-menu .nav-label { display: flex; justify-content: space-between; }
.mobile-menu .nav-label > a { flex: 1; }
.mobile-subsections { padding-left: var(--s5); }
.ad-slider { position: relative; margin-block: var(--section-heading-gap); }
.ad-slide { position: relative; display: block; min-height: 22rem; width: 100%; aspect-ratio: var(--ratio-banner); overflow: hidden; }
.ad-slide > img { object-fit: cover; }
.ad-slide-copy { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--card-copy-gap); padding: var(--s8) var(--s8) var(--s20); background: var(--shade-ad); }
.ad-slide-copy h3 { font-size: var(--text-section); max-width: 28ch; }
.ad-sponsor-tag { position: absolute; top: var(--s3); right: var(--s3); padding: var(--s2); background: var(--paper); font-size: var(--text-ui-sm); font-weight: var(--weight-meta); }
.ad-slider-controls { position: absolute; bottom: var(--s3); right: var(--s3); display: flex; align-items: center; background: var(--paper); }
.ad-slider-controls button { border: 0; background: transparent; min-width: var(--control-size); height: var(--control-size); }
.ad-dots { display: flex; flex-wrap: wrap; }
.ad-dots span { display: block; width: .5rem; height: .5rem; border: 1px solid var(--ink); border-radius: 50%; margin: auto; }
.ad-dots [aria-current="true"] span { background: var(--accent); }
@media(max-width:47.99rem) { .ad-slide { aspect-ratio: var(--ratio-portrait); } .ad-slide-copy { padding-inline: var(--s5); } }
.feature-grid > .story-card .card-excerpt { -webkit-line-clamp: 4; margin: 0; }
.feature-grid > .story-card .card-copy { row-gap: var(--card-copy-gap); }
.feature-grid > .story-card .card-copy h3 + .card-excerpt { margin-top: 0; }
.story-card--overlay h3, .story-card:has(.image-label) h3 { font-size: var(--text-directory-card); -webkit-line-clamp: 2; min-height: 0; }
.footer-newsletter { padding-bottom: var(--section-space); margin-bottom: var(--section-space); border-bottom: var(--border-width) solid var(--line); }
.footer-newsletter h2 { font-size: var(--text-section); }
.business-band.container { display: grid; grid-template-columns: var(--grid-two); gap: var(--grid-gap); padding-block: var(--section-space); margin-block: 0; }
.business-actions { display: flex; flex-wrap: wrap; gap: var(--s3); margin-top: var(--s5); }
.business-photos { display: grid; grid-template-columns: var(--grid-three); gap: var(--s3); }
.business-photos .photo { aspect-ratio: var(--ratio-square); }
@media(max-width:47.99rem) { .business-band.container { grid-template-columns: 1fr; } .business-actions { flex-wrap: nowrap; } .business-actions .button { flex: 1; padding: var(--s3); gap: var(--s2); } }

/* Light surfaces, scoped dark bands, and readable photograph overlays. */
.trending, .directory-highlights, .footer { --paper: var(--charcoal); --panel: var(--charcoal); --ink: var(--on-dark); --muted: var(--muted-on-dark); --accent: var(--accent-on-dark); --line: var(--line-on-dark); background: var(--charcoal); color: var(--on-dark); }
.directory-highlights { padding: var(--section-space) var(--gutter); }
.hero-slider, .mosaic .card-copy, .story-card--overlay .card-copy, .ad-slide-copy, .ad-copy { --ink: var(--on-dark); --muted: var(--on-dark); --accent: var(--accent-on-dark); color: var(--on-dark); }
.hero-intro { color: var(--on-dark); }
.hero-controls { color: var(--color-ink); }
.button--primary, .button:hover { background: var(--color-ink); color: var(--on-dark); border-color: var(--color-ink); }
.button--secondary { border-color: currentColor; }
.button--text:hover { background: transparent; color: var(--accent); }
.mobile-menu { background: var(--color-paper); }
.image-label { background: var(--color-paper); color: var(--color-ink); }
.ad-sponsor-tag, .ad-slider-controls { background: var(--color-paper); color: var(--color-ink); --ink: var(--color-ink); --accent: var(--color-accent); }
input, textarea, select { background: var(--color-panel); color: var(--color-ink); border-color: var(--color-line); }
.brand-logo { aspect-ratio: 1920/193; overflow: visible; }
.brand-logo img { position: static; display: block; transform: none; width: 100%; height: auto; }
@media (max-width:47.99rem) { .brand-logo--masthead { width: 89%; } }

.mosaic .story-card:first-child h3 { font-size: var(--text-mosaic-lead); }

.card-grid .story-card--standard:not(.story-card--pla_listing) h3, .card-grid .story-card--portrait h3 { font-size: var(--text-grid-card); }

.story-card:not(.story-card--compact) { gap: var(--card-gap); }
.story-card .card-copy { padding-top: 0; gap: var(--card-gap); }
.story-card--compact .card-copy { gap: var(--card-compact-gap); }
.collection-lead > div { display: flex; flex-direction: column; gap: var(--card-gap); }
.collection-lead > div > * { margin: 0; }

.partner-feature, .business-band { background: var(--panel); }
.partner-feature { padding: var(--gutter); }
.partner-feature-grid { display: grid; grid-template-columns: var(--grid-two); gap: var(--grid-gap); align-items: stretch; }
.partner-feature-grid > .photo { aspect-ratio: var(--ratio-landscape); height: 100%; min-height: 18rem; }
.partner-feature-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: var(--card-gap); }
.partner-feature-copy h3 { font-size: var(--text-section); }
.partner-feature-copy p { color: var(--muted); }
@media(max-width:47.99rem) { .partner-feature-grid { grid-template-columns: 1fr; } }

.meta-slot { font-size: var(--text-ui-sm); font-weight: var(--weight-meta); }
.eyebrow .meta-slot { display: inline-block; margin-left: var(--s3); }
.search-results .meta-slot { display: block; color: var(--muted); }

.footer-newsletter .newsletter-layout { grid-template-columns: minmax(26rem, 1.2fr) minmax(0, 1fr); gap: var(--grid-gap); }
@media(max-width:63.99rem) { .footer-newsletter .newsletter-layout { grid-template-columns: 1fr; } }
@media(max-width:47.99rem) { .newsletter-break { display: none; } }

.footer-brand, .footer-logo { text-align: left; padding-left: 0; margin-left: 0; }
.footer-logo { display: block; line-height: 0; }
.footer-logo .brand-logo { display: block; margin: 0; }

/* Keep controls and overlay copy readable in their own surface context. */
.landing-copy, .lightbox, .gallery-grid figcaption { --ink: var(--on-dark); --muted: var(--on-dark); --accent: var(--accent-on-dark); color: var(--on-dark); }
.hero-controls > span { color: var(--on-dark); }
.hero-controls button { color: var(--color-ink); }
.hero-controls button:hover { background: var(--color-accent); color: var(--on-dark); }
input:not([type="checkbox"]), textarea, select { background: var(--color-panel); color: var(--color-ink); border-color: var(--color-line); }
input::placeholder, textarea::placeholder { color: var(--color-muted); opacity: 1; }
.chip, .empty-state { background: var(--panel); }
.chip:hover, .chip[aria-current="page"] { background: var(--color-accent); color: var(--on-dark); }
.trending, .directory-highlights, .footer { --error: var(--error-on-dark); --success: var(--success-on-dark); }
.search-groups .meta-slot { flex-shrink: 0; align-self: center; color: var(--muted); }
.footer-newsletter .newsletter-layout { grid-template-columns: minmax(28rem, 1.2fr) minmax(0, 1fr); }
@media(max-width:63.99rem) { .footer-newsletter .newsletter-layout { grid-template-columns: 1fr; } }

/* The final shared CTA owns the page-to-footer spacing. */
main#content { padding-bottom: 0; }
.business-band.container { width: 100%; max-width: var(--page-width); margin: var(--section-space) auto var(--cta-gap); padding-inline: var(--gutter); }

.card-copy .eyebrow { display:flex; flex-wrap:wrap; justify-content:flex-start; column-gap:8px; row-gap:2px; align-items:baseline; }
.card-copy .eyebrow .meta-slot { margin:0; padding:0; }
.story-card--pla_person .eyebrow .meta-slot { flex-basis:100%; }
.card-grid .story-card:not(.story-card--overlay) { display:grid; grid-template-rows:auto auto 1fr auto; gap:var(--card-gap); align-content:start; }
.card-grid .story-card:not(.story-card--overlay) .card-copy { display:contents; }
.card-grid .story-card:not(.story-card--overlay) .card-image-link { grid-row:1; }
.card-grid .story-card:not(.story-card--overlay) .eyebrow { grid-row:2; }
.card-grid .story-card:not(.story-card--overlay) h3 { grid-row:3; align-self:start; }
.card-grid .story-card:not(.story-card--overlay) .byline { grid-row:4; }
@supports(grid-template-rows:subgrid) {
 .card-grid { row-gap:var(--card-gap); }
 .card-grid > .story-card:not(.story-card--overlay) { grid-row:span 4; grid-template-rows:subgrid; }
 .card-grid > div:has(> .story-card) { grid-row:span 5; display:grid; grid-template-rows:subgrid; gap:var(--card-gap); }
 .card-grid > div > .story-card:not(.story-card--overlay) { grid-row:span 4; grid-template-rows:subgrid; }
}

.mosaic .story-card, .story-card--overlay, .hero-slide, .ad-slide, .landing-hero { isolation:isolate; overflow:hidden; }
.story-card--overlay { min-height:24rem; aspect-ratio:var(--ratio-portrait); }
.mosaic .card-image-link, .story-card--overlay .card-image-link { position:absolute; inset:0; }
.mosaic .photo, .story-card--overlay .photo { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; }
.mosaic img, .story-card--overlay img, .hero-slide > img, .ad-slide > img { object-fit:cover; }
.mosaic .story-card::after, .story-card--overlay::after, .ad-slide::after, .landing-hero::after { content:""; position:absolute; inset:0; background:var(--shade-overlay); pointer-events:none; z-index:1; }
.hero-shade { background:var(--shade-overlay); }
.mosaic .card-copy, .story-card--overlay .card-copy, .ad-slide-copy, .landing-copy { background:transparent; z-index:2; }
.ad-slide-copy, .landing-copy { justify-content:flex-end; }
.mosaic .card-copy, .story-card--overlay .card-copy { padding:var(--s5); }

/* Editorial metadata retains its compact type; controls use the UI scale. */
.story-card .eyebrow, .byline, .article-meta, .article-meta *, .meta-slot, .hero-controls > span, .counter-divider, .ad-sponsor-tag, .tags, .tags a, .hero-copy > .eyebrow, .article-head > .eyebrow, .collection-lead .eyebrow { font-size:var(--text-xs); }
.button, .text-link, .chip, .pagination a, .utility, .utility a, .enquiry-form label, .enquiry-form .consent, .form-error, .caption, .footer li, .footer-bottom, .filter-bar label, .breadcrumbs, .image-label { font-size:var(--text-ui-sm); }
.button, .text-link, .chip, .section-heading .eyebrow, .image-label, .utility { letter-spacing:var(--tracking-ui); }
.button, .text-link, .chip { white-space:nowrap; }

.button--primary, .button--primary span, .button--primary svg { color:var(--white); }
.landing-copy .button--primary, .hero-copy .button--primary, .ad-slide-copy .button--primary { background:var(--white); border-color:var(--white); color:var(--color-ink); }
.landing-copy .button--primary:hover, .hero-copy .button--primary:hover, .ad-slide-copy .button--primary:hover { background:var(--color-panel); border-color:var(--color-panel); color:var(--color-ink); }
.button span, .button svg, .text-link span, .text-link svg { color:inherit; }
.button svg, .text-link svg { stroke:currentColor; }

.service-icon { color:var(--color-accent); display:block; margin-block:var(--s4); }
@media(min-width:80rem) {
 .service-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
 .service-grid > .service-card { grid-column:span 2; }
 .service-grid > .service-card:nth-last-child(2):nth-child(3n+1), .service-grid > .service-card:last-child:nth-child(3n+2) { grid-column:span 3; }
}

.section-heading { align-items:center; }
.view-all { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; gap:8px; padding:10px 20px; min-height:44px; border:1px solid var(--color-line); border-radius:var(--pill-radius); background:var(--white); color:var(--color-ink); font-size:var(--text-ui-sm); font-weight:700; text-transform:uppercase; letter-spacing:var(--tracking-ui); line-height:1.4; white-space:nowrap; }
.view-all svg { stroke:currentColor; flex-shrink:0; }
.view-all:hover { border-color:var(--color-ink); background:var(--color-panel); }
.view-all:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.trending .view-all, .directory-highlights .view-all, .footer .view-all { background:transparent; border-color:var(--pill-dark-border); color:var(--white); }
.trending .view-all:hover, .directory-highlights .view-all:hover, .footer .view-all:hover { border-color:var(--white); }
@media(max-width:39.99rem) { .section-heading { flex-wrap:wrap; } .business-actions { flex-wrap:wrap; } .business-actions .button { flex:1 1 100%; } }

.ad-sponsor-tag { z-index:3; }
.button svg { flex-shrink:0; }

/* Card tracks own image geometry, independently of intrinsic content sizing. */
.story-card { min-width:0; width:100%; }
.story-card .card-image-link { display:block; width:100%; min-width:0; max-width:none; overflow:hidden; justify-self:stretch; align-self:stretch; }
.story-card .photo { position:relative; width:100%; max-width:none; min-width:0; overflow:hidden; }
.story-card img { object-fit:cover; }
.story-card--pla_person img { object-position:center top; }
.story-card:not(.story-card--overlay) .photo { aspect-ratio:var(--ratio-card); height:auto; min-height:0; }
.story-card--pla_person:not(.story-card--overlay) .photo { aspect-ratio:var(--ratio-person); }
.card-grid .story-card .card-image-link { height:auto; aspect-ratio:var(--ratio-card); }
.card-grid .story-card--pla_person .card-image-link { aspect-ratio:var(--ratio-person); }
.card-grid .story-card .photo { height:100%; }
.mosaic .story-card .photo, .story-card--overlay .photo { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; }
.feature-grid > .story-card > .card-image-link .photo { height:100%; aspect-ratio:auto; }

.header-space { height:128px; }
.editorial-header { background:var(--color-paper); color:var(--color-ink); z-index:var(--z-nav); position:relative; }
.editorial-header.is-stuck { position:fixed; inset:0 0 auto; border-bottom:1px solid var(--color-line); }
.header-row { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; min-height:var(--header-row-height); gap:var(--s4); }
.header-menu { display:inline-flex; align-items:center; justify-self:start; gap:8px; min-height:44px; border:0; padding:0; background:transparent; font-size:var(--text-ui-sm); font-weight:600; text-transform:uppercase; }
.header-logo { display:block; line-height:0; }
.header-logo .brand-logo { width:var(--logo-header-width); transition:width var(--motion-fast); }
.header-actions { display:flex; justify-self:end; align-items:center; gap:var(--s5); white-space:nowrap; font-size:var(--text-ui-sm); font-weight:600; }
.header-actions .header-business { color:var(--color-accent); }
.header-nav { border-block:1px solid var(--color-line); }
.header-nav .desktop-nav { display:flex; justify-content:center; gap:var(--s4); min-height:56px; }
.header-nav .nav-item { position:static; }
.header-nav .nav-dropdown { top:100%; left:50%; transform:translateX(-50%); max-width:calc(100vw - 2 * var(--gutter)); }
.is-stuck .header-row { min-height:var(--header-stuck-height); }
.is-stuck .header-logo .brand-logo { width:calc(var(--logo-header-width) * .6); }
.is-stuck .header-nav { display:none; }
.mobile-menu { overflow-y:auto; }
.mobile-menu .social-links { margin-top:var(--s8); }
@media(max-width:1099px) { .header-space { height:var(--header-row-height); } .header-nav { display:none; } }
@media(max-width:767px) { .header-actions > a { display:none; } .header-row { gap:8px; } }
@media(prefers-reduced-motion:reduce) { .header-logo .brand-logo { transition:none; } }

.feature-lead { position:relative; isolation:isolate; display:grid; min-width:0; overflow:hidden; }
.feature-lead > .photo { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; z-index:-1; }
.feature-lead img { object-fit:cover; transition:transform var(--motion-slow); }
.feature-lead:hover img { transform:scale(1.03); }
.lead-card-copy { margin:var(--lead-panel-inset); width:clamp(280px,46%,440px); max-width:calc(100% - 2 * var(--lead-panel-inset)); padding:var(--lead-panel-padding); border-radius:var(--lead-panel-radius); background:var(--white); color:var(--color-ink); display:flex; flex-direction:column; justify-content:space-between; gap:var(--card-gap); }
.lead-card-top { display:flex; flex-direction:column; gap:var(--card-gap); }
.lead-tags { display:flex; flex-wrap:wrap; gap:8px; }
.lead-tags a { position:relative; z-index:2; border:1px solid var(--color-line); padding:6px 12px; border-radius:var(--pill-radius); font-size:var(--text-xs); font-weight:var(--weight-meta); text-transform:uppercase; }
.lead-card-top h3 { font-size:var(--text-lead-panel); font-weight:700; text-transform:uppercase; letter-spacing:.01em; line-height:1.2; }
.lead-card-top h3 a { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5; overflow:hidden; }
.lead-card-top h3 a::after { content:""; position:absolute; inset:0; z-index:1; }
.lead-card-top time, .lead-author { font-size:var(--text-xs); font-weight:var(--weight-meta); text-transform:uppercase; }
.lead-card-top time { color:var(--color-muted); }
.lead-author { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.lead-author .meta-slot { text-decoration:underline; }
.author-dot { width:8px; height:8px; background:currentColor; border-radius:50%; }
@media(max-width:767px) { .feature-lead { display:block; } .feature-lead > .photo { position:relative; z-index:0; height:auto; aspect-ratio:var(--ratio-card); } .lead-card-copy { width:100%; max-width:none; margin:0; gap:var(--s8); } }
@media(prefers-reduced-motion:reduce) { .feature-lead img { transition:none; } .feature-lead:hover img { transform:none; } }

@media(min-width:768px) and (max-width:1099px) { .header-actions { display:grid; grid-template-columns:auto 44px; column-gap:12px; row-gap:0; } .header-actions .icon-button { grid-column:2; grid-row:1 / 3; } }

/* WordPress markup equivalents for Next Image and native controls. */
.photo>img,.hero-slide>img,.ad-slide>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo{position:relative}.brand-logo img{width:100%;height:auto}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}[hidden]{display:none!important}.alignwide{max-width:var(--page-width)}.alignfull{width:100%}.wp-caption img{height:auto}.admin-bar .editorial-header.is-stuck{top:32px}.editorial-header .desktop-nav{list-style:none;margin:0;padding:0}.menu-column ul{list-style:none;padding:0}.story-card img{object-fit:cover}.hero-controls,.ad-slider-controls{z-index:5}.slider-dots{display:flex;gap:8px}.slider-dots button{min-width:24px}.slider-dots button[aria-current=true]{background:var(--accent);color:var(--paper)}.form-result{grid-column:1/-1}.search-dialog{padding:0}.lead-card-top h3 a:focus-visible::after{outline:2px solid var(--accent);outline-offset:-4px}.social-links svg{width:22px;height:22px}.prose a{overflow-wrap:anywhere}

.header-nav .nav-dropdown{list-style:none;padding:var(--s6);display:grid;gap:var(--s3);grid-template-columns:var(--grid-two)}.mobile-nav-list,.mobile-subsections{list-style:none;margin:0;padding:0}.mobile-subsections{padding-left:var(--s5)}.mobile-menu .nav-label{display:flex;justify-content:space-between}.mobile-menu .nav-label>a{flex:1}.menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:44px}.nav-dropdown .nav-item{position:relative}.nav-dropdown .nav-dropdown{position:static;transform:none;width:auto}

dialog.mobile-menu{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;color:var(--ink)}dialog::backdrop{background:var(--scrim-dialog)}.footer-top{grid-template-columns:1.5fr repeat(4,1fr)}@media(max-width:79.99rem){.footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:47.99rem){.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}

.hero-slide>.photo,.ad-slide>.photo{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}.hero-slide>.photo img,.ad-slide>.photo img{width:100%;height:100%;object-fit:cover}.story-card--people img,.story-card--pla_person img{object-position:center top}.article-hero>.photo{aspect-ratio:var(--ratio-article)}.photo:empty{background:var(--panel)}.footer .form-result{color:var(--on-dark)}

.prose blockquote,.prose .wp-block-pullquote{border-left:3px solid var(--accent);padding:var(--s6);margin:var(--s8) 0;font-size:var(--text-xl);font-weight:700;line-height:1.4}.prose blockquote cite{display:block;font-size:var(--text-xs);font-weight:600;color:var(--muted)}.article-head--sponsored{border-top:3px solid var(--accent)}dialog.lightbox{max-width:none;max-height:none;width:100%;height:100dvh;margin:0;border:0}.gallery-trigger{border:0;padding:0;background:none}.gallery-trigger img{width:100%;aspect-ratio:var(--ratio-card);object-fit:cover}.map{width:100%;min-height:22rem;border:0;margin-block:var(--s8)}

.directory-layout{display:grid;grid-template-columns:minmax(14rem,22%) minmax(0,1fr);gap:var(--grid-gap)}.directory-filter-fields{display:grid;gap:var(--s4);padding:var(--s5);background:var(--panel)}.directory-filter-fields label{font-size:var(--text-ui-sm)}.directory-mobile-toggle{display:none}.filter-sheet{position:fixed;inset:auto 0 0;max-width:none;width:100%;max-height:90dvh;overflow:auto;margin:0;border:0;background:var(--paper);color:var(--ink);padding:var(--s4)}@media(max-width:767px){.directory-layout{grid-template-columns:1fr}.directory-sidebar{display:none}.directory-mobile-toggle{display:inline-flex}}

/* Native dialogs remain hidden until showModal(), including the flex lightbox. */
dialog:not([open]){display:none!important}
