/* ============================================================
   LORENA DE LEON — Responsive V7 (Clean Refresh)
   ============================================================ */

/* ── MOBILE & TABLET — Image rise-and-fade entrance ───────── */
/* ── AGE GATE ──────────────────────────────────────────────────── */
@media (max-width: 767px) {
  .age-gate-modal {
    padding: 1.6rem 1.4rem 1.2rem;
    max-width: 320px;
  }
  .age-gate-script {
    font-size: 1.35rem;
  }
  .age-gate-divider {
    max-width: 120px;
    max-height: 10px;
  }
  .age-gate-statement {
    font-size: 0.76rem;
  }
  .age-gate-verified {
    font-size: 0.58rem;
    letter-spacing: 0.3em;
  }
  .age-gate-buttons {
    flex-direction: column;
    gap: 0.6rem;
  }
  .btn-age-enter,
  .btn-age-exit {
    max-width: 100%;
    font-size: 0.64rem;
    padding: 0.55em 1.2em;
  }
  .age-gate-disclaimer {
    font-size: 0.55rem;
  }
}
@media (max-width: 480px) {
  .age-gate-modal {
    padding: 1.3rem 1.1rem 1rem;
    max-width: 290px;
  }
  .age-gate-script {
    font-size: 1.2rem;
  }
  .age-gate-divider {
    max-width: 100px;
    max-height: 9px;
  }
  .age-gate-statement {
    font-size: 0.7rem;
  }
  .age-gate-verified {
    font-size: 0.52rem;
  }
  .btn-age-enter,
  .btn-age-exit {
    font-size: 0.6rem;
    padding: 0.5em 1em;
  }
}

