/* ReelsXpress Responsive

   -------------------------------------------------------

   Breakpoint and layout rules only.

   Do not define brand colors, fonts, or root tokens here.

   Source of truth: assets/css/tokens.css

------------------------------------------------------- */





/* =======================================================

   HEADER / NAVIGATION

======================================================= */



@media (max-width: 1120px) {

  .rx-site-header__inner {

    grid-template-columns: minmax(0, 1fr) auto;

    width: min(100% - 28px, 1180px);

  }



  .rx-desktop-nav {

    display: none;

  }



  .rx-nav-toggle {

    display: flex;

  }



  .rx-site-header__actions {

    justify-self: end;

  }



  .rx-site-header .rx-brand {

    justify-self: start;

    max-width: min(240px, calc(100vw - 182px));

  }



  .rx-site-header .rx-brand__image {

    max-width: min(210px, calc(100vw - 188px));

    max-height: var(--rx-control-h-sm);

    object-position: left center;

  }

}



@media (max-width: 760px) {

  .rx-site-header {

    inset: 10px 0 auto;

    padding-top: 0;

  }



  .rx-site-header__inner {
    width: min(100% - 20px, 520px);
    min-height: 58px;
    gap: var(--rx-space-2);
    padding: 5px;
    border-radius: 29px;
  }

  .rx-site-header .rx-brand {
    min-height: 46px;
    max-width: calc(100vw - 172px);
    padding: 0 4px 0 6px;
    border: 0;

    background: transparent;

    box-shadow: none;

  }



  .rx-site-header .rx-brand__image {
    width: auto;
    max-width: min(188px, calc(100vw - 178px));
    max-height: 35px;
    object-fit: contain;
    object-position: left center;
  }


  .rx-site-header .rx-brand__name,

  .rx-site-header .rx-brand>span:not(.rx-brand__logo):not(.rx-brand__fallback) {

    font-size: 21px;

    line-height: 1;

  }



  .rx-site-header .rx-brand small {

    font-size: 8px;

  }



  .rx-site-header .rx-btn {
    min-height: var(--rx-control-h);
    padding: 0 20px;
  }

  .rx-site-header .rx-nav-toggle {
    width: 44px;
    height: var(--rx-control-h);
    border-color: rgb(var(--rx-champagne-rgb) / 0.16);
    background: rgb(var(--rx-champagne-rgb) / 0.08);
    color: var(--rx-champagne);

  }



  .rx-site-header .rx-mobile-menu {
    top: 68px;
    right: 10px;
    left: 10px;
  }
}



@media (max-width: 420px) {

  .rx-site-header__inner {

    width: calc(100% - 18px);

    gap: var(--rx-space-1-5);

  }



  .rx-site-header .rx-brand {

    max-width: calc(100vw - 156px);

    padding-left: 2px;

  }



  .rx-site-header .rx-brand__image {
    max-width: min(168px, calc(100vw - 162px));
    max-height: 34px;
  }

  .rx-site-header .rx-btn {
    min-height: var(--rx-control-h-sm);
    padding: 0 16px;
    font-size: 13.5px;
  }

  .rx-site-header .rx-nav-toggle {
    width: 42px;
    height: var(--rx-control-h-sm);
  }
}




/* =======================================================

   DESKTOP HERO LAYOUT

======================================================= */



@media (min-width: 992px) {

  .rx-hero {

    min-height: min(100vh, 820px);

    padding-top: clamp(90px, 9vh, 120px);

    padding-bottom: clamp(2rem, 4vh, 3.5rem);

  }

  @media (max-height: 800px) {

    .rx-hero {

      padding-top: clamp(64px, 7vh, 80px) !important;

      padding-bottom: clamp(1rem, 2vh, 1.75rem) !important;

    }

    .rx-hero h1 {

      font-size: clamp(2.25rem, 5vh, 3rem) !important;

    }

    .rx-hero__copy>p:not(.rx-kicker),

    .rx-hero__text>p:not(.rx-kicker) {

      margin-top: 10px !important;

      font-size: var(--rx-type-body) !important;

      line-height: 1.45 !important;

    }

    .rx-hero__actions {

      padding-top: 14px !important;

    }

  }



  .rx-hero__container {

    display: grid;

    grid-template-columns: minmax(0, 0.92fr) minmax(460px, 1.08fr);

    grid-template-areas:

      "copy visual"

      "stats visual";

    align-items: center;

    gap: 30px clamp(42px, 5vw, 76px);

    width: min(1320px, calc(100% - 64px));

    max-width: 1320px;

    margin-inline: auto;

  }



  .rx-hero__copy {

    grid-area: copy;

    align-self: end;

    justify-self: start;

    width: 100%;

    max-width: 590px;

    height: auto;

    text-align: left;

    order: unset;

  }



  .rx-hero__text {

    align-items: flex-start;

    width: 100%;

    max-width: 590px;

    text-align: left;

  }



  .rx-hero h1 {

    max-width: 590px;

  }



  .rx-hero__copy>p:not(.rx-kicker),

  .rx-hero__text>p:not(.rx-kicker) {

    max-width: 540px;

  }



  .rx-hero__actions {

    justify-content: flex-start;

    align-items: center;

    max-width: 590px;

  }



  .rx-hero-stats {

    grid-area: stats;

    justify-self: start;

    align-self: start;

    width: min(620px, 100%);

    max-width: 620px;

    margin: 0;

  }



  .rx-hero-stats div {

    padding: var(--rx-space-4) 12px;

  }



  .rx-hero__visual {

    grid-area: visual;

    justify-self: center;

    align-self: center;

    order: unset;

  }



  .rx-hero__visual::before {

    width: 420px;

    height: 420px;

    filter: blur(45px);

  }

}



@media (min-width: 992px) and (max-width: 1199px) {

  .rx-hero__container {

    grid-template-columns: minmax(0, 0.96fr) minmax(390px, 1.04fr);

    gap: 28px 34px;

    width: min(1180px, calc(100% - 48px));

  }



  .rx-hero__copy,

  .rx-hero__text,

  .rx-hero h1,

  .rx-hero__actions {

    max-width: 560px;

  }



  .rx-hero__copy>p:not(.rx-kicker),

  .rx-hero__text>p:not(.rx-kicker) {

    max-width: 500px;

  }



  .rx-tri-phone-container {

    height: 580px;

    transform: scale(0.92);

    transform-origin: center center;

  }

  @media (max-height: 800px) {

    .rx-tri-phone-container {

      height: 540px;

      transform: scale(0.86);

    }

  }

}



@media (min-width: 1200px) {

  .rx-tri-phone-container {

    height: 610px;

    transform: translateX(28px) scale(0.98);

    transform-origin: center center;

  }

  @media (max-height: 800px) {

    .rx-tri-phone-container {

      height: 560px;

      transform: translateX(28px) scale(0.9);

    }

  }



  .rx-hero__visual::before {

    width: 520px;

    height: 520px;

  }

}



@media (min-width: 1440px) {

  .rx-hero__container {

    width: min(1380px, calc(100% - 96px));

    max-width: 1380px;

  }

}





/* =======================================================

   TABLET / MOBILE HERO

======================================================= */



