/* Header — glassy over hero */
    .header--home {
      border-bottom-color: transparent;
      background: rgba(255, 255, 255, 0.72);
      backdrop-filter: blur(16px) saturate(1.2);
    }
    .header--home .brand {
      font-family: var(--fo-font-display);
      letter-spacing: -0.02em;
    }
    .header--home .nav a.is-active::after {
      height: 3px;
      border-radius: 3px;
      background: var(--fo-orange);
    }

    /* Hero — search-first */
    .hero--home {
      min-height: min(82vh, 720px);
      align-items: flex-end;
    }
    .hero--home .hero__bg {
      background: none;
      transform-origin: center center;
      animation: foHeroZoom 5s ease-out both;
      transition: opacity 850ms ease-in-out;
    }
    .hero--home .hero__media {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      object-position: center center;
      pointer-events: none;
    }
    .hero--home .hero__bg::after {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      background: linear-gradient(
        180deg,
        rgba(10, 18, 36, 0.38) 0%,
        rgba(10, 18, 36, 0.52) 42%,
        rgba(10, 18, 36, 0.78) 100%
      );
    }
    @keyframes foHeroZoom {
      from { transform: scale(1.08); }
      to { transform: scale(1); }
    }
    .hero--home .hero__inner {
      padding: 40px 0 48px;
      align-items: stretch;
      text-align: start;
      max-width: var(--fo-max);
    }
    .hero--home .hero__title {
      max-width: 14ch;
      font-family: var(--fo-font-display);
      font-size: clamp(1.75rem, 3.8vw, 2.55rem);
      font-weight: 700;
      line-height: 1.3;
      margin: 0 0 10px;
      color: #fff;
      text-shadow: 0 1px 2px rgba(0,0,0,0.35), 0 8px 32px rgba(0,0,0,0.45);
      animation: foRise 0.75s ease both;
    }
    .hero--home .hero__lead {
      max-width: none;
      width: max-content;
      margin: 0 0 24px;
      color: rgba(255, 255, 255, 0.92);
      font-size: 1rem;
      line-height: 1.65;
      white-space: nowrap;
      text-shadow: 0 1px 16px rgba(0,0,0,0.4);
      animation: foRise 0.75s 0.06s ease both;
    }
    .hero--home .compass {
      margin-top: 0;
      margin-inline: 0;
      width: min(100%, 820px);
      min-height: 76px;
      grid-template-columns: minmax(0, 0.38fr) minmax(0, 0.38fr) minmax(0, 0.24fr);
      border-radius: 18px;
      padding: 10px;
      background: #fff;
      box-shadow:
        0 24px 56px rgba(0, 0, 0, 0.32),
        0 0 0 1px rgba(255,255,255,0.2);
      animation: foRise 0.8s 0.12s ease both;
    }
    .hero--home .compass__submit {
      min-width: 0;
      background: linear-gradient(145deg, #F58220, #e06d10);
    }
    @keyframes foRise {
      from { opacity: 0; transform: translateY(22px); }
      to { opacity: 1; transform: none; }
    }

    /* Home section rhythm & spacing */
    .home-page main > .section {
      padding: clamp(28px, 4vw, 52px) 0;
    }
    .home-page .section--tight {
      padding: clamp(20px, 3vw, 32px) 0;
    }
    .home-page .section__head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 12px 24px;
      margin-bottom: 20px;
      flex-wrap: wrap;
    }
    .home-page .section__head-main {
      flex: 1;
      min-width: min(100%, 260px);
    }
    .home-page .section__link {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      min-height: 32px;
      height: 32px;
      padding-inline: 10px 6px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.88);
      border: 1px solid rgba(74, 144, 226, 0.1);
      color: #2b6cb0;
      font-weight: 600;
      font-size: .81rem;
      line-height: 1;
      white-space: nowrap;
      flex-shrink: 0;
      align-self: flex-end;
      margin-bottom: 2px;
      text-decoration: none;
      box-shadow: none;
      transition: background .18s ease, border-color .18s ease, color .18s ease;
    }
    .home-page .section__link-text {
      padding-inline-end: 0;
    }
    .home-page .section__link-icon {
      flex-shrink: 0;
      width: 18px;
      height: 18px;
      border-radius: 50%;
      background: rgba(245, 130, 32, 0.08);
      display: grid;
      place-items: center;
      color: var(--fo-orange);
      transition: transform .18s ease, background .18s ease;
    }
    .home-page .section__link-icon svg {
      width: 10px;
      height: 10px;
      display: block;
    }
    .home-page .section__link:hover {
      background: #fff;
      border-color: rgba(74, 144, 226, 0.12);
      color: #1e5aa8;
    }
    .home-page .section__link:hover .section__link-icon {
      background: rgba(245, 130, 32, 0.14);
      transform: translateX(-2px);
    }
    .home-page .section__link:focus-visible {
      outline: 2px solid var(--fo-blue);
      outline-offset: 2px;
      color: #1e5aa8;
    }
    .home-page .section__sub {
      margin-top: 4px;
      font-size: .88rem;
    }

    /* Section titles */
    .section__title {
      font-family: var(--fo-font-display);
      font-size: clamp(1.4rem, 2.6vw, 1.85rem);
      letter-spacing: -0.02em;
    }

    /* Categories — cinematic */
    .cats--home .cat {
      min-height: 200px;
      border-radius: 20px;
    }
    .cats--home .cat::after {
      background: linear-gradient(180deg, transparent 15%, rgba(8, 16, 36, 0.88) 100%);
    }
    .cats--home .cat__name {
      font-family: var(--fo-font-display);
      font-size: 1.12rem;
    }
    .cat__count { opacity: 0.88; }
    .home-page #destinations .section__eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-family: var(--fo-font-display);
      font-size: 0.78rem;
      letter-spacing: 0.04em;
      color: var(--fo-orange-dark);
      margin-bottom: 6px;
    }
    .home-page #destinations .section__eyebrow::before {
      display: block;
      content: "";
      width: 18px;
      height: 2px;
      background: linear-gradient(90deg, var(--fo-orange), var(--fo-blue));
      border-radius: 2px;
    }
    .home-page #destinations .section__sub {
      margin-top: 6px;
      font-size: .92rem;
    }

    /* Places */
    .section--alt {
      background: transparent;
      border: none;
    }
    .places--home {
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }
    .home-page .search-empty .btn {
      margin-top: 12px;
    }
    .places-toolbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
      margin-bottom: 18px;
    }
    .places-toolbar .filters-row {
      margin-bottom: 0;
    }

    .filter-chip {
      display: inline-flex; align-items: center;
      padding: 9px 18px; border-radius: 999px;
      border: 1px solid var(--fo-border); background: rgba(255,255,255,0.85);
      font-size: 0.85rem; font-weight: 500; color: var(--fo-text-muted);
      cursor: pointer;
      transition: background .15s, color .15s, border-color .15s, transform .15s;
    }
    .filter-chip:hover { border-color: #c5d4e8; color: var(--fo-text); }
    .filter-chip.is-active {
      background: linear-gradient(145deg, var(--fo-blue), var(--fo-blue-dark));
      border-color: transparent; color: #fff;
      box-shadow: 0 6px 16px rgba(74, 144, 226, 0.28);
    }

    /* Events — same ev-card as /events; layout grid only */
    .home-page #events {
      content-visibility: visible;
      contain-intrinsic-size: auto;
    }
    .home-page .events-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 14px;
      align-items: stretch;
    }

    /* Offers — 4-up grid */
    .home-page .offers {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 14px;
    }
    .home-page .offers .place__heart { display: none; }
    .home-page .offer-wrap { min-height: 240px; }
    .home-page .offer {
      min-height: 240px;
      border-radius: 20px;
      cursor: pointer;
      transition: transform .28s, box-shadow .28s;
      box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
      position: relative;
    }
    .home-page .offer:hover {
      transform: translateY(-3px);
      box-shadow: 0 16px 36px rgba(15, 23, 42, 0.14);
    }
    .home-page .offer::after {
      background: linear-gradient(195deg, transparent 8%, rgba(8, 16, 36, 0.9) 100%);
    }
    .home-page .offer__body {
      display: flex;
      flex-direction: column;
      gap: 6px;
      min-height: 100%;
      justify-content: flex-end;
    }
    .home-page .offer__tag {
      position: absolute;
      top: 12px;
      inset-inline-start: 12px;
      z-index: 1;
      align-self: auto;
      background: linear-gradient(145deg, #F58220, #e06d10);
      box-shadow: 0 4px 12px rgba(245, 130, 32, 0.35);
      font-size: .78rem;
    }
    .home-page .offer__name {
      font-size: 1rem;
      line-height: 1.35;
    }
    .home-page .offer__place {
      font-size: .82rem;
      opacity: .88;
    }
    .home-page .offer__cta {
      display: inline-block;
      margin-top: 4px;
      font-size: .78rem;
      font-weight: 600;
      color: rgba(255, 255, 255, 0.85);
      letter-spacing: 0.01em;
    }
    .home-page .offer:hover .offer__cta {
      color: #fff;
    }

    /* Categories compact row — Home destinations slot */
    .home-page #destinations {
      content-visibility: visible;
      contain-intrinsic-size: auto;
    }
    .home-page #destinations .cat:focus-visible {
      outline: 2px solid var(--fo-orange);
      outline-offset: 2px;
    }

    /* How — light journey stepper */
    .section--how {
      content-visibility: visible;
      contain-intrinsic-size: auto;
      padding-block: clamp(28px, 3.5vw, 40px);
      background: transparent;
      border: none;
    }
    .section--how .section__head {
      margin-bottom: 16px;
      justify-content: center;
      text-align: center;
    }
    .journey {
      display: flex;
      align-items: stretch;
      justify-content: center;
      gap: 0;
      margin: 0;
      padding: 18px 22px;
      list-style: none;
      border-radius: 18px;
      background:
        linear-gradient(135deg, rgba(248, 250, 252, 0.92) 0%, rgba(255, 255, 255, 0.98) 100%);
      border: 1px solid rgba(232, 236, 240, 0.75);
      box-shadow: 0 1px 4px rgba(15, 23, 42, 0.03);
    }
    .journey__step {
      flex: 1;
      display: flex;
      align-items: flex-start;
      gap: 11px;
      min-width: 0;
      padding: 2px 6px;
      transition: transform .2s ease;
    }
    .journey__step:hover {
      transform: translateY(-1px);
    }
    .journey__num {
      flex-shrink: 0;
      font-family: var(--fo-font-display);
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      color: var(--fo-blue);
      opacity: 0.45;
      line-height: 1;
      padding-top: 10px;
    }
    .journey__icon {
      flex-shrink: 0;
      width: 36px;
      height: 36px;
      border-radius: 50%;
      background: rgba(74, 144, 226, 0.08);
      color: var(--fo-blue-dark);
      display: grid;
      place-items: center;
      transition: background .2s ease, color .2s ease;
    }
    .journey__step:hover .journey__icon {
      background: rgba(74, 144, 226, 0.14);
      color: var(--fo-blue);
    }
    .journey__icon svg {
      width: 18px;
      height: 18px;
    }
    .journey__text {
      min-width: 0;
      padding-top: 1px;
    }
    .journey__text h3 {
      font-family: var(--fo-font-display);
      font-size: .9rem;
      font-weight: 700;
      line-height: 1.3;
      margin: 0 0 3px;
      color: var(--fo-text);
    }
    .journey__text p {
      font-size: .76rem;
      color: var(--fo-text-muted);
      line-height: 1.45;
      margin: 0;
    }
    .journey__link {
      flex: 0 0 clamp(20px, 3vw, 36px);
      align-self: center;
      height: 1px;
      margin-top: -6px;
      background: linear-gradient(90deg, rgba(74, 144, 226, 0.08), rgba(74, 144, 226, 0.22), rgba(74, 144, 226, 0.08));
      position: relative;
    }
    .journey__link::after {
      content: "";
      position: absolute;
      inset-inline-end: 0;
      top: 50%;
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: rgba(74, 144, 226, 0.28);
      transform: translateY(-50%);
    }

    /* Partner join band — premium compact */
    .home-page #partner {
      content-visibility: visible;
      contain-intrinsic-size: auto;
    }
    .home-page #partner .partner {
      position: relative;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      padding: 36px 40px;
      border-radius: 24px;
      color: #fff;
      background: linear-gradient(125deg, #357ABD 0%, #4A90E2 52%, #2b6cb0 100%);
      box-shadow: 0 8px 22px rgba(53, 122, 189, 0.16);
    }
    .home-page #partner .partner::before {
      opacity: 0.18;
    }
    .home-page #partner .partner__main {
      display: flex;
      align-items: center;
      gap: 20px;
      flex: 1;
      min-width: 0;
    }
    .home-page #partner .partner__icon {
      flex-shrink: 0;
      width: 68px;
      height: 68px;
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.95);
      display: grid;
      place-items: center;
      color: var(--fo-blue);
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
    }
    .home-page #partner .partner__icon svg {
      width: 28px;
      height: 28px;
    }
    .home-page #partner .partner__copy {
      min-width: 0;
    }
    .home-page #partner .partner__eyebrow {
      font-size: .82rem;
      font-weight: 600;
      opacity: .85;
      margin: 0 0 4px;
    }
    .home-page #partner .partner__title {
      font-family: var(--fo-font-display);
      font-size: clamp(1.15rem, 2vw, 1.35rem);
      font-weight: 700;
      line-height: 1.35;
      margin: 0 0 4px;
    }
    .home-page #partner .partner__text {
      font-size: .9rem;
      line-height: 1.5;
      opacity: .9;
      margin: 0;
      max-width: none;
      white-space: nowrap;
    }
    .home-page #partner .partner__cta {
      flex-shrink: 0;
      white-space: nowrap;
    }

    /* Partner join band — shared surface */
    .partner {
      position: relative;
      overflow: hidden;
      border-radius: 24px;
      padding: 36px 40px;
      background:
        radial-gradient(circle at 0% 100%, rgba(245, 130, 32, 0.35), transparent 45%),
        linear-gradient(125deg, #2b6cb0 0%, #4A90E2 48%, #357ABD 100%);
      box-shadow: 0 20px 48px rgba(53, 122, 189, 0.28);
    }
    .partner::before {
      content: "";
      position: absolute;
      inset: 0;
      background-image: radial-gradient(rgba(255,255,255,0.12) 1px, transparent 1px);
      background-size: 18px 18px;
      opacity: 0.45;
      pointer-events: none;
    }
    .partner > * { position: relative; z-index: 1; }
    .partner__icon {
      width: 68px; height: 68px; border-radius: 18px;
      background: rgba(255,255,255,0.95);
      display: grid; place-items: center; color: var(--fo-blue);
      box-shadow: 0 8px 20px rgba(0,0,0,0.12);
    }
    .partner__icon svg { width: 28px; height: 28px; }
    .partner__title {
      font-family: var(--fo-font-display);
    }
    .partner .btn--white {
      box-shadow: 0 8px 24px rgba(0,0,0,0.15);
      transition: transform .2s, box-shadow .2s;
    }
    .partner .btn--white:hover {
      transform: translateY(-2px);
      box-shadow: 0 12px 28px rgba(0,0,0,0.2);
    }

    @media (max-width: 1100px) {
      .home-page .events-grid,
      .home-page .offers { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 900px) {
      .places--home { grid-template-columns: 1fr 1fr; }
      .cats--home .cat { min-height: 170px; }
      .hero--home { min-height: min(78vh, 640px); }
      .journey { padding: 16px 14px; gap: 0; }
      .journey__step { gap: 9px; padding: 2px 4px; }
      .journey__link { flex-basis: 16px; }
      .journey__text h3 { font-size: .86rem; }
      .journey__text p { font-size: .74rem; }
    }
    @media (max-width: 720px) {
      .places--home { grid-template-columns: 1fr; }
      .home-page #destinations .cats { grid-template-columns: 1fr 1fr; gap: 10px; }
      .home-page #destinations .cat { min-height: 150px; }
      .home-page .events-grid,
      .home-page .offers { grid-template-columns: 1fr; gap: 12px; }
      .home-page .offer,
      .home-page .offer-wrap { min-height: 220px; }
      .header__actions .btn--ghost,
      .header__actions .btn--secondary { display: none; }
      .hero--home .hero__inner { padding: 32px 0 36px; }
      .hero--home .hero__lead { font-size: clamp(0.8rem, 3.5vw, 1rem); }
      .hero--home .compass { grid-template-columns: 1fr; }
      .compass__submit { width: 100%; min-height: 48px; }
      .places-toolbar { margin-bottom: 14px; }
      .home-page .section__head {
        align-items: flex-start;
      }
      .home-page .section__link {
        align-self: flex-start;
        margin-bottom: 0;
      }
      .journey {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 14px 16px;
      }
      .journey__link {
        flex: none;
        width: auto;
        height: 12px;
        margin: 0;
        margin-inline-start: 28px;
        background: none;
        border-inline-start: 1px dashed rgba(74, 144, 226, 0.18);
      }
      .journey__link::after { display: none; }
      .journey__step {
        padding: 8px 0;
      }
      .journey__num { padding-top: 9px; }
      .home-page #partner .partner {
        flex-direction: column;
        align-items: stretch;
        gap: 20px;
        padding: 28px 24px;
      }
      .home-page #partner .partner__main {
        align-items: flex-start;
        gap: 16px;
      }
      .home-page #partner .partner__text {
        max-width: none;
        white-space: normal;
      }
      .home-page #partner .partner__cta {
        width: 100%;
        text-align: center;
        justify-content: center;
      }
    }
    @media (max-width: 480px) {
      .home-page .section__head {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .hero--home .hero__bg { animation: none; transition: none; }
      .hero--home .hero__media { animation: none; }
      .hero--home .hero__title,
      .hero--home .hero__lead,
      .hero--home .compass { animation: none; }
      .journey__step:hover { transform: none; }
      .home-page #partner .partner__cta:hover { transform: none; }
      .home-page .section__link:hover .section__link-icon { transform: none; }
      html[dir="ltr"] .home-page .section__link:hover .section__link-icon { transform: none; }
    }

    /* Home — no content-visibility deferral (stable scroll/screenshots) */
    .home-page main > .section {
      content-visibility: visible;
      contain-intrinsic-size: auto;
    }
    .home-page main > .section[id] {
      scroll-margin-top: var(--fo-header);
    }
    html:has(.home-page) {
      scroll-padding-top: var(--fo-header);
    }

    html[dir="ltr"] .home-page .section__link-icon svg {
      transform: scaleX(-1);
    }
    html[dir="ltr"] .home-page .section__link:hover .section__link-icon {
      transform: translateX(2px);
    }
    html[dir="rtl"] .journey__step:first-child .journey__icon svg {
      transform: scaleX(-1);
    }

/* Database hero copy can be longer than the static headline. */
.hero--home.hero--db .hero__lead {
  width: auto;
  white-space: normal;
  overflow-wrap: anywhere;
}
.hero--home.hero--db .hero__title { overflow-wrap: anywhere; }
