/* =============================================================================
   Phase 3 — TV / ultra-wide (1920px+) and coarse-pointer (remote / touch TV)
   10-foot readability, overscan-safe gutters, strong focus rings.
   Does not change locked homepage hero layout (UI_LOCK).
   ============================================================================= */

@media (min-width: 1920px) {
  html.ws-index-page {
    --dv-text-display: clamp(2.25rem, 2.8vw, 3.5rem);
    --dv-text-headline: clamp(1.5rem, 2vw, 2.5rem);
    --dv-text-body: clamp(1.0625rem, 1.05vw, 1.25rem);
    --dv-text-label: 0.9375rem;
    --dv-touch-min: 48px;
    --dv-tv-gutter: clamp(1.25rem, 2.5vw, 3.5rem);
    --dv-focus-ring: 3px;
    --dv-focus-offset: 3px;
  }

  /* Overscan-safe inset on primary chrome (not full-bleed heroes). */
  #ws-index-header .ws-header-bar,
  .ws-footer__grid,
  .ws-footer__bar,
  #ws-flash-messages,
  .dv-home .dvh-wrap,
  .ws-instructors__shell,
  .ws-page-wide {
    padding-inline: max(var(--dv-gutter), var(--dv-tv-gutter));
  }

  .ws-hero-callback__title {
    font-size: clamp(1.35rem, 1.6vw, 1.65rem);
  }

  .ws-hero-callback__sub,
  .ws-hero-callback__input,
  .ws-hero-callback__select {
    font-size: 1.0625rem;
  }

  .ws-pkg-hero__path,
  .ws-pkg-hero__ghost,
  .ws-instructors__btn,
  .ws-instructors__card-cta {
    min-height: var(--dv-touch-min);
    font-size: 1rem;
  }
}

/* Strong focus rings — all public interactive chrome (all viewports). */
html.ws-index-page :is(
  a,
  button,
  summary,
  input,
  select,
  textarea,
  [tabindex="0"]
):focus-visible {
  outline: var(--dv-focus-ring, 2px) solid var(--dv-focus, #2563eb);
  outline-offset: var(--dv-focus-offset, 2px);
}

#ws-index-header .ws-nav-offers__trigger:focus-visible {
  outline: var(--dv-focus-ring, 2px) solid #fff;
  outline-offset: 3px;
  border-radius: var(--dv-radius-sm, 0.5rem);
}

.dv-home .dvh-btn:focus-visible,
.ws-hero-callback__submit:focus-visible,
.ws-book-now-btn:focus-visible,
.ws-sign-in-pill:focus-visible {
  outline: var(--dv-focus-ring, 2px) solid var(--dv-focus, #2563eb);
  outline-offset: var(--dv-focus-offset, 2px);
}

#dv-chat-toggle:focus-visible,
#dv-whatsapp-fab:focus-visible {
  outline: var(--dv-focus-ring, 3px) solid #fff;
  outline-offset: 4px;
}

.ws-pkg-hero__path:focus-visible,
.ws-pkg-hero__ghost:focus-visible,
.ws-pkg-place__submit:focus-visible {
  outline: var(--dv-focus-ring, 2px) solid var(--dv-focus, #2563eb);
  outline-offset: var(--dv-focus-offset, 2px);
}

.dv-home .dvh-sticky a:focus-visible {
  outline: var(--dv-focus-ring, 2px) solid #fff;
  outline-offset: 2px;
}

/* Coarse pointer / TV remote — no hover-only motion. */
html.dv-coarse-pointer .ws-pkg-card:hover,
html.dv-coarse-pointer .ws-pkg-hero__path:hover,
html.dv-coarse-pointer .ws-pkg-hero__ghost:hover,
html.dv-coarse-pointer .ws-pkg-panel:hover {
  transform: none;
  box-shadow: inherit;
}

html.dv-coarse-pointer .ws-nav-offers__panel {
  /* Open state controlled by .is-open / focus-within / click (JS). */
  transition: opacity 0.15s ease, visibility 0.15s ease;
}

html.dv-coarse-pointer .ws-nav-offers.is-open .ws-nav-offers__trigger,
html.dv-coarse-pointer .ws-nav-offers:focus-within .ws-nav-offers__trigger {
  background: rgba(255, 255, 255, 0.12);
  border-radius: var(--dv-radius-sm, 0.5rem);
}

@media (min-width: 1920px) {
  html.dv-coarse-pointer .ws-nav-offers__panel-list a,
  html.dv-coarse-pointer .ws-nav-offers__panel-foot {
    min-height: 3rem;
    font-size: 1.0625rem;
  }
}
