html,body{background:#173260!important}#pt-overlay{position:fixed!important}#pt-overlay::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-58%);width:clamp(280px,55vw,620px);height:clamp(280px,55vw,620px);border-radius:50%;background:radial-gradient(circle,rgba(44,74,138,0.28) 0%,transparent 70%);pointer-events:none;z-index:0}

/* ─────────────────────────────────────────────────────────────────────────
       RATES PAGE — Scoped Styles
       All improvements documented inline.
    ───────────────────────────────────────────────────────────────────────── */

    /* ── Utility ── */
    /* ── Page Hero — matches global .page-hero blue gradient ── */
    .rates-hero {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: calc(var(--nav-height) + var(--space-32)) var(--space-6) var(--space-20);
      text-align: center;
      overflow: hidden;
      background: linear-gradient(
        160deg,
        #0F1F45 0%,
        #173260 40%,
        #243F78 75%,
        #2C4A8A 100%
      );
      animation: pageHeroIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
    }
    .rates-hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 80% 60% at 50% 110%, rgba(174, 205, 232, 0.28) 0%, transparent 65%),
        radial-gradient(ellipse 50% 40% at 80% -10%, rgba(255, 255, 255, 0.10) 0%, transparent 60%);
      pointer-events: none;
    }
    .rates-hero::after {
      content: '';
      display: block;
      width: 36px;
      height: 1px;
      background: rgba(255, 255, 255, 0.50);
      margin: 0 auto var(--space-5);
      order: -1;
    }
    .rates-hero__eyebrow {
      font-family: var(--font-sans);
      font-size: var(--text-xs);
      font-weight: 400;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.60);
      margin-bottom: var(--space-4);
    }
    .rates-hero__title {
      font-family: var(--font-script);
      font-style: italic;
      font-size: clamp(3rem, 7vw, 5.5rem);
      font-weight: 400;
      color: #FFFFFF;
      line-height: 1.1;
      letter-spacing: -0.01em;
      margin-bottom: var(--space-6);
      text-shadow: 0 2px 32px rgba(0, 0, 0, 0.12);
    }
    .rates-hero__subtitle {
      font-family: var(--font-serif);
      font-style: italic;
      font-weight: 300;
      font-size: clamp(1rem, 2.5vw, 1.25rem);
      color: rgba(255, 255, 255, 0.72);
      max-width: 52ch;
      margin-inline: auto;
      line-height: 1.8;
      letter-spacing: 0.03em;
    }

    /* ── Experience Section ──
       IMPROVEMENT: Two-column layout (text left, rates right) on desktop.
       On mobile, stacks vertically. Mirrors the Wix alternating image/text
       layout but with a cleaner, more editorial feel.
    ── */
    .experience-section {
      padding: var(--section-v) var(--section-h);
    }
    .experience-section.section-top {
      padding-top: calc(var(--nav-height) + var(--space-32));
    }
    .experience-section:nth-child(even) {
      background: var(--color-warm-white);
    }
    .experience-section:nth-child(odd) {
      background: var(--color-cream);
    }
    .experience-inner {
      max-width: 1100px;
      margin-inline: auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--space-12);
      align-items: center;
    }

    /* 3-col override */
    .experience-inner--3col {
      grid-template-columns: 1fr 0.65fr 1.3fr;
      gap: var(--space-8);
      align-items: start;
    }
    .experience-section:nth-child(even) .experience-inner--3col {
      direction: ltr;
    }
    .experience-section:nth-child(even) .experience-inner--3col > * {
      direction: ltr;
    }

    /* 2-col override: equal columns, centred */
    .experience-inner--2col {
      max-width: 1100px;
      margin-inline: auto;
      grid-template-columns: 1fr 1fr;
      gap: clamp(2.5rem, 6vw, 4rem);
      align-items: start;
    }

    .experience-photo img {
      width: 100%;
      aspect-ratio: 2 / 3;
      object-fit: cover;
      border-radius: var(--radius-photo);
    }
    .experience-photo--secondary {
      margin-top: var(--space-6);
    }
    .experience-photo--secondary img {
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      border-radius: var(--radius-photo);
    }

    .experience-info {}

    .experience-header {
      display: flex;
      align-items: baseline;
      gap: var(--space-4);
      flex-wrap: wrap;
      margin-bottom: var(--space-3);
    }
    .experience-label {
      font-family: var(--font-sans);
      font-size: var(--text-xs);
      font-weight: 400;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--color-gold);
      margin-bottom: 0;
      white-space: nowrap;
    }
    .experience-title {
      font-family: var(--font-script);
      font-style: italic;
      font-size: clamp(2rem, 3.5vw, 3.2rem);
      font-weight: 400;
      color: var(--color-charcoal);
      line-height: 1.1;
      letter-spacing: -0.01em;
      margin-bottom: 0;
      white-space: nowrap;
    }
    .experience-tagline {
      font-family: var(--font-serif);
      font-style: italic;
      font-weight: 300;
      font-size: clamp(1.15rem, 1.8vw, 1.4rem);
      color: var(--color-stone);
      line-height: 2.0;
      letter-spacing: 0.03em;
      margin-bottom: var(--space-8);
    }

    /* ── Rate Table ──
       IMPROVEMENT: Clean table-style rate list replaces the flat Wix text list.
       Each row has a duration label and price, separated by a dotted line.
       Hover highlights the row subtly.
    ── */
    .rate-table {
      width: 100%;
      border-collapse: collapse;
    }
    .rate-table__row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: var(--space-3) 0;
      border-bottom: 1px solid var(--color-border);
      transition: background var(--transition-fast);
    }
    .rate-table__row:last-child {
      border-bottom: none;
    }
    .rate-table__duration {
      font-family: var(--font-sans);
      font-size: var(--text-lg);
      font-weight: 500;
      color: var(--color-charcoal);
      letter-spacing: 0.01em;
    }
    .rate-table__price {
      font-family: var(--font-serif);
      font-style: italic;
      font-size: var(--text-xl);
      font-weight: 300;
      color: var(--color-charcoal);
      letter-spacing: -0.01em;
    }

    /* ── Social Date Separator ──
       Inline separator row inside the rate-table — no box, no border.
       Matches the visual language of the rows above it.
    ── */
    .rate-table__separator {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      padding: var(--space-3) 0 var(--space-2);
      border-top: 1px solid var(--color-border);
      margin-top: var(--space-1);
      gap: var(--space-4);
    }
    .rate-table__separator--first {
      border-top: none;
      padding-top: 0;
    }
    .rate-table--spaced {
      margin-top: var(--space-4);
    }
    .rate-table__section-label {
      font-family: var(--font-sans);
      font-size: var(--text-xs);
      font-weight: 400;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--color-gold);
    }
    .rate-table__section-desc {
      font-family: var(--font-sans);
      font-size: var(--text-xs);
      color: var(--color-stone);
      letter-spacing: 0.01em;
      text-align: right;
    }

    /* ── Sleepover Section ──
       IMPROVEMENT: Full-width navy section with centered content mirrors the
       Wix ocean-background section. Uses the site's navy color instead of an
       image for performance, with a subtle texture via CSS gradient.
    ── */
    /* ═══════════════════════════════════════════════════
       Sleepover — Starry Night with Soft Bloom
    ═══════════════════════════════════════════════════ */
    .sleepover-section {
      position: relative;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      padding: 5rem 1.5rem;
      background:
        radial-gradient(ellipse at 35% 25%, rgba(44,74,128,0.25) 0%, transparent 50%),
        radial-gradient(ellipse at 70% 75%, rgba(29,61,112,0.2) 0%, transparent 45%),
        radial-gradient(ellipse at 50% 50%, rgba(44,74,128,0.08) 0%, transparent 70%),
        linear-gradient(172deg, #050d1e 0%, #0c1a36 25%, var(--color-ink) 45%, #1a3868 65%, #0f2040 80%, #060e20 100%);
    }

    /* Star canvas */
    .sleepover-stars-canvas {
      position: absolute; inset: 0; pointer-events: none;
    }

    /* Nebula glow layers */
    .sleepover-nebula {
      position: absolute; border-radius: 50%; pointer-events: none;
      filter: blur(60px); z-index: 0;
    }
    .sleepover-nebula--a {
      width: 500px; height: 400px; top: 5%; left: -5%;
      background: radial-gradient(ellipse, rgba(44,74,128,0.1) 0%, transparent 70%);
      animation: sleepover-nebula-a 25s ease-in-out infinite;
    }
    .sleepover-nebula--b {
      width: 400px; height: 350px; bottom: 10%; right: -3%;
      background: radial-gradient(ellipse, rgba(29,61,112,0.08) 0%, transparent 65%);
      animation: sleepover-nebula-b 30s ease-in-out infinite;
    }
    .sleepover-nebula--c {
      width: 350px; height: 300px; top: 35%; left: 50%;
      transform: translateX(-50%);
      background: radial-gradient(ellipse, rgba(196,216,234,0.03) 0%, transparent 60%);
    }
    @keyframes sleepover-nebula-a {
      0%, 100% { transform: translate(0, 0); }
      50% { transform: translate(12px, -8px); }
    }
    @keyframes sleepover-nebula-b {
      0%, 100% { transform: translate(0, 0); }
      50% { transform: translate(-10px, 6px); }
    }

    /* Étoiles filantes SVG */
    .sleepover-etoiles-svg {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      pointer-events: none; z-index: 1;
    }
    .sleepover-etoiles-svg .ef-head {
      fill: var(--color-ivory);
      filter: drop-shadow(0 0 4px rgba(216,237,248,0.8))
             drop-shadow(0 0 10px rgba(196,216,234,0.4));
    }
    .sleepover-etoiles-svg .ef-trail {
      stroke-width: 1.5;
      stroke-linecap: round;
    }

    /* Content block */
    .sleepover-content {
      position: relative; z-index: 2;
      text-align: center; max-width: 560px; width: 100%;
      padding: 2rem 1rem;
    }
    .sleepover-content__eyebrow {
      font-family: var(--font-sans); font-size: 0.7rem; font-weight: 500;
      letter-spacing: 0.35em; text-transform: uppercase;
      color: var(--color-stone); margin-bottom: 1.8rem;
    }
    .sleepover-content__title {
      font-family: var(--font-script); font-style: italic; font-weight: 400;
      font-size: clamp(3.2rem, 7.5vw, 5rem);
      color: var(--color-ivory); line-height: 1.05; margin-bottom: 2.5rem;
      text-shadow: 0 0 40px rgba(196,216,234,0.08);
    }
    .sleepover-content__body {
      font-family: var(--font-serif);
      font-size: clamp(1.25rem, 3vw, 1.5rem); font-weight: 300;
      font-style: italic; line-height: 1.85;
      color: var(--color-blush-deep); max-width: 44ch; margin: 0 auto 3.5rem;
    }

    /* Rate block */
    .sleepover-rate-block {
      display: flex; flex-direction: column; align-items: center; gap: 0.2rem;
    }
    .sleepover-rate-block__label {
      font-family: var(--font-sans); font-size: 0.68rem; font-weight: 500;
      letter-spacing: 0.3em; text-transform: uppercase;
      color: var(--color-stone); margin-bottom: 0.6rem;
    }
    .sleepover-rate-block__stars {
      display: flex; align-items: center; gap: 10px;
      margin-bottom: 1rem; color: var(--color-stone);
      font-size: 0.35rem; letter-spacing: 3px; opacity: 0.5;
    }
    .sleepover-rate-block__stars span {
      width: 45px; height: 1px;
      background: linear-gradient(90deg, transparent, rgba(160,174,191,0.25), transparent);
    }
    .sleepover-rate-block__price {
      font-family: var(--font-serif); font-style: italic;
      font-size: clamp(2.5rem, 5.5vw, 3.5rem); font-weight: 300;
      color: var(--color-ivory); line-height: 1;
    }
    .sleepover-rate-block__duration {
      font-family: var(--font-sans); font-size: 0.9rem;
      color: var(--color-stone); margin-top: 0.5rem; letter-spacing: 0.05em;
    }
    .sleepover-rate-block__note {
      margin-top: 2.5rem; font-family: var(--font-sans);
      font-size: 1rem; color: var(--color-stone);
    }
    .sleepover-rate-block__note a {
      color: var(--color-blush); text-decoration: underline;
      text-decoration-thickness: 1px; text-underline-offset: 3px;
      transition: color 0.3s;
    }
    .sleepover-rate-block__note a:hover { color: var(--color-ivory); }

    /* Soft Bloom animation */
    .sleepover-bloom { opacity: 0; }
    .sleepover-bloom.is-visible {
      animation: sleepover-bloom-in 1.4s cubic-bezier(0.23, 1, 0.32, 1) both;
    }
    .sleepover-content__eyebrow.is-visible { animation-delay: 0.1s; }
    .sleepover-content__title.is-visible    { animation-delay: 0.35s; }
    .sleepover-content__body.is-visible     { animation-delay: 0.65s; }
    .sleepover-rate-block.is-visible        { animation-delay: 0.95s; }

    @keyframes sleepover-bloom-in {
      0% {
        opacity: 0;
        filter: blur(12px);
        transform: scale(0.92);
      }
      60% {
        filter: blur(0px);
      }
      100% {
        opacity: 1;
        filter: blur(0px);
        transform: scale(1);
      }
    }

    /* Responsive */
    @media (max-width: 768px) {
      .sleepover-section { padding: 4rem 1.2rem; }
      .sleepover-nebula { filter: blur(40px); }
    }
    @media (max-width: 480px) {
      .sleepover-content__body { max-width: 30ch; }
    }

    /* ── FAQ Section ──
       IMPROVEMENT: Accessible accordion with smooth CSS transitions.
       Each item uses <details>/<summary> for native keyboard support,
       plus ARIA attributes for screen readers. Replaces Wix's JS-heavy FAQ.
    ── */
    .faq-section {
      background: var(--color-cream);
      padding: var(--section-v) var(--section-h);
    }
    .faq-section__header {
      text-align: center;
      margin-bottom: var(--space-12);
    }
    .faq-section__title {
      font-family: var(--font-script);
      font-style: italic;
      font-size: clamp(2.6rem, 4.5vw, 3.6rem);
      font-weight: 400;
      color: var(--color-charcoal);
      line-height: 1.1;
      letter-spacing: -0.01em;
    }

    .faq-list {
      max-width: 760px;
      margin-inline: auto;
      list-style: none;
      padding: 0;
    }
    .faq-item {
      border-bottom: 1px solid var(--color-border);
    }
    .faq-item:first-child {
      border-top: 1px solid var(--color-border);
    }

    /* IMPROVEMENT: Using <details>/<summary> for native accordion behavior —
       zero JS required, keyboard accessible, screen-reader friendly. */
    .faq-item details {
      padding: var(--space-6) 0;
    }
    .faq-item summary {
      display: flex;
      justify-content: space-between;
      align-items: center;
      cursor: pointer;
      list-style: none;
      font-family: var(--font-serif);
      font-style: italic;
      font-size: var(--text-md);
      font-weight: 300;
      color: var(--color-charcoal);
      letter-spacing: 0.01em;
      user-select: none;
      gap: var(--space-4);
      transition: color var(--transition-fast);
    }
    .faq-item summary::-webkit-details-marker { display: none; }
    .faq-item summary:hover {
      color: var(--color-charcoal);
    }
    .faq-item summary:focus-visible {
      outline: 2px solid var(--color-gold);
      outline-offset: 4px;
      border-radius: 2px;
    }

    .faq-chevron {
      flex-shrink: 0;
      width: 18px;
      height: 18px;
      color: var(--color-gold);
      transition: transform 0.3s ease;
    }
    details[open] .faq-chevron {
      transform: rotate(180deg);
    }

    .faq-answer {
      padding-top: var(--space-4);
      padding-right: var(--space-8);
      font-family: var(--font-serif);
      font-style: italic;
      font-weight: 300;
      font-size: var(--text-base);
      color: var(--color-stone);
      line-height: 2.0;
    }
    .faq-answer p + p {
      margin-top: var(--space-5);
    }

    /* ── Policy Note ── */
    .policy-strip {
      background: var(--color-charcoal);
      padding: var(--space-16) var(--section-h);
    }
    .policy-strip__inner {
      max-width: 900px;
      margin-inline: auto;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-8);
      text-align: center;
    }
    .policy-item__icon {
      font-family: var(--font-serif);
      font-style: italic;
      font-size: 1.8rem;
      color: var(--color-gold);
      margin-bottom: var(--space-3);
    }
    .policy-item__title {
      font-family: var(--font-sans);
      font-size: var(--text-caption);
      font-weight: 400;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(250,248,244,0.45);
      margin-bottom: var(--space-2);
    }
    .policy-item__value {
      font-family: var(--font-serif);
      font-style: italic;
      font-size: 1.05rem;
      color: rgba(250,248,244,0.72);
      line-height: 1.5;
    }

    /* ── CTA Section ── */
    .rates-cta {
      background: var(--color-ivory);
      padding: var(--space-20) var(--space-6);
      text-align: center;
    }
    .rates-cta__text {
      font-family: var(--font-serif);
      font-style: italic;
      font-size: clamp(1.2rem, 3vw, 1.7rem);
      color: var(--color-charcoal);
      margin-bottom: var(--space-8);
      max-width: 52ch;
      margin-inline: auto;
      line-height: 1.6;
    }

    /* ── Responsive ── */
    @media (max-width: 768px) {
      .experience-inner,
      .experience-inner--2col,
      .experience-inner--3col {
        grid-template-columns: 1fr;
        gap: var(--space-10);
        direction: ltr !important;
      }
      .experience-title {
        white-space: normal;
      }
      .experience-section:nth-child(even) .experience-inner > * {
        direction: ltr;
      }
      .policy-strip__inner {
        grid-template-columns: 1fr;
        gap: var(--space-6);
      }

      /* Disable sticky on all experience photos — prevents overlap on mobile */
      .experience-photo {
        position: static !important;
      }

      /* Center specific elements on mobile — targeted selectors */
      .experience-title,
      .experience-tagline,
      .experience-label,
      .experience-header,
      .sleepover-section .experience-title,
      .sleepover-section .experience-tagline,
      .sleepover-section .sleepover-rate,
      .sleepover-section .sleepover-note,
      .faq-section__header,
      .bpw-hdr,
      .bpw-cta {
        text-align: center;
      }

      /* Rate table rows: keep price + duration on opposite ends */
      .rate-table__row,
      .rate-table__separator {
        text-align: left !important;
      }
      .rate-table__duration,
      .rate-table__section-label,
      .rate-table__section-desc {
        text-align: left !important;
      }
      .rate-table__price {
        text-align: right !important;
      }

      /* FAQ answer text stays left for readability */
      .faq-item details > p,
      .faq-item details > div,
      .faq-item summary,
      .faq-answer {
        text-align: left !important;
      }

      /* GFE: text col is first in DOM, photo col is second — swap so photo shows first */
      [aria-labelledby="gfe-heading"] .experience-inner--2col {
        display: flex;
        flex-direction: column;
      }
      [aria-labelledby="gfe-heading"] .experience-inner--2col .experience-photo {
        order: -1;
      }

      /* Signature: photo col is already first in DOM — ensure it stays first */
      [aria-labelledby="signature-heading"] .experience-inner--2col {
        display: flex;
        flex-direction: column;
        align-items: center;
      }
      [aria-labelledby="signature-heading"] .experience-inner--2col .experience-photo {
        order: -1;
        width: 100%;
      }
      [aria-labelledby="signature-heading"] .experience-inner--2col > div:not(.experience-photo) {
        width: 100%;
        text-align: center !important;
      }
      [aria-labelledby="signature-heading"] .experience-title,
      [aria-labelledby="signature-heading"] .experience-tagline,
      [aria-labelledby="signature-heading"] .experience-label {
        text-align: center !important;
        display: block;
      }

      /* Also force GFE text center the same way */
      [aria-labelledby="gfe-heading"] .experience-inner--2col {
        align-items: center;
      }
      [aria-labelledby="gfe-heading"] .experience-inner--2col > div:not(.experience-photo) {
        width: 100%;
        text-align: center !important;
      }
      [aria-labelledby="gfe-heading"] .experience-title,
      [aria-labelledby="gfe-heading"] .experience-tagline,
      [aria-labelledby="gfe-heading"] .experience-label {
        text-align: center !important;
        display: block;
      }
    }
    @media (max-width: 480px) {
      .rates-hero { padding-top: calc(var(--nav-height) + var(--space-12)); }
      .experience-section { padding: var(--section-v) var(--section-h); }
      .experience-section.section-top { padding-top: calc(var(--nav-height) + var(--space-16)); }
      .social-date-block { padding: var(--space-5) var(--section-h); }
      .faq-item details { padding: var(--space-5) 0; }
    }

    /* ── Photo Hero ── */
    .rates-photo-hero {
      position: relative;
      height: min(88vh, 920px);
      overflow: hidden;
      display: flex;
      align-items: flex-end;
      background: #1a2d4a;
    }
    .rates-photo-hero__img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 20%;
      transform: scale(1.02);
      transition: transform 8s ease;
    }
    .rates-photo-hero__img.is-loaded {
      transform: scale(1);
    }
    .rates-photo-hero__overlay {
      display: block;
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to bottom,
        rgba(23,50,96,0.10) 0%,
        rgba(23,50,96,0.0) 25%,
        rgba(23,50,96,0.58) 60%,
        rgba(23,50,96,0.92) 100%
      );
    }
    .rates-photo-hero__content {
      position: relative;
      z-index: 2;
      width: 100%;
      text-align: center;
      padding: var(--space-8) var(--space-6) var(--space-20);
    }
    .rates-photo-hero__eyebrow {
      display: block;
      font-family: var(--font-sans);
      font-size: var(--text-xs);
      font-weight: 400;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.60);
      margin-bottom: var(--space-4);
    }
    .rates-photo-hero__title {
      font-family: var(--font-script);
      font-style: italic;
      font-size: clamp(3rem, 7.5vw, 5.5rem);
      font-weight: 400;
      color: #fff;
      line-height: 1.1;
      letter-spacing: -0.01em;
      text-shadow: 0 2px 40px rgba(0,0,0,0.15);
      margin: 0;
    }
    /* Remove extra top padding from first section since hero handles spacing */
    @media (max-width: 1024px) {
      .rates-photo-hero { height: min(78vh, 780px); }
    }
    @media (max-width: 768px) {
      .rates-photo-hero { height: min(70vh, 600px); }
      .rates-photo-hero__content { padding-bottom: var(--space-14); }
      .rates-photo-hero__img { object-position: 65% 20%; }
    }

    /* ── Rates Summary Bar ── */
    .rates-summary-bar {
      background: var(--color-ivory);
      padding: var(--space-10) var(--section-h);
    }
    .rates-summary-bar__inner {
      max-width: 1100px;
      margin-inline: auto;
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
    }
    .rates-summary-col {
      padding: var(--space-6) var(--space-8);
      text-align: center;
      border-right: 1px solid var(--color-border);
    }
    .rates-summary-col:first-child {
      border-left: 1px solid var(--color-border);
    }
    .rates-summary-col .eyebrow {
      margin-bottom: var(--space-2);
    }
    .rates-summary-col .heading-serif {
      font-size: clamp(1.4rem, 2.8vw, 2rem);
    }
    @media (max-width: 600px) {
      .rates-summary-bar__inner {
        grid-template-columns: 1fr;
      }
      .rates-summary-col {
        border-right: none;
        border-bottom: 1px solid var(--color-border);
        padding: var(--space-5) var(--space-4);
      }
      .rates-summary-col:first-child {
        border-left: none;
        border-top: 1px solid var(--color-border);
      }
    }

    .rates-mood-line {
      padding: var(--space-10) var(--section-h) var(--space-6);
      text-align: center;
      background: var(--color-ivory);
    }
    .rates-mood-line__text {
      font-family: var(--font-serif);
      font-style: italic;
      font-weight: 300;
      font-size: clamp(1rem, 1.8vw, 1.2rem);
      color: var(--color-stone);
      max-width: 52ch;
      margin-inline: auto;
      line-height: 1.9;
      letter-spacing: 0.02em;
    }

