/* Site-wide responsive overlay — phones, tablets, and short viewports.
   Loaded last so layout/home/pages keep their desktop design. */

:root {
  --gti-gutter: 1.25rem;
}

img,
video,
iframe,
svg,
canvas {
  max-width: 100%;
}

iframe {
  width: 100%;
}

table {
  max-width: 100%;
}

.gti-home,
.gti-page,
.booking-flow-page,
.gti-pkg-detail {
  overflow-wrap: break-word;
}

/* --------------------------------------------------------------------------
   Safe area + sticky chrome
   -------------------------------------------------------------------------- */
.site-header.site-header--modern {
  padding-top: env(safe-area-inset-top, 0px);
}

.mobile-cta-bar {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.site-whatsapp-float {
  right: max(1rem, env(safe-area-inset-right, 0px));
}

@media (max-width: 1023px) {
  body {
    padding-bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px)) !important;
  }

  .site-whatsapp-float {
    bottom: calc(5.35rem + env(safe-area-inset-bottom, 0px));
    width: 3.35rem;
    height: 3.35rem;
  }

  .site-whatsapp-float-icon {
    width: 1.65rem;
    height: 1.65rem;
  }

  .site-footer--pro {
    padding-bottom: 0;
  }
}

/* --------------------------------------------------------------------------
   Header + mobile menu
   -------------------------------------------------------------------------- */
.site-navbar-country-select {
  min-width: 0;
}

.mobile-menu-country {
  margin: 0 0 1rem;
}

.mobile-menu-country .site-navbar-country-select {
  width: 100%;
  max-width: none;
  min-height: 2.75rem;
  font-size: 0.875rem;
}

@media (max-width: 1279px) {
  .site-header--modern .site-navbar-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .site-header--modern .site-navbar-end {
    max-width: min(58vw, 16rem);
  }
}

@media (max-width: 639px) {
  .site-header--modern .site-logo-img,
  .site-header--modern.is-scrolled .site-logo-img {
    height: 2.75rem;
    max-width: min(9.75rem, 46vw);
  }

  .site-header--modern .site-navbar-row {
    min-height: 3.85rem;
    gap: 0.5rem;
  }

  .site-header--modern .site-nav-toggle {
    width: 2.35rem;
    height: 2.35rem;
  }

  .mobile-menu {
    padding-bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
  }
}

/* --------------------------------------------------------------------------
   Homepage hero
   -------------------------------------------------------------------------- */
@media (max-width: 899px) {
  .page-home .hero-home--cinematic {
    min-height: 0;
    align-content: start;
  }

  .gti-hero-inner {
    width: min(1180px, calc(100% - 1.75rem));
    padding: calc(var(--header-total-h, 5.5rem) + 1.75rem) 0 1.15rem;
    gap: 1.25rem;
  }

  .gti-hero-copy h1 {
    max-width: none;
    font-size: clamp(2.05rem, 11vw, 3.15rem);
  }

  .gti-hero-lead {
    font-size: 0.95rem;
    max-width: none;
  }

  .gti-hero-places {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
  }

  .gti-hero-place {
    aspect-ratio: 3 / 4;
    min-height: 0;
  }

  .gti-hero-place span {
    font-size: 0.58rem;
    letter-spacing: 0.08em;
    left: 0.4rem;
    right: 0.4rem;
    bottom: 0.4rem;
  }

  .gti-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
    max-width: 22rem;
  }

  @media (min-width: 480px) {
    .gti-hero-actions {
      grid-template-columns: 1fr 1fr;
      max-width: 28rem;
    }
  }

  .gti-hero-actions .gti-btn {
    width: 100%;
    justify-content: center;
  }

  .gti-hero-foot {
    width: min(1180px, calc(100% - 1.75rem));
    margin-bottom: 1.15rem;
  }

  .gti-hero-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem;
  }

  .gti-hero-stats div {
    padding: 0.65rem 0.5rem 0.7rem;
  }

  .gti-hero-stats dt {
    font-size: 1.15rem;
  }

  .gti-hero-stats dd {
    font-size: 0.58rem;
    letter-spacing: 0.04em;
  }
}

@media (max-width: 479px) {
  .gti-hero-stats {
    grid-template-columns: 1fr;
  }

  .gti-hero-now {
    padding: 0.7rem 0.8rem;
  }
}

@media (max-height: 740px) and (max-width: 899px) {
  .page-home .hero-home--cinematic {
    min-height: 0;
  }

  .gti-hero-inner {
    padding-top: calc(var(--header-total-h, 5.5rem) + 1.15rem);
  }

  .gti-hero-place {
    aspect-ratio: 4 / 5;
  }
}

/* --------------------------------------------------------------------------
   Homepage sections
   -------------------------------------------------------------------------- */
