    :root {
      --ink: #242424;
      --muted: #666b6c;
      --paper: #ffffff;
      --white: #ffffff;
      --line: #e6e8e8;
      --aqua: #32bcc2;
      --aqua-dark: #18a8b0;
      --aqua-pale: #eaf9fb;
      --sky: #def5fb;
      --wine: #95193c;
      --wine-dark: #79112f;
      --gold: #f7c936;
      --nav-height: 70px;
      --radius: 3px;
      --shadow: none;
      --content: 1160px;
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: calc(var(--nav-height) + 20px);
    }

    body {
      margin: 0;
      color: var(--ink);
      background: var(--white);
      font-family: "Avenir Next", Avenir, "Century Gothic", "Segoe UI", Arial, sans-serif;
      line-height: 1.52;
      -webkit-font-smoothing: antialiased;
    }

    body.menu-open {
      overflow: hidden;
    }

    img {
      display: block;
      max-width: 100%;
    }

    .itempic {
      width: 100%;
      height: 100%;
      overflow: hidden;
    }

    .itempic img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    button,
    input,
    select {
      font: inherit;
    }

    button,
    a {
      -webkit-tap-highlight-color: transparent;
    }

    a {
      color: inherit;
    }

    a:focus-visible,
    button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    summary:focus-visible {
      outline: 3px solid rgba(37, 168, 174, 0.45);
      outline-offset: 4px;
    }

    .skip-link {
      position: fixed;
      z-index: 999;
      top: 10px;
      left: 10px;
      padding: 10px 15px;
      color: var(--white);
      background: var(--ink);
      border-radius: 8px;
      transform: translateY(-160%);
      transition: transform 160ms ease;
    }

    .skip-link:focus {
      transform: translateY(0);
    }

    .container {
      width: min(calc(100% - 40px), var(--content));
      margin-inline: auto;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      margin: 0 0 12px;
      color: var(--aqua-dark);
      font-size: 0.76rem;
      font-weight: 600;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }

    .eyebrow::after {
      width: 34px;
      height: 2px;
      content: "";
      background: currentColor;
    }

    .section-heading {
      max-width: 760px;
      margin: 0;
      font-size: clamp(2.15rem, 5vw, 4.25rem);
      font-weight: 300;
      line-height: 1.04;
      letter-spacing: -0.045em;
    }

    .section-intro {
      max-width: 660px;
      margin: 20px 0 0;
      color: var(--muted);
      font-size: 1.03rem;
    }

    .text-link,
    .button {
      display: inline-flex;
      min-height: 46px;
      align-items: center;
      justify-content: center;
      gap: 10px;
      border: 0;
      border-radius: 5px;
      font-weight: 600;
      letter-spacing: 0.035em;
      text-decoration: none;
      text-transform: uppercase;
      cursor: pointer;
      transition: color 160ms ease, background 160ms ease, border-color 160ms ease, transform 160ms ease;
    }

    .text-link {
      min-height: 40px;
      padding: 0;
      color: var(--aqua-dark);
      background: transparent;
      border-bottom: 2px solid rgba(37, 168, 174, 0.45);
      border-radius: 0;
      font-size: 0.78rem;
    }

    .text-link:hover {
      color: var(--ink);
      border-color: var(--ink);
    }

    .button {
      padding: 0 23px;
      font-size: 0.78rem;
    }

    .button:hover {
      transform: translateY(-2px);
    }

    .button-primary {
      color: var(--white);
      background: var(--wine);
    }

    .button-primary:hover {
      background: var(--wine-dark);
    }

    .button-outline {
      color: var(--ink);
      background: transparent;
      border: 1px solid var(--ink);
    }

    .button-outline:hover {
      color: var(--white);
      background: var(--ink);
    }

    .site-notice {
      display: none;
    }

    .site-header {
      position: sticky;
      z-index: 100;
      top: 0;
      height: var(--nav-height);
      background: rgba(255, 255, 255, 0.97);
      border-bottom: 1px solid transparent;
      backdrop-filter: blur(14px);
      transition: border-color 180ms ease, box-shadow 180ms ease;
    }

    .site-header.scrolled {
      border-color: var(--line);
      box-shadow: none;
    }

    .nav-shell {
      display: flex;
      height: 100%;
      align-items: center;
      justify-content: space-between;
    }

    .brand {
      display: inline-flex;
      align-items: baseline;
      gap: 7px;
      color: var(--ink);
      font-size: 1.36rem;
      font-weight: 300;
      letter-spacing: -0.04em;
      text-decoration: none;
    }

    .brand b {
      color: var(--aqua-dark);
      font-weight: 700;
    }

    .brand small {
      color: var(--muted);
      font-size: 0.56rem;
      font-weight: 600;
      letter-spacing: 0.09em;
      text-transform: uppercase;
    }

    .primary-nav {
      display: flex;
      align-items: center;
      gap: 38px;
    }

    .primary-nav a {
      position: relative;
      padding: 9px 0;
      color: #424a4c;
      font-size: 0.78rem;
      font-weight: 500;
      letter-spacing: 0.09em;
      text-decoration: none;
      text-transform: uppercase;
    }

    .primary-nav a:not(.nav-cta)::after {
      position: absolute;
      right: 0;
      bottom: 2px;
      left: 0;
      height: 2px;
      content: "";
      background: var(--aqua);
      transform: scaleX(0);
      transition: transform 160ms ease;
    }

    .primary-nav a:hover::after,
    .primary-nav a.active::after {
      transform: scaleX(1);
    }

    .primary-nav .nav-cta {
      padding: 9px 0;
      color: var(--aqua-dark);
      border: 0;
      border-radius: 0;
    }

    .primary-nav .nav-cta:hover,
    .primary-nav .nav-cta.active {
      color: var(--ink);
      background: transparent;
    }

    .menu-toggle {
      display: none;
      width: 46px;
      height: 46px;
      padding: 0;
      color: var(--ink);
      background: transparent;
      border: 1px solid var(--line);
      border-radius: 50%;
      cursor: pointer;
    }

    .menu-toggle span,
    .menu-toggle::before,
    .menu-toggle::after {
      display: block;
      width: 20px;
      height: 2px;
      margin: 4px auto;
      content: "";
      background: currentColor;
      transition: transform 160ms ease, opacity 160ms ease;
    }

    .menu-toggle[aria-expanded="true"] span {
      opacity: 0;
    }

    .menu-toggle[aria-expanded="true"]::before {
      transform: translateY(6px) rotate(45deg);
    }

    .menu-toggle[aria-expanded="true"]::after {
      transform: translateY(-6px) rotate(-45deg);
    }

    .hero {
      position: relative;
      min-height: min(680px, calc(100vh - var(--nav-height)));
      overflow: hidden;
      background: var(--white);
    }

    .hero-grid {
      display: grid;
      min-height: min(620px, calc(100vh - var(--nav-height)));
      grid-template-columns: minmax(320px, 0.72fr) 1.35fr;
    }

    .hero-copy {
      position: relative;
      z-index: 2;
      display: flex;
      padding: clamp(62px, 8vw, 110px) clamp(30px, 4.5vw, 72px);
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
      background: var(--white);
    }

    .hero-copy::after {
      position: absolute;
      z-index: -1;
      top: -10%;
      right: -92px;
      width: 176px;
      height: 120%;
      content: "";
      background: var(--white);
      border-radius: 0 52% 52% 0;
    }

    .hero h1 {
      max-width: 560px;
      margin: 0;
      font-size: clamp(2.1rem, 3.9vw, 3.65rem);
      font-weight: 200;
      line-height: 0.96;
      letter-spacing: -0.065em;
    }

    .hero h1 em {
      color: inherit;
      font-style: normal;
    }

    .hero-copy > p {
      max-width: 480px;
      margin: 28px 0 0;
      color: var(--muted);
      font-size: 1.05rem;
    }

    .hero-actions {
      display: flex;
      margin-top: 30px;
      flex-wrap: wrap;
      align-items: center;
      gap: 20px;
    }

    .hero .button-primary {
      min-height: 40px;
      padding: 0;
      color: var(--aqua-dark);
      background: transparent;
      border-bottom: 2px solid rgba(50, 188, 194, 0.5);
      border-radius: 0;
    }

    .hero .button-primary:hover {
      color: var(--ink);
      background: transparent;
      border-color: var(--ink);
      transform: none;
    }

    .affiliate-note {
      display: block;
      max-width: 500px;
      margin-top: 21px;
      color: #7d8283;
      font-size: 0.72rem;
    }

    .media-block {
      position: relative;
      overflow: hidden;
      background-color: #b7dfe2;
    }

    .media-block::before {
      position: absolute;
      inset: 0;
      content: "";
      background:
        radial-gradient(circle at 72% 28%, rgba(255, 239, 183, 0.7), transparent 23%),
        linear-gradient(145deg, #8fcdd1 0%, #d7eef0 42%, #f3dba9 100%);
    }

    .media-block img {
      position: relative;
      z-index: 1;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .media-block img.image-missing {
      opacity: 0;
    }

    .placeholder-label {
      position: absolute;
      z-index: 2;
      right: 14px;
      bottom: 14px;
      padding: 6px 9px;
      color: rgba(32, 38, 40, 0.72);
      background: rgba(255, 255, 255, 0.74);
      border-radius: 4px;
      font-size: 0.66rem;
      letter-spacing: 0.07em;
      text-transform: uppercase;
      pointer-events: none;
    }

    .hero-media {
      min-height: 620px;
    }

    .hero-media::after {
      position: absolute;
      right: 8%;
      bottom: -90px;
      width: 210px;
      height: 150px;
      content: "";
      background: var(--gold);
      border-radius: 60% 40% 0 0;
      transform: rotate(-7deg);
    }

    .quick-links {
      position: relative;
      z-index: 3;
      display: flex;
      width: min(calc(100% - 80px), 1080px);
      min-height: 62px;
      margin: -30px auto 0;
      padding: 0 34px;
      align-items: center;
      justify-content: center;
      gap: 44px;
      color: var(--aqua-dark);
      background: rgba(231, 246, 247, 0.96);
      border: 1px solid rgba(37, 168, 174, 0.11);
      border-radius: 14px;
      box-shadow: none;
    }

    .quick-links a {
      font-size: 0.76rem;
      font-weight: 700;
      letter-spacing: 0.11em;
      text-decoration: none;
      text-transform: uppercase;
    }

    .quick-links a:hover {
      color: var(--ink);
    }

    .quick-links span {
      color: #7d898b;
      font-size: 0.68rem;
    }

    .news {
      padding: 118px 0 112px;
    }

    .section-head-row {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 30px;
    }

    .news-shell {
      margin-top: 55px;
    }

    .news-track {
      position: relative;
    }

    .news-story {
      display: grid;
      overflow: hidden;
      min-height: 515px;
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 2px;
      grid-template-columns: 1.1fr 0.9fr;
    }

    .news-story + .news-story {
      margin-top: 34px;
    }

    .js .news-story + .news-story {
      margin-top: 0;
    }

    .js .news-story[hidden] {
      display: none;
    }

    .news-story:nth-child(even) .story-media {
      order: 2;
    }

    .story-media::before {
      background:
        radial-gradient(circle at 24% 28%, rgba(255, 255, 255, 0.55), transparent 18%),
        linear-gradient(145deg, #7ec1c6 0%, #e5f0d1 45%, #efbf78 100%);
    }

    .story-copy {
      display: flex;
      padding: clamp(42px, 6vw, 82px);
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
    }

    .story-meta {
      display: flex;
      margin-bottom: 18px;
      flex-wrap: wrap;
      gap: 12px;
      color: var(--aqua-dark);
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }

    .story-meta time {
      color: #788285;
    }

    .story-copy h3 {
      margin: 0;
      font-size: clamp(2rem, 3.5vw, 3.35rem);
      font-weight: 400;
      line-height: 1.06;
      letter-spacing: -0.04em;
    }

    .story-deck {
      margin: 21px 0 0;
      color: var(--muted);
    }

    .story-full {
      width: 100%;
      margin-top: 23px;
    }

    .story-full summary {
      display: inline-flex;
      min-height: 44px;
      padding: 0 20px;
      align-items: center;
      color: var(--white);
      background: var(--ink);
      border-radius: 4px;
      font-size: 0.76rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      list-style: none;
      text-transform: uppercase;
      cursor: pointer;
    }

    .story-full summary::-webkit-details-marker {
      display: none;
    }

    .story-full summary::after {
      margin-left: 9px;
      content: "→";
    }

    .story-full[open] summary::after {
      content: "−";
    }

    .story-full summary:hover {
      background: var(--aqua-dark);
    }

    .full-copy {
      margin-top: 24px;
      padding-top: 22px;
      color: #4f595c;
      border-top: 1px solid var(--line);
      font-size: 0.94rem;
    }

    .full-copy p:first-child {
      margin-top: 0;
    }

    .full-copy p:last-child {
      margin-bottom: 0;
    }

    .news-controls {
      display: none;
      margin-top: 24px;
      align-items: center;
      justify-content: space-between;
    }

    .js .news-controls {
      display: flex;
    }

    .control-button {
      display: inline-grid;
      width: 48px;
      height: 48px;
      padding: 0;
      color: var(--ink);
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 50%;
      cursor: pointer;
      place-items: center;
      transition: color 160ms ease, background 160ms ease;
    }

    .control-button:hover {
      color: var(--white);
      background: var(--aqua-dark);
    }

    .news-status {
      display: flex;
      align-items: center;
      gap: 9px;
    }

    .news-dot {
      width: 9px;
      height: 9px;
      padding: 0;
      background: #c7cfcd;
      border: 0;
      border-radius: 50%;
      cursor: pointer;
    }

    .news-dot.active {
      width: 28px;
      background: var(--aqua);
      border-radius: 10px;
    }

    .about {
      position: relative;
      overflow: hidden;
      padding: 112px 0 116px;
      background: var(--sky);
    }

    .about::before {
      position: absolute;
      top: -130px;
      right: -80px;
      width: 330px;
      height: 330px;
      content: "";
      background: rgba(255, 255, 255, 0.38);
      border-radius: 50%;
    }

    .country-list {
      display: grid;
      margin-top: 54px;
      gap: 32px;
    }

    .country-row {
      display: grid;
      overflow: hidden;
      min-height: 410px;
      background: var(--white);
      border: 1px solid rgba(20, 125, 132, 0.13);
      border-radius: 2px;
      grid-template-columns: 0.9fr 1.1fr;
    }

    .country-row:nth-child(even) {
      grid-template-columns: 1.1fr 0.9fr;
    }

    .country-row:nth-child(even) .country-media {
      order: -1;
    }

    .country-copy {
      display: flex;
      padding: clamp(42px, 5.4vw, 70px);
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
    }

    .country-code {
      color: var(--gold);
      font-family: inherit;
      font-size: 3.7rem;
      font-weight: 300;
      line-height: 1;
    }

    .country-copy h3 {
      margin: 16px 0 0;
      font-size: clamp(2.35rem, 4.3vw, 4.15rem);
      font-weight: 300;
      line-height: 0.99;
      letter-spacing: -0.055em;
    }

    .country-copy p {
      margin: 24px 0 0;
      color: var(--muted);
    }

    .country-media::before {
      background:
        linear-gradient(180deg, rgba(20, 125, 132, 0.02), rgba(20, 52, 57, 0.18)),
        linear-gradient(135deg, #88c5c9, #f0d6aa);
    }

    .country-media::after {
      position: absolute;
      bottom: -45px;
      left: -40px;
      width: 180px;
      height: 100px;
      content: "";
      background: var(--gold);
      border-radius: 55% 50% 0 0;
      transform: rotate(8deg);
    }

    .country-row:nth-child(2) .country-media::before {
      background:
        linear-gradient(180deg, rgba(20, 125, 132, 0.02), rgba(20, 52, 57, 0.16)),
        linear-gradient(145deg, #83b9c8, #d9e8cf 50%, #cfab81);
    }

    .country-row:nth-child(3) .country-media::before {
      background:
        linear-gradient(180deg, rgba(20, 125, 132, 0.02), rgba(20, 52, 57, 0.18)),
        linear-gradient(135deg, #79b9c5, #e7d4b6 52%, #c2896f);
    }

    /*
      Reference-led editorial sequence.
      News and country coverage intentionally share the exact same two-column
      geometry, spacing, image ratio and typographic hierarchy.
    */
    .reference-section,
    .about.reference-section {
      padding: 96px 0 112px;
      overflow: visible;
      background: #ffffff;
    }

    .about.reference-section::before {
      display: none;
    }

    .reference-sequence {
      width: min(100%, 1200px);
      margin-inline: auto;
    }

    .reference-row {
      display: grid;
      min-width: 0;
      align-items: start;
      grid-template-columns: 50% 50%;
    }

    .reference-row + .reference-row {
      margin-top: 84px;
    }

    .reference-copy {
      display: flex;
      min-height: 288px;
      padding: 42px clamp(48px, 8.5vw, 110px);
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
      color: #242424;
      background: #ffffff;
    }

    .reference-copy h2,
    .reference-copy h3 {
      margin: 0;
      color: #242424;
      font-size: clamp(1.72rem, 2.25vw, 2rem);
      font-weight: 700;
      line-height: 1.18;
      letter-spacing: -0.035em;
    }

    .reference-copy p {
      max-width: 430px;
      margin: 20px 0 0;
      color: #2e2e2e;
      font-size: 0.88rem;
      line-height: 1.58;
    }

    .reference-article-link {
      display: inline-block;
      margin-top: 24px;
      color: #242424;
      font-size: 0.78rem;
      font-weight: 700;
      text-decoration: underline;
      text-underline-offset: 4px;
      text-decoration-thickness: 1px;
    }

    .reference-article-link:hover {
      color: #e83d28;
    }

    .article-page {
      min-height: 100vh;
      padding: 96px 0 120px;
      background: #ffffff;
    }

    .article-content {
      width: min(calc(100% - 56px), 1180px);
      margin-inline: auto;
      display: grid;
      grid-template-columns: 56px minmax(0, 1fr) minmax(320px, 0.72fr);
      column-gap: 42px;
      align-items: start;
    }

    .article-actions {
      position: sticky;
      top: 24px;
      display: flex;
      flex-direction: column;
      gap: 14px;
      padding-top: 180px;
    }

    .article-action {
      width: 72px;
      min-height: 72px;
      padding: 7px 4px 8px;
      border: 2px solid #5acbd1;
      border-radius: 8px;
      background: #fff;
      color: #53c5cb;
      font: inherit;
      font-size: 0.65rem;
      font-weight: 700;
      line-height: 1.1;
      cursor: pointer;
    }

    .article-action:hover, .article-action:focus-visible {
      background: #f2feff;
      outline: 2px solid #242424;
      outline-offset: 3px;
    }

    .article-action-icon {
      display: block;
      min-height: 32px;
      margin-bottom: 4px;
      font-family: Arial, sans-serif;
      font-size: 2rem;
      font-weight: 400;
      line-height: 1;
    }

    .article-like.is-liked .article-action-icon {
      color: #18bfc8;
    }

    .article-comment-icon {
      position: relative;
      width: 26px;
      height: 22px;
      min-height: 0;
      margin: 3px auto 10px;
      border: 2px solid currentColor;
      border-radius: 50%;
    }

    .article-comment-icon::after {
      position: absolute;
      right: 1px;
      bottom: -6px;
      width: 8px;
      height: 8px;
      border-right: 2px solid currentColor;
      border-bottom: 2px solid currentColor;
      background: #fff;
      content: "";
      transform: skewY(-35deg);
    }

    .article-share-icon {
      font-size: 2.15rem;
      transform: rotate(-28deg) translateY(-1px);
    }

    .article-comment-popover {
      position: absolute;
      left: calc(100% + 14px);
      top: 86px;
      z-index: 5;
      display: none;
      width: 250px;
      padding: 12px;
      border: 1px solid #5acbd1;
      border-radius: 8px;
      background: #fff;
      box-shadow: 0 10px 24px rgba(26, 55, 58, 0.12);
    }

    .article-comment-popover.is-open { display: block; }

    .article-comment-input {
      display: block;
      width: 100%;
      min-height: 72px;
      resize: vertical;
      border: 1px solid #a7cfd1;
      border-radius: 4px;
      padding: 9px;
      color: #242424;
      font: inherit;
      font-size: 0.82rem;
      line-height: 1.45;
    }

    .article-comment-input:focus-visible {
      border-color: #18bfc8;
      outline: 2px solid #18bfc8;
      outline-offset: 2px;
    }

    .article-comment-message {
      margin: 8px 0 0;
      color: #238c91;
      font-size: 0.74rem;
      font-weight: 700;
    }

    .article-date {
      grid-column: 2 / 4;
      justify-self: end;
      margin: 0 0 22px;
      color: #6b7071;
      font-size: 0.78rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .article-copy {
      grid-column: 2;
    }

    .article-visual {
      grid-column: 3;
      grid-row: 2;
      position: sticky;
      top: 24px;
      margin-top: 12px;
    }

    .article-visual img {
      display: block;
      width: 100%;
      aspect-ratio: 600 / 400;
      object-fit: cover;
      border-radius: 0;
    }

    .article-content h1 {
      max-width: 700px;
      margin: 0;
      color: #242424;
      font-size: clamp(2.4rem, 5vw, 4.5rem);
      line-height: 1.06;
      letter-spacing: -0.045em;
    }

    .article-content .article-deck {
      max-width: 620px;
      margin: 24px 0 0;
      color: #666b6c;
      font-size: 1.05rem;
    }

    .article-body {
      margin-top: 54px;
      color: #2e2e2e;
      font-size: 1rem;
      line-height: 1.75;
    }

    .article-body p {
      margin: 0 0 24px;
    }

    .article-back {
      display: inline-block;
      margin-top: 22px;
      color: #242424;
      font-size: 0.8rem;
      font-weight: 700;
      text-decoration: underline;
      text-underline-offset: 4px;
    }

    .article-signup {
      position: fixed;
      right: 30px;
      bottom: 28px;
      z-index: 10;
      display: inline-flex;
      min-height: 44px;
      align-items: center;
      padding: 0 20px;
      border-radius: 3px;
      background: #a51545;
      color: #fff;
      font-size: 0.75rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-decoration: none;
      text-transform: uppercase;
    }

    .article-signup:hover, .article-signup:focus-visible {
      background: #7d0e33;
      outline: 2px solid #242424;
      outline-offset: 3px;
    }

    .reference-image {
      width: 100%;
      aspect-ratio: 2.08 / 1;
      overflow: hidden;
      background: #ffffff;
    }

    .reference-image img {
      display: block;
      width: 100%;
      height: 100%;
      border-radius: 0;
      object-fit: cover;
    }

    .reference-list {
      max-width: 440px;
      margin: 20px 0 0;
      padding-left: 18px;
      color: #2e2e2e;
      font-size: 0.86rem;
      line-height: 1.62;
    }

    @media (max-width: 800px) {
      .article-content {
        width: min(calc(100% - 32px), 680px);
        display: block;
      }
      .article-date { margin: 0 0 20px; }
      .article-actions {
        position: static;
        flex-direction: row;
        padding: 0;
        margin: 0 0 24px;
      }
      .article-action { width: 82px; min-height: 72px; }
      .article-comment-popover { position: absolute; left: 0; top: 86px; }
      .article-visual { position: static; margin: 34px 0 0; }
      .article-visual img { aspect-ratio: 1.5 / 1; }
      .article-signup { right: 16px; bottom: 16px; min-height: 40px; padding-inline: 16px; }
    }

    .reference-list li + li {
      margin-top: 5px;
    }

    .reference-list strong {
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .reference-details {
      margin-top: 28px;
    }

    .reference-details summary,
    .reference-button {
      display: inline-flex;
      width: 220px;
      min-height: 42px;
      padding: 10px 18px;
      align-items: center;
      justify-content: center;
      color: #ffffff;
      background: #e83d28;
      border: 0;
      border-radius: 0;
      font-size: 0.75rem;
      font-weight: 700;
      line-height: 1.2;
      list-style: none;
      text-align: center;
      text-decoration: none;
      cursor: pointer;
    }

    .reference-details summary::-webkit-details-marker {
      display: none;
    }

    .reference-details summary:hover,
    .reference-button:hover {
      color: #ffffff;
      background: #c92e1d;
    }

    .reference-details[open] {
      width: 100%;
    }

    .reference-more {
      max-width: 430px;
      margin-top: 20px;
      color: #2e2e2e;
      font-size: 0.86rem;
      line-height: 1.58;
    }

    .local-dating {
      padding: 112px 0 118px;
      background: var(--white);
    }

    .directory-tools {
      display: grid;
      margin: 44px 0 32px;
      align-items: end;
      gap: 18px;
      grid-template-columns: 1fr minmax(260px, 0.6fr) 160px;
    }

    .filter-group {
      display: flex;
      flex-wrap: wrap;
      gap: 9px;
    }

    .filter-button {
      min-height: 42px;
      padding: 0 17px;
      color: #4e595b;
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: 30px;
      font-size: 0.73rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      cursor: pointer;
    }

    .filter-button:hover,
    .filter-button.active {
      color: var(--white);
      background: var(--ink);
      border-color: var(--ink);
    }

    .field-label {
      display: block;
      margin-bottom: 7px;
      color: #687275;
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .search-field,
    .sort-field {
      width: 100%;
      height: 46px;
      padding: 0 14px;
      color: var(--ink);
      background: var(--white);
      border: 1px solid #aeb9b7;
      border-radius: 5px;
    }

    .city-grid {
      display: grid;
      gap: 20px;
      grid-template-columns: repeat(3, 1fr);
    }

    .city-card {
      display: flex;
      min-width: 0;
      overflow: hidden;
      flex-direction: column;
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 2px;
      transition: border-color 160ms ease;
    }

    .city-card:hover {
      border-color: #b4cdca;
      box-shadow: none;
      transform: none;
    }

    .city-card[hidden] {
      display: none;
    }

    .city-card.page-hidden {
      display: none;
    }

    .city-pagination {
      display: flex;
      margin-top: 28px;
      align-items: center;
      justify-content: center;
      gap: 22px;
    }

    .city-page-button {
      display: inline-grid;
      width: 42px;
      height: 42px;
      padding: 0;
      color: var(--ink);
      background: var(--white);
      border: 1px solid var(--ink);
      border-radius: 0;
      cursor: pointer;
      place-items: center;
    }

    .city-page-button:hover:not(:disabled) {
      color: var(--white);
      background: var(--ink);
    }

    .city-page-button:disabled {
      cursor: not-allowed;
      opacity: 0.35;
    }

    .city-page-status {
      min-width: 52px;
      color: var(--muted);
      font-size: 0.78rem;
      text-align: center;
    }

    .city-image {
      height: 230px;
    }

    .city-image::before {
      background:
        radial-gradient(circle at 70% 32%, rgba(255, 246, 192, 0.85), transparent 15%),
        linear-gradient(150deg, #75b5bc, #e4d99c 54%, #ce8d63);
      transition: transform 300ms ease;
    }

    .city-card:hover .city-image::before,
    .city-card:hover .city-image img {
      transform: scale(1.025);
    }

    .city-card-body {
      display: flex;
      padding: 23px;
      flex: 1;
      flex-direction: column;
    }

    .city-place {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }

    .city-place h3 {
      margin: 0;
      font-size: 1.35rem;
      line-height: 1.2;
    }

    .city-place span {
      flex: 0 0 auto;
      color: var(--aqua-dark);
      font-size: 0.66rem;
      font-weight: 800;
      letter-spacing: 0.09em;
    }

    .city-card-body p {
      margin: 15px 0 22px;
      color: var(--muted);
      font-size: 0.88rem;
    }

    .city-card .button {
      width: 100%;
      margin-top: auto;
    }

    .empty-state {
      padding: 34px;
      color: var(--muted);
      background: var(--aqua-pale);
      border-radius: 10px;
      text-align: center;
    }

    .lifestyle {
      padding: 122px 0 0;
      background: var(--white);
    }

    .lifestyle .section-head-row {
      margin-bottom: 44px;
    }

    .photo-wall {
      display: grid;
      width: min(calc(100% - 56px), 1680px);
      margin-inline: auto;
      min-height: 248px;
      gap: 8px;
      grid-template-columns: 1.35fr 0.55fr 1.1fr 0.9fr 0.55fr 1.25fr;
    }

    .photo-tile {
      min-height: 216px;
      border-radius: 3px;
    }

    .photo-tile:nth-child(1)::before {
      background: linear-gradient(160deg, #83cfd4, #dcefe8 50%, #d8bb76);
    }

    .photo-tile:nth-child(2)::before {
      background: linear-gradient(180deg, #f1a35d, #8d4157 55%, #4e7b85);
    }

    .photo-tile:nth-child(3)::before {
      background: linear-gradient(155deg, #8bc7cf, #dfe8ca 55%, #bc9763);
    }

    .photo-tile:nth-child(4)::before {
      background: linear-gradient(180deg, #eda744, #ba563c 60%, #304d62);
    }

    .photo-tile:nth-child(5)::before {
      background: linear-gradient(150deg, #71b6cc, #e4e0ac);
    }

    .photo-tile:nth-child(6)::before {
      background: linear-gradient(145deg, #7dc9d0, #edcf75 50%, #c17d62);
    }

    .join-card {
      position: relative;
      display: grid;
      width: min(calc(100% - 40px), 980px);
      margin: 0 auto;
      padding: clamp(40px, 6vw, 68px);
      align-items: center;
      gap: 35px;
      background: var(--white);
      border: 1px solid var(--line);
      border-radius: 3px;
      box-shadow: var(--shadow);
      grid-template-columns: 1fr auto;
      transform: translateY(70px);
    }

    .join-card::before {
      position: absolute;
      top: -34px;
      left: -28px;
      width: 88px;
      height: 62px;
      content: "";
      border-top: 2px solid var(--aqua);
      border-radius: 50%;
      transform: rotate(28deg);
    }

    .join-kicker {
      margin: 0 0 9px;
      color: var(--wine);
      font-size: 0.7rem;
      font-weight: 800;
      letter-spacing: 0.1em;
      text-transform: uppercase;
    }

    .join-card h2 {
      margin: 0;
      font-size: clamp(2.1rem, 4.5vw, 3.7rem);
      font-weight: 300;
      line-height: 1.02;
      letter-spacing: -0.045em;
    }

    .join-card p:last-child {
      max-width: 630px;
      margin: 17px 0 0;
      color: var(--muted);
    }

    .site-footer {
      padding: 128px 0 34px;
      color: var(--ink);
      background: var(--white);
      border-top: 1px solid var(--line);
    }

    .footer-grid {
      display: grid;
      align-items: start;
      gap: 40px;
      grid-template-columns: 1fr auto;
    }

    .footer-brand {
      color: var(--ink);
    }

    .footer-copy {
      max-width: 570px;
      margin: 18px 0 0;
      color: var(--muted);
      font-size: 0.82rem;
    }

    .footer-nav {
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-end;
      gap: 12px 26px;
    }

    .footer-nav a {
      color: #596061;
      font-size: 0.73rem;
      font-weight: 700;
      letter-spacing: 0.07em;
      text-decoration: none;
      text-transform: uppercase;
    }

    .footer-nav a:hover {
      color: var(--aqua-dark);
    }

    .footer-bottom {
      display: flex;
      margin-top: 45px;
      padding-top: 25px;
      align-items: center;
      justify-content: space-between;
      gap: 25px;
      color: #858b8c;
      border-top: 1px solid var(--line);
      font-size: 0.72rem;
    }

    .back-to-top {
      position: fixed;
      z-index: 90;
      right: 22px;
      bottom: 22px;
      display: grid;
      width: 48px;
      height: 48px;
      color: var(--white);
      background: var(--aqua-dark);
      border-radius: 50%;
      box-shadow: 0 8px 24px rgba(20, 52, 57, 0.22);
      opacity: 0;
      text-decoration: none;
      pointer-events: none;
      place-items: center;
      transform: translateY(12px);
      transition: opacity 160ms ease, transform 160ms ease, background 160ms ease;
    }

    .back-to-top.visible {
      opacity: 1;
      pointer-events: auto;
      transform: translateY(0);
    }

    .back-to-top:hover {
      background: var(--wine);
    }

    .reveal {
      opacity: 1;
    }

    .js .reveal {
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 520ms ease, transform 520ms ease;
    }

    .js .reveal.visible {
      opacity: 1;
      transform: translateY(0);
    }

    @media (max-width: 980px) {
      :root {
        --nav-height: 68px;
      }

      .menu-toggle {
        display: block;
      }

      .primary-nav {
        position: fixed;
        inset: calc(var(--nav-height) + 32px) 0 0;
        display: flex;
        padding: 35px 28px;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 9px;
        background: var(--paper);
        opacity: 0;
        pointer-events: none;
        transform: translateX(100%);
        transition: opacity 180ms ease, transform 180ms ease;
      }

      .primary-nav.open {
        opacity: 1;
        pointer-events: auto;
        transform: translateX(0);
      }

      .primary-nav a {
        padding: 17px 9px;
        font-size: 1rem;
        border-bottom: 1px solid var(--line);
      }

      .primary-nav .nav-cta {
        margin-top: 12px;
        padding: 16px;
        text-align: center;
      }

      .hero-grid {
        grid-template-columns: 1fr;
      }

      .hero-copy {
        min-height: 530px;
        padding: 72px max(24px, 7vw);
      }

      .hero-copy::after {
        display: none;
      }

      .hero-media {
        min-height: 490px;
      }

      .quick-links {
        width: min(calc(100% - 32px), 760px);
        margin-top: -25px;
        padding: 16px 20px;
        flex-wrap: wrap;
        gap: 10px 24px;
      }

      .news-story,
      .country-row,
      .country-row:nth-child(even) {
        grid-template-columns: 1fr;
      }

      .reference-copy {
        padding-inline: clamp(42px, 7vw, 72px);
      }

      .story-media,
      .country-media {
        min-height: 420px;
      }

      .news-story:nth-child(even) .story-media {
        order: 0;
      }

      .country-copy,
      .country-row:nth-child(even) .country-copy {
        order: 1;
      }

      .country-media,
      .country-row:nth-child(even) .country-media {
        order: 0;
      }

      .directory-tools {
        grid-template-columns: 1fr 1fr;
      }

      .filter-group {
        grid-column: 1 / -1;
      }

      .city-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .photo-wall {
        grid-template-columns: repeat(4, 1fr);
      }

      .photo-tile:nth-child(1),
      .photo-tile:nth-child(6) {
        grid-column: span 2;
      }

      .photo-tile {
        min-height: 184px;
      }
    }

    @media (max-width: 700px) {
      .container {
        width: min(calc(100% - 28px), var(--content));
      }

      .site-notice {
        padding-inline: 12px;
        font-size: 0.67rem;
      }

      .brand small {
        display: none;
      }

      .hero h1 {
        font-size: clamp(2.3rem, 12vw, 3.5rem);
      }

      .hero-actions {
        align-items: stretch;
        flex-direction: column;
      }

      .hero-actions .button,
      .hero-actions .text-link {
        width: 100%;
      }

      .hero-media {
        min-height: 380px;
      }

      .quick-links {
        align-items: stretch;
        flex-direction: column;
        text-align: center;
      }

      .quick-links span {
        display: none;
      }

      .section-head-row {
        align-items: flex-start;
        flex-direction: column;
      }

      .news,
      .about,
      .local-dating {
        padding-block: 95px;
      }

      .reference-section,
      .about.reference-section {
        padding: 70px 0 82px;
      }

      .reference-row {
        grid-template-columns: 1fr;
      }

      .reference-row + .reference-row {
        margin-top: 64px;
      }

      .reference-copy {
        min-height: 0;
        padding: 38px 28px 44px;
      }

      .reference-image {
        aspect-ratio: 1.65 / 1;
      }

      .reference-button,
      .reference-details summary {
        width: 100%;
      }

      .news-story {
        min-height: 0;
      }

      .story-media,
      .country-media {
        min-height: 290px;
      }

      .story-copy,
      .country-copy {
        padding: 34px 25px 39px;
      }

      .directory-tools {
        grid-template-columns: 1fr;
      }

      .filter-group {
        grid-column: auto;
      }

      .city-grid {
        grid-template-columns: 1fr;
      }

      .city-image {
        height: 245px;
      }

      .photo-wall {
        display: flex;
        width: calc(100% - 28px);
        margin-inline: auto;
        overflow-x: auto;
        padding: 0 0 15px;
        scroll-snap-type: x mandatory;
        scrollbar-width: thin;
      }

      .photo-tile {
        min-width: 78vw;
        min-height: 240px;
        scroll-snap-align: center;
      }

      .join-card {
        width: min(calc(100% - 28px), 980px);
        padding: 38px 25px;
        grid-template-columns: 1fr;
      }

      .join-card .button {
        width: 100%;
      }

      .footer-grid {
        grid-template-columns: 1fr;
      }

      .footer-nav {
        justify-content: flex-start;
      }

      .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      html {
        scroll-behavior: auto;
      }

      *,
      *::before,
      *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
      }
    }
  