/* Share Tech Mono font loaded via <link> in rates.html <head> */

@keyframes bpFadeUp{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
@keyframes bpBounce{0%,100%{transform:translateY(0);}30%{transform:translateY(-5px);}60%{transform:translateY(-2px);}80%{transform:translateY(-4px);}}

.bpw{
  background: var(--color-ivory);
  padding:72px clamp(12px,4vw,24px) 80px;
  font-family:'Jost',sans-serif;
  position:relative;
  overflow:hidden;
  width:100%;
  box-sizing:border-box;
}
.bpw::before{display:none;}

/* Header */
.bpw-hdr{text-align:center;margin-bottom:56px;position:relative;z-index:1;}
.bpw-ey{display:block;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--color-gold);margin-bottom:14px;}
.bpw-title{font-family:'Cormorant',serif;font-style:italic;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:300;color:var(--color-navy);line-height:1;margin-bottom:14px;letter-spacing:-.015em;}
.bpw-sub{font-family:'Cormorant',serif;font-style:italic;font-size:clamp(1.35rem,2.2vw,1.65rem);color:var(--color-stone);line-height:1.85;max-width:44ch;margin:0 auto;}

/* Stack */
.bpw-stack{display:flex;flex-direction:column;gap:28px;max-width:880px;margin:0 auto 52px;position:relative;z-index:1;}

