/* One compact, centered mobile composition; desktop keeps its original layout. */
.mobile-footer__heading { display: none !important; }
.mobile-footer-composition { display: contents; }
@layer mobile-footer {
  @media (max-width: 959px) {
    .mobile-footer-composition {
      display: grid !important;
      grid-template-columns: minmax(0, 1fr) !important;
      grid-template-rows: auto auto auto !important;
      width: 100% !important;
      background: var(--paper, #f5f5f7) !important;
      color: #173a4f !important;
      text-align: center !important;
    }
    .mobile-footer-composition--with-contact {
      height: calc(100svh - 2 * var(--mobile-footer-header-height, 66px)) !important;
      min-height: min-content !important;
      grid-template-rows: minmax(min-content, 1fr) auto auto !important;
    }
    .site-contact-cta, nav.prefooter-nav, footer.site-footer {
      position: relative !important;
      inset: auto !important;
      width: 100% !important;
      max-width: none !important;
      height: auto !important;
      min-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      border: 0 !important;
      border-radius: 0 !important;
      box-shadow: none !important;
      transform: none !important;
      opacity: 1 !important;
      visibility: visible !important;
      overflow: visible !important;
      background: var(--paper, #f5f5f7) !important;
      text-align: center !important;
    }
    .site-contact-cta::before, .site-contact-cta::after,
    nav.prefooter-nav::before, nav.prefooter-nav::after,
    footer.site-footer::before, footer.site-footer::after { display: none !important; content: none !important; }
    .site-contact-cta {
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      padding: 20px 20px !important;
      background: linear-gradient(rgba(0,0,0,.38), rgba(0,0,0,.48)), url("assets/contact-cta-coast-vertical-hq.webp") center 40% / cover no-repeat !important;
      color: #fff !important;
    }
    .site-contact-cta .site-contact-cta__inner,
    nav.prefooter-nav .prefooter-nav__inner,
    footer.site-footer .footer-grid {
      position: static !important;
      width: 100% !important;
      max-width: 540px !important;
      min-width: 0 !important;
      margin: 0 auto !important;
      padding: 0 !important;
      border: 0 !important;
      background: transparent !important;
      transform: none !important;
      text-align: center !important;
    }
    .site-contact-cta .site-contact-cta__inner { display: block !important; }
    .site-contact-cta .site-contact-cta__header {
      width: 100% !important;
      max-width: none !important;
      margin: 0 0 14px !important;
      padding: 0 !important;
      text-align: center !important;
    }
    .site-contact-cta .site-contact-cta__eyebrow {
      display: block !important;
      width: 100% !important;
      margin: 0 0 8px !important;
      padding: 0 !important;
      font: 600 14px/1.3 Arial, Helvetica, sans-serif !important;
      letter-spacing: .035em !important;
      text-transform: none !important;
      text-align: center !important;
    }
    .site-contact-cta .site-contact-cta__eyebrow::before { display: none !important; }
    .site-contact-cta .site-contact-cta__header h2 {
      width: 100% !important;
      max-width: 24ch !important;
      margin: 0 auto !important;
      padding: 0 !important;
      font: 400 clamp(24px, 6.6vw, 30px)/1.15 Georgia, "Times New Roman", serif !important;
      letter-spacing: -.02em !important;
      text-align: center !important;
      text-transform: none !important;
      text-wrap: balance !important;
      white-space: normal !important;
      overflow-wrap: normal !important;
      word-break: normal !important;
      text-shadow: none !important;
    }
    .site-contact-cta .site-contact-cta__strip {
      display: grid !important;
      grid-template-columns: minmax(0, max-content) auto !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 4px 12px !important;
      width: 100% !important;
      max-width: 354px !important;
      margin: 0 auto !important;
      padding: 0 !important;
      background: transparent !important;
      border: 0 !important;
    }
    .site-contact-cta :is(.site-contact-cta__item, .site-contact-cta__action, .site-contact-cta__social-block) {
      display: block !important;
      position: static !important;
      width: 100% !important;
      min-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      background: transparent !important;
      border: 0 !important;
      text-align: center !important;
    }
    .site-contact-cta .site-contact-cta__item { grid-column: 1 / -1 !important; }
    .site-contact-cta :is(.site-contact-cta__subtitle, .site-contact-cta__label, .prefooter-nav__destinations--reveal) { display: none !important; }
    .site-contact-cta a.site-contact-cta__value {
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      min-height: 28px !important;
      margin: 0 !important;
      color: #fff !important;
      -webkit-text-fill-color: #fff !important;
      font: 500 16px/1.4 Arial, Helvetica, sans-serif !important;
      letter-spacing: normal !important;
      text-align: center !important;
      white-space: normal !important;
      overflow-wrap: anywhere !important;
    }
    .site-contact-cta .site-contact-cta__action { margin-top: 8px !important; }
    .site-contact-cta a.site-contact-cta__whatsapp {
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      min-height: 40px !important;
      width: 100% !important;
      height: auto !important;
      margin: 0 !important;
      padding: 8px 10px !important;
      background: #fff !important;
      border: 1px solid #fff !important;
      border-radius: 4px !important;
      color: #173a4f !important;
      -webkit-text-fill-color: #173a4f !important;
      font: 600 14px/1.3 Arial, Helvetica, sans-serif !important;
      text-align: center !important;
      text-transform: none !important;
      letter-spacing: normal !important;
      transform: none !important;
    }
    .site-contact-cta .site-contact-cta__socials {
      display: flex !important;
      position: static !important;
      justify-content: center !important;
      gap: 8px !important;
      margin: 8px 0 0 !important;
      padding: 0 !important;
    }
    .site-contact-cta .site-contact-cta__socials a {
      display: grid !important;
      place-items: center !important;
      width: 38px !important;
      height: 40px !important;
      border: 1px solid rgba(255,255,255,.65) !important;
      border-radius: 4px !important;
      background: transparent !important;
      color: #fff !important;
      margin: 0 !important;
      padding: 0 !important;
    }
    .site-contact-cta .site-contact-cta__socials svg { width: 19px !important; height: 19px !important; color: #fff !important; }
    nav.prefooter-nav { padding: 10px 18px 4px !important; }
    nav.prefooter-nav .prefooter-nav__inner { display: flex !important; flex-direction: column !important; gap: 8px !important; }
    nav.prefooter-nav .prefooter-nav__inner::before,
    nav.prefooter-nav .prefooter-nav__inner::after { display: none !important; }
    nav.prefooter-nav .prefooter-nav__links,
    nav.prefooter-nav .prefooter-nav__destinations {
      display: flex !important;
      position: static !important;
      flex-wrap: wrap !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 0 16px !important;
      width: 100% !important;
      min-height: 0 !important;
      margin: 0 !important;
      padding: 0 !important;
      background: transparent !important;
      border: 0 !important;
      transform: none !important;
      opacity: 1 !important;
      visibility: visible !important;
      text-align: center !important;
    }
    nav.prefooter-nav :is(.prefooter-nav__links, .prefooter-nav__destinations) a {
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      width: auto !important;
      min-height: 30px !important;
      margin: 0 !important;
      padding: 4px 0 !important;
      background: transparent !important;
      border: 0 !important;
      color: #173a4f !important;
      -webkit-text-fill-color: #173a4f !important;
      font: 400 14px/1.4 Arial, Helvetica, sans-serif !important;
      letter-spacing: normal !important;
      text-align: center !important;
      text-transform: none !important;
      transform: none !important;
    }
    nav.prefooter-nav :is(.prefooter-nav__links, .prefooter-nav__destinations) a::before,
    nav.prefooter-nav :is(.prefooter-nav__links, .prefooter-nav__destinations) a::after { display: none !important; content: none !important; }
    nav.prefooter-nav .prefooter-nav__destinations > span {
      display: block !important;
      width: 100% !important;
      margin: 0 !important;
      color: #173a4f !important;
      -webkit-text-fill-color: #173a4f !important;
      font: 600 13px/1.5 Arial, Helvetica, sans-serif !important;
      text-align: center !important;
      text-transform: none !important;
      letter-spacing: normal !important;
    }
    nav.prefooter-nav :is(.mobile-footer__heading, .prefooter-nav__logo, .prefooter-nav__payments) { display: none !important; }
    .site-contact-cta + nav.prefooter-nav .prefooter-nav__contact { display: none !important; }
    nav.prefooter-nav .prefooter-nav__contact {
      display: flex !important;
      position: static !important;
      flex-wrap: wrap !important;
      justify-content: center !important;
      align-items: center !important;
      gap: 8px 16px !important;
      margin: 0 !important;
      padding: 8px 0 !important;
      background: transparent !important;
      text-align: center !important;
    }
    nav.prefooter-nav .prefooter-nav__contact a { font: 400 14px/1.4 Arial, Helvetica, sans-serif !important; }
    nav.prefooter-nav .prefooter-nav__socials { display: flex !important; position: static !important; gap: 10px !important; transform: none !important; }
    nav.prefooter-nav .prefooter-nav__socials a { display: grid !important; place-items: center !important; width: 32px !important; height: 32px !important; }
    nav.prefooter-nav .prefooter-nav__socials svg { width: 18px !important; height: 18px !important; }
    footer.site-footer { padding: 4px 20px 10px !important; }
    footer.site-footer .footer-grid { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 4px !important; }
    footer.site-footer .footer-brand { display: flex !important; justify-content: center !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }
    footer.site-footer .footer-brand > img {
      display: block !important;
      position: static !important;
      width: 142px !important;
      height: 40px !important;
      max-width: 100% !important;
      max-height: none !important;
      object-fit: contain !important;
      margin: 0 auto !important;
      padding: 0 !important;
      transform: none !important;
      filter: none !important;
      opacity: 1 !important;
      visibility: visible !important;
    }
    footer.site-footer .footer-brand > p,
    footer.site-footer .footer-payments--desktop { display: none !important; }
    footer.site-footer .footer-meta {
      display: flex !important;
      flex-direction: column !important;
      align-items: center !important;
      gap: 5px !important;
      width: 100% !important;
      margin: 0 !important;
      padding: 0 !important;
      text-align: center !important;
    }
    footer.site-footer :is(.footer-mobile-company, .footer-company--legal) {
      display: block !important;
      width: 100% !important;
      max-width: 520px !important;
      margin: 0 auto !important;
      padding: 0 !important;
      color: #4e5f62 !important;
      -webkit-text-fill-color: #4e5f62 !important;
      font: 400 12px/1.4 Arial, Helvetica, sans-serif !important;
      letter-spacing: normal !important;
      text-align: center !important;
      text-align-last: center !important;
      white-space: normal !important;
      word-break: normal !important;
    }
    footer.site-footer .footer-payments--mobile {
      display: block !important;
      order: -1 !important;
      width: 250px !important;
      max-width: 100% !important;
      height: 27px !important;
      min-height: 0 !important;
      margin: 0 auto !important;
      padding: 0 !important;
      background: none !important;
      border: 0 !important;
    }
    footer.site-footer .footer-payments--mobile img { display: block !important; width: 100% !important; height: auto !important; visibility: visible !important; opacity: 1 !important; }
    footer.site-footer .footer-company-break { display: none !important; }
    nav.prefooter-nav a:active,
    .site-contact-cta .site-contact-cta__socials a:active { background: #e9e5da !important; color: #173a4f !important; }
    .mobile-footer-composition a:focus-visible { outline: 2px solid currentColor !important; outline-offset: 2px !important; }
  }
}

/* Keep the Blog footer visible above its fixed page photo on mobile. */
@layer mobile-footer {
  @media (max-width: 959px) {
    html body:is([data-page="blog"], [data-page="blog-article"], [data-page="destination"]) .mobile-footer-composition--with-contact {
      overflow: visible !important;
    }
    html body:is([data-page="blog"], [data-page="blog-article"], [data-page="destination"]) :is(nav.prefooter-nav, footer.site-footer) {
      display: block !important;
      position: relative !important;
      z-index: 2 !important;
      visibility: visible !important;
      opacity: 1 !important;
      overflow: visible !important;
      background: var(--paper, #f5f5f7) !important;
    }
  }
}

@layer mobile-footer {
  @media (max-width: 959px) {
    nav.prefooter-nav, footer.site-footer { min-height: min-content !important; }
    html.mobile-footer-in-view a.whatsapp { visibility: hidden !important; pointer-events: none !important; }
  }
  @media (max-width: 959px) and (max-height: 700px) {
    .site-contact-cta { padding-block: 14px !important; }
    .site-contact-cta .site-contact-cta__header { margin-bottom: 10px !important; }
    nav.prefooter-nav { padding-top: 6px !important; }
    nav.prefooter-nav .prefooter-nav__inner { gap: 4px !important; }
    nav.prefooter-nav :is(.prefooter-nav__links, .prefooter-nav__destinations) a { min-height: 26px !important; padding-block: 3px !important; }
    footer.site-footer .footer-brand > img { height: 32px !important; }
    footer.site-footer .footer-meta { gap: 3px !important; }
  }
}

@layer mobile-footer {
  @media (max-width: 959px) {
    .site-contact-cta .site-contact-cta__item {
      justify-self: stretch !important;
      text-align: center !important;
    }
    .site-contact-cta a.site-contact-cta__value {
      width: 100% !important;
      max-width: none !important;
      margin-inline: auto !important;
      justify-content: center !important;
      text-align: center !important;
      text-align-last: center !important;
      direction: ltr !important;
    }
  }
}