@media (max-width: 1199px) {
  .intro-visual-img {
    opacity: 0;
    transform: translateY(50px) scale(0.95);
    transition: opacity 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.3s,
                transform 1.4s cubic-bezier(0.22, 1, 0.36, 1) 0.3s;
  }
  .intro-visual-img.img-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* ── TABLET & BELOW (≤1199px) ─────────────────────────────── */
@media (max-width: 1199px) {
  :root { --nav-h: 8.5rem; }

  .site-header {
    padding: 0.8rem 1.5rem 0.6rem;
  }
  .header-logo-img {
    height: 5.24rem;  /* +10% from 4.76rem */
  }
  .nav-links {
    gap: 1.5rem;
  }
  .nav-links a {
    font-size: 0.78rem;
    letter-spacing: 0.18em;
  }
  .btn-reserve {
    font-size: 0.72rem;
    padding: 0.4em 1.4em;
  }

  /* Slider: intro logo tablet size */
  .slide-intro-logo {
    height: 15rem;
  }

  /* Hero slide 1: use top-positioned mobile image on tablet */
  .hero-slide-bg.hero-bg-mobile-up {
    object-position: center top !important;
  }

  /* Welcome Intro — tablet: tighten padding */
  .welcome-intro {
    gap: 0;
    padding: 25px 0;
  }
}

/* ── TABLET PORTRAIT (≤1199px, portrait) ──────────────────── */
@media (max-width: 1199px) and (orientation: portrait) {
  /* Prevent 3-panel slide from flashing before JS removes it */
  .hero-3panel-slide {
    display: none !important;
  }

  .hero-slide-bg.panel-img-green,
  .hero-slide-bg.panel-img-denim {
    object-position: center center !important;
  }

  /* Tablet portrait: logo +10% (15rem × 1.10) */
  .slide-intro-logo {
    height: 16.5rem;
  }

  /* Welcome Intro — tablet portrait: stack to single column */
  .welcome-intro {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 20px 0;
  }
  .welcome-intro-visual {
    order: 2;
    min-height: auto;
    padding: 1.5rem;
    background: none;
    /* Override desktop translateX to translateY for portrait */
    opacity: 0;
    transform: translateY(70px);
  }
  .intro-visual-wrap {
    max-width: 85%;
    margin: 0 auto;
  }
  .intro-visual-img {
    border-radius: 4px;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 60vh;
    object-fit: contain;
  }
  .welcome-intro-content {
    order: 1;
    padding: 1.5rem 2rem;
    background: rgba(8, 8, 8, 0.72);
    /* Override desktop translateX to translateY for portrait */
    opacity: 0;
    transform: translateY(70px);
  }
  .welcome-intro-outer.revealed .welcome-intro-visual,
  .welcome-intro-outer.revealed .welcome-intro-content {
    opacity: 1;
    transform: translateY(0);
  }

  /* H1 larger on tablet portrait */
  h1, .intro-heading {
    font-size: 4rem;
  }

  .gold-divider {
    max-width: 300px;
  }

  /* Footer — tablet portrait: hamburger menu, opens upward */
  .site-footer {
    padding: 0.8rem 1.5rem 0.6rem;
  }
  .footer-brand {
    margin-bottom: 0.25rem;
  }
  .footer-menu-area {
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
  }
  .footer-hamburger {
    display: flex;
    margin-bottom: 0;
  }
  .footer-nav {
    position: absolute;
    bottom: 100%;
    left: 0; right: 0;
    flex-direction: column;
    gap: 0.8rem;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
    background: var(--black);
    padding: 0 1rem;
    z-index: 10;
  }
  .footer-nav.open {
    max-height: 500px;
    padding: 1rem;
  }
  .footer-nav a { display: none; }
  .footer-nav.open a { display: block; }
  .footer-badges {
    gap: 1.2rem;
    padding: 0.6rem 0 0.4rem;
  }
  .footer-badge {
    height: 42px;
  }

  /* About hero — tablet portrait: stacked, image on top */
  .about-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .about-hero-image { order: 1; }
  .about-hero-image img { height: 350px; }
  .about-hero-content {
    order: 2;
    padding: 2.5rem 2rem;
  }

  /* About split reveal — tablet portrait: switch to translateY */
  .about-hero-col-left {
    transform: translateY(60px);
    opacity: 0;
  }
  .about-hero-outer.revealed .about-hero-col-left {
    transform: translateY(0);
    opacity: 1;
  }
  .about-hero-col-right {
    transform: translateY(60px);
    opacity: 0;
  }
  .about-hero-outer.revealed .about-hero-col-right {
    transform: translateY(0);
    opacity: 1;
  }

  /* FAQ hero — tablet portrait: stacked, image on top */
  .faq-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .faq-hero-image { order: 1; }
  .faq-hero-image img { height: 350px; }
  .faq-hero-content {
    order: 2;
    padding: 2.5rem 2rem;
  }
  .faq-hero-col-left {
    transform: translateY(60px);
    opacity: 0;
  }
  .faq-hero-outer.revealed .faq-hero-col-left {
    transform: translateY(0);
    opacity: 1;
  }
  .faq-hero-col-right {
    transform: translateY(60px);
    opacity: 0;
  }
  .faq-hero-outer.revealed .faq-hero-col-right {
    transform: translateY(0);
    opacity: 1;
  }

  /* Rates hero — tablet portrait: stacked, image on top */

  /* Contact hero — tablet portrait: stacked, image on top */
  .contact-hero {
    grid-template-columns: 1fr;
    min-height: auto;
    align-items: stretch;
  }
  .contact-hero-image { order: 1; max-height: 55vh; }
  .contact-hero-image img { height: 100%; object-fit: cover; object-position: center 20%; }
  .contact-hero-content {
    order: 2;
    padding: 2.5rem 2rem;
  }
  .contact-hero-col-left {
    transform: translateY(60px);
    opacity: 0;
  }
  .contact-hero-outer.revealed .contact-hero-col-left {
    transform: translateY(0);
    opacity: 1;
  }
  .contact-hero-col-right {
    transform: translateY(60px);
    opacity: 0;
  }
  .contact-hero-outer.revealed .contact-hero-col-right {
    transform: translateY(0);
    opacity: 1;
  }
  .contact-hero-gradient {
    display: none;
  }
  /* Contact bokeh — tablet portrait: full width, reduced particles */
  .contact-bokeh-bg {
    width: 100%;
  }

  /* Contact form — tablet portrait: single column, generous padding */
  .contact-form-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    max-width: 600px;
  }
  .contact-form-col-left {
    padding-right: 0;
  }
  .contact-form-col-right {
    padding-left: 0;
    border-left: none;
    border-top: 1px solid rgba(201, 168, 76, 0.2);
    padding-top: 2rem;
  }
  .contact-details {
    display: flex;
    flex-direction: column;
  }
  .contact-video-wrap {
    order: -1;
    max-width: 280px;
    margin: 0 auto 2rem;
  }
  /* Form 2-col rows stack to single column on tablet portrait */
  .form-row-2col {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .form-phone-row {
    flex-direction: column;
    align-items: stretch;
    gap: 0.3rem;
  }
  .form-note-inline {
    text-align: right;
  }

  .rates-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .rates-hero-image { order: 1; }
  .rates-hero-image img { height: 350px; min-height: auto; }
  .rates-hero-content {
    order: 2;
    padding: 2.5rem 2rem;
  }
  .rates-hero-col-left {
    transform: translateY(60px);
    opacity: 0;
  }
  .rates-hero-outer.revealed .rates-hero-col-left {
    transform: translateY(0);
    opacity: 1;
  }
  .rates-hero-col-right {
    transform: translateY(60px);
    opacity: 0;
  }
  .rates-hero-outer.revealed .rates-hero-col-right {
    transform: translateY(0);
    opacity: 1;
  }
  /* Rates shimmer — tablet: bolder on stacked content */
  .rates-shimmer-video { opacity: 0.25; }
  .rates-shimmer-overlay { background: rgba(8, 8, 8, 0.40); }

  /* About video section — tablet portrait: stacked */
  .about-video-section {
    grid-template-columns: 1fr;
  }
  .about-video-visual {
    order: 1;
    padding: 2rem 1.5rem;
  }
  .about-video-text {
    order: 2;
    padding: 2rem 1.5rem;
  }
  .about-video-outer {
    padding: 0 0 4rem 0;
  }

  /* Blue video — boxed in on tablet portrait (max 65% width, centered) */
  .about-video-wrap {
    max-width: 65%;
    margin: 0 auto;
    border: 1px solid rgba(201, 168, 76, 0.3);
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.5), 0 0 15px rgba(201, 168, 76, 0.1);
  }

  /* Rates section 2 — tablet portrait: stacked, text above image */
  .rates-s2-section {
    grid-template-columns: 1fr;
  }
  .rates-s2-text {
    order: 1;
    padding: 2rem 3.5rem;
  }
  .rates-s2-visual {
    order: 2;
    padding: 2rem 1.5rem;
  }
  .rates-s2-outer {
    padding: 0 0 4rem 0;
    margin-top: 3rem;
  }
  .rates-s2-wrap {
    max-width: 65%;
    margin: 0 auto;
    border: 1px solid rgba(201, 168, 76, 0.3);
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.5), 0 0 15px rgba(201, 168, 76, 0.1);
  }

  /* Rates menu — tablet portrait */
  .rates-name {
    font-size: 0.88rem;
  }
  .rates-cat-label {
    font-size: 0.88rem;
  }
  /* Shorten gold divider on tablet portrait */
  .rates-s2-outer .gold-divider {
    max-width: 55%;
  }

  /* Rates Bellagio section — tablet portrait */
  .rates-bell-outer {
    min-height: 65vh;
    margin-top: 3rem;
  }
  .rates-bell-content {
    padding: 3.5rem 1.5rem;
    max-width: 85%;
  }
  .rates-bell-box {
    padding: 2.5rem 2rem;
  }

  /* Gold embers — tablet portrait: slightly larger particles */
  .rates-s2-ember-bg::before,
  .rates-s2-ember-bg::after {
    width: 3px;
    height: 3px;
  }
  .rates-s2-ember-layer3::before {
    width: 2px;
    height: 2px;
  }

  /* CTA section — tablet portrait */
  .about-cta-section {
    padding: 3rem 1.5rem 0;
    min-height: 30vh;
  }
  .btn-schedule {
    font-size: 0.85rem;
    padding: 0.75em 1.9em;
  }

  /* Embers — tablet portrait: slightly larger particles */
  .about-ember-bg::before,
  .about-ember-bg::after {
    width: 3px;
    height: 3px;
  }
  .about-ember-layer3::before {
    width: 2px;
    height: 2px;
  }

  /* Embers — tablet portrait: slightly larger particles */
}

