@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garant:ital,wght@0,300;0,400;1,300;1,400&family=Space+Grotesk:wght@300;400;500&display=swap');

/* ── Reset & Base ── */
    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Space Grotesk', sans-serif;
      font-weight: 300;
      background: #FAFAF7;
      color: #1A1A18;
      line-height: 1.7;
      font-size: 15px;
    }
    img { display: block; max-width: 100%; }
    a { color: inherit; text-decoration: none; }

    /* ── CSS Variables ── */
    :root {
      --green: #2C5F4A;
      --green-light: #EEF3EF;
      --blue: #4A7C9E;
      --amber: #D4875A;
      --sand: #FAFAF7;
      --ink: #1A1A18;
      --mid: #4A4A48;
      --muted: #888;
      --border: #E4E2DB;
      --max: 1140px;
    }

    /* ── Navigation ── */
    .nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 100;
      background: rgba(250,250,247,0.95);
      backdrop-filter: blur(8px);
      border-bottom: 1px solid var(--border);
      height: 60px;
    }
    .nav-inner {
      max-width: var(--max);
      margin: 0 auto;
      padding: 0 40px;
      height: 100%;
      display: flex;
      align-items: center;
      gap: 0;
    }
    .nav-logo {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300;
      font-size: 20px;
      letter-spacing: 0.06em;
      color: var(--ink);
      flex: 1;
    }
    .nav-links {
      display: flex;
      align-items: center;
      gap: 4px;
      list-style: none;
    }
    .nav-links > li { position: relative; }
    .nav-links > li > a {
      display: flex;
      align-items: center;
      gap: 4px;
      padding: 0 14px;
      height: 60px;
      font-size: 12.5px;
      font-weight: 400;
      color: var(--mid);
      letter-spacing: 0.01em;
      transition: color 0.15s;
    }
    .nav-links > li > a:hover,
    .nav-links > li.active > a { color: var(--green); }
    .nav-arrow { font-size: 9px; opacity: 0.5; transition: transform 0.2s; }
    .nav-links > li:hover .nav-arrow { transform: rotate(180deg); }

    /* Dropdown */
    .dropdown {
      position: absolute; top: 100%; left: 0;
      background: #fff;
      border: 1px solid var(--border);
      border-top: 2px solid var(--green);
      min-width: 200px;
      padding: 8px 0;
      opacity: 0; visibility: hidden; transform: translateY(-6px);
      transition: all 0.18s ease;
      box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    }
    .nav-links > li:hover .dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
    .dropdown a {
      display: block;
      padding: 9px 20px;
      font-size: 12.5px;
      font-weight: 400;
      color: var(--mid);
      letter-spacing: 0.01em;
      transition: background 0.12s, color 0.12s;
    }
    .dropdown a:hover { background: var(--green-light); color: var(--green); }

    /* Mobile menu toggle */
    .nav-toggle {
      display: none;
      background: none; border: none; cursor: pointer;
      padding: 8px; color: var(--ink);
      font-size: 20px; line-height: 1;
    }

    /* ── Hero ── */
    .hero {
      position: relative;
      height: 78vh;
      min-height: 520px;
      max-height: 820px;
      overflow: hidden;
      display: flex;
      align-items: center;
    }
    .hero-img {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center 40%;
    }
    .hero-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(
        to bottom,
        rgba(10,18,14,0.28) 0%,
        rgba(10,18,14,0.38) 40%,
        rgba(10,18,14,0.48) 70%,
        rgba(10,18,14,0.62) 100%
      );
    }
    .hero-content {
      position: relative; z-index: 1;
      max-width: var(--max);
      width: 100%;
      padding: 0 40px;
      color: #fff;
    }
    .hero-eyebrow {
      font-family: 'Space Grotesk', sans-serif;
      font-size: 10px; font-weight: 400;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.55);
      margin-bottom: 14px;
    }
    .hero-title {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300;
      font-size: clamp(42px, 6vw, 76px);
      line-height: 1.0;
      letter-spacing: 0.01em;
      margin-bottom: 20px;
      max-width: 800px;
    }
    .hero-title em {
      font-style: italic;
      color: rgba(255,255,255,0.72);
    }
    .hero-sub {
      font-size: 15px;
      font-weight: 300;
      color: rgba(255,255,255,0.62);
      letter-spacing: 0.03em;
      margin-bottom: 28px;
      max-width: 480px;
      line-height: 1.65;
    }
    .hero-btns { display: flex; gap: 12px; flex-wrap: wrap; }
    .btn {
      display: inline-block;
      font-family: 'Space Grotesk', sans-serif;
      font-size: 12px; font-weight: 400;
      letter-spacing: 0.08em;
      padding: 11px 24px;
      border-radius: 2px;
      transition: all 0.18s;
      cursor: pointer;
    }
    .btn-white {
      background: #fff; color: var(--ink);
    }
    .btn-white:hover { background: #f0efe9; }
    .btn-outline-white {
      border: 1px solid rgba(255,255,255,0.38);
      color: rgba(255,255,255,0.82);
    }
    .btn-outline-white:hover { border-color: rgba(255,255,255,0.65); color: #fff; }
    .btn-green { background: var(--green); color: #fff; }
    .btn-green:hover { background: #245040; }
    .btn-outline-green {
      border: 1px solid var(--green);
      color: var(--green);
    }
    .btn-outline-green:hover { background: var(--green-light); }

    /* ── Section Base ── */
    section { padding: 88px 40px; }
    .section-inner { max-width: var(--max); margin: 0 auto; }
    .eyebrow {
      font-size: 10px; font-weight: 400; letter-spacing: 0.18em;
      text-transform: uppercase; color: var(--green);
      margin-bottom: 10px;
    }
    .section-title {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300;
      font-size: clamp(32px, 4vw, 44px);
      line-height: 1.1;
      letter-spacing: 0.02em;
      color: var(--ink);
      margin-bottom: 14px;
    }
    .section-intro {
      font-size: 15px;
      font-weight: 300;
      color: var(--mid);
      line-height: 1.8;
      max-width: 600px;
      margin-bottom: 48px;
    }

    /* ── Intro Strip ── */
    .intro-strip {
      background: var(--ink);
      padding: 72px 40px;
      color: #fff;
    }
    .intro-strip .section-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
    }
    .intro-strip .eyebrow { color: rgba(255,255,255,0.4); }
    .intro-strip .section-title { color: #fff; margin-bottom: 0; }
    .intro-text {
      font-size: 15px; font-weight: 300;
      color: rgba(255,255,255,0.65);
      line-height: 1.85;
    }
    .intro-text p { margin-bottom: 16px; }
    .intro-text p:last-child { margin-bottom: 0; }
    .intro-ctas { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 28px; }
    .btn-outline-sand {
      border: 1px solid rgba(255,255,255,0.22);
      color: rgba(255,255,255,0.75);
      font-size: 12px; font-weight: 400; letter-spacing: 0.08em;
      padding: 9px 20px; border-radius: 2px;
      transition: all 0.18s;
    }
    .btn-outline-sand:hover { border-color: rgba(255,255,255,0.5); color: #fff; }

    /* ── Featured Three-Up ── */
    .featured { background: var(--sand); }
    .featured-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      margin-top: 48px;
    }
    .feat-card {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 3px;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      transition: box-shadow 0.2s, transform 0.2s;
    }
    .feat-card:hover { box-shadow: 0 8px 28px rgba(0,0,0,0.09); transform: translateY(-2px); }
    .feat-img {
      height: 220px;
      overflow: hidden;
    }
    .feat-img img {
      width: 100%; height: 100%;
      object-fit: cover;
      transition: transform 0.4s ease;
    }
    .feat-card:hover .feat-img img { transform: scale(1.04); }
    .feat-body { padding: 24px 24px 28px; flex: 1; display: flex; flex-direction: column; }
    .feat-label {
      font-size: 10px; font-weight: 400; letter-spacing: 0.14em;
      text-transform: uppercase; color: var(--green);
      margin-bottom: 8px;
    }
    .feat-title {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300;
      font-size: 24px;
      line-height: 1.2;
      letter-spacing: 0.01em;
      color: var(--ink);
      margin-bottom: 10px;
    }
    .feat-desc {
      font-size: 13.5px;
      font-weight: 300;
      color: var(--mid);
      line-height: 1.7;
      flex: 1;
      margin-bottom: 20px;
    }
    .feat-link {
      font-size: 12px; font-weight: 400;
      letter-spacing: 0.08em;
      color: var(--green);
      display: flex; align-items: center; gap: 6px;
      transition: gap 0.18s;
    }
    .feat-link:hover { gap: 10px; }

    /* ── Road Trip Banner ── */
    .road-trip-banner {
      position: relative;
      overflow: hidden;
      padding: 0;
    }
    .rt-img {
      width: 100%; height: 500px;
      object-fit: cover;
      object-position: center 60%;
    }
    .rt-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(
        to right,
        rgba(10,18,14,0.84) 0%,
        rgba(10,18,14,0.52) 55%,
        rgba(10,18,14,0.08) 100%
      );
      display: flex;
      align-items: center;
      padding: 0 clamp(40px, 7vw, 120px);
    }
    .rt-content {
      max-width: 500px;
      color: #fff;
    }
    .rt-content .eyebrow { color: rgba(255,255,255,0.45); margin-bottom: 12px; }
    .rt-title {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300;
      font-size: clamp(34px, 4vw, 52px);
      line-height: 1.05;
      letter-spacing: 0.02em;
      margin-bottom: 16px;
    }
    .rt-desc {
      font-size: 14px; font-weight: 300;
      color: rgba(255,255,255,0.62);
      line-height: 1.75;
      margin-bottom: 28px;
    }
    .rt-stops {
      display: flex; flex-direction: column; gap: 6px;
      margin-bottom: 28px;
    }
    .rt-stop {
      display: flex; align-items: baseline; gap: 10px;
      font-size: 12.5px; font-weight: 300;
      color: rgba(255,255,255,0.65);
    }
    .rt-stop-num {
      font-family: 'Cormorant Garant', serif;
      font-style: italic;
      font-size: 14px;
      color: rgba(255,255,255,0.38);
      flex-shrink: 0;
      width: 16px;
    }

    /* ── Events Strip ── */
    .events { background: var(--green-light); }
    .events-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
      margin-top: 48px;
    }
    .event-card {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 3px;
      padding: 22px;
      display: flex; flex-direction: column; gap: 10px;
      transition: box-shadow 0.2s;
    }
    .event-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.07); }
    .event-date {
      font-size: 10px; font-weight: 400; letter-spacing: 0.12em;
      text-transform: uppercase; color: var(--amber);
    }
    .event-name {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300; font-size: 20px;
      line-height: 1.2; letter-spacing: 0.01em;
      color: var(--ink);
    }
    .event-location {
      font-size: 11.5px; font-weight: 300;
      color: var(--muted); line-height: 1.5;
    }
    .event-link {
      font-size: 11px; font-weight: 400;
      letter-spacing: 0.08em; color: var(--green);
      margin-top: auto;
    }

    /* ── Audience Section ── */
    .audience { background: #fff; }
    .audience-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 20px;
      margin-top: 48px;
    }
    .audience-card {
      position: relative;
      height: 320px;
      overflow: hidden;
      border-radius: 3px;
      display: flex; align-items: flex-end;
    }
    .audience-card img {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      transition: transform 0.5s ease;
    }
    .audience-card:hover img { transform: scale(1.05); }
    .audience-card-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(to top, rgba(0,0,0,0.68) 0%, rgba(0,0,0,0.1) 55%, transparent 100%);
    }
    .audience-card-body {
      position: relative; z-index: 1;
      padding: 28px 28px 28px;
      color: #fff;
      width: 100%;
    }
    .audience-tag {
      font-size: 10px; font-weight: 400; letter-spacing: 0.16em;
      text-transform: uppercase; color: rgba(255,255,255,0.5);
      margin-bottom: 6px;
    }
    .audience-title {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300; font-size: 28px;
      line-height: 1.1; letter-spacing: 0.02em;
      margin-bottom: 12px;
    }
    .audience-link {
      font-size: 11px; font-weight: 400;
      letter-spacing: 0.1em; text-transform: uppercase;
      color: rgba(255,255,255,0.72);
      display: flex; align-items: center; gap: 6px;
      transition: gap 0.18s, color 0.18s;
    }
    .audience-card:hover .audience-link { gap: 10px; color: #fff; }

    /* ── Pull Quote Strip ── */
    .pullquote-strip {
      background: linear-gradient(135deg, #1e4234 0%, #2C5F4A 50%, #1a3d4f 100%);
      padding: 96px 40px;
      text-align: center;
    }
    .pullquote-inner { }
    .pullquote {
      font-family: 'Cormorant Garant', serif;
      font-style: italic;
      font-weight: 300;
      font-size: clamp(28px, 3.8vw, 46px);
      line-height: 1.35;
      letter-spacing: 0.01em;
      color: rgba(255,255,255,0.92);
      max-width: 820px;
      margin: 0 auto 20px;
    }
    .pullquote-attr {
      font-size: 11px; font-weight: 400;
      letter-spacing: 0.18em; text-transform: uppercase;
      color: rgba(255,255,255,0.38);
    }

    /* ── Footer ── */
    .footer {
      background: var(--ink);
      color: rgba(255,255,255,0.55);
      padding: 64px 40px 40px;
    }
    .footer-inner {
      max-width: var(--max);
      margin: 0 auto;
    }
    .footer-top {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr 1fr;
      gap: 48px;
      padding-bottom: 48px;
      border-bottom: 1px solid rgba(255,255,255,0.1);
      margin-bottom: 32px;
    }
    .footer-brand {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300;
      font-size: 24px;
      letter-spacing: 0.04em;
      color: #fff;
      margin-bottom: 12px;
    }
    .footer-tagline {
      font-size: 13px; font-weight: 300;
      line-height: 1.7; color: rgba(255,255,255,0.42);
      max-width: 280px;
    }
    .footer-col h4 {
      font-size: 10px; font-weight: 400;
      letter-spacing: 0.16em; text-transform: uppercase;
      color: rgba(255,255,255,0.35);
      margin-bottom: 16px;
    }
    .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
    .footer-col ul li a {
      font-size: 13px; font-weight: 300;
      color: rgba(255,255,255,0.55);
      transition: color 0.15s;
    }
    .footer-col ul li a:hover { color: rgba(255,255,255,0.9); }
    .footer-bottom {
      display: flex; align-items: center; justify-content: space-between;
      font-size: 11px; font-weight: 300;
      color: rgba(255,255,255,0.28);
      letter-spacing: 0.04em;
    }

    /* ── Mobile ── */
    @media (max-width: 900px) {
      section { padding: 64px 24px; }
      .intro-strip { padding: 56px 24px; }
      .nav-inner { padding: 0 24px; }
      .intro-strip .section-inner { grid-template-columns: 1fr; gap: 40px; }
      .featured-grid { grid-template-columns: 1fr; }
      .events-grid { grid-template-columns: repeat(2, 1fr); }
      .audience-grid { grid-template-columns: 1fr; }
      .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
      .hero-content { padding: 0 24px; }
      .rt-overlay { background: rgba(10,18,14,0.72); }
    }
    @media (max-width: 600px) {
      .nav-links { display: none; }
      .nav-links.open { display: flex; flex-direction: column; position: fixed; top: 60px; left: 0; right: 0; background: #fff; border-bottom: 1px solid var(--border); padding: 16px 0; gap: 0; z-index: 99; }
      .nav-links.open > li > a { height: auto; padding: 12px 24px; }
      .dropdown { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: none; border-left: 2px solid var(--green-light); margin-left: 24px; }
      .nav-toggle { display: block; }
      .events-grid { grid-template-columns: 1fr; }
      .footer-top { grid-template-columns: 1fr; }
      .hero-title { font-size: 38px; }
    }

    /* ══════════════════════════════════════════════
       INNER PAGE STYLES
    ══════════════════════════════════════════════ */

    /* ── Inner Page Hero ── */
    .page-hero {
      position: relative;
      height: 52vh;
      min-height: 340px;
      max-height: 560px;
      overflow: hidden;
      display: flex;
      align-items: flex-end;
      margin-top: 60px; /* offset fixed nav */
    }
    .page-hero-img {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center 40%;
    }
    .page-hero-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(
        to top,
        rgba(10,18,14,0.78) 0%,
        rgba(10,18,14,0.38) 45%,
        rgba(10,18,14,0.08) 100%
      );
    }
    .page-hero-content {
      position: relative; z-index: 1;
      max-width: var(--max);
      width: 100%;
      margin: 0 auto;
      padding: 0 40px 48px;
      color: #fff;
    }
    .page-hero-content .eyebrow { color: rgba(255,255,255,0.45); margin-bottom: 10px; }
    .page-title {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300;
      font-size: clamp(34px, 5vw, 58px);
      line-height: 1.05;
      letter-spacing: 0.01em;
      margin-bottom: 12px;
    }
    .page-subtitle {
      font-size: 15px; font-weight: 300;
      color: rgba(255,255,255,0.62);
      max-width: 560px;
      line-height: 1.7;
    }

    /* ── Page Main Content ── */
    .page-main { background: var(--sand); }
    .page-content {
      max-width: var(--max);
      margin: 0 auto;
      padding: 72px 40px;
    }
    .page-intro-text {
      font-size: 16px; font-weight: 300;
      color: var(--mid);
      line-height: 1.85;
      max-width: 680px;
      margin-bottom: 64px;
    }

    /* ── Listing Cards ── */
    .listings { display: flex; flex-direction: column; gap: 0; }
    .listing-card {
      display: grid;
      grid-template-columns: 56px 1fr;
      gap: 0 32px;
      padding: 48px 0;
      border-bottom: 1px solid var(--border);
    }
    .listing-card:first-child { border-top: 1px solid var(--border); }
    .listing-num {
      font-family: 'Cormorant Garant', serif;
      font-style: italic;
      font-size: 36px;
      font-weight: 300;
      color: var(--border);
      line-height: 1;
      padding-top: 4px;
    }
    .listing-body {}
    .listing-badge {
      font-size: 10px; font-weight: 400; letter-spacing: 0.16em;
      text-transform: uppercase; color: var(--green);
      margin-bottom: 8px;
      display: block;
    }
    .listing-name {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300;
      font-size: clamp(24px, 3vw, 32px);
      line-height: 1.1;
      letter-spacing: 0.01em;
      color: var(--ink);
      margin-bottom: 14px;
    }
    .listing-meta {
      display: flex; flex-wrap: wrap; gap: 6px 16px;
      margin-bottom: 20px;
    }
    .listing-meta-item {
      font-size: 12px; font-weight: 300;
      color: var(--muted);
      display: flex; align-items: center; gap: 5px;
    }
    .listing-meta-item a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
    .listing-desc {
      font-size: 15px; font-weight: 300;
      color: var(--mid); line-height: 1.82;
      margin-bottom: 16px;
      max-width: 720px;
    }
    .listing-bestfor {
      font-size: 12px; font-weight: 400;
      letter-spacing: 0.04em;
      color: var(--muted);
    }
    .listing-bestfor strong { color: var(--ink); font-weight: 400; }
    .listing-note {
      font-size: 12.5px; font-weight: 300;
      color: var(--amber);
      margin-top: 10px;
      font-style: italic;
    }

    /* ── Guide Page (Couples / Families / etc.) ── */
    .guide-sections { display: flex; flex-direction: column; gap: 60px; }
    .guide-section {}
    .guide-section-label {
      font-size: 10px; font-weight: 400; letter-spacing: 0.20em;
      text-transform: uppercase; color: var(--green);
      border-bottom: 1px solid var(--border);
      padding-bottom: 12px; margin-bottom: 28px;
    }
    .guide-section-title {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300;
      font-size: clamp(28px, 3.5vw, 38px);
      letter-spacing: 0.01em;
      color: var(--ink);
      margin-bottom: 20px;
    }
    .guide-text {
      font-size: 15px; font-weight: 300;
      color: var(--mid); line-height: 1.85;
      max-width: 720px;
    }
    .guide-text a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }

    /* ── Road Trip Stops ── */
    .rt-stops-list { display: flex; flex-direction: column; gap: 32px; margin-top: 40px; }
    .rt-stop-full {
      display: grid;
      grid-template-columns: 40px 1fr;
      gap: 0 24px;
      align-items: start;
    }
    .rt-stop-num-full {
      font-family: 'Cormorant Garant', serif;
      font-style: italic;
      font-size: 28px; font-weight: 300;
      color: var(--green);
      line-height: 1.2;
    }
    .rt-stop-body {}
    .rt-stop-name {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300; font-size: 22px;
      color: var(--ink); margin-bottom: 8px;
    }
    .rt-stop-desc {
      font-size: 14px; font-weight: 300;
      color: var(--mid); line-height: 1.8;
    }
    .rt-stop-desc a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }

    /* ── Season Grid ── */
    .season-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 16px;
      margin-top: 16px;
    }
    .season-card {
      background: #fff;
      border: 1px solid var(--border);
      border-radius: 3px;
      padding: 20px 22px;
    }
    .season-label {
      font-size: 10px; font-weight: 400; letter-spacing: 0.14em;
      text-transform: uppercase; color: var(--amber);
      margin-bottom: 8px;
    }
    .season-desc {
      font-size: 13.5px; font-weight: 300;
      color: var(--mid); line-height: 1.7;
    }

    /* ── Event Cards (full page) ── */
    .events-list { display: flex; flex-direction: column; gap: 0; }
    .event-full-card {
      padding: 48px 0;
      border-bottom: 1px solid var(--border);
    }
    .event-full-card:first-child { border-top: 1px solid var(--border); }
    .event-full-date {
      font-size: 11px; font-weight: 400; letter-spacing: 0.14em;
      text-transform: uppercase; color: var(--amber);
      margin-bottom: 10px;
    }
    .event-full-name {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300; font-size: clamp(26px, 3vw, 34px);
      line-height: 1.1; color: var(--ink); margin-bottom: 8px;
    }
    .event-full-location {
      font-size: 12px; font-weight: 300; color: var(--muted);
      margin-bottom: 18px;
      display: flex; align-items: center; gap: 8px;
    }
    .event-full-desc {
      font-size: 15px; font-weight: 300;
      color: var(--mid); line-height: 1.82;
      max-width: 720px; margin-bottom: 16px;
    }
    .event-full-link {
      font-size: 12px; font-weight: 400; letter-spacing: 0.06em;
      color: var(--green);
    }
    .event-full-link:hover { text-decoration: underline; }

    /* ── CTA Strip ── */
    .cta-strip {
      background: var(--green);
      padding: 72px 40px;
      text-align: center;
    }
    .cta-strip-title {
      font-family: 'Cormorant Garant', serif;
      font-weight: 300; font-style: italic;
      font-size: clamp(28px, 3.5vw, 40px);
      color: #fff; margin-bottom: 20px;
    }
    .cta-strip-links {
      display: flex; justify-content: center;
      gap: 12px; flex-wrap: wrap;
    }
    .btn-outline-white-sm {
      border: 1px solid rgba(255,255,255,0.4);
      color: rgba(255,255,255,0.82);
      font-size: 12px; font-weight: 400; letter-spacing: 0.08em;
      padding: 9px 20px; border-radius: 2px;
      transition: all 0.18s;
    }
    .btn-outline-white-sm:hover { border-color: #fff; color: #fff; }

    /* ── Mobile inner pages ── */
    @media (max-width: 900px) {
      .page-content { padding: 56px 24px; }
      .page-hero-content { padding: 0 24px 36px; }
      .listing-card { grid-template-columns: 1fr; gap: 0; }
      .listing-num { display: none; }
      .season-grid { grid-template-columns: 1fr; }
      .rt-stop-full { grid-template-columns: 1fr; }
      .rt-stop-num-full { display: none; }
    }

