html {
  overflow-x: hidden;
}

body {
  overflow-x: hidden;
}

img,
video,
iframe,
embed,
object {
  max-width: 100%;
}

@media (max-width: 980px) {
  html {
    scroll-padding-top: 84px;
  }

  .cg-global-header {
    min-height: 68px;
    padding: 8px 12px;
  }

  .cg-global-brand {
    min-width: 98px;
  }

  .cg-global-brand strong {
    font-size: 18px;
  }

  .cg-global-brand span {
    font-size: 8px;
    letter-spacing: .2em;
  }

  .cg-nav-button {
    min-height: 38px;
    padding: 9px 10px;
    font-size: 11px;
  }

  .cg-global-nav {
    top: 68px;
    left: 10px;
    right: 10px;
    max-height: calc(100dvh - 82px);
    padding: 12px;
    overscroll-behavior: contain;
  }

  .cg-submenu {
    max-height: 44dvh;
    overflow-y: auto;
  }

  .cg-submenu a,
  .cg-nav-link,
  .cg-menu-summary,
  .cg-private-cta,
  .cg-reserve-cta {
    min-height: 42px;
    padding: 11px 12px;
    white-space: normal;
    line-height: 1.2;
  }

  .cg-private-cta,
  .cg-reserve-cta {
    justify-content: center;
  }

  .lux-hero,
  .menu-hero,
  .cele-hero,
  .delivery-hero,
  .shows-hero,
  .heritage-hero,
  main > .hero:first-child,
  .page-shell > .hero:first-child {
    min-height: min(720px, 92dvh) !important;
    padding-top: 94px !important;
  }

  .lux-hero-content,
  .menu-hero-content,
  .delivery-hero-content,
  .shows-hero-content,
  .hero-content {
    width: min(100%, 680px) !important;
  }

  .lux-hero h1,
  .menu-hero-content h1,
  .delivery-hero h1,
  .shows-hero h1,
  .heritage-hero h1,
  .hero h1 {
    max-width: 100% !important;
    font-size: clamp(38px, 11vw, 64px) !important;
    line-height: .98 !important;
    text-wrap: balance;
  }

  .lux-hero p,
  .menu-hero-content p,
  .delivery-hero p,
  .shows-hero p,
  .hero-copy {
    max-width: 100% !important;
    font-size: clamp(16px, 4.1vw, 19px) !important;
  }

  .lux-section,
  .section,
  .lux-section-heading,
  .review-shell,
  .footer-inner {
    width: min(100% - 24px, 1180px) !important;
  }

  .lux-section,
  .section {
    padding-top: clamp(38px, 9vw, 58px) !important;
    padding-bottom: clamp(38px, 9vw, 58px) !important;
  }

  .lux-section h2,
  .lux-section-heading h2,
  .section-title h2,
  .section h2 {
    font-size: clamp(28px, 8.8vw, 44px) !important;
    line-height: 1.06 !important;
  }

  .actions,
  .hero-actions,
  .delivery-hero-actions,
  .stop-actions {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
  }

  .btn,
  .lux-btn,
  button.btn,
  .actions a,
  .hero-actions a,
  .delivery-hero-actions a,
  .reservation-submit .link-button,
  .account-actions .link-button,
  .quick a,
  .footer-inner a,
  .footer-item a {
    width: 100%;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .reservation-submit .link-button,
  .account-actions .link-button,
  .quick a,
  .footer-inner a,
  .footer-item a {
    width: auto;
    min-height: 40px;
    padding: 8px 0;
  }

  .lux-intro,
  .lux-family,
  .lux-founder,
  .lux-panels,
  .lux-work,
  .home-salones,
  .pet-split,
  .pet-split-section,
  .location-grid,
  .contact-grid,
  .event-split,
  .quote-section,
  .food-section,
  .detail,
  .closing,
  .pause,
  .intro-columns {
    grid-template-columns: 1fr !important;
  }

  .closing {
    max-width: 100% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .closing-copy,
  .closing-postcards,
  .closing-quote {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .lux-benefits,
  .home-access-panel {
    width: min(100% - 20px, 1260px) !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 14px 0 10px !important;
  }

  .benefit-group-label,
  .benefit-group-label-sections {
    grid-column: 1 / -1 !important;
  }

  .benefit-link-card,
  .lux-benefits article {
    min-height: 118px !important;
    padding: 14px !important;
    border-radius: 10px !important;
  }

  .benefit-link-card span,
  .lux-benefits span {
    font-size: 24px !important;
    margin-bottom: 7px !important;
  }

  .benefit-link-card h3,
  .lux-benefits h3 {
    font-size: 12px !important;
    line-height: 1.13 !important;
  }

  .benefit-link-card p,
  .lux-benefits p {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  .salones-gallery,
  .experience-grid,
  .heritage-now-gallery,
  .menu-packages,
  .extras-grid,
  .shows-grid,
  .delivery-grid,
  .quick-grid,
  .family-grid,
  .adventure-grid {
    grid-template-columns: 1fr !important;
  }

  .salon-tile,
  .experience-card,
  .gallery-card,
  .heritage-card,
  .package-card,
  .show-card,
  .delivery-card,
  .quick,
  .family-card,
  .adventure-card {
    min-width: 0 !important;
  }

  .salones-gallery img,
  .experience-card img,
  .gallery-card img,
  .heritage-card img,
  .family-image-card img,
  .detail-photo img,
  .food-photo img {
    min-height: 0 !important;
    max-height: none !important;
  }

  .reviews-section,
  .review-shell {
    grid-template-columns: 1fr !important;
  }

  .review-arrow-lux,
  .review-arrow {
    display: none !important;
  }

  .reviews-track-lux {
    grid-auto-columns: minmax(248px, 82vw) !important;
    padding-inline: 2px;
  }

  .route-showcase {
    margin-top: 0 !important;
    padding-top: 22px !important;
  }

  .routes-grid {
    display: grid !important;
    grid-auto-flow: column;
    grid-auto-columns: minmax(178px, 74vw);
    grid-template-columns: none !important;
    gap: 12px;
    overflow-x: auto;
    padding: 2px 4px 14px !important;
    scroll-snap-type: x proximity;
    overscroll-behavior-x: contain;
  }

  .route-card {
    min-height: 300px !important;
    scroll-snap-align: start;
  }

  .route-card h3 {
    font-size: 16px !important;
  }

  .map-panel {
    min-height: auto !important;
    padding: 8px !important;
    overflow: hidden !important;
    border-radius: 18px !important;
  }

  .map-panel::before {
    inset: -8px !important;
    border-radius: 24px !important;
  }

  .map-panel::after {
    border-radius: 20px !important;
  }

  .map-panel img {
    min-height: 360px !important;
    height: auto !important;
    border-radius: 18px !important;
  }

  .map-label {
    width: calc(50% - 10px) !important;
    min-height: 58px !important;
    margin: 5px !important;
    padding: 8px 9px !important;
    border-radius: 8px !important;
    font-size: 11px !important;
  }

  .map-label strong {
    font-size: 11px !important;
  }

  .oficios-section .sabor-cards,
  .sabor-cards {
    display: grid !important;
    grid-auto-flow: column;
    grid-auto-columns: minmax(168px, 64vw);
    grid-template-columns: none !important;
    overflow-x: auto;
    gap: 10px;
    padding-bottom: 12px;
    scroll-snap-type: x proximity;
  }

  .sabor-card {
    min-height: 220px !important;
    scroll-snap-align: start;
  }

  .stop-card,
  .stop-card:nth-child(even) {
    grid-template-columns: 1fr !important;
  }

  .stop-card:nth-child(even) .stop-media {
    order: initial !important;
  }

  .stop-media,
  .stop-media img {
    min-height: 300px !important;
  }

  .stop-copy {
    padding: 24px 18px 26px !important;
  }

  .stop-copy h3 {
    font-size: clamp(26px, 8vw, 38px) !important;
  }

  .route-jump {
    width: calc(100% - 16px) !important;
    max-width: 1220px !important;
    box-sizing: border-box !important;
    margin-top: -24px !important;
  }

  .route-jump-head {
    display: block !important;
  }

  .route-jump-track {
    grid-auto-columns: minmax(142px, 68vw) !important;
  }

  .jump-card {
    min-height: 158px !important;
  }

  .footer-inner {
    grid-template-columns: 1fr !important;
  }

  .footer-item,
  .footer-item:last-child {
    justify-content: flex-start !important;
    border-right: 0 !important;
    text-align: left !important;
  }

  .footer-brand {
    text-align: left !important;
  }
}

@media (max-width: 560px) {
  html {
    scroll-padding-top: 74px;
  }

  .cg-global-header {
    min-height: 62px;
    gap: 8px;
  }

  .cg-global-brand strong {
    font-size: 16px;
  }

  .cg-global-brand span {
    font-size: 7px;
  }

  .cg-nav-button {
    min-height: 36px;
    padding: 8px 9px;
    font-size: 10px;
  }

  .cg-nav-button::before {
    width: 16px;
  }

  .cg-global-nav {
    top: 62px;
    left: 8px;
    right: 8px;
    max-height: calc(100dvh - 72px);
  }

  .lux-hero,
  .menu-hero,
  .cele-hero,
  .delivery-hero,
  .shows-hero,
  .heritage-hero,
  main > .hero:first-child,
  .page-shell > .hero:first-child {
    min-height: min(640px, 90dvh) !important;
    padding: 84px 18px 42px !important;
  }

  .lux-hero h1,
  .menu-hero-content h1,
  .delivery-hero h1,
  .shows-hero h1,
  .heritage-hero h1,
  .hero h1 {
    font-size: clamp(34px, 10vw, 46px) !important;
  }

  .hero h1 .big {
    font-size: 1.12em !important;
    line-height: .9 !important;
  }

  .hero h1 .script {
    font-size: .86em !important;
    line-height: .96 !important;
  }

  .lux-benefits,
  .home-access-panel {
    grid-template-columns: 1fr !important;
  }

  .benefit-link-card,
  .lux-benefits article {
    min-height: auto !important;
  }

  .route-card {
    min-height: 282px !important;
  }

  .map-panel img {
    min-height: 300px !important;
  }

  .map-label {
    width: 100% !important;
    margin: 4px 0 !important;
  }

  .stop-media,
  .stop-media img {
    min-height: 260px !important;
  }

  .closing-postcards,
  .postcards {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    min-height: auto !important;
  }

  .closing-photo,
  .closing-photo:nth-child(2),
  .closing-photo:nth-child(3),
  .postcard,
  .postcard:nth-child(2),
  .postcard:nth-child(3) {
    min-height: 220px !important;
    transform: none !important;
  }
}

.cg-back-to-top {
  position: fixed;
  right: clamp(16px, 2.5vw, 28px);
  bottom: clamp(18px, 3vw, 30px);
  z-index: 99998;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(233, 194, 82, .72);
  border-radius: 999px;
  background:
    linear-gradient(135deg, rgba(76, 82, 35, .96), rgba(116, 46, 31, .96));
  color: #fff7df;
  box-shadow: 0 16px 34px rgba(23, 14, 6, .28);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity .22s ease, transform .22s ease, box-shadow .22s ease;
}

.cg-back-to-top span {
  display: block;
  font-family: Georgia, serif;
  font-size: 28px;
  line-height: 48px;
}

.cg-back-to-top:hover,
.cg-back-to-top:focus-visible {
  box-shadow: 0 18px 40px rgba(23, 14, 6, .36);
  transform: translateY(8px);
}

.cg-back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

@media (max-width: 700px) {
  .cg-back-to-top {
    right: 14px;
    bottom: 14px;
    width: 46px;
    height: 46px;
  }

  .cg-back-to-top span {
    font-size: 24px;
    line-height: 42px;
  }
}