/* ── MOBILE (≤767px) ──────────────────────────────────────── */
@media (max-width: 767px) {
  :root { --nav-h: 5.5rem; }

  .site-header {
    padding: 0.7rem 1rem 0.5rem;
  }
  .header-logo-img {
    height: 4.07rem;  /* +10% from 3.70rem */
  }

  /* Hide desktop nav, show burger */
  .nav-links { display: none; }
  .nav-burger { display: flex; }

  /* Slider: 3-panel stacks vertically on mobile */
  .hero-3panel {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr 1fr;
  }
  .hero-3panel-cell img {
    object-position: center top;
  }
  .hero-3panel-slide {
    display: none !important;
  }

  /* Slider: minimal mobile controls */
  .hero-slider-controls {
    bottom: 0.8rem;
    gap: 0.5rem;
  }
  .hero-slider-arrow {
    width: 28px;
    height: 28px;
    font-size: 1rem;
  }
  .hero-slider-dots.swiper-pagination {
    gap: 5px;
  }
  .swiper-pagination-bullet {
    width: 6px !important;
    height: 6px !important;
  }

  /* Intro overlay: mobile — logo sized for mobile viewport */
  .slide-intro-logo {
    height: 8.5rem;
  }
  .slide-enter-wrap {
    margin-top: 0.5rem;
  }

  /* Welcome Intro — mobile: stack to single column */
  .welcome-intro {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 20px 0;
  }
  .welcome-intro-visual {
    order: 2;
    min-height: auto;
    padding: 1rem;
    background: none;
    /* Override desktop translateX to translateY for mobile */
    transform: translateY(60px);
  }
  .intro-visual-wrap {
    max-width: 80%;
    margin: 0 auto;
  }
  .intro-visual-img {
    border-radius: 4px;
  }
  .welcome-intro-content {
    order: 1;
    padding: 1.2rem 1.5rem;
    background: rgba(8, 8, 8, 0.72);
    /* Override desktop translateX to translateY for mobile */
    transform: translateY(60px);
  }
  .welcome-intro-outer.revealed .welcome-intro-visual,
  .welcome-intro-outer.revealed .welcome-intro-content {
    opacity: 1;
    transform: translateY(0);
  }

  h1, .intro-heading {
    font-size: 4rem;
  }
  .intro-heading {
    font-size: clamp(2.4rem, 8vw, 3.8rem);
  }
  .intro-body {
    font-size: 1.05rem;
    line-height: 1.7;
  }
  .intro-list li {
    font-size: 1.05rem;
  }

  .gold-divider {
    max-width: 250px;
  }
  .intro-list li::before {
    width: 14px;
    height: 14px;
  }

  .intro-subheading {
    font-size: clamp(1.1rem, 4vw, 1.5rem);
  }

  .btn-enter {
    font-size: 0.9rem;
    padding: 0.6em 2em;
  }

  .shimmer-video {
    top: 30%;
    height: 70%;
  }
  .shimmer-overlay {
    background: rgba(8, 8, 8, 0.45);
  }

  .hero-slide-bg.hero-bg-mobile-up {
    object-position: center top !important;
  }

  /* Footer — mobile: hamburger menu, opens upward */
  .site-footer {
    padding: 0.6rem 1rem 0.5rem;
  }
  .footer-brand {
    margin-bottom: 0.2rem;
  }
  .footer-menu-area {
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.3rem;
  }
  .footer-hamburger {
    display: flex;
    margin-bottom: 0;
  }
  .footer-nav {
    position: absolute;
    bottom: 100%;
    left: 0; right: 0;
    flex-direction: column;
    gap: 0.8rem;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
    background: var(--black);
    padding: 0 1rem;
    z-index: 10;
  }
  .footer-nav.open {
    max-height: 500px;
    padding: 1rem;
  }
  .footer-nav a { display: none; }
  .footer-nav.open a { display: block; }
  .footer-badges {
    gap: 0.8rem;
    padding: 0.5rem 0 0.3rem;
  }
  .footer-badge {
    height: 34px;
  }
  .footer-credit-sep {
    display: inline;
  }

  /* About hero — mobile: stacked, image on top */
  .about-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .about-hero-image { order: 1; }
  .about-hero-image img { height: 280px; }
  .about-hero-content {
    order: 2;
    padding: 2rem 1.5rem;
  }

  /* FAQ hero — mobile: stacked, image on top */
  .faq-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .faq-hero-image { order: 1; }
  .faq-hero-image img { height: 280px; }
  .faq-hero-content {
    order: 2;
    padding: 2rem 1.5rem;
  }

  /* Rates hero — mobile: stacked, image on top */
  .rates-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .rates-hero-image { order: 1; }
  .rates-hero-image img { height: 280px; min-height: auto; }
  .rates-hero-content {
    order: 2;
    padding: 2rem 1.5rem;
  }
  /* Rates shimmer — mobile: bold full-width shimmer */
  .rates-shimmer-video { opacity: 0.25; }
  .rates-shimmer-overlay { background: rgba(8, 8, 8, 0.35); }

  /* Contact hero — mobile: stacked, image on top */
  .contact-hero {
    grid-template-columns: 1fr;
    min-height: auto;
    align-items: stretch;
  }
  .contact-hero-image { order: 1; max-height: 50vh; }
  .contact-hero-image img { height: 100%; object-fit: cover; object-position: center 20%; }
  .contact-hero-content {
    order: 2;
    padding: 2rem 1.5rem;
  }
  .contact-hero-col-left {
    transform: translateY(60px);
    opacity: 0;
  }
  .contact-hero-outer.revealed .contact-hero-col-left {
    transform: translateY(0);
    opacity: 1;
  }
  .contact-hero-col-right {
    transform: translateY(60px);
    opacity: 0;
  }
  .contact-hero-outer.revealed .contact-hero-col-right {
    transform: translateY(0);
    opacity: 1;
  }
  .contact-hero-gradient {
    display: none;
  }
  /* Contact bokeh — mobile: full width, even fewer particles */
  .contact-bokeh-bg {
    width: 100%;
  }
  .contact-bokeh-bg::before,
  .contact-bokeh-bg::after,
  .contact-bokeh-bg::before,
  .contact-bokeh-bg::after,
  .contact-bokeh-layer3::before {
    width: 2px;
    height: 2px;
  }

  /* Contact form — mobile: single column */
  .contact-form-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  .contact-form-col-left {
    padding-right: 0;
  }
  .contact-form-col-right {
    padding-left: 0;
    border-left: none;
    border-top: 1px solid rgba(201, 168, 76, 0.2);
    padding-top: 2rem;
  }
  .contact-details {
    display: flex;
    flex-direction: column;
  }
  .contact-video-wrap {
    order: -1;
    max-width: 260px;
    margin: 0 auto 1.5rem;
  }
  /* Form 2-col rows stack to single column on mobile */
  .form-row-2col {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .form-phone-row {
    flex-direction: column;
    align-items: stretch;
    gap: 0.3rem;
  }
  .form-note-inline {
    text-align: right;
  }

  /* About video section — mobile */
  .about-video-outer {
    padding: 0 0 3rem 0;
  }
  .about-video-heading {
    font-size: clamp(2rem, 6vw, 3rem);
  }
  .about-video-h3 {
    font-size: clamp(1.438rem, 4.375vw, 1.875rem);
    letter-spacing: 0.05em;
    margin: 1.2rem 0 0.8rem;
  }

  /* Blue video — boxed in on mobile (max 80% width) */
  .about-video-wrap {
    max-width: 80%;
    margin: 0 auto;
    border: 1px solid rgba(201, 168, 76, 0.3);
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.5), 0 0 10px rgba(201, 168, 76, 0.1);
  }

  /* Rates section 2 — mobile: text above image */
  .rates-s2-outer {
    padding: 0 0 3rem 0;
    margin-top: 2.5rem;
  }
  .rates-s2-section {
    grid-template-columns: 1fr;
  }
  .rates-s2-text {
    order: 1;
    padding: 2rem 2.5rem;
  }
  .rates-s2-visual {
    order: 2;
  }
  .rates-s2-heading {
    font-size: clamp(2rem, 6vw, 3rem);
  }
  .rates-s2-wrap {
    max-width: 80%;
    margin: 0 auto;
    border: 1px solid rgba(201, 168, 76, 0.3);
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.5), 0 0 10px rgba(201, 168, 76, 0.1);
  }

  /* Rates menu — mobile */
  .rates-menu {
    margin-top: 1.2rem;
  }
  .rates-name {
    font-size: 0.86rem;
  }
  .rates-price {
    font-size: 0.83rem;
  }
  .rates-duration {
    font-size: 0.75rem;
  }
  .rates-tier {
    font-size: 0.75rem;
  }
  .rates-cat-label {
    font-size: 0.82rem;
  }

  /* Rates Bellagio section — mobile */
  .rates-bell-outer {
    min-height: 60vh;
    margin-top: 2.5rem;
  }
  .rates-bell-content {
    padding: 2.5rem 1rem;
    max-width: 90%;
  }
  .rates-bell-box {
    padding: 2rem 1.5rem;
  }

  /* Gold embers — mobile: reduce particle count effect via smaller shadows */
  .rates-s2-ember-bg::before,
  .rates-s2-ember-bg::after {
    width: 2px;
    height: 2px;
  }
  .rates-s2-ember-layer3::before {
    width: 2px;
    height: 2px;
  }

  /* CTA section — mobile */
  .about-cta-section {
    padding: 2.5rem 1.2rem 0;
    min-height: 28vh;
  }
  .btn-schedule {
    font-size: 0.82rem;
    padding: 0.7em 1.5em;
    letter-spacing: 0.18em;
  }

  /* Embers — mobile: reduce particle count effect via smaller shadows */
  .about-ember-bg::before,
  .about-ember-bg::after {
    width: 2px;
    height: 2px;
  }
  .about-ember-layer3::before {
    width: 2px;
    height: 2px;
  }
}

