/* TAL layout — homepage structure only */

.tal-page {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
  background: var(--tal-color-porcelain, #f5f3f0);
  color: var(--tal-color-ink, #151515);
}

.tal-page main,
.tal-page section,
.tal-page footer {
  box-sizing: border-box;
}

.tal-hero,
.tal-booking,
.tal-fleet,
.tal-why,
.tal-services,
.tal-coverage,
.tal-testimonial,
.tal-faq,
.tal-cta,
.tal-footer {
  position: relative;
  width: 100%;
}


/* Hero */

.tal-hero {
  border-top: 1px solid rgba(21,21,21,.08);
  background: var(--tal-color-porcelain, #f5f3f0);
}

.tal-hero__grid {
  min-height: min(760px, 82vh);
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(0,1fr);
}

.tal-hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding-block: clamp(56px, 6vw, 96px);
  max-width: none;
}

.tal-hero__visual {
  min-width: 0;
  display: grid;
  place-items: center;
  border-left: 1px solid rgba(21,21,21,.08);
  overflow: hidden;
  padding: clamp(24px, 4vw, 64px);
}

.tal-hero__image {
  width: min(94%, 760px);
  height: auto;
  object-fit: contain;
  transform: translateY(-70px);
}

.tal-hero__trust {
  width: 100%;
  display: grid;
  grid-template-columns:
    repeat(
      3,
      minmax(0,1fr)
    );
  margin-top: clamp(36px,5vw,72px);
  border-top: 1px solid rgba(21,21,21,.08);
}


/* Booking */

.tal-booking {
  border-top: 1px solid rgba(21,21,21,.08);
  border-bottom: 1px solid rgba(21,21,21,.08);
  background: #fff;
}

.tal-booking__grid {
  display: grid;
  grid-template-columns:
    minmax(0,1fr)
    minmax(0,2fr);
  padding-block: clamp(72px,8vw,120px);
}

.tal-booking__intro {
  min-width: 0;
  padding-right: clamp(28px,4vw,64px);
}

.tal-booking__calculator {
  min-width: 0;
  min-height: 420px;
  padding-left: clamp(28px,4vw,64px);
  border-left: 1px solid rgba(21,21,21,.08);
  overflow-x: auto;
}


/* Fleet static fallback */

.tal-fleet {
  overflow: hidden;
  background: var(--tal-color-porcelain, #f5f3f0);
  border-bottom: 1px solid rgba(21,21,21,.08);
}

.tal-fleet__header {
  padding-top: clamp(72px,8vw,120px);
  padding-bottom: clamp(32px,4vw,56px);
}

.tal-fleet__track {
  width: 100%;
  display: flex;
  gap: 0;
  padding: 0;
  margin: 0;
  list-style: none;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  contain: paint;
}

.tal-fleet__track::-webkit-scrollbar {
  display: none;
}

.tal-fleet__slide {
  flex: 0 0 100%;
  min-width: 0;
  min-height: clamp(520px,58vw,760px);
  display: grid;
  grid-template-columns:
    minmax(0,1fr)
    minmax(0,2fr);
  scroll-snap-align: start;
  border-top: 1px solid rgba(21,21,21,.08);
}

.tal-fleet__info {
  min-width: 0;

  padding:
    clamp(48px,5vw,80px)
    clamp(28px,4vw,64px)
    clamp(48px,5vw,80px)
    max(
      24px,
      calc(
        (100vw - 1400px) / 2 + 40px
      )
    );

  display: flex;
  flex-direction: column;
  justify-content: center;
}

.tal-fleet__visual {
  min-width: 0;
  padding: clamp(36px,5vw,72px);
  border-left: 1px solid rgba(21,21,21,.08);
  display: grid;
  place-items: center;
}

.tal-fleet__image {
  display: block;
  width: min(88%, 820px);
  max-height: 520px;
  height: auto;
  object-fit: contain;
}


/* GSAP desktop Fleet stage */

@media (min-width:1360px) {

  .tal-fleet.tal-fleet--gsap {
    overflow: visible;
  }

  .tal-fleet.tal-fleet--gsap .tal-fleet__track {
    position: relative;

    overflow: hidden;

    height:
      min(
        690px,
        70vh
      );

    min-height: 560px;

    contain: layout paint;

    scroll-snap-type: none;
  }

  .tal-fleet.tal-fleet--gsap .tal-fleet__slide {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;
    min-height: 0;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .tal-fleet.tal-fleet--gsap .tal-fleet__slide:first-child {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

}


/* Why */

.tal-why {
  background: var(--tal-color-ink, #151515);
  color: #fff;
}

.tal-why__header {
  padding-top: clamp(80px,8vw,128px);
  padding-bottom: clamp(40px,5vw,72px);
}

.tal-why__list {
  list-style: none;
  padding-bottom: clamp(80px,8vw,128px);
}

.tal-why__row {
  display: grid;

  grid-template-columns:
    90px
    minmax(240px,.9fr)
    minmax(280px,1.1fr);

  gap:
    clamp(24px,4vw,64px);

  align-items: baseline;

  padding:
    clamp(26px,3vw,40px)
    0;

  border-top:
    1px solid
    rgba(255,255,255,.15);
}

.tal-why__row:last-child {
  border-bottom:
    1px solid
    rgba(255,255,255,.15);
}


/* Services */

.tal-services {
  background: #fff;
}

.tal-services__header {
  padding-top: clamp(80px,8vw,128px);
  padding-bottom: clamp(40px,5vw,72px);
}

.tal-services__list {
  padding-bottom: clamp(80px,8vw,128px);
}

.tal-services__row {
  min-height: 150px;

  display: grid;

  grid-template-columns:
    minmax(260px,.8fr)
    minmax(320px,1.25fr)
    auto;

  gap:
    clamp(24px,4vw,64px);

  align-items: center;

  padding:
    clamp(26px,3vw,42px)
    0;

  border-top:
    1px solid
    rgba(21,21,21,.12);
}

.tal-services__row:last-child {
  border-bottom:
    1px solid
    rgba(21,21,21,.12);
}


/* Coverage */

.tal-coverage {
  background:
    var(
      --tal-color-stone,
      #e8e4df
    );
}

.tal-coverage__header {
  padding-top:
    clamp(80px,8vw,128px);

  padding-bottom:
    clamp(40px,5vw,72px);
}

.tal-coverage__grid {
  display: grid;

  grid-template-columns:
    minmax(0,1.25fr)
    minmax(0,.75fr);

  border-top:
    1px solid
    rgba(21,21,21,.14);

  padding-bottom:
    clamp(80px,8vw,128px);
}

.tal-coverage__group {
  min-width: 0;

  padding:
    clamp(36px,4vw,56px);
}

.tal-coverage__group:first-child {
  padding-left: 0;

  border-right:
    1px solid
    rgba(21,21,21,.14);
}

.tal-coverage__group:last-child {
  padding-right: 0;
}

.tal-coverage__list {
  display: grid;

  grid-template-columns:
    repeat(
      2,
      minmax(0,1fr)
    );

  gap: 0;

  padding: 0;

  margin:
    28px
    0
    0;

  list-style: none;
}


/* Testimonial */

.tal-testimonial {
  background:
    var(
      --tal-color-wine,
      #40111d
    );

  color: #fff;
}

.tal-testimonial__inner {
  min-height: 430px;

  display: grid;

  align-content: center;

  padding-block:
    clamp(80px,9vw,144px);
}


/* FAQ */

.tal-faq {
  background: #fff;
}

.tal-faq__inner {
  display: grid;

  grid-template-columns:
    minmax(260px,.72fr)
    minmax(0,1.28fr);

  gap:
    clamp(48px,7vw,112px);

  padding-block:
    clamp(80px,8vw,128px);
}


/* CTA */

.tal-cta {
  background:
    var(
      --tal-color-burgundy,
      #671a2d
    );

  color: #fff;
}

.tal-cta__inner {
  min-height: 480px;

  display: flex;

  flex-direction: column;

  justify-content: center;

  align-items: flex-start;

  padding-block:
    clamp(80px,9vw,144px);
}


/* Footer */

.tal-footer {
  background:
    var(
      --tal-color-ink,
      #151515
    );

  color: #fff;
}

.tal-footer__inner {
  display: grid;

  grid-template-columns:
    minmax(0,1.5fr)
    minmax(220px,.5fr);

  gap: 72px;

  padding-top:
    clamp(64px,7vw,104px);

  padding-bottom:
    clamp(56px,6vw,88px);
}

.tal-footer__bottom {
  padding-block:
    24px
    32px;

  border-top:
    1px solid
    rgba(255,255,255,.14);
}

/* Extras / media rows — reusable editorial image+text row */
.tal-media-row {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(320px, 1.2fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
  padding: clamp(56px, 6vw, 96px) 0;
  border-top: 1px solid rgba(21, 21, 21, .12);
}

.tal-media-row:last-child {
  border-bottom: 1px solid rgba(21, 21, 21, .12);
}

.tal-media-row--reverse {
  grid-template-columns: minmax(320px, 1.2fr) minmax(280px, 1fr);
}

.tal-media-row--reverse .tal-media-row__visual {
  order: 2;
}

.tal-media-row--reverse .tal-media-row__content {
  order: 1;
}

.tal-media-row__visual img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

@media (max-width: 900px) {
  .tal-media-row,
  .tal-media-row--reverse {
    grid-template-columns: 1fr;
  }

  .tal-media-row--reverse .tal-media-row__visual,
  .tal-media-row--reverse .tal-media-row__content {
    order: initial;
  }
}