/* Global mobile optimizations */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.ittp-site {
  overflow-x: clip;
  touch-action: manipulation;
}

.ittp-container {
  width: min(1200px, calc(100% - 1.25rem));
  max-width: 100%;
  margin-inline: auto;
}

@media (max-width: 640px) {
  .ittp-container {
    width: min(1200px, calc(100% - 1.5rem));
  }

  .ittp-landing,
  .ittp-cp,
  .ittp-about,
  .ittp-appeals,
  .ittp-cc,
  .ittp-ce,
  .ittp-free-access,
  .ittp-aff-login,
  .ittp-aff-portal,
  .ittp-aff-reset,
  .ittp-aff-tos {
    overflow-x: clip;
  }
}

/* WooCommerce product grids — 2 columns on all small screens */
.ittp-site ul.products.ittp-catalog-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0.65rem;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
  clear: none !important;
}

.ittp-site ul.products.ittp-catalog-grid::before,
.ittp-site ul.products.ittp-catalog-grid::after {
  display: none !important;
  content: none !important;
}

.ittp-site ul.products.ittp-catalog-grid li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (min-width: 1100px) {
  .ittp-catalog-page ul.products.ittp-catalog-grid.columns-3,
  .ittp-catalog-page ul.products.ittp-catalog-grid.columns-4 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  .ittp-header__inner {
    gap: 0.5rem;
  }

  .ittp-btn,
  .ittp-cart,
  .ittp-header__icon-btn,
  #ittp-menu-toggle {
    min-width: 44px;
    min-height: 44px;
  }

  .ittp-btn-schedule {
    min-height: 44px;
    padding-inline: 0.7rem;
  }

  .ittp-landing-hero,
  .ittp-product-page__hero-wrap,
  .ittp-cart-page,
  .ittp-checkout-page__shell {
    padding-inline: 0;
  }

  .ittp-landing-prose__body img,
  .ittp-product-prose img,
  .ittp-page-main img,
  .ittp-home-section img,
  .ittp-inner-page img {
    max-width: 100%;
    height: auto;
  }

  .ittp-landing-prose__body table,
  .ittp-product-prose table,
  .ittp-page-main table,
  .ittp-inner-page table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Homepage */
  .ittp-home-hero__title {
    font-size: clamp(1.375rem, 6vw, 1.875rem);
    line-height: 1.2;
  }

  .ittp-home-hero__media {
    min-height: 220px;
  }

  .ittp-home-hero__actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
  }

  .ittp-home-hero__actions .ittp-btn {
    width: 100%;
    justify-content: center;
  }

  .ittp-home-showcase__layout {
    width: 100%;
  }

  .ittp-home-showcase__card {
    padding: 1rem 1rem 0.85rem;
  }

  .ittp-home-section {
    padding-block: clamp(2.25rem, 8vw, 3.5rem);
  }

  .ittp-home-stories,
  .ittp-home-categories__viewport {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }

  /* Inner / audience heroes — keep copy readable over photo */
  .ittp-inner-hero {
    padding-inline: 0.85rem;
  }

  .ittp-site .ittp-inner-hero__copy,
  .ittp-inner-hero .ittp-inner-hero__copy {
    max-width: 100%;
  }

  .ittp-inner-hero__visual {
    inset: 0;
    opacity: 0.42;
  }

  .ittp-inner-hero__visual::before,
  .ittp-inner-hero__visual::after {
    background: linear-gradient(
      180deg,
      color-mix(in srgb, var(--ittp-navy-deep) 92%, transparent) 0%,
      color-mix(in srgb, var(--ittp-navy) 78%, transparent) 55%,
      color-mix(in srgb, var(--ittp-navy-mid) 70%, transparent) 100%
    );
  }

  .ittp-inner-hero__actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.55rem;
  }

  .ittp-inner-hero__actions .ittp-btn {
    width: 100%;
    min-height: 44px;
    justify-content: center;
  }

  .ittp-inner-hero__highlights {
    grid-template-columns: 1fr;
  }

  /* Component grids — 2-up on phones */
  .ittp-stats__grid,
  .ittp-categories__grid,
  .ittp-audiences__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
  }

  .ittp-footer__grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .ittp-footer__social {
    flex-wrap: wrap;
  }

  /* Section library / imported layouts */
  .ittp-wz-grid--cards,
  .ittp-imported-cards,
  .ittp-pricing-plans__grid,
  .ittp-fb-icon-band__grid,
  .ittp-fb-plans__grid {
    grid-template-columns: 1fr !important;
    gap: 0.85rem;
  }

  .ittp-pricing-plans__blob {
    display: none;
  }

  .ittp-pricing-reviews__carousel,
  .ittp-product-reviews__carousel,
  .ittp-fb-reviews {
    max-width: 100%;
  }

  .ittp-pricing-reviews__viewport,
  .ittp-product-reviews__viewport {
    overflow: hidden;
    max-width: 100%;
  }

  .ittp-pricing-reviews__track > .ittp-review-card,
  .ittp-product-reviews__track > .ittp-product-review-card,
  .ittp-product-reviews__track > li {
    flex: 0 0 min(100%, 20rem);
    max-width: min(100%, 20rem);
    min-width: 0;
  }

  /* Inner pages — stack sidebars */
  .ittp-page-main,
  .ittp-inner-page__main {
    padding-inline: 0.65rem;
  }

  .ittp-product-highlights--hero-grid {
    width: 100%;
    max-width: 100%;
  }

  .ittp-product-shop__card,
  .ittp-product-shop__purchase form.cart {
    max-width: 100%;
  }

  .ittp-product-shop__cta-stack,
  .ittp-product-shop__purchase .ittp-btn,
  .ittp-product-shop__purchase .single_add_to_cart_button {
    width: 100%;
    min-height: 44px;
  }

  .ittp-product-reviews__toggle,
  .ittp-product-reviews__nav {
    min-height: 44px;
    min-width: 44px;
  }

  .ittp-fb-split__grid,
  .ittp-fb-split--intro .ittp-fb-split__grid,
  .ittp-fb-split--programs .ittp-fb-split__grid,
  .ittp-fb-split--benefits .ittp-fb-split__grid,
  .ittp-fb-split--pillar .ittp-fb-split__grid {
    grid-template-columns: 1fr !important;
    gap: 1rem;
  }

  /* Forms & CTAs */
  .ittp-btn--block,
  .ittp-btn-schedule--block {
    width: 100%;
  }

  input,
  select,
  textarea {
    max-width: 100%;
    font-size: 16px; /* avoid iOS zoom on focus */
  }

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

  /* Breadcrumbs wrap instead of overflow */
  .woocommerce-breadcrumb,
  .ittp-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem 0.35rem;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 399px) {
  .ittp-btn-schedule span {
    font-size: 10px;
  }

  .ittp-product-card__title {
    font-size: 0.625rem;
  }
}

@supports (padding: env(safe-area-inset-bottom)) {
  .ittp-footer__legal {
    padding-bottom: calc(1rem + env(safe-area-inset-bottom));
  }

  .ittp-mobile-drawer__panel {
    padding-bottom: env(safe-area-inset-bottom);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ittp-flow-steps__item::after,
  .ittp-product-card {
    transition: none;
  }

  .ittp-product-card:hover {
    transform: none;
  }
}