/* ── SMALL MOBILE (≤480px) ────────────────────────────────── */
@media (max-width: 480px) {
  :root { --nav-h: 4.8rem; }

  .site-header {
    padding: 0.6rem 0.8rem 0.4rem;
  }
  .header-logo-img {
    height: 3.49rem;  /* +10% from 3.17rem */
  }

  .hero-slider-arrow {
    width: 24px;
    height: 24px;
    font-size: 0.85rem;
  }
  .swiper-pagination-bullet {
    width: 5px !important;
    height: 5px !important;
  }


  .welcome-intro {
    padding: 15px 0;
  }
  .welcome-intro-visual {
    padding: 0.8rem;
  }
  .intro-visual-wrap {
    max-width: 75%;
  }
  .intro-body { font-size: 0.98rem; }
  .intro-list li { font-size: 0.98rem; }

  .gold-divider {
    max-width: 200px;
  }
  .intro-list li::before {
    width: 12px;
    height: 12px;
  }
  .intro-subheading {
    font-size: clamp(1rem, 4.5vw, 1.3rem);
  }

  h1, .intro-heading {
    font-size: 4rem;
  }
  .welcome-intro-content {
    padding: 1rem 1.2rem;
    background: rgba(8, 8, 8, 0.72);
  }

  /* About hero — small mobile */
  .about-hero-image img { height: 220px; }
  .about-hero-content {
    padding: 1.5rem 1rem;
  }
  .about-hero-h1 {
    font-size: 2.8rem;
  }
  .about-hero-h3 {
    margin-bottom: 1.2rem;
  }

  /* FAQ hero — small mobile */
  .faq-hero-image img { height: 220px; }
  .faq-hero-content {
    padding: 1.5rem 1rem;
  }
  .faq-hero-h1 {
    font-size: 2.8rem;
  }
  .faq-hero-h3 {
    margin-bottom: 1.2rem;
  }

  /* Rates hero — small mobile */
  .rates-hero-image img { height: 220px; min-height: auto; }
  .rates-hero-content {
    padding: 1.5rem 1rem;
  }
  .rates-hero-h1 {
    font-size: 2.8rem;
  }
  .rates-shimmer-video { opacity: 0.25; }
  .rates-shimmer-overlay { background: rgba(8, 8, 8, 0.35); }

  /* Contact hero — small mobile */
  .contact-hero-image { max-height: 45vh; }
  .contact-hero-image img { height: 100%; object-fit: cover; object-position: center 20%; }
  .contact-hero-content {
    padding: 1.5rem 1rem;
  }
  .contact-hero-h1 {
    font-size: 2.8rem;
  }
  .contact-hero-h3 {
    margin-bottom: 1.2rem;
  }
  .contact-hero-gradient {
    display: none;
  }
  /* Contact bokeh — small mobile: further reduced */
  .contact-bokeh-bg::before,
  .contact-bokeh-bg::after,
  .contact-bokeh-layer3::before {
    width: 2px;
    height: 2px;
  }

  /* Contact form — small mobile: tighter padding */
  .contact-form-outer {
    padding: 3rem 1rem 4rem;
  }
  .contact-form-col-right {
    padding-top: 1.5rem;
  }
  .contact-video-wrap {
    max-width: 240px;
  }

  /* About video section — small mobile */
  .about-video-outer {
    padding: 0 0 2rem 0;
  }
  .about-video-heading {
    font-size: 2rem;
  }
  .about-video-h3 {
    font-size: 1.375rem;
    letter-spacing: 0.05em;
    margin: 1rem 0 0.6rem;
  }
  .about-video-visual,
  .about-video-text {
    padding: 1.5rem 1rem;
  }

  /* Blue video — boxed on small mobile (85% width) */
  .about-video-wrap {
    max-width: 85%;
  }

  /* Rates section 2 — small mobile: text above image */
  .rates-s2-outer {
    padding: 0 0 2rem 0;
    margin-top: 2rem;
  }
  .rates-s2-section {
    grid-template-columns: 1fr;
  }
  .rates-s2-text {
    order: 1;
    padding: 1.5rem 2rem;
  }
  .rates-s2-visual {
    order: 2;
    padding: 1.5rem 1rem;
  }
  .rates-s2-heading {
    font-size: 2rem;
  }
  .rates-s2-wrap {
    max-width: 85%;
  }

  /* Rates menu — small mobile */
  .rates-name {
    font-size: 0.82rem;
  }
  .rates-price {
    font-size: 0.80rem;
  }
  .rates-duration {
    font-size: 0.74rem;
  }
  .rates-tier {
    font-size: 0.72rem;
  }
  .rates-tier-price {
    font-size: 0.76rem;
  }
  .rates-cat-label {
    font-size: 0.78rem;
  }
  .rates-menu-divider {
    margin: 0.7rem 0;
  }

  /* Rates Bellagio section — small mobile */
  .rates-bell-outer {
    min-height: 55vh;
    margin-top: 2rem;
  }
  .rates-bell-content {
    padding: 2rem 0.75rem;
    max-width: 92%;
  }
  .rates-bell-box {
    padding: 1.5rem 1rem;
  }
  .rates-bell-text {
    font-size: 0.95rem;
    line-height: 1.7;
  }

  /* CTA section — small mobile */
  .about-cta-section {
    padding: 2rem 1rem 0;
    min-height: 25vh;
  }
  .btn-schedule {
    font-size: 0.78rem;
    padding: 0.6em 1.2em;
    letter-spacing: 0.15em;
  }
}