/* ── BOARDING PASS ── */
.bp{
  display:flex;border-radius:5px;overflow:hidden;
  box-shadow:0 1px 0 rgba(255,255,255,.06),0 2px 8px rgba(0,0,0,.18),0 12px 40px rgba(0,0,0,.18),0 32px 72px rgba(0,0,0,.14);
  animation:bpFadeUp .55s ease both;
  transition:transform .4s cubic-bezier(.25,0,.15,1),box-shadow .4s ease;
  width:100%;
  min-width:0;
}
.bp:nth-child(2){animation-delay:.07s;}
.bp:hover{transform:translateY(-5px);box-shadow:0 1px 0 rgba(255,255,255,.08),0 4px 16px rgba(0,0,0,.22),0 20px 52px rgba(0,0,0,.22),0 40px 88px rgba(0,0,0,.16);}

/* Stub */
.bp-stub{
  flex:0 0 108px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:14px;
  padding:22px 0;position:relative;
}
/* Perforated tear line — more visible */
.bp-stub::after{
  content:'';position:absolute;right:0;top:0;bottom:0;width:1px;
  background:repeating-linear-gradient(to bottom,rgba(0,0,0,.22) 0,rgba(0,0,0,.22) 4px,transparent 4px,transparent 8px);
}
/* Half-circle notches — larger and offset so they read clearly */
.bp-notch{position:absolute;right:-13px;width:26px;height:26px;border-radius:50%;z-index:4;box-shadow:inset 0 1px 3px rgba(0,0,0,.10);}
.bp-notch--t{top:-13px;}
.bp-notch--b{bottom:-13px;}
.bp-stub-bp{font-family:'Share Tech Mono',monospace;font-size:13px;letter-spacing:.18em;writing-mode:vertical-rl;transform:rotate(180deg);opacity:.85;}
.bp-stub-type{font-family:'Cormorant',serif;font-style:italic;font-size:17px;line-height:1.35;text-align:center;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.04em;}
.bp-stub-id{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:.08em;opacity:.6;}