@media (max-width: 991px) {

  .rx-hero {

    min-height: auto;

    padding: 112px 0 46px;

  }



  .rx-hero__container {

    display: grid;

    grid-template-columns: 1fr;

    justify-items: center;

    align-items: start;

    gap: 34px;

    width: min(100% - 32px, 760px);

    margin-inline: auto;

  }



  .rx-hero__copy,

  .rx-hero__text {

    width: 100%;

    max-width: 620px;

    align-items: center;

    text-align: center;

  }



  .rx-hero h1 {

    max-width: 620px;

    text-wrap: balance;

  }



  .rx-hero__copy>p:not(.rx-kicker),

  .rx-hero__text>p:not(.rx-kicker) {

    max-width: 560px;

    margin-inline: auto;

  }



  .rx-hero__actions {

    justify-content: center;

    max-width: 560px;

    margin-inline: auto;

  }



  .rx-hero-stats {

    width: min(620px, 100%);

    margin-inline: auto;

    order: 3;

  }



  .rx-hero__visual {

    width: 100%;

    min-height: 0;

    overflow: visible;

    order: 2;

  }



  .rx-tri-phone-container {

    width: min(100%, 560px);

    max-width: 560px;

    height: 480px;

  }



  .rx-phone-device {

    width: 210px;

    height: 430px;

  }



  .rx-phone-device--center {

    width: 224px;

    height: 456px;

    transform: translateY(-8px);

  }



  .rx-phone-device--left {

    transform: translateX(-152px) translateY(18px) scale(0.86) rotate(-7deg);

    opacity: 0.68;

  }



  .rx-phone-device--right {

    transform: translateX(152px) translateY(18px) scale(0.86) rotate(7deg);

    opacity: 0.68;

  }



  .rx-phone-device--center:hover {

    transform: translateY(-8px);

  }



  .rx-phone-device--left:hover {

    transform: translateX(-152px) translateY(18px) scale(0.86) rotate(-7deg);

  }



  .rx-phone-device--right:hover {

    transform: translateX(152px) translateY(18px) scale(0.86) rotate(7deg);

  }

  /* Front page packages horizontal scroll on mobile & tablets */
  body.rx-front-page .rx-plan-grid,
  body.rx-front-page .rx-wedding-package-grid {
    grid-auto-columns: min(80vw, 320px);
    grid-auto-flow: column;
    grid-template-columns: none;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    padding-inline: var(--rx-space-4) !important;
    padding-bottom: var(--rx-space-4) !important;
    margin-inline: calc(var(--rx-space-4) * -1) !important;
    scroll-padding-inline: var(--rx-space-4) !important;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin !important;
  }

  body.rx-front-page .rx-plan-grid::-webkit-scrollbar,
  body.rx-front-page .rx-wedding-package-grid::-webkit-scrollbar {
    display: block !important;
    height: 4px !important;
  }

  body.rx-front-page .rx-plan-grid::-webkit-scrollbar-track,
  body.rx-front-page .rx-wedding-package-grid::-webkit-scrollbar-track {
    background: rgb(var(--rx-champagne-rgb) / 0.1) !important;
    border-radius: var(--rx-pill) !important;
  }

  body.rx-front-page .rx-plan-grid::-webkit-scrollbar-thumb,
  body.rx-front-page .rx-wedding-package-grid::-webkit-scrollbar-thumb {
    background: rgb(var(--rx-ruby-rgb) / 0.3) !important;
    border-radius: var(--rx-pill) !important;
  }

  body.rx-front-page .rx-plan-card,
  body.rx-front-page .rx-wedding-package-card {
    scroll-snap-align: start;
  }

}



@media (max-width: 767px) {

  html {

    scroll-padding-top: 104px;

  }



  .rx-container {

    width: min(100% - 28px, var(--rx-container-max));

  }



  .rx-main {

    padding-bottom: 32px;

  }



  body.rx-front-page .rx-main {

    padding-bottom: 96px;

  }



  /* Hide decorative side accent strips on mobile — too narrow to read */

  .rx-inner-page-main:not(.rx-creator-page-main)::before,

  .rx-inner-page-main:not(.rx-creator-page-main)::after,

  .rx-page-main:not(.rx-booking-page-main):not(.rx-creator-page-main)::before,

  .rx-page-main:not(.rx-booking-page-main):not(.rx-creator-page-main)::after {

    display: none;

  }



  .rx-hero,

  .rx-section,

  .rx-event-marquee,

  .rx-page-hero,

  .rx-service-hero-section,

  .rx-booking-section,

  .rx-legal-section,

  .rx-page-content-section,
  #package,
  #contact {
    scroll-margin-top: 96px;
  }


  .rx-section {

    padding-block: clamp(2.75rem, 9vw, 4rem);

  }



  .rx-section-head {

    gap: var(--rx-space-2-5);

    margin-bottom: 28px;

  }



  .rx-section-head h2,
  .rx-booking-section h2,
  .rx-signature h2 {
    font-size: var(--rx-type-section);

    line-height: var(--rx-leading-display);

    letter-spacing: var(--rx-tracking-heading);

  }



  .rx-section-head>p:not(.rx-kicker),
  .rx-booking-section p:not(.rx-kicker),
  .rx-signature p:not(.rx-kicker) {
    font-size: var(--rx-type-body-small);

    line-height: var(--rx-leading-body);

  }



  .rx-hero {

    padding: 106px 0 38px;

  }



  .rx-hero__container {

    width: min(100% - 28px, 390px);

    justify-items: start;

    gap: 28px;

  }



  .rx-hero__copy,

  .rx-hero__text {

    width: 100%;

    max-width: 360px;

    align-items: flex-start;

    text-align: left;

  }



  .rx-hero .rx-kicker {

    max-width: 100%;

    font-size: var(--rx-type-eyebrow);

    line-height: var(--rx-leading-ui);

    letter-spacing: var(--rx-tracking-eyebrow);

  }



  .rx-hero h1 {

    max-width: 360px;

    font-size: var(--rx-type-hero);

    line-height: var(--rx-leading-display);

    letter-spacing: var(--rx-tracking-display);

    text-wrap: balance;

  }



  .rx-hero__copy>p:not(.rx-kicker),

  .rx-hero__text>p:not(.rx-kicker) {

    max-width: 360px;

    margin-inline: 0;

    font-size: var(--rx-type-body-lg);

    line-height: var(--rx-leading-body);

  }



  .rx-hero__actions {

    width: 100%;

    max-width: 360px;

    flex-direction: column;

    align-items: stretch;

    justify-content: flex-start;

    gap: var(--rx-space-2-5);

    padding-top: 10px;

  }



  .rx-hero__actions .rx-btn {

    width: 100%;

  }



  .rx-hero-stats {

    width: 100%;

    max-width: 360px;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    margin: 0;

    border-radius: var(--rx-radius-card);

  }



  .rx-hero-stats div {

    padding: var(--rx-space-4-5) 12px;

    border-right: 1px solid rgb(var(--rx-champagne-rgb) / 0.08);

    border-bottom: 1px solid rgb(var(--rx-champagne-rgb) / 0.08);

  }



  .rx-hero-stats div:nth-child(even) {

    border-right: 0;

  }



  .rx-hero-stats div:nth-child(5) {

    grid-column: 1 / -1;

    border-right: 0;

    border-bottom: 0;

  }



  .rx-hero__visual {

    width: 100%;

    min-height: 0;

  }



  .rx-tri-phone-container {

    width: min(100%, 362px);

    max-width: 362px;

    height: 356px;

  }



  .rx-phone-device {

    width: 150px;

    height: 306px;

  }



  .rx-phone-device--center {

    position: absolute;

    width: 172px;

    height: 350px;

    transform: translateY(-4px);

  }



  .rx-phone-device--left {

    display: block;

    transform: translateX(-92px) translateY(18px) scale(0.84) rotate(-8deg);

    opacity: 0.72;

  }



  .rx-phone-device--right {

    display: block;

    transform: translateX(92px) translateY(18px) scale(0.84) rotate(8deg);

    opacity: 0.72;

  }



  .rx-phone-device--center:hover {

    transform: translateY(-4px);

  }



  .rx-phone-device--left:hover {

    transform: translateX(-92px) translateY(18px) scale(0.84) rotate(-8deg);

  }



  .rx-phone-device--right:hover {

    transform: translateX(92px) translateY(18px) scale(0.84) rotate(8deg);

  }



  .rx-phone-bezel {

    border-radius: 34px;

    padding: var(--rx-space-2);

  }



  .rx-phone-screen {

    border-radius: 26px;

  }



  .rx-phone-bezel::after {

    top: 11px;

    width: 45px;

    height: 12px;

  }



  .rx-phone-unmute {

    bottom: 16px;

    font-size: var(--rx-type-tag);

    padding: 6px 14px;

  }



  .rx-hero-float,

  .rx-hero-badge {

    display: none;

  }

}