/* ── iOS / touch fixes ────────────────────────────────────── */
@supports (-webkit-touch-callout: none) {
  .hero-slide-bg {
    object-fit: cover;
  }
}

/* ── MOBILE LANDSCAPE (≤767px, landscape) ────────────────── */
@media (max-width: 767px) and (orientation: landscape) {
  :root { --nav-h: 4.2rem; }

  .site-header {
    padding: 0.4rem 1rem 0.3rem;
  }
  .header-logo-img {
    height: 2.96rem;
  }

  /* Keep 3-column on landscape phones */
  .hero-3panel {
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: 1fr;
  }

  .slide-intro-logo {
    height: 8.5rem;
  }

  .welcome-intro {
    padding: 20px 0;
    gap: 0;
  }
  .intro-heading {
    font-size: 4rem;
  }
  h1 {
    font-size: 4rem;
  }

  /* Mobile landscape: slide up from bottom */
  .welcome-intro-visual {
    transform: translateY(50px);
  }
  .welcome-intro-content {
    transform: translateY(50px);
  }
  .welcome-intro-outer.revealed .welcome-intro-visual,
  .welcome-intro-outer.revealed .welcome-intro-content {
    opacity: 1;
    transform: translateY(0);
  }

  /* About hero — mobile landscape: side-by-side but compact */
  .about-hero {
    min-height: 50vh;
  }
  .about-hero-content {
    padding: 1.5rem 1.5rem;
  }
  .about-hero-image img {
    height: 280px;
  }
  .about-hero-h3 {
    margin-bottom: 1rem;
  }
  .about-hero-h1 {
    font-size: 2.5rem;
  }

  /* FAQ hero — mobile landscape: side-by-side but compact */
  .faq-hero {
    min-height: 50vh;
  }
  .faq-hero-content {
    padding: 1.5rem 1.5rem;
  }
  .faq-hero-image img {
    height: 280px;
  }
  .faq-hero-h3 {
    margin-bottom: 1rem;
  }
  .faq-hero-h1 {
    font-size: 2.5rem;
  }

  /* About video section — mobile landscape */
  .about-video-section {
    grid-template-columns: 1fr 1fr;
  }
  .about-video-visual {
    order: 0;
    padding: 1.5rem;
  }
  .about-video-text {
    order: 0;
    padding: 1.5rem;
  }
  .about-video-heading {
    font-size: 2rem;
  }
  .about-video-h3 {
    font-size: 1.375rem;
    letter-spacing: 0.05em;
    margin: 1rem 0 0.6rem;
  }

  /* CTA section — mobile landscape */
  .about-cta-section {
    padding: 2rem 2rem 0;
    min-height: 28vh;
  }
  .btn-schedule {
    font-size: 0.85rem;
    padding: 0.7em 1.5em;
  }
}

