/**
 * TTDS — Cross-device stabilization
 * Overflow, touch targets, sticky stacking, Astra/WC pages, footer dedupe.
 */

html {
  overflow-x: hidden;
  max-width: 100vw;
}

/* Prevent horizontal scroll */
body.tt-premium {
  overflow-x: hidden;
  max-width: 100vw;
}

body.tt-premium #page,
body.tt-premium .site {
  overflow-x: hidden;
  max-width: 100vw;
}

body.tt-premium .tt-hdr,
body.tt-premium .tt-mob-nav,
body.tt-premium .tt-nav-sheet,
body.tt-premium .tt-drawer-backdrop,
body.tt-premium .tt-mini-bag {
  width: 100%;
  max-width: 100%;
}

body.tt-premium .tt-hdr__inner {
  max-width: 100%;
}

body.tt-premium .site,
body.tt-premium #page,
body.tt-premium #content,
body.tt-premium .site-content {
  overflow-x: clip;
  max-width: 100%;
}

body.tt-premium img,
body.tt-premium picture,
body.tt-premium video {
  max-width: 100%;
  height: auto;
}

body.tt-premium pre,
body.tt-premium .woocommerce table.shop_table {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

body.tt-premium--checkout-skin .tt-checkout-review .shop_table,
body.tt-premium--checkout-skin .tt-checkout-sidebar .shop_table {
  overflow-x: visible;
  display: table;
  width: 100%;
}

/* Default Astra pages — account, legal, 404, search */
body.tt-premium:not(.tt-premium--home):not(.tt-premium--shop):not(.tt-premium--pdp):not(.tt-premium--bag):not(.tt-premium--checkout) .site-content {
  padding-top: calc(var(--tt-header-h) + var(--tt-space-6));
  padding-bottom: var(--tt-space-8);
}

body.tt-premium:not(.tt-premium--checkout) .entry-content,
body.tt-premium:not(.tt-premium--checkout) .ast-article-single {
  max-width: min(var(--tt-container), 100%);
  margin-inline: auto;
  padding-inline: max(var(--tt-space-4), env(safe-area-inset-left, 0px), env(safe-area-inset-right, 0px));
}

body.tt-premium.error404 .site-content .page-header,
body.tt-premium.search .site-content .page-header {
  margin-bottom: var(--tt-space-8);
}

body.tt-premium.error404 .site-content h1,
body.tt-premium.search .site-content h1,
body.tt-premium.error404 .site-content .page-title,
body.tt-premium.search .site-content .page-title {
  font-size: var(--tt-text-3xl);
  line-height: var(--tt-leading-tight);
  letter-spacing: var(--tt-tracking-tight);
  margin: 0 0 var(--tt-space-4);
}

/* Footer dedupe — legacy MU + Astra layers */
body.tt-premium #colophon,
body.tt-premium .ast-footer-wrap,
body.tt-premium .ast-small-footer,
body.tt-premium .site-footer-focus-item,
body.tt-premium .tt-site-footer,
body.tt-premium .tt-premium-footer,
body.tt-premium .tt-v3-mobile-footer,
body.tt-premium footer.site-footer {
  display: none !important;
}

body.tt-premium .tt-ftr {
  position: relative;
  z-index: 1;
}

/* Checkout — no bottom nav (sticky checkout bar only) */
body.tt-premium--checkout .tt-mob-nav,
body.tt-premium--checkout-skin .tt-mob-nav {
  display: none !important;
}

@media (max-width: 768px) {
  body.tt-premium--checkout,
  body.tt-premium--checkout-skin {
    padding-bottom: 0;
  }
}

/* Mob-nav bottom padding — mobile/tablet only */
@media (min-width: 769px) {
  body.tt-premium--has-mob-nav {
    padding-bottom: 0;
  }

  body.tt-premium--has-mob-nav .tt-fab-wa {
    bottom: var(--tt-space-4);
  }
}

@media (max-width: 768px) {
  body.tt-premium--has-mob-nav .tt-ftr {
    padding-bottom: calc(var(--tt-space-10) + 68px + env(safe-area-inset-bottom, 0px));
  }

  /* Header touch targets */
  body.tt-premium .tt-hdr__actions .tt-btn-icon,
  body.tt-premium .tt-hdr__menu-toggle {
    min-width: var(--tt-touch);
    min-height: var(--tt-touch);
  }

  body.tt-premium .tt-hdr__logo {
    font-size: var(--tt-text-md);
    max-width: 46vw;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.tt-premium .tt-mob-nav__link {
    min-height: 44px;
    padding-block: var(--tt-space-1);
  }

  /* PDP — sticky buy stacks above mob nav */
  body.tt-premium--pdp.tt-premium--has-sticky-buy {
    padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px));
  }

  body.tt-premium--pdp.tt-premium--has-sticky-buy.tt-premium--has-mob-nav {
    padding-bottom: calc(68px + 72px + env(safe-area-inset-bottom, 0px));
  }

  body.tt-premium--pdp.tt-premium--has-mob-nav .tt-pdp-sticky-buy {
    bottom: calc(68px + env(safe-area-inset-bottom, 0px));
    z-index: var(--tt-z-sticky-buy);
  }

  body.tt-premium--pdp.tt-premium--has-mob-nav .tt-fab-wa {
    bottom: calc(152px + env(safe-area-inset-bottom, 0px));
  }

  body.tt-premium--pdp .tt-pdp__hero {
    padding-top: calc(var(--tt-header-h-m) + var(--tt-space-6));
    padding-bottom: var(--tt-space-12);
  }

  body.tt-premium--pdp .tt-pdp-section .tt-container {
    padding-inline: var(--tt-space-4);
  }

  body.tt-premium--pdp .tt-pdp-gallery__zoom {
    right: var(--tt-space-3);
  }

  body.tt-premium--pdp .tt-pdp__purchase .single_add_to_cart_button {
    width: 100%;
    min-height: var(--tt-touch);
  }

  /* Bag / checkout mobile chrome */
  body.tt-premium--bag .tt-bag-page {
    padding-top: calc(var(--tt-header-h-m) + var(--tt-space-6));
  }

  body.tt-premium--checkout-skin .tt-checkout-page {
    padding-top: calc(var(--tt-header-h-m) + var(--tt-space-4));
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  body.tt-premium .tt-ftr__grid {
    gap: var(--tt-space-8) var(--tt-space-6);
  }
}

@media (max-width: 480px) {
  body.tt-premium {
    --tt-text-display: clamp(1.75rem, 8vw, 2.25rem);
  }

  body.tt-premium .tt-container {
    width: min(var(--tt-container), 100% - var(--tt-space-6));
  }

  body.tt-premium .tt-ftr__trust {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--tt-space-4);
  }

  body.tt-premium .tt-ftr__legal {
    flex-direction: column;
    gap: var(--tt-space-3);
  }

  body.tt-premium--checkout-skin .tt-checkout-sticky__inner {
    flex-wrap: wrap;
    gap: var(--tt-space-3);
  }

  body.tt-premium--checkout-skin .tt-checkout-sticky__submit {
    max-width: none;
    width: 100%;
  }

  body.tt-premium--shop .tt-shop__sort select {
    min-width: 0;
    font-size: var(--tt-text-sm);
  }
}

@media (max-width: 390px) {
  body.tt-premium .tt-hdr__inner {
    gap: var(--tt-space-3);
  }

  body.tt-premium .tt-hdr__logo {
    max-width: 42vw;
    font-size: var(--tt-text-sm);
  }
}