@media (max-width: 600px) {

  .rx-tri-phone-container {

    width: min(100%, 320px);

    max-width: 320px;

    height: 330px;

  }



  .rx-phone-device {

    width: 138px;

    height: 282px;

  }



  .rx-phone-device--center {

    width: 160px;

    height: 326px;

  }



  .rx-phone-device--left {

    transform: translateX(-78px) translateY(18px) scale(0.84) rotate(-8deg);

  }



  .rx-phone-device--right {

    transform: translateX(78px) translateY(18px) scale(0.84) rotate(8deg);

  }

}



@media (max-width: 480px) {

  .rx-hero__copy,

  .rx-hero__text,

  .rx-hero__actions,

  .rx-hero-stats {

    max-width: min(100%, 340px);

  }



  .rx-hero h1 {

    max-width: 330px;

    font-size: 2rem;

    line-height: var(--rx-leading-display);

  }



  .rx-hero__text>p:not(.rx-kicker) {

    max-width: 340px;

  }

}



@media (max-width: 380px) {

  .rx-tri-phone-container {

    transform: scale(0.93);

    transform-origin: center top;

  }

}





/* =======================================================

   SECTION GRIDS / HOMEPAGE RESPONSIVE

======================================================= */



/* Wide viewports: keep the core roster to three people.
   The creator recruitment card remains a separate CTA row. */
@media (min-width: 1200px) {
  .rx-team-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


@media (max-width: 1120px) {

  .rx-booking-section__grid,
  .rx-signature__inner,
  .rx-faq__layout {
    grid-template-columns: 1fr;
  }

  .rx-signature__wedding-cta,
  .rx-wedding-package-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }


  .rx-faq__layout .rx-section-head {

    position: static;

    justify-items: center;

    text-align: center;

  }



  .rx-plan-grid,

  .rx-feature-list,

  .rx-process-grid,

  .rx-proof__items,

  .rx-addons ul {

    grid-template-columns: repeat(2, minmax(0, 1fr));

  }



  .rx-special-plan,

  .rx-reviews__grid {

    grid-template-columns: 1fr;

  }



  .rx-site-footer__grid {

    grid-template-columns: 1fr;

  }



  .rx-site-footer__nav--groups {

    grid-template-columns: repeat(2, minmax(0, 1fr));

  }



  .rx-team-grid {

    grid-template-columns: repeat(2, minmax(0, 1fr));

  }

}



@media (max-width: 991px) {

  .rx-package-grid,

  .rx-related-services__grid {

    grid-template-columns: repeat(2, minmax(0, 1fr));

  }



  .rx-services-grid {

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: var(--rx-space-4);

  }



  .rx-exclusive-details__grid {

    grid-template-columns: 1fr;

    gap: 40px;

  }



  .rx-service-split-container.rx-has-sidebar {

    grid-template-areas:

      "hero"

      "sidebar"

      "content";

    gap: var(--rx-space-8);

  }



  .rx-service-split-container .rx-service-hero-copy {

    grid-area: hero;

    text-align: center;

  }



  .rx-service-split-container .rx-service-hero-actions {

    justify-content: center;

  }



  .rx-service-split-container .rx-service-split-right {

    grid-area: sidebar;

    display: flex;

    justify-content: center;

  }



  .rx-service-split-container .rx-content {

    grid-area: content;

  }

}



@media (min-width: 992px) {

  .rx-service-split-container.rx-has-sidebar {

    grid-template-columns: 1.2fr 0.8fr;

    grid-template-areas:

      "hero sidebar"

      "content sidebar";

    column-gap: 80px;

    row-gap: var(--rx-space-5);

  }



  .rx-service-split-container .rx-service-hero-copy {

    grid-area: hero;

  }



  .rx-service-split-container .rx-service-split-right {

    grid-area: sidebar;

    position: sticky;

    top: 120px;

    display: flex;

    justify-content: center;

    align-items: center;

  }



  .rx-service-split-container .rx-content {

    grid-area: content;

    margin: 0;

    max-width: 100%;

  }

}



@media (max-width: 760px) {

  .rx-plan-grid,

  .rx-feature-list,

  .rx-process-grid,

  .rx-proof__items,

  .rx-addons ul,

  .rx-direct-links,

  .rx-site-footer__grid,

  .rx-package-grid,

  .rx-related-services__grid,

  .rx-team-grid,

  .rx-page-main .rx-check-list--cols {

    grid-template-columns: 1fr;

  }



  /* rx-work-cylinder styles removed in H6 — replaced by .rx-reel-stack (see sections.css) */



  .rx-package-tabs {
    display: none;
  }

  .rx-plan-card {
    min-height: auto;

    padding: var(--rx-space-4-5);

  }



  .rx-plan-card__header,

  .rx-plan-card__price-row {

    align-items: flex-start;

    flex-direction: column;

  }



  .rx-plan-card__duration {

    max-width: none;

    text-align: left;

  }



  .rx-special-plan .rx-plan-card,

  .rx-plan-card.is-special,

  .rx-exclusive-plan-card {

    grid-template-columns: 1fr;

    grid-template-areas:

      "header"

      "price"

      "description"

      "features"

      "cta";

    padding: var(--rx-space-5-5);

    text-align: left;

  }



  .rx-special-plan .rx-plan-card__price-row,

  .rx-plan-card.is-special .rx-plan-card__price-row,

  .rx-exclusive-plan-card .rx-plan-card__price-row {

    justify-content: flex-start;

    text-align: left;

  }



  .rx-special-plan .rx-plan-card__features-list,

  .rx-plan-card.is-special .rx-plan-card__features-list,

  .rx-exclusive-plan-card .rx-plan-card__features-list {

    grid-template-columns: 1fr;

  }



  .rx-feature-list article,

  .rx-process-grid article,

  .rx-proof__items div {

    min-height: 0;

    padding: var(--rx-space-4-5);

    border-radius: var(--rx-radius-card);

  }



  .rx-process-grid::before {

    display: none;

  }



  .rx-process-grid article {

    display: grid;

    grid-template-columns: 42px minmax(0, 1fr);

    gap: var(--rx-space-1) 14px;

    align-items: start;

  }



  .rx-process-grid article span {

    grid-row: 1 / span 2;

    width: 42px;

    height: var(--rx-control-h-sm);

  }



  .rx-process-grid h3,

  .rx-process-grid p {

    grid-column: 2;

  }



  .rx-process-grid h3 {

    padding-top: 2px;

    font-size: 19px;

  }



  .rx-team {

    padding-bottom: 92px;

  }



  .rx-team-card {

    display: grid;

    grid-template-columns: 52px minmax(0, 1fr);

    gap: var(--rx-space-3);

    align-items: center;

    min-height: 0;

    padding: var(--rx-space-4);

    border-radius: var(--rx-radius-card);

  }



  .rx-team-card__avatar {

    width: 52px;

    height: 52px;

  }



  .rx-team-card__avatar-placeholder {

    font-size: 19px;

  }



  .rx-team-card__role {

    max-width: 100%;

    font-size: var(--rx-type-tag);

    line-height: 1.32;

    letter-spacing: 0.05em;

  }



  .rx-team-card__name {

    font-size: 1.05rem;

    line-height: 1.18;

  }



  .rx-team-card__bio {

    max-width: 100%;

    font-size: 13px;

    line-height: 1.45;

  }



  .rx-team-card__num {

    top: 10px;

    right: 14px;

    bottom: auto;

    font-size: 34px;

  }



  .rx-team-card--join {

    grid-template-columns: 52px minmax(0, 1fr);

    padding-bottom: 18px;

  }



  .rx-team-card--join .rx-team-card__cta {

    grid-column: 1 / -1;

    width: 100%;

    min-height: var(--rx-control-h);

    margin-top: var(--rx-space-1);

  }



  .rx-direct-links {

    gap: var(--rx-space-2);

    margin-top: var(--rx-space-4);

  }



  .rx-direct-links a {

    min-height: 46px;

    border-radius: var(--rx-radius-input);

    padding-inline: 16px;

    font-size: 13.5px;

  }



  .rx-booking-section__grid {

    gap: var(--rx-space-7);

  }



  .rx-booking-section .rx-booking-form {

    padding: var(--rx-space-5) 16px;

    border-radius: var(--rx-radius-card);

  }



  .rx-signature__inner {
    gap: 30px;
    padding-block: 16px;
  }

  .rx-signature__wedding-cta {
    grid-template-columns: 1fr;
  }

  .rx-wedding-package-grid {
    grid-template-columns: 1fr;
    gap: var(--rx-space-3);
  }

  .rx-wedding-package-card {
    gap: var(--rx-space-3);
    padding: var(--rx-space-4-5) 16px;
    border-radius: var(--rx-radius-card);
  }

  .rx-wedding-package-card ul {
    gap: 7px;
  }


  .rx-faq__list {

    gap: var(--rx-space-2-5);

    padding: 10px;

    border-radius: var(--rx-radius-card);

  }



  .rx-faq__question {

    padding: var(--rx-space-4-5) 16px;

    font-size: 1.04rem;

  }



  .rx-faq__answer {

    padding: 0 16px 18px;

  }



  .rx-site-footer__grid {

    gap: 30px;

    padding: 48px 0 34px;

  }



  .rx-site-footer__nav--groups {

    grid-template-columns: 1fr;

    gap: var(--rx-space-5);

  }



  .rx-site-footer__bottom {

    flex-direction: column;

    align-items: flex-start;

    gap: var(--rx-space-3-5);

  }



  .rx-site-footer__legal-links,

  .rx-site-footer__socials {

    flex-wrap: wrap;

    gap: var(--rx-space-2-5) 14px;

  }



  .rx-reviews__grid {

    grid-template-columns: 1fr;

  }



  .rx-reviews__marquee-wrap {

    margin-inline: -14px;

    padding-bottom: 0;

    -webkit-mask-image: linear-gradient(to right, transparent, var(--rx-noir) 4%, var(--rx-noir) 96%, transparent);

    mask-image: linear-gradient(to right, transparent, var(--rx-noir) 4%, var(--rx-noir) 96%, transparent);

  }



  .rx-reviews__marquee-track {

    gap: var(--rx-space-3-5);

    padding: 10px 0;

  }



  .rx-reviews__card {

    flex-basis: min(318px, calc(100vw - 44px));

    padding: var(--rx-space-4-5) 16px;

    border-radius: var(--rx-radius);

  }



  .rx-reviews__verified-badge {

    position: static;

    width: max-content;

    order: -1;

  }

}