/* ── TABLET LANDSCAPE (768–1199px, landscape) ─────────────── */
@media (min-width: 768px) and (max-width: 1199px) and (orientation: landscape) {
  .about-hero-content {
    padding: 2rem 2.5rem;
  }
  .about-hero-image img {
    height: 380px;
  }

  .faq-hero-content {
    padding: 2rem 2.5rem;
  }
  .faq-hero-image img {
    height: 380px;
  }

  /* About video section — tablet landscape */
  .about-video-visual,
  .about-video-text {
    padding: 2rem 2.5rem;
  }

  /* CTA section — tablet landscape */
  .about-cta-section {
    padding: 3rem 2.5rem 0;
    min-height: 32vh;
  }
}

/* ── DESKTOP ENHANCEMENTS (≥1200px) ──────────────────────── */
@media (min-width: 1200px) {
  :root { --nav-h: 9.5rem; }

  .site-header {
    padding: 1.1rem 3rem 0.5rem;
  }
  .header-logo-img {
    height: 4.8rem;
  }
  .nav-links {
    gap: 2.5rem;
  }

  .slide-intro-logo {
    height: 16.1rem;
  }

  /* About hero — desktop: full presence */
  .about-hero-content {
    padding: 5rem 3rem 5rem 5rem;
  }
  .about-hero-image img {
    height: 480px;
  }

  .faq-hero-content {
    padding: 5rem 3rem 5rem 5rem;
  }
  .faq-hero-image img {
    height: 480px;
  }

  /* About video section — desktop */
  .about-video-outer {
    padding: 0 0 8rem 0;
  }
  .about-video-text {
    padding: 3rem 3rem 3rem 5rem;
  }
  .about-video-visual {
    padding: 3rem 5rem 3rem 3rem;
  }

  /* CTA section — desktop */
  .about-cta-section {
    padding: 4rem 3rem 0;
    min-height: 35vh;
  }
  .btn-schedule {
    font-size: 0.85rem;
    padding: 0.75em 1.9em;
  }

  /* Embers — desktop: full effect, slightly larger particles */
  .about-ember-bg::before,
  .about-ember-bg::after {
    width: 3px;
    height: 3px;
  }
  .about-ember-layer3::before {
    width: 3px;
    height: 3px;
  }
}