@media (max-width: 759px) {
  .gti-why,
  .gti-about,
  .gti-themes,
  .gti-tours,
  .gti-cat-band,
  .gti-cta {
    padding-top: 3.15rem;
    padding-bottom: 3.15rem;
  }

  .gti-home .gti-cat-band__title {
    font-size: 1.42rem;
  }

  .gti-cat-band__head {
    margin-bottom: 1.2rem;
  }

  .gti-cat-band__intro {
    margin-top: 0.55rem;
    max-width: none;
    font-size: 0.88rem;
    line-height: 1.6;
    -webkit-line-clamp: 4;
  }

  .gti-pkg-card__cta {
    min-height: 2.45rem;
    padding: 0.48rem 0.95rem;
  }

  .gti-why-card--circle,
  .gti-why-card--shield {
    aspect-ratio: auto;
    max-width: none;
    width: 100%;
    border-radius: 1.35rem;
    text-align: left;
    align-items: flex-start;
    padding: 1.5rem 1.25rem 1.45rem;
  }

  .gti-why-card--shield::before {
    clip-path: none;
    border-radius: 1.35rem;
  }

  .gti-why-card--circle .gti-why-art,
  .gti-why-card--shield .gti-why-art {
    margin-inline: 0;
  }

  .gti-dest-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
  }

  .gti-dest-card,
  .gti-dest-card img {
    min-height: 8.75rem;
  }

  .gti-dest-card span {
    font-size: 1rem;
  }

  .gti-why-actions,
  .gti-cta .gti-hero-actions,
  .gti-section-head {
    justify-content: center;
  }

  .gti-why-btn,
  .gti-cta .gti-btn {
    width: 100%;
    max-width: 22rem;
  }
}