@media (max-width: 480px) {
  .rx-package-tabs {
    display: none;
  }

  .rx-plan-card__badge {
    width: max-content;

  }

}

/* Page-first compact layouts */
.rx-packages-page-main .rx-page-hero,
.rx-reels-page-main .rx-page-hero {
  padding-bottom: clamp(1.5rem, 3vw, 2.4rem);
}

.rx-packages-page-main .rx-packages,
.rx-reels-page-main .rx-reels-gallery-section {
  padding-top: clamp(1.7rem, 3.2vw, 2.8rem);
}

.rx-packages-page-main .rx-page-content-section,
.rx-reels-page-main .rx-page-content-section {
  padding-block: clamp(1.7rem, 3.2vw, 2.8rem);
}

/* Booking page should expose packages before the form. */
.rx-booking-hero {
  padding: clamp(5.9rem, 8.2vw, 7.1rem) 0 clamp(1.4rem, 3vw, 2.2rem);
}

.rx-booking-hero__grid {
  gap: clamp(20px, 3.6vw, 44px);
}

.rx-booking-hero h1 {
  font-size: clamp(2.05rem, 4.1vw, 3.35rem);
}

.rx-booking-hero__copy>p:not(.rx-kicker) {
  max-width: 58ch;
  margin-top: 10px;
}

.rx-booking-hero__actions,
.rx-booking-hero__trust {
  margin-top: var(--rx-space-4);
}

.rx-booking-package-picker {
  padding: clamp(2rem, 3.8vw, 3.3rem) 0;
}

.rx-booking-package-picker .rx-section-head {
  margin-bottom: 1rem;
}

.rx-booking-package-card {
  gap: var(--rx-space-2-5);
  padding: var(--rx-space-4-5);
}

.rx-booking-package-card__desc {
  line-height: 1.42;
}

.rx-booking-package-card ul {
  gap: 7px;
}

.rx-booking-package-card li {
  font-size: 12.5px;
  line-height: 1.35;
}


/* =======================================================

   SERVICES / INNER PAGES

======================================================= */



@media (max-width: 1120px) {

  .rx-service-hero-layout,

  .rx-service-content-layout,

  .rx-legal-layout {

    grid-template-columns: 1fr;

  }



  .rx-service-preview-card,

  .rx-service-side-card,

  .rx-legal-sidebar {

    position: static;

  }



  .rx-service-preview-card {

    max-width: 620px;

  }



  .rx-service-content-layout {

    gap: 22px;

  }



  .rx-legal-layout {

    gap: 22px;

  }



  .rx-legal-sidebar__card {

    grid-template-columns: 1fr;

  }



  .rx-legal-toc {

    grid-template-columns: repeat(2, minmax(0, 1fr));

  }



  .rx-check-list--cols,

  .rx-service-points-grid,

  .rx-related-services__grid {

    grid-template-columns: repeat(2, minmax(0, 1fr));

  }

}



@media (max-width: 760px) {

  .rx-page-hero {

    padding: 104px 0 40px;

  }



  .rx-page-hero h1 {

    font-size: var(--rx-type-page);

    line-height: var(--rx-leading-display);

  }



  .rx-page-hero p:not(.rx-kicker) {
    font-size: 14.5px;
    line-height: 1.58;
  }

  .rx-faq-page-main .rx-page-hero {
    padding: 86px 0 18px;
  }

  .rx-faq-page-main .rx-page-hero .rx-kicker {
    display: none;
  }

  .rx-faq-page-main .rx-page-hero h1 {
    font-size: clamp(2rem, 10vw, 2.75rem);
  }

  .rx-faq-page-main .rx-page-hero p:not(.rx-kicker) {
    display: none;
  }

  .rx-faq-page-main .rx-page-content-section {
    display: none;
  }

  .rx-faq-page-main .rx-faq {
    padding-top: 18px;
  }

  .rx-page-content-section {
    padding-block: 34px;
  }



  .rx-page-content--card,

  .rx-generic-page-main .rx-page-content-section>.rx-content,

  .rx-faq-page-main .rx-page-content-section>.rx-content,

  .rx-service-content-card,

  .rx-legal-content-card {

    padding: var(--rx-space-5) 16px;

    border-radius: var(--rx-radius-card);

  }



  .rx-content {

    font-size: 15px;

    line-height: 1.68;

  }



  .rx-content h2 {

    margin-top: 2rem;

    font-size: 1.55rem;

  }



  .rx-content h3 {

    margin-top: 1.65rem;

    font-size: 1.18rem;

  }



  .rx-check-list--cols,

  .rx-service-points-grid,

  .rx-related-services__grid {

    grid-template-columns: 1fr;

    gap: var(--rx-space-3);

  }



  .rx-check-list--cols li,
  .rx-service-points-grid li {
    min-height: 0;
    padding: 17px 17px 17px 42px;
    border-radius: var(--rx-radius-card);
  }

  .rx-page-main .rx-check-list--cols li {
    padding-left: 48px;
  }

  .rx-check-list--cols li::before,
  .rx-service-points-grid li::before {
    top: 23px;
    left: 18px;
  }


  .rx-service-hero-section {

    padding: 104px 0 38px;

  }



  .rx-service-hero-layout {

    gap: var(--rx-space-6);

  }



  .rx-service-hero-copy h1 {

    font-size: var(--rx-type-page);

  }



  .rx-service-hero-copy .rx-page-hero__intro {

    font-size: 14.5px;

    line-height: 1.58;

  }



  .rx-service-hero-actions {

    flex-direction: column;

    align-items: stretch;

    gap: var(--rx-space-2-5);

    margin-top: 22px;

  }



  .rx-service-hero-actions .rx-btn {

    width: 100%;

  }



  .rx-service-hero-bullets {

    display: grid;

    grid-template-columns: 1fr;

  }



  .rx-service-preview-card {

    display: none;

  }



  .rx-service-content-section {

    padding-block: 34px;

  }



  .rx-service-side-card {

    padding: var(--rx-space-4-5);

    border-radius: var(--rx-radius-card);

  }



  .rx-service-side-card .rx-btn {

    width: 100%;

  }



  .rx-legal-section {

    padding-block: 34px;

  }



  .rx-legal-sidebar__card {

    padding: var(--rx-space-4);

    border-radius: var(--rx-radius-card);

  }



  .rx-legal-toc {

    grid-template-columns: 1fr;

  }



  .rx-legal-toc__link {

    padding: var(--rx-space-2) 0;

  }



  .rx-legal-content h2,

  .rx-legal-content h3 {

    scroll-margin-top: 104px;

  }



  .rx-related-service {

    min-height: 0;

    padding: var(--rx-space-4-5);

    border-radius: var(--rx-radius-card);

  }



  .rx-cta-card {

    padding: 34px 20px;

    border-radius: var(--rx-radius-card);

  }

}