/* ── LARGE DESKTOP (≥1600px) ─────────────────────────────── */
@media (min-width: 1600px) {
  :root { --nav-h: 10.2rem; }

  .header-logo-img {
    height: 5.6rem;
  }
  .nav-links {
    gap: 3rem;
  }
  .nav-links a {
    font-size: 0.9rem;
  }

  .slide-intro-logo {
    height: 16.1rem;
  }

  /* About hero — large desktop */
  .about-hero-content {
    padding: 6rem 4rem 6rem 6rem;
  }
  .about-hero-image img {
    height: 550px;
  }

  .faq-hero-content {
    padding: 6rem 4rem 6rem 6rem;
  }
  .faq-hero-image img {
    height: 550px;
  }
  .about-hero-text {
    font-size: 1.2rem;
  }

  /* About video section — large desktop */
  .about-video-outer {
    padding: 0 0 10rem 0;
  }
  .about-video-text {
    padding: 4rem 4rem 4rem 6rem;
  }
  .about-video-visual {
    padding: 4rem 6rem 4rem 4rem;
  }
  .about-video-heading {
    font-size: clamp(3rem, 4vw, 5rem);
  }

  /* CTA section — large desktop */
  .about-cta-section {
    padding: 5rem 4rem 0;
    min-height: 38vh;
  }
  .btn-schedule {
    font-size: 0.9rem;
    padding: 0.8em 2.2em;
  }

  /* Embers — large desktop: slightly bigger particles */
  .about-ember-bg::before,
  .about-ember-bg::after {
    width: 4px;
    height: 4px;
  }
  .about-ember-layer3::before {
    width: 3px;
    height: 3px;
  }
}

/* ============================================================
   GALLERY PAGE — Responsive
   ============================================================ */

/* Tablet portrait */
@media (max-width: 1199px) {
  .gallery-grid {
    column-count: 2;
    column-gap: 1rem;
    padding: 1rem;
  }
  .gallery-outer {
    padding: 4rem 1.5rem 3rem;
  }
  .gallery-item {
    margin-bottom: 1rem;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .gallery-grid {
    column-count: 1;
    column-gap: 0;
    padding: 0.8rem;
  }
  .gallery-outer {
    padding: 3rem 1rem 2rem;
  }
  .gallery-item {
    margin-bottom: 0.8rem;
    border-radius: 8px;
  }
  .gallery-item img {
    border-radius: 8px;
  }
  .gallery-title {
    font-size: clamp(2.2rem, 8vw, 3.5rem);
  }
  .gallery-title-group {
    max-width: 90vw;
  }
  .gallery-header .gold-divider.gallery-divider {
    max-height: 14px;
  }
  .gallery-quote {
    font-size: 0.9rem;
    padding: 0 0.5rem;
  }
  .lightbox-prev,
  .lightbox-next {
    width: 40px;
    height: 60px;
    font-size: 1.8rem;
  }
  .lightbox-prev { left: 0.5rem; }
  .lightbox-next { right: 0.5rem; }
  .lightbox-close {
    top: 1rem;
    right: 1rem;
    font-size: 2rem;
  }
}

/* Small mobile */
@media (max-width: 480px) {
  .gallery-grid {
    column-count: 1;
    column-gap: 0;
    padding: 0.6rem;
  }
  .gallery-item {
    margin-bottom: 0.6rem;
    border-radius: 6px;
  }
  .gallery-item img {
    border-radius: 6px;
  }
  .gallery-item-overlay {
    border-radius: 6px;
  }
  .gallery-title-group {
    max-width: 85vw;
  }
  .gallery-header .gold-divider.gallery-divider {
    max-height: 12px;
  }
  .gallery-quote {
    font-size: 0.85rem;
  }
}

/* Mobile landscape */
@media (max-width: 767px) and (orientation: landscape) {
  .gallery-grid {
    column-count: 2;
    column-gap: 0.8rem;
    padding: 0.8rem;
  }
  .gallery-outer {
    padding: 2rem 1.5rem 2rem;
  }
}

/* Tablet landscape */
@media (min-width: 768px) and (max-width: 1199px) and (orientation: landscape) {
  .gallery-grid {
    column-count: 3;
    column-gap: 1rem;
    padding: 1rem;
  }
}

/* Large desktop */
@media (min-width: 1600px) {
  .gallery-outer {
    max-width: 1400px;
    padding: 6rem 3rem 5rem;
  }
  .gallery-grid {
    column-count: 3;
    column-gap: 1.5rem;
    padding: 1.5rem;
  }
  .gallery-item {
    margin-bottom: 1.5rem;
    border-radius: 16px;
  }
  .gallery-item img {
    border-radius: 16px;
  }
  .gallery-item-overlay {
    border-radius: 16px;
  }
}
