/* ==========================================================================
   Mobile viewport fit — prevents horizontal scroll & layout overflow
   ========================================================================== */

html {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
}

.tdk-main,
.tdk-header,
.tdk-footer,
.tdk-offer-bar,
.tdk-section {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Safer container (no calc width overflow) */
.tdk-container {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
  padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
}

/* WordPress / embeds */
.tdk-map__embed,
.tdk-map__embed iframe,
.wp-block-embed,
.wp-block-embed iframe {
  max-width: 100%;
  width: 100%;
}

/* Horizontal sliders stay inside viewport */
.tdk-reviews__slider,
.tdk-gallery__track,
.tdk-menu-filter {
  max-width: 100%;
}

.tdk-review-card {
  flex: 0 0 min(300px, calc(100vw - 2.5rem));
}

.tdk-gallery__item {
  flex: 0 0 min(260px, calc(100vw - 3rem));
}

/* Long words / URLs */
.tdk-hero__title,
.tdk-page-title,
.tdk-section__title {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Header: fit narrow screens */
.tdk-header__inner {
  gap: 0.5rem;
}

.tdk-header__brand {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}

.tdk-logo {
  min-width: 0;
  max-width: 100%;
}

.tdk-logo__text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: min(11rem, 42vw);
  font-size: clamp(0.75rem, 3.5vw, 1rem);
}

.tdk-header__actions {
  flex-shrink: 0;
  gap: 0.35rem;
}

.tdk-header__actions .tdk-btn--sm {
  padding: 0.5rem 0.6rem;
  font-size: 0.8125rem;
  min-height: 40px;
}

.tdk-header__actions .tdk-btn--primary {
  white-space: nowrap;
}

/* Offer bar */
.tdk-offer-bar__inner {
  padding-inline: 2.5rem 2.75rem;
  padding-left: max(0.75rem, env(safe-area-inset-left));
  padding-right: max(2.75rem, env(safe-area-inset-right));
  text-align: center;
}

.tdk-offer-bar__text {
  flex: 1 1 100%;
  min-width: 0;
}

/* Hero: less vertical squeeze on small phones */
@media (max-width: 767px) {
  .tdk-hero {
    min-height: auto;
    padding: 2.5rem 0 3rem;
  }

  .tdk-hero__title {
    font-size: clamp(1.75rem, 8vw, 2.5rem);
  }

  .tdk-hero__subtitle {
    font-size: 1rem;
    max-width: 100%;
  }

  .tdk-hero__ctas {
    flex-direction: column;
    align-items: stretch;
  }

  .tdk-hero__ctas .tdk-btn {
    width: 100%;
    justify-content: center;
  }

  .tdk-hero__placeholder {
    font-size: clamp(4rem, 20vw, 6rem);
  }

  .tdk-hero__glow {
    inset: -10%;
  }

  .tdk-section {
    padding: 2.5rem 0;
  }

  /* Space for fixed bottom order bar */
  body.tdk-has-sticky-order {
    padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px));
  }

  .tdk-sticky-order {
    padding: 0.65rem max(0.75rem, env(safe-area-inset-left)) calc(0.65rem + env(safe-area-inset-bottom, 0px)) max(0.75rem, env(safe-area-inset-right));
  }

  .tdk-cookies {
    bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px));
  }

  .tdk-footer {
    padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0px));
  }
}

/* Very small phones (320px) */
@media (max-width: 380px) {
  .tdk-header__actions .tdk-btn--primary {
    padding-inline: 0.5rem;
    font-size: 0.75rem;
  }

  .tdk-logo__icon {
    font-size: 1.25rem;
  }

  .tdk-logo__text {
    max-width: 9rem;
  }
}

/* No hover scale overflow on touch */
@media (hover: none) {
  .tdk-plate-card:hover {
    transform: none;
    scale: 1;
  }
}

/* Wide align blocks from WP editor */
.alignwide,
.alignfull,
.wp-block-image img {
  max-width: 100%;
  height: auto;
}