/* =======================================================

   SERVICES GRID MOBILE

======================================================= */



@media (max-width: 600px) {

  .rx-services-section {

    padding-block: 42px;

  }



  .rx-services-section .rx-section-head {

    margin-bottom: var(--rx-space-4);

  }



  .rx-services-grid {

    grid-auto-flow: column;

    grid-auto-columns: minmax(224px, 78vw);

    grid-template-columns: none;

    grid-template-rows: repeat(2, minmax(164px, auto));

    gap: var(--rx-space-3);

    margin: 0 -14px;

    padding: var(--rx-space-1) 14px 12px;

    overflow-x: auto;

    overscroll-behavior-inline: contain;

    scroll-snap-type: x mandatory;

    scrollbar-width: none;

  }



  .rx-services-grid::-webkit-scrollbar {

    display: none;

  }



  .rx-service-card {

    min-height: 164px;

    padding: var(--rx-space-4-5);

    scroll-snap-align: start;

    border-radius: var(--rx-radius-card);

  }



  .rx-service-card__title {

    margin-bottom: var(--rx-space-2);

    font-size: 16px;

  }



  .rx-service-card__desc {

    margin-bottom: 14px;

    font-size: 13px;

    line-height: 1.45;

  }



  .rx-service-card__link {

    margin-top: auto;

    font-size: 13px;

  }

}





/* =======================================================

   BOOKING FORM / POPUP RESPONSIVE

======================================================= */



@media (max-width: 576px) {

  .rx-booking-form__grid,

  .rx-booking-form__grid--two {

    grid-template-columns: 1fr;

    gap: var(--rx-space-3);

  }



  .rx-booking-form__section {

    gap: var(--rx-space-3);

    padding-top: 14px;

  }



  .rx-booking-form__section-title span {

    width: 26px;

    height: 26px;

  }



  .rx-booking-popup__dialog {

    width: 100%;

    max-height: calc(100dvh - 16px);

    border-radius: var(--rx-radius-card-sm);

  }



  .rx-booking-popup__header {

    padding: var(--rx-space-6) 20px 0;

    gap: var(--rx-space-1-5);

  }



  .rx-booking-popup__dialog .rx-booking-form {

    margin: 12px;

    padding: var(--rx-space-4-5) 16px 22px;

  }



  .rx-booking-popup__close {

    top: 12px;

    right: 12px;

  }

}





/* =======================================================

   FLOATING CTA / WHATSAPP DESKTOP

======================================================= */