@media (max-width: 419px) {
  .gti-dest-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 899px) {
  .gti-about-paper {
    margin-left: 0;
    padding: 1.45rem 1.2rem 1.4rem;
  }

  .gti-about-wood {
    margin-right: 0;
    padding: 0.7rem;
  }

  .gti-about-frame img {
    height: 16rem;
  }

  .gti-tours .pkg-card-home--split .pkg-card__footer,
  .gti-tours .pkg-card-home--split .card-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .gti-tours .pkg-card-home--split .pkg-card__title {
    font-size: 1.28rem;
  }

  .pkg-card .card-actions {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 640px) and (max-width: 899px) {
  .gti-tours .pkg-card-home--split .card-actions,
  .pkg-card .card-actions {
    grid-template-columns: 1fr 1fr;
  }
}

/* --------------------------------------------------------------------------
   Inner pages
   -------------------------------------------------------------------------- */
@media (max-width: 799px) {
  .gti-inner-hero {
    min-height: 16.5rem;
  }

  .gti-inner-hero__inner {
    width: min(1180px, calc(100% - 1.5rem));
    padding: calc(var(--header-total-h, 5.25rem) + 1.35rem) 0 2.35rem;
  }

  .gti-inner-hero h1 {
    font-size: clamp(1.7rem, 8vw, 2.35rem);
  }

  .gti-inner-hero__lead,
  .gti-inner-hero__sub {
    font-size: 0.95rem;
  }

  .gti-page-lift {
    margin-top: -2.35rem;
  }

  .gti-chip-nav.gti-page-lift {
    width: calc(100% - 1.25rem);
    margin-top: -1.65rem;
    border-radius: 1rem;
  }

  .gti-chip-nav.gti-page-lift .gti-chip-nav__inner,
  .gti-chip-nav__inner {
    width: 100%;
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0.55rem 0.6rem;
    gap: 0.4rem;
  }

  .gti-chip {
    font-size: 0.72rem;
    padding: 0.42rem 0.8rem;
  }

  .gti-page-wrap,
  .gti-page-wrap--wide,
  .gti-page-wrap--narrow,
  .gti-wrap {
    width: min(1180px, calc(100% - 1.5rem));
  }

  .gti-page-block {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .gti-cover-card {
    min-height: 20.5rem;
  }

  .gti-cover-card__cta {
    padding: 0.65rem 0.8rem;
    font-size: 0.68rem;
  }

  .gti-surface--pad,
  .gti-page-intro.gti-page-lift .gti-page-wrap--narrow {
    padding: 1.25rem 1.05rem;
  }

  .gti-contact-panel,
  .gti-form-card {
    padding: 1.25rem 1.05rem;
  }

  .gti-form-row {
    grid-template-columns: 1fr;
  }

  .gti-plan-layout {
    grid-template-columns: 1fr;
    padding: 2.25rem 0 3rem;
  }

  .gti-actions {
    width: 100%;
  }

  .gti-actions .gti-btn,
  .gti-empty .gti-btn {
    width: 100%;
    justify-content: center;
  }

  .gti-float-stats__grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 479px) {
  .gti-float-stats__grid {
    grid-template-columns: 1fr;
  }

  .gti-cover-card {
    min-height: 18.5rem;
  }
}

/* --------------------------------------------------------------------------
   Package details
   -------------------------------------------------------------------------- */
@media (max-width: 639px) {
  .gti-pkg-detail {
    padding: calc(var(--header-total-h, 5.25rem) + 0.85rem) 0 3.25rem;
  }

  .gti-pkg-detail header h1 {
    font-size: 1.7rem;
  }

  .pkg-detail-gallery {
    grid-template-columns: 1fr 1fr;
    height: auto;
  }

  .pkg-detail-gallery-main {
    grid-column: 1 / -1;
    grid-row: auto;
    min-height: 12.5rem;
    aspect-ratio: 16 / 10;
  }

  .pkg-booking-panel,
  .pkg-quote-card,
  .pkg-sidebar-card {
    max-width: 100%;
  }

  .pkg-date-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    font-size: 0.75rem;
  }

  .related-tours-track {
    gap: 0.85rem;
  }

  .gti-pkg-detail .related-tour-card {
    min-width: min(16.5rem, 82vw);
  }
}

/* --------------------------------------------------------------------------
   Booking
   -------------------------------------------------------------------------- */
@media (max-width: 979px) {
  .gti-booking-hero {
    padding: calc(var(--header-total-h, 5.25rem) + 1.1rem) 0 1.35rem;
  }

  .gti-page .booking-page-title {
    font-size: clamp(1.55rem, 6vw, 2rem);
  }

  .gti-page .booking-page-sub {
    font-size: 0.9rem;
    margin-top: 0.4rem;
  }

  .gti-page .booking-flow-stepper {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 0.4rem;
    margin-top: 1rem;
    padding-bottom: 0.15rem;
  }

  .gti-page .booking-flow-step {
    flex: 0 0 auto;
    font-size: 0.7rem;
    padding: 0.35rem 0.65rem;
  }

  .gti-booking-body {
    margin-top: 0;
    padding: 1rem 0 calc(3.25rem + env(safe-area-inset-bottom, 0px));
  }

  .gti-page .booking-layout {
    grid-template-columns: 1fr;
    gap: 1.15rem;
  }

  .gti-page .booking-form-card {
    padding: 1.15rem 0.95rem 1.25rem;
    border-radius: 1.05rem;
  }

  .gti-page .booking-summary-v2-card {
    border-radius: 1.05rem;
    overflow: hidden;
  }

  .booking-back-link {
    margin-bottom: 0.85rem;
    font-size: 0.82rem;
  }

  .booking-flow-form-title {
    font-size: 1.35rem;
    line-height: 1.25;
  }

  .booking-payment-currency-options {
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
  }

  .booking-payment-currency-option {
    min-width: 0;
    padding: 0.75rem 0.65rem;
  }

  .booking-payment-plan {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.55rem 0.65rem;
    padding: 0.85rem 0.8rem;
  }

  .booking-payment-plan-price {
    width: auto;
    margin-left: 0;
    justify-self: end;
  }

  .booking-payment-plan-price strong {
    font-size: 0.92rem;
    white-space: nowrap;
  }

  .booking-payment-plan-sub {
    font-size: 0.75rem;
  }

  .booking-payment-method {
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.8rem 0.75rem;
  }

  .booking-flow-phone-row {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: 0.5rem;
  }

  .booking-btn-success,
  .booking-btn-primary,
  [data-submit-payment] {
    width: 100%;
    justify-content: center;
  }

  .booking-payment-secure {
    font-size: 0.72rem;
    line-height: 1.45;
  }

  .gti-page .booking-summary-v2--aside {
    position: static;
  }
}

@media (max-width: 479px) {
  .booking-payment-currency-option {
    flex-direction: column;
    text-align: center;
    gap: 0.35rem;
    padding: 0.7rem 0.45rem;
  }

  .booking-payment-currency-label small {
    display: none;
  }

  .booking-payment-plan {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .booking-payment-plan-price {
    grid-column: 2;
    justify-self: start;
    text-align: left;
  }
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .ft-invite__actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    gap: 0.65rem;
  }

  .ft-invite__actions .ft-btn {
    width: 100%;
    justify-content: center;
  }

  .ft-trust__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem 0.85rem;
  }

  .ft-bar__inner {
    display: grid;
    gap: 0.85rem;
    text-align: left;
  }

  .ft-bar__legal,
  .ft-pay {
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .ft-contact a,
  .ft-contact span {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 479px) {
  .ft-trust__list {
    grid-template-columns: 1fr;
  }

  .ft-logo__img {
    height: 2.85rem;
    max-width: 10rem;
  }
}

/* --------------------------------------------------------------------------
   Forms, buttons, tap targets
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  input,
  select,
  textarea,
  button,
  .booking-flow-input,
  .site-navbar-country-select {
    font-size: 16px;
  }

  .gti-btn,
  .booking-btn-success,
  .booking-btn-primary,
  .pkg-sidebar-cta,
  .pkg-detail-booking-submit,
  .pkg-booking-option-cta {
    min-height: 2.85rem;
  }
}