/* Main */
.bp-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;}

/* Header bar */
.bp-header{
  font-family:'Share Tech Mono',monospace;
  font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  padding:8px 32px 6px;
  text-align:center;
  border-bottom:1px solid rgba(0,0,0,.07);
}
.bp--sig .bp-header{color:rgba(17,29,46,.65);background:#ede5d0;}
.bp--soc .bp-header{color:rgba(237,244,255,.75);background:#0a1c38;border-bottom-color:rgba(255,255,255,.08);}

/* Route */
.bp-route{
  display:grid;grid-template-columns:1fr 140px 1fr;
  align-items:center;padding:24px 32px 20px;gap:8px;
}
.bp-apt{display:flex;flex-direction:column;gap:4px;}
.bp-code{font-family:'Cormorant',serif;font-style:italic;font-size:clamp(1.8rem,3.8vw,2.6rem);font-weight:300;letter-spacing:.02em;line-height:1;}
.bp-apt-name{font-size:11px;letter-spacing:.14em;text-transform:uppercase;line-height:1;opacity:.75;}
.bp-apt-mood{font-size:10px;letter-spacing:.10em;text-transform:uppercase;margin-top:3px;}
.bp-apt--r{text-align:right;}
.bp-mid{display:flex;flex-direction:column;align-items:center;gap:6px;}
.bp-mid-track{display:flex;align-items:center;gap:4px;width:100%;justify-content:center;}
.bp-mid-dot{width:5px;height:5px;border-radius:50%;border:1.5px solid currentColor;flex-shrink:0;}
.bp-mid-line{flex:1;height:1px;background:currentColor;opacity:.22;}
.bp-mid-plane{display:flex;align-items:center;flex-shrink:0;opacity:.70;}
.bp-mid-lbl{font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:.45;text-align:center;}

/* Divider */
.bp-rule{height:1px;margin:0 32px;}

/* Fields */
.bp-fields{display:grid;grid-template-columns:repeat(4,1fr);padding:14px 32px 16px;}
.bp-field{display:flex;flex-direction:column;gap:5px;padding-right:14px;}
.bp-field+.bp-field{padding:0 14px;border-left:1px solid rgba(0,0,0,.07);}
.bp-field-lbl{font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:.75;}
.bp-field-val{font-family:'Share Tech Mono',monospace;font-size:14px;letter-spacing:.03em;line-height:1.2;}

/* Bottom — barcode + price */
.bp-bottom{display:flex;align-items:center;justify-content:space-between;padding:14px 32px 16px;gap:16px;}
.bp-barcode{display:flex;align-items:flex-end;gap:1.5px;height:32px;opacity:.22;flex-shrink:0;}
.bp-bar{width:1.8px;background:currentColor;}
.bp-price{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0;}
.bp-price-lbl{font-size:9px;letter-spacing:.20em;text-transform:uppercase;opacity:.55;}
.bp-price-val{font-family:'Cormorant',serif;font-style:italic;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:300;line-height:1;}

/* Toggle */
.bp-toggle{
  display:flex;align-items:center;justify-content:center;gap:14px;
  padding:18px 32px 20px;cursor:pointer;
  border-top:1px dashed rgba(0,0,0,.13);
  transition:background .2s,opacity .2s;user-select:none;
  position:relative;
}
.bp-toggle::before{
  content:'';position:absolute;inset:0;opacity:0;
  transition:opacity .2s;pointer-events:none;
}
.bp-toggle:hover::before{opacity:1;}
.bp-toggle-lbl{
  font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;
  transition:opacity .2s,letter-spacing .2s;
}
.bp-toggle:hover .bp-toggle-lbl{letter-spacing:.28em;}
.bp-toggle-arrow{
  width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:transform .35s cubic-bezier(.4,0,.2,1),background .2s;
}
/* Pulsing ring on closed state to signal clickability */
@keyframes bpRing{0%,100%{box-shadow:0 0 0 0 currentColor;}60%{box-shadow:0 0 0 5px rgba(0,0,0,0);}}
.bp:not(.is-open) .bp-toggle-arrow{animation:bpRing 2.4s ease-in-out infinite;}
.bp:not(.is-open) .bp-toggle:hover .bp-toggle-arrow{animation:bpBounce .7s ease infinite;}
.bp.is-open .bp-toggle .bp-toggle-arrow{transform:rotate(180deg);animation:none!important;}

/* Expand */
.bp-expand{overflow:hidden;max-height:0;transition:max-height .5s cubic-bezier(.4,0,.2,1);}
.bp.is-open .bp-expand{max-height:400px;}

/* ── Hover-to-reveal on desktop ── */
@media(hover:hover){
  .bp .bp-expand{transition:max-height .5s cubic-bezier(.4,0,.2,1) .08s;}
  .bp:hover .bp-expand{max-height:400px;transition-delay:0s;}
  .bp:hover .bp-toggle .bp-toggle-arrow{transform:rotate(180deg);animation:none!important;}
  .bp:hover .bp-toggle-lbl{letter-spacing:.28em;}
  .bp:not(:hover):not(.is-open) .bp-toggle-arrow{animation:bpRing 2.4s ease-in-out infinite;}
}
.bp-exp-inner{padding:0 32px 22px;}
.bp-exp-rule{height:1px;margin-bottom:14px;}
.bp-exp-lbl{font-size:9px;letter-spacing:.20em;text-transform:uppercase;opacity:.55;margin-bottom:12px;}
.bp-exp-rows{display:flex;flex-direction:column;}
.bp-exp-row{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:10px 0;border-bottom:1px solid rgba(0,0,0,.05);
}
.bp-exp-row:last-child{border-bottom:none;}
.bp-exp-dur{font-family:'Share Tech Mono',monospace;font-size:11.5px;letter-spacing:.03em;}
.bp-exp-price{font-family:'Cormorant',serif;font-style:italic;font-size:1.15rem;font-weight:300;}

/* ── SIGNATURE — ivory / parchment ── */
.bp--sig .bp-stub{background:#c8b89a;}
.bp--sig .bp-stub-bp,.bp--sig .bp-stub-id{color:rgba(40,28,10,.75);}
.bp--sig .bp-stub-type{color:rgba(40,28,10,.90);}
.bp--sig .bp-notch{background:#c8b89a;}
.bp--sig .bp-stub::after{background:repeating-linear-gradient(to bottom,rgba(0,0,0,.18) 0,rgba(0,0,0,.18) 4px,transparent 4px,transparent 8px);}
.bp--sig .bp-main{background:#fdf8ee;}
.bp--sig .bp-code{color:#111d2e;}
.bp--sig .bp-apt-name{color:rgba(17,29,46,.80);}
.bp--sig .bp-apt-mood{color:rgba(17,29,46,.80);}
.bp--sig .bp-mid{color:#7a5c28;}
.bp--sig .bp-rule{background:rgba(122,92,40,.22);}
.bp--sig .bp-field-lbl{color:rgba(17,29,46,.80);}
.bp--sig .bp-field-val{color:#111d2e;}
.bp--sig .bp-field+.bp-field{border-left-color:rgba(17,29,46,.12);}
.bp--sig .bp-bottom{background:#e8d9bc;}
.bp--sig .bp-barcode{color:#111d2e;}
.bp--sig .bp-price-lbl{color:rgba(17,29,46,.55);}
.bp--sig .bp-price-val{color:#111d2e;}
.bp--sig .bp-toggle{background:#eddfc5;border-top-color:rgba(122,92,40,.30);}
.bp--sig .bp-toggle:hover{background:#e4d4b2;}
.bp--sig .bp-toggle-lbl{color:rgba(17,29,46,.70);}
.bp--sig .bp-toggle-arrow{background:rgba(122,92,40,.18);color:#7a5c28;}
.bp--sig .bp-exp-inner{background:#fdf8ee;}
.bp--sig .bp-exp-rule{background:rgba(122,92,40,.18);}
.bp--sig .bp-exp-lbl{color:rgba(17,29,46,.55);}
.bp--sig .bp-exp-dur{color:#111d2e;}
.bp--sig .bp-exp-price{color:#111d2e;}
.bp--sig .bp-exp-row{border-bottom-color:rgba(17,29,46,.08);}

/* ── SOCIAL — deep navy ── */
.bp--soc .bp-stub{background:#071020;}
.bp--soc .bp-stub-bp,.bp--soc .bp-stub-id{color:rgba(237,244,255,.70);}
.bp--soc .bp-stub-type{color:rgba(237,244,255,.90);}
.bp--soc .bp-notch{background:#071020;}
.bp--soc .bp-stub::after{background:repeating-linear-gradient(to bottom,rgba(255,255,255,.20) 0,rgba(255,255,255,.20) 4px,transparent 4px,transparent 8px);}
.bp--soc .bp-main{background:#0f2348;}
.bp--soc .bp-code{color:#ffffff;}
.bp--soc .bp-apt-name{color:rgba(237,244,255,.95);}
.bp--soc .bp-apt-mood{color:rgba(210,228,255,.85);}
.bp--soc .bp-mid{color:rgba(180,210,255,.70);}
.bp--soc .bp-rule{background:rgba(255,255,255,.12);}
.bp--soc .bp-field-lbl{color:rgba(200,220,255,.90);}
.bp--soc .bp-field-val{color:#ffffff;}
.bp--soc .bp-field+.bp-field{border-left-color:rgba(255,255,255,.12);}
.bp--soc .bp-bottom{background:#091b38;}
.bp--soc .bp-barcode{color:rgba(237,244,255,.95);}
.bp--soc .bp-price-lbl{color:rgba(200,220,255,.65);}
.bp--soc .bp-price-val{color:#ffffff;}
.bp--soc .bp-toggle{background:#0d1f3e;border-top-color:rgba(255,255,255,.15);}
.bp--soc .bp-toggle:hover{background:#122448;}
.bp--soc .bp-toggle-lbl{color:rgba(237,244,255,.80);}
.bp--soc .bp-toggle-arrow{background:rgba(255,255,255,.12);color:rgba(237,244,255,.95);}
.bp--soc .bp-exp-inner{background:#0f2348;}
.bp--soc .bp-exp-rule{background:rgba(255,255,255,.12);}
.bp--soc .bp-exp-lbl{color:rgba(200,220,255,.65);}
.bp--soc .bp-exp-dur{color:rgba(237,244,255,.90);}
.bp--soc .bp-exp-price{color:#ffffff;}
.bp--soc .bp-exp-row{border-bottom-color:rgba(255,255,255,.08);}

/* CTA */
.bpw-cta{text-align:center;position:relative;z-index:1;}
.bpw-cta-sub{font-family:'Cormorant',serif;font-style:italic;font-size:clamp(1.4rem,2.8vw,1.9rem);color:var(--color-stone);margin-bottom:20px;line-height:1.75;}
.bpw-cta-btn{
  display:inline-flex;flex-direction:column;align-items:center;gap:6px;
  background:none;border:none;padding:0;
  font-family:'Jost',sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--color-stone);text-decoration:none;
  cursor:pointer;transition:color .2s,transform .2s;
}
.bpw-cta-btn:hover{color:var(--color-navy);transform:translateY(3px);}
.bpw-cta-btn svg{opacity:.65;animation:arrowBob 2s ease-in-out infinite;}

@media(max-width:860px){
  .bpw-stack{max-width:100%;}
  .bp{border-radius:12px;}
  .bp-route{padding:16px 22px 14px;}
  .bp-fields{padding:12px 22px;}
  .bp-toggle,.bp-exp-inner{padding-left:22px;padding-right:22px;}
  .bp-header{padding-left:22px;padding-right:22px;}
  .bp-rule{margin:0 22px;}
}
@media(max-width:600px){
  .bpw{padding-left:12px;padding-right:12px;}
  .bpw-hdr{margin-bottom:36px;}
  .bpw-stack{gap:20px;}
  .bp-toggle{padding-top:12px;padding-bottom:14px;}
  .bpw-hdr{padding-left:var(--space-5);padding-right:var(--space-5);}
  .bpw-cta{padding-left:var(--space-5);padding-right:var(--space-5);}
  .bp{border-radius:10px;overflow:hidden;}
  .bp-route{grid-template-columns:1fr 64px 1fr;padding:14px 16px 12px;gap:4px;}
  .bp-code{font-size:1.25rem;word-break:break-word;}
  .bp-apt-name,.bp-apt-mood{font-size:9px;}
  .bp-fields{grid-template-columns:repeat(2,1fr);padding:10px 16px;}
  .bp-field:nth-child(3),.bp-field:nth-child(4){display:none;}
  .bp-field+.bp-field{padding-left:10px;}
  .bp-bottom{flex-direction:column;align-items:flex-start;gap:10px;padding:10px 16px 12px;}
  .bp-price{align-items:flex-start;}
  .bp-exp-inner,.bp-toggle{padding-left:16px;padding-right:16px;}
  .bp-header{padding-left:16px;padding-right:16px;}
  .bp-rule{margin:0 16px;}
  .bp-stub{flex:0 0 52px;}
  .bp-stub-type{font-size:13px;}
  .bp-stub-id{font-size:8px;}
  .bp-mid-lbl{font-size:7px;}
}
@media(max-width:480px){
  .bp-fields{grid-template-columns:1fr 1fr;}
  .bp-route{grid-template-columns:1fr 52px 1fr;gap:2px;}
  .bp-mid-lbl{display:none;}
  .bp-exp-rows{font-size:13px;}
}
@media(max-width:380px){
  .bp-stub{display:none;}
  .bp-notch{display:none;}
  .bp-code{font-size:1rem;}
  .bp-route{grid-template-columns:1fr 44px 1fr;padding:10px 12px 8px;}
  .bp-fields{grid-template-columns:1fr 1fr;padding:8px 12px;}
  .bp-exp-inner,.bp-toggle{padding-left:12px;padding-right:12px;}
  .bp-header{padding-left:12px;padding-right:12px;}
  .bp-rule{margin:0 12px;}
  .bpw{padding-top:48px;padding-bottom:56px;padding-left:8px;padding-right:8px;}
  .bpw-hdr{margin-bottom:28px;}
  .bpw-stack{gap:16px;}
  .bp-exp-row{padding:7px 0;}
}