@media (min-width: 768px) {

  .rx-desktop-left-ctas {

    position: fixed;

    bottom: 40px;

    left: 40px;

    z-index: calc(var(--rx-z-dropdown) - 10);

    display: flex;

    flex-direction: row;

    align-items: center;

    gap: var(--rx-space-1);

    padding: 5px 6px;

    background: rgb(var(--rx-noir-rgb) / 0.86);

    backdrop-filter: blur(24px);

    -webkit-backdrop-filter: blur(24px);

    border: 1px solid rgb(var(--rx-champagne-rgb) / 0.12);

    border-radius: var(--rx-radius-99);

    box-shadow:

      0 30px 60px -15px rgb(var(--rx-noir-rgb) / 0.5),

      0 12px 24px -10px rgb(var(--rx-noir-rgb) / 0.3),

      inset 0 1px 1px rgb(var(--rx-champagne-rgb) / 0.2);

    pointer-events: auto;

    transition:

      opacity 0.4s var(--rx-ease-out),

      visibility 0.4s var(--rx-ease-out),

      transform 0.4s var(--rx-ease-out);

  }



  .rx-desktop-left-ctas.rx-floating-ctas--hidden,

  body:not(.rx-front-page) .rx-desktop-left-ctas {

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transform: translateY(20px);

  }



  .rx-capsule-divider {

    display: inline-block;

    width: 1px;

    height: 20px;

    margin: 0 4px;

    background: linear-gradient(to bottom, rgb(var(--rx-champagne-rgb) / 0) 0%, rgb(var(--rx-champagne-rgb) / 0.2) 50%, rgb(var(--rx-champagne-rgb) / 0) 100%);

  }



  .rx-capsule-cta {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    height: var(--rx-control-h-sm);

    gap: var(--rx-space-2);

    padding: 0 18px;

    border: 0;

    border-radius: var(--rx-radius-99);

    color: rgb(var(--rx-champagne-rgb) / 0.82);

    cursor: pointer;

    font-family: var(--rx-body-font);

    font-size: var(--rx-type-caption);

    font-weight: 800;

    text-decoration: none;

    white-space: nowrap;

    transition:

      transform 0.25s var(--rx-ease-out),

      box-shadow 0.25s var(--rx-ease-out),

      background 0.25s,

      color 0.25s;

  }



  .rx-capsule-cta svg {

    transition: transform 0.2s var(--rx-ease-out);

  }



  .rx-capsule-cta:hover svg {

    transform: translate(2px, -2px);

  }



  .rx-capsule-cta--primary {

    background: var(--rx-ruby);

    color: var(--rx-white);

    box-shadow: inset 0 1px 1px rgb(var(--rx-champagne-rgb) / 0.25), 0 4px 12px rgb(var(--rx-noir-rgb) / 0.25);

  }



  .rx-capsule-cta--primary:hover {

    transform: translateY(-1.5px);

    background: var(--rx-ruby-hover);

    color: var(--rx-white);

    box-shadow: inset 0 1px 1px rgb(var(--rx-champagne-rgb) / 0.35), 0 8px 24px rgb(var(--rx-noir-rgb) / 0.45);

  }



  .rx-capsule-cta--secondary {

    background: transparent;

    color: rgb(var(--rx-champagne-rgb) / 0.82);

  }



  .rx-capsule-cta--secondary:hover {

    transform: translateY(-1.5px);

    background: rgb(var(--rx-champagne-rgb) / 0.10);

    color: var(--rx-white);

    box-shadow: inset 0 1px 0 0 rgb(var(--rx-champagne-rgb) / 0.05);

  }



  .rx-desktop-wa-widget {

    position: fixed;

    right: 40px;

    bottom: 40px;

    z-index: calc(var(--rx-z-dropdown) - 5);

    display: block;

    pointer-events: auto;

  }



  .rx-wa-widget__trigger {

    position: relative;

    z-index: 10;

    display: flex;

    width: 60px;

    height: 60px;

    align-items: center;

    justify-content: center;

    border: 0;

    border-radius: 50%;

    background: var(--rx-noir);

    color: var(--rx-champagne);

    cursor: pointer;

    box-shadow: 0 20px 40px -10px rgb(var(--rx-noir-rgb) / 0.45);

    transition:

      transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275),

      box-shadow 0.2s ease,

      background-color 0.2s;

  }



  .rx-wa-widget__trigger:hover {

    transform: scale(1.08) rotate(4deg);

    background-color: var(--rx-noir-soft);

    box-shadow: 0 24px 44px -8px rgb(var(--rx-noir-rgb) / 0.55);

  }



  .rx-wa-widget__trigger:active {

    transform: scale(0.95);

  }



  .rx-wa-widget__badge {

    position: absolute;

    top: -2px;

    right: -2px;

    display: flex;

    width: 22px;

    height: 22px;

    align-items: center;

    justify-content: center;

    border: 2px solid var(--rx-champagne);

    border-radius: 50%;

    background: var(--rx-ruby);

    color: var(--rx-white);

    font-size: var(--rx-type-tag);

    font-weight: 800;

    box-shadow: 0 4px 10px rgb(var(--rx-noir-rgb) / 0.3);

    animation: waBadgePulse 2s infinite;

  }



  @keyframes waBadgePulse {

    0% {
      transform: scale(1);
    }

    50% {
      transform: scale(1.12);
    }

    100% {
      transform: scale(1);
    }

  }



  .rx-wa-widget__chat {

    position: absolute;

    right: 0;

    bottom: 80px;

    z-index: 5;

    display: flex;

    width: 360px;

    flex-direction: column;

    overflow: hidden;

    border-radius: var(--rx-radius);

    background: var(--rx-champagne);

    box-shadow:

      0 30px 60px -15px rgb(var(--rx-noir-rgb) / 0.25),

      0 12px 24px -10px rgb(var(--rx-noir-rgb) / 0.15),

      0 0 0 1px rgb(var(--rx-noir-rgb) / 0.06);

    opacity: 0;

    visibility: hidden;

    transform: translateY(24px) scale(0.92);

    transform-origin: bottom right;

    transition:

      opacity 0.35s var(--rx-ease-out),

      visibility 0.35s var(--rx-ease-out),

      transform 0.35s var(--rx-ease-out);

  }



  .rx-wa-widget__chat.is-open {

    opacity: 1;

    visibility: visible;

    transform: translateY(0) scale(1);

  }



  .rx-wa-widget__chat-header {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: var(--rx-space-5);

    border-bottom: 2px solid var(--rx-ruby);

    background: var(--rx-noir);

    color: var(--rx-white);

  }



  .rx-wa-widget__chat-profile {

    display: flex;

    align-items: center;

    gap: var(--rx-space-3);

  }



  .rx-wa-widget__chat-avatar {

    position: relative;

    display: flex;

    width: 44px;

    height: var(--rx-control-h);

    align-items: center;

    justify-content: center;

    border: 2px solid rgb(var(--rx-champagne-rgb) / 0.18);

    border-radius: 50%;

    background: rgb(var(--rx-champagne-rgb) / 0.10);

  }



  .rx-wa-widget__chat-avatar-placeholder {

    color: var(--rx-white);

    font-family: var(--rx-body-font);

    font-size: var(--rx-type-small-strong);

    font-weight: 800;

    letter-spacing: 0.5px;

  }



  .rx-wa-widget__chat-online-dot {

    position: absolute;

    right: -1px;

    bottom: -1px;

    width: 12px;

    height: 12px;

    border: 2px solid var(--rx-noir);

    border-radius: 50%;

    background: var(--rx-gold);

    box-shadow: 0 0 8px rgb(var(--rx-gold-rgb) / 0.7);

    animation: pulseOnline 2.2s infinite;

  }



  @keyframes pulseOnline {

    0% {
      box-shadow: 0 0 0 0 rgb(var(--rx-gold-rgb) / 0.7);
    }

    70% {
      box-shadow: 0 0 0 6px rgb(var(--rx-gold-rgb) / 0);
    }

    100% {
      box-shadow: 0 0 0 0 rgb(var(--rx-gold-rgb) / 0);
    }

  }



  .rx-wa-widget__chat-info h4 {

    margin: 0;

    color: var(--rx-white);

    font-family: var(--rx-body-font);

    font-size: 16px;

    font-weight: 750;

    line-height: 1.2;

  }



  .rx-wa-widget__chat-info p {

    margin: 4px 0 0;

    color: rgb(var(--rx-champagne-rgb) / 0.74);

    font-size: var(--rx-type-tag);

    font-weight: 500;

    line-height: 1;

  }



  .rx-wa-widget__chat-close {

    display: flex;

    width: 28px;

    height: 28px;

    align-items: center;

    justify-content: center;

    border: 0;

    border-radius: 50%;

    background: transparent;

    color: rgb(var(--rx-champagne-rgb) / 0.75);

    cursor: pointer;

    transition: background 0.2s, color 0.2s;

  }



  .rx-wa-widget__chat-close:hover {

    background: rgb(var(--rx-champagne-rgb) / 0.12);

    color: var(--rx-white);

  }



  .rx-wa-widget__chat-body {

    max-height: 260px;

    flex-grow: 1;

    overflow-y: auto;

    padding: var(--rx-space-6) 20px;

    background: var(--rx-champagne);

    background-image: radial-gradient(rgb(var(--rx-ruby-rgb) / 0.035) 1px, transparent 1px);

    background-size: 16px 16px;

  }



  .rx-wa-widget__bubble {

    position: relative;

    display: flex;

    max-width: 88%;

    flex-direction: column;

    gap: var(--rx-space-1);

    padding: var(--rx-space-3-5) 16px;

    border-left: 3px solid var(--rx-ruby);

    border-radius: 4px 18px 18px 18px;

    background: var(--rx-white);

    box-shadow: 0 4px 12px rgb(var(--rx-noir-rgb) / 0.04);

  }



  .rx-wa-widget__bubble-sender {

    color: var(--rx-ruby);

    font-size: var(--rx-type-label);

    font-weight: 800;

    letter-spacing: 0.5px;

    text-transform: uppercase;

  }



  .rx-wa-widget__bubble p {

    margin: 0;

    color: var(--rx-noir);

    font-size: 13.5px;

    font-weight: 500;

    line-height: 1.5;

  }



  .rx-wa-widget__bubble-time {

    align-self: flex-end;

    margin-top: 2px;

    color: var(--rx-slate);

    font-size: var(--rx-type-tag);

    opacity: 0.7;

  }



  .rx-wa-widget__chat-footer {

    display: flex;

    align-items: center;

    gap: var(--rx-space-2);

    padding: var(--rx-space-3-5) 16px;

    border-top: 1px solid rgb(var(--rx-noir-rgb) / 0.06);

    background: var(--rx-champagne);

  }



  .rx-wa-widget__chat-input {

    flex-grow: 1;

    height: var(--rx-control-h-sm);

    padding: 0 16px;

    border: 1px solid rgb(var(--rx-noir-rgb) / 0.08);

    border-radius: var(--rx-radius-card);

    background: var(--rx-white);

    color: var(--rx-noir);

    font-family: inherit;

    font-size: 13.5px;

    font-weight: 500;

    transition: border-color 0.25s, box-shadow 0.25s;

  }



  .rx-wa-widget__chat-input:focus {

    border-color: var(--rx-ruby);

    outline: none;

    box-shadow: 0 0 0 3px rgb(var(--rx-ruby-rgb) / 0.12);

  }



  .rx-wa-widget__chat-send {

    display: flex;

    flex: 0 0 auto;

    width: 40px;

    height: var(--rx-control-h-sm);

    align-items: center;

    justify-content: center;

    border: 0;

    border-radius: 50%;

    background: var(--rx-ruby);

    color: var(--rx-white);

    cursor: pointer;

    box-shadow: 0 4px 12px rgb(var(--rx-noir-rgb) / 0.20);

    transition: transform 0.2s var(--rx-ease-out), background-color 0.2s;

  }



  .rx-wa-widget__chat-send:hover {

    background-color: var(--rx-ruby-hover);

    transform: scale(1.05);

  }



  .rx-wa-widget__chat-send svg {

    margin-left: 2px;

  }

}





/* =======================================================

   MOBILE STICKY CTA

======================================================= */



@media (max-width: 767px) {

  .rx-sticky-bar {

    position: fixed;

    bottom: max(10px, env(safe-area-inset-bottom));

    left: 50%;

    z-index: var(--rx-z-dropdown);

    display: flex;

    width: min(calc(100% - 28px), 356px);

    height: 54px;

    align-items: center;

    justify-content: space-between;

    padding: 6px;

    border: 1px solid rgb(var(--rx-champagne-rgb) / 0.12);

    border-radius: var(--rx-pill);

    background: rgb(var(--rx-noir-rgb) / 0.90);

    box-shadow: 0 16px 40px rgb(var(--rx-noir-rgb) / 0.35);

    backdrop-filter: blur(20px);

    -webkit-backdrop-filter: blur(20px);

    pointer-events: auto;

    transform: translateX(-50%) translate3d(0, 0, 0);

    transition: opacity 300ms, visibility 300ms, transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1);

  }



  .rx-sticky-bar.rx-floating-ctas--hidden,

  .rx-sticky-bar.rx-floating-ctas--quiet,

  body.is-menu-open .rx-floating-ctas,

  body:not(.rx-front-page) .rx-sticky-bar {

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transform: translateX(-50%) translateY(24px) scale(0.95);

  }



  .rx-sticky-bar__whatsapp {

    display: flex;

    width: 44px;

    height: var(--rx-control-h);

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background: rgb(var(--rx-champagne-rgb) / 0.08);

    color: var(--rx-champagne);

    transition: background 0.2s, transform 0.2s;

  }



  .rx-sticky-bar__whatsapp:active {

    transform: scale(0.95);

    background: rgb(var(--rx-champagne-rgb) / 0.14);

    color: var(--rx-white);

  }



  .rx-sticky-bar__divider {

    width: 1px;

    height: 24px;

    background: rgb(var(--rx-champagne-rgb) / 0.15);

  }



  .rx-sticky-bar__book {

    display: flex;

    height: var(--rx-control-h);

    flex-grow: 1;

    align-items: center;

    justify-content: center;

    gap: var(--rx-space-1-5);

    margin-left: 8px;

    padding: 0 18px;

    border-radius: var(--rx-pill);

    background: var(--rx-ruby);

    color: var(--rx-white);

    font-size: var(--rx-type-small-strong);

    font-weight: 750;

    text-decoration: none;

    box-shadow: inset 0 1px 0 rgb(var(--rx-champagne-rgb) / 0.14);

    transition: transform 0.2s, background 0.2s;

  }



  .rx-sticky-bar__book:active {

    transform: scale(0.97);

    background: var(--rx-ruby-hover);

  }

}





/* =======================================================

   LEGAL TABLES MOBILE

======================================================= */



@media (max-width: 767px) {

  .rx-legal-content {

    overflow-x: visible;

  }



  .rx-legal-content table,

  .rx-legal-content thead,

  .rx-legal-content tbody,

  .rx-legal-content tr,

  .rx-legal-content th,

  .rx-legal-content td {

    display: block;

    width: 100%;

  }



  .rx-legal-content table {

    min-width: 0;

    margin: 1.5rem 0;

    border-collapse: separate;

    border-spacing: 0;

  }



  .rx-legal-content thead {

    position: absolute;

    width: 1px;

    height: 1px;

    overflow: hidden;

    clip: rect(0, 0, 0, 0);

  }



  .rx-legal-content tr {

    padding: var(--rx-space-3-5);

    margin-bottom: 14px;

    border: 1px solid var(--rx-champagne-deep);

    border-radius: var(--rx-radius-card-sm);

    background: var(--rx-champagne);

  }



  .rx-legal-content td {

    display: grid;

    grid-template-columns: minmax(96px, 35%) 1fr;

    gap: var(--rx-space-3);

    padding: 10px 0;

    border-bottom: 1px solid rgb(var(--rx-noir-rgb) / 0.08);

  }



  .rx-legal-content td:last-child {

    border-bottom: 0;

  }



  .rx-legal-content td[data-label]::before {

    content: attr(data-label);

    color: var(--rx-noir);

    font-size: var(--rx-type-meta);

    font-weight: 800;

    line-height: 1.35;

  }

}





/* =======================================================

   HEIGHT-BASED HERO COMPACTION

======================================================= */



@media (max-height: 900px) and (min-width: 992px) {

  .rx-hero {

    padding-top: 120px;

    padding-bottom: 34px;

  }



  .rx-hero__text {

    gap: var(--rx-space-2-5);

  }



  .rx-hero h1 {

    font-size: clamp(2.65rem, 4.3vw, 3.35rem);

  }



  .rx-hero__visual {

    min-height: auto;

  }



  .rx-hero-badge {

    display: none;

  }

}



@media (max-height: 768px) and (min-width: 992px) {

  .rx-hero {

    padding-top: 110px;

    padding-bottom: 24px;

  }



  .rx-hero__text {

    gap: var(--rx-space-1-5);

  }



  .rx-hero h1 {

    font-size: clamp(2.2rem, 3.7vw, 3rem);

  }

}





/* =======================================================

   REDUCED MOTION

======================================================= */



@media (prefers-reduced-motion: reduce) {

  *,

  *::before,

  *::after {

    scroll-behavior: auto;

  }



  [data-rx-animate] {

    opacity: 1;

    transform: translateY(0);

    transition: none;

  }



  .rx-event-marquee__track,

  .rx-reviews__marquee-track,

  .rx-phone-mock-disc-wrap,

  .rx-phone-mock-music-track span,

  .rx-wa-widget__badge,

  .rx-wa-widget__chat-online-dot {

    animation: none;

  }



  .rx-phone__video {

    display: none;

  }



  .rx-phone-unmute {

    display: none;

  }



  .rx-btn,

  .rx-reel-stack__card,

  .rx-capsule-cta,

  .rx-wa-widget__trigger,

  .rx-sticky-bar {
    transition: none;

  }

}



/* =======================================================

   UPDATED HEADER / FOOTER COMPATIBILITY

======================================================= */



@media (max-width: 1120px) {

  .rx-nav__dropdown {

    display: none;

  }

}



@media (max-width: 767px) {
  .rx-site-footer__legal-links {
    display: flex;
  }
}



@media (min-width: 768px) {

  .rx-desktop-wa-widget[aria-hidden="true"] {

    pointer-events: none;

  }

}



/* Keep hidden states reliable without using force overrides. */

.rx-mobile-menu[hidden],

.rx-mobile-nav-dropdown__menu[hidden],

.rx-faq__answer[hidden] {

  display: none;

}



@media (prefers-reduced-motion: reduce) {

  .rx-booking-popup,

  .rx-booking-popup__dialog,

  .rx-nav-dropdown__menu,

  .rx-mobile-menu,

  .rx-desktop-left-ctas,

  .rx-wa-widget__chat {

    transition-duration: 1ms;

  }

}



/* =======================================================

   HOMEPAGE MOBILE COMPACT SYSTEM

   -------------------------------------------------------

   Goal:

   - Reduce mobile scrolling.

   - Compact trust/proof cards.

   - Compact footer into grouped two-column links.

   - Keep header + floating CTA as the main mobile booking path.

   ======================================================= */



@media (max-width: 767px) {

  body.rx-front-page .rx-main {

    padding-bottom: 88px;

  }



  body.rx-front-page .rx-section {

    padding-block: clamp(2.25rem, 7.5vw, 3.25rem);

  }



  body.rx-front-page .rx-section-head {

    gap: var(--rx-space-2);

    margin-bottom: 20px;

  }



  body.rx-front-page .rx-section-head h2 {

    max-width: 10.5em;

    margin-inline: auto;

    font-size: clamp(2rem, 9vw, 2.65rem);

    line-height: 1.04;

  }



  body.rx-front-page .rx-section-head>p:not(.rx-kicker) {

    max-width: 32ch;

    font-size: var(--rx-type-small-strong);

    line-height: 1.55;

  }



  body.rx-front-page .rx-kicker {

    font-size: var(--rx-type-tag);

    letter-spacing: 0.13em;

  }



  /* Trust section compact cards */

  body.rx-front-page .rx-proof {

    padding-block: 34px 38px;

  }



  body.rx-front-page .rx-proof .rx-section-head {

    margin-bottom: var(--rx-space-4);

  }



  body.rx-front-page .rx-proof .rx-section-head h2 {

    max-width: 9.5em;

  }



  body.rx-front-page .rx-proof__items {

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: var(--rx-space-2-5);

    margin-top: var(--rx-space-4);

  }



  body.rx-front-page .rx-proof__items div {

    min-height: 116px;

    align-content: center;

    gap: 5px;

    padding: var(--rx-space-3-5);

    border-radius: var(--rx-radius-card);

  }



  body.rx-front-page .rx-proof__items div::after {

    right: -44px;

    bottom: -44px;

    width: 96px;

    height: 96px;

    opacity: 0.7;

  }



  body.rx-front-page .rx-proof__mark {

    width: 30px;

    height: 30px;

    margin-bottom: 3px;

    font-size: var(--rx-type-tag);

  }



  body.rx-front-page .rx-proof__items strong {

    font-size: clamp(1.35rem, 7vw, 1.85rem);

    line-height: 1;

  }



  body.rx-front-page .rx-proof__items span {

    font-size: var(--rx-type-tag);

    line-height: 1.25;

    letter-spacing: 0.11em;

  }



  body.rx-front-page .rx-proof__items p {

    display: none;

  }



  body.rx-front-page .rx-proof__items div:nth-child(odd):last-child {

    grid-column: 1 / -1;

  }



  /* Booking section is removed from front-page.php. Keep a safe mobile hide in case an older template is cached. */

  body.rx-front-page .rx-booking-section#contact {

    display: none;

  }



  /* Footer compact layout */

  .rx-site-footer {

    padding-bottom: 86px;

  }



  .rx-site-footer__grid {

    display: grid;

    gap: var(--rx-space-4-5);

    padding: 34px 0 18px;

  }



  .rx-site-footer__brand {

    padding: var(--rx-space-4);

    border: 1px solid rgb(var(--rx-champagne-rgb) / 0.10);

    border-radius: var(--rx-radius-card);

    background: rgb(var(--rx-champagne-rgb) / 0.045);

  }



  .rx-site-footer__brand .rx-brand {
    margin-bottom: var(--rx-space-2);
  }


  .rx-site-footer__socials {

    display: flex;

    flex-wrap: wrap;

    gap: var(--rx-space-2);

    margin-top: var(--rx-space-3);

  }



  .rx-site-footer__socials a {

    min-height: 34px;

    padding: 0 12px;

    border: 1px solid rgb(var(--rx-champagne-rgb) / 0.12);

    border-radius: var(--rx-radius-999);

    font-size: var(--rx-type-tag);

    font-weight: 850;

  }



  .rx-site-footer__nav--groups {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: var(--rx-space-4-5) 16px;

  }



  .rx-site-footer__group:first-child {

    grid-column: 1 / -1;

  }



  .rx-site-footer__group:first-child .rx-footer-links {

    grid-template-columns: repeat(2, minmax(0, 1fr));

  }



  .rx-site-footer__group h2,

  .rx-site-footer__contact h2 {

    margin-bottom: 9px;

    font-size: var(--rx-type-tag);

    line-height: 1.2;

    letter-spacing: 0.13em;

  }



  .rx-footer-links {

    display: grid;

    gap: 7px;

  }



  .rx-footer-links a {

    display: inline-flex;

    max-width: 100%;

    color: rgb(var(--rx-champagne-rgb) / 0.72);

    font-size: 11.5px;

    line-height: 1.35;

  }



  .rx-site-footer__contact {

    padding: 15px;

    border: 1px solid rgb(var(--rx-champagne-rgb) / 0.10);

    border-radius: var(--rx-radius-card);

    background: rgb(var(--rx-champagne-rgb) / 0.045);

  }



  .rx-site-footer__contact .rx-footer-links {

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: var(--rx-space-2);

  }



  .rx-site-footer__contact .rx-footer-links li:first-child,

  .rx-site-footer__contact .rx-footer-links li:nth-child(2) {

    grid-column: 1 / -1;

  }



  .rx-site-footer__contact .rx-footer-links a {

    min-height: var(--rx-control-h-sm);

    align-items: center;

    padding: 0 10px;

    border: 1px solid rgb(var(--rx-champagne-rgb) / 0.10);

    border-radius: 12px;

    background: rgb(var(--rx-champagne-rgb) / 0.045);

    overflow-wrap: anywhere;

  }



  .rx-site-footer__bottom {

    display: grid;

    gap: var(--rx-space-3);

    padding: var(--rx-space-2) 0 16px;

  }



  .rx-site-footer__bottom-info {

    display: block;

  }



  .rx-site-footer__bottom-info span {

    display: block;

    font-size: var(--rx-type-tag);

    line-height: 1.45;

  }



  .rx-site-footer__bottom-info span+span {

    display: none;

  }



  .rx-site-footer__legal-links {

    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: var(--rx-space-2);

  }



  .rx-site-footer__legal-links a {

    font-size: 10.5px;

    line-height: 1.3;

  }



  .rx-site-footer__wordmark {

    display: none;

  }

}



@media (max-width: 420px) {
  .rx-site-footer__nav--groups,
  .rx-site-footer__group:first-child .rx-footer-links,
  .rx-site-footer__contact .rx-footer-links,

  .rx-site-footer__legal-links {

    gap: var(--rx-space-2) 10px;

  }



  body.rx-front-page .rx-proof__items {

    gap: 9px;

  }



  body.rx-front-page .rx-proof__items div {
    padding: 13px 12px;
  }
}

@media (max-width: 767px) {
  /* .rx-work-cylinder__card sizing rule removed in H6 — see .rx-reel-stack in sections.css */

  .rx-page-hero--packages,
  .rx-page-hero--reels {
    padding: 92px 0 22px;
  }

  .rx-packages-page-main .rx-packages,
  .rx-reels-page-main .rx-reels-gallery-section {
    padding-block: 24px 30px;
  }

  .rx-packages-page-main .rx-page-content-section,
  .rx-reels-page-main .rx-page-content-section,
  .rx-packages-page-main .rx-page-points-section,
  .rx-reels-page-main .rx-page-points-section {
    padding-block: 24px;
  }

  .rx-booking-hero {
    padding: 92px 0 18px;
  }

  .rx-booking-hero h1 {
    font-size: clamp(1.8rem, 8vw, 2.35rem);
  }

  .rx-booking-hero__copy>p:not(.rx-kicker) {
    display: none;
  }

  .rx-booking-hero__actions {
    display: none;
  }

  .rx-booking-hero__trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-top: var(--rx-space-3);
  }

  .rx-booking-hero__trust span {
    min-height: 32px;
    padding-inline: 9px;
    font-size: var(--rx-type-tag);
    line-height: 1.2;
  }

  .rx-booking-package-picker {
    padding-block: 22px 28px;
  }

  .rx-booking-package-picker .rx-section-head {
    gap: 7px;
    margin-bottom: 14px;
  }

  .rx-booking-package-picker .rx-section-head>p:not(.rx-kicker) {
    display: none;
  }

  .rx-booking-package-card {
    gap: 9px;
    padding: 15px;
  }

  .rx-booking-package-card__desc {
    display: none;
  }

  .rx-booking-package-card li:nth-child(n+5) {
    display: none;
  }

  .rx-package-tabs {
    display: none;
  }

  .rx-site-footer__brand {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

}

/* End homepage mobile compact system */

/* Mobile-specific layout overrides for WhatsApp Support Widget */
@media (max-width: 767px) {
  .rx-desktop-wa-widget {
    display: none;
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: 88px;
    /* Floating directly above the sticky bar */
    z-index: 99999;
  }

  .rx-desktop-wa-widget.is-open {
    display: block !important;
  }

  .rx-wa-widget__trigger {
    display: none !important;
  }

  .rx-wa-widget__chat {
    position: relative;
    bottom: 0;
    right: 0;
    width: 100%;
    transform: translateY(12px) scale(0.95);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  }

  .rx-wa-widget__chat.is-open {
    transform: translateY(0) scale(1);
    opacity: 1;
    visibility: visible;
  }
}

@media (max-width: 768px) {
  .rx-hide-mobile {
    display: none !important;
  }
}

@media (max-width: 768px) {
  #rx-sticky-bar {
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, visibility 0.3s ease;
  }

  #rx-sticky-bar.is-hidden-in-hero {
    transform: translateY(120%);
    opacity: 0;
    visibility: hidden;
  }
}

@media (max-width: 768px) {
  #rx-sticky-bar {
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease, visibility 0.3s ease !important;
  }

  #rx-sticky-bar.is-hidden-in-hero {
    transform: translateY(120%) !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }
}