/* Mobile + touch stability overrides */
html {
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}
body {
  overflow-x: hidden;
  max-width: 100vw;
}

/* Kill broken stacking from motion.css — was breaking fixed/sticky on mobile */
body > *.site-header,
body > main,
body > .site-footer,
body > .dock-cta,
body > .sticky-cta,
body > .otk-welcome,
body > .otk-forge,
body > .otk-shutter,
body > .offer-banner {
  position: relative;
}
body > .offer-banner { position: relative; z-index: 110; }
body > .site-header { position: sticky; top: 0; z-index: 100; }
body > .dock-cta,
body > .sticky-cta { position: fixed; z-index: 90; }
body > .floating-tools { position: fixed; z-index: 70; }
body > #otk-ambient { position: fixed; z-index: 0; pointer-events: none; }
body > .otk-welcome,
body > .otk-forge,
body > #otk-shutter { position: fixed; z-index: 2147483000; }

/* Never hide native cursor on touch devices */
.otk-cursor { display: none !important; }
body.has-cursor,
body.has-cursor a,
body.has-cursor button {
  cursor: auto !important;
}

@media (max-width: 960px) {
  :root {
    --header-h: 76px;
    --sticky-h: 88px;
    --utility-h: 0px;
  }

  /* Clear dock + safe area so no feature content is clipped */
  main#main {
    padding-bottom: calc(var(--sticky-h) + 1.25rem + env(safe-area-inset-bottom, 0px));
  }
  .site-footer {
    padding-bottom: calc(var(--sticky-h) + .5rem + env(safe-area-inset-bottom, 0px));
  }

  .hero-clean {
    min-height: 100svh;
    min-height: 100dvh;
    padding-bottom: calc(var(--sticky-h) + 0.5rem);
  }

  .hero-clean .hero-content {
    width: min(100% - 1.5rem, var(--max));
    margin: 0 auto;
    max-width: 34rem;
    padding: 4.75rem 0 calc(var(--sticky-h) + 1rem);
  }

  .hero-weather {
    font-size: .78rem;
    gap: .3rem .5rem;
  }

  .hero-clean .hero-title,
  .hero-clean h1 {
    font-size: clamp(1.9rem, 8vw, 2.55rem) !important;
    max-width: 12ch;
  }

  .hero-clean .hero-lead {
    font-size: .95rem;
    max-width: 32ch;
  }

  .hero-clean .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: .65rem;
  }

  .hero-clean .hero-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .hero-clean .hero-scroll {
    display: none !important;
  }

  .cinema-strip {
    grid-auto-columns: minmax(220px, 78vw);
  }

  .marquee-track {
    animation-duration: 40s;
    font-size: .68rem;
    gap: 1.5rem;
  }

  .trust-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1rem .75rem;
    font-size: .82rem;
  }
  .page-home .trust-bar,
  .trust-bar {
    padding: 1.5rem 0 1.6rem;
  }
  .page-home .trust-item,
  .trust-item {
    justify-items: center;
    text-align: center;
    padding: .4rem .35rem;
    border-radius: 0;
    background: transparent;
    border: 0;
    gap: .45rem;
    min-height: 0;
  }
  .page-home .trust-item__icon,
  .trust-item__icon {
    width: 5rem !important;
    height: 5rem !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }
  .page-home .trust-ico,
  .trust-ico {
    width: 100% !important;
    height: 100% !important;
  }
  .trust-item strong {
    font-size: 1rem;
  }
  .trust-item span {
    max-width: 16ch;
    font-size: .84rem;
    color: #3d534c;
  }

  .section { padding: 3rem 0; }
  .section-head h2 { font-size: clamp(1.55rem, 6vw, 2rem); }

  .dest-mosaic {
    grid-template-columns: 1fr !important;
    grid-template-rows: none !important;
  }
  .dest-tile,
  .dest-tile:first-child {
    grid-column: auto !important;
    grid-row: auto !important;
    min-height: 220px !important;
  }

  .cinema-strip {
    grid-auto-columns: minmax(240px, 82vw);
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .wish-section { padding: 3rem 0; }
  .wish-lake { height: 280px; border-radius: 16px; }
  .wish-hint { font-size: .68rem; max-width: calc(100% - 2rem); }
  .wish-send-mobile {
    display: block !important;
    margin-top: .85rem;
  }

  .constellation { padding: 3rem 0; }
  .constellation-map {
    aspect-ratio: 1 / 1.15;
    border-radius: 16px;
    width: min(100% - 1.5rem, 900px);
  }
  .node span { font-size: .62rem; }
  .node-card {
    left: .65rem;
    right: .65rem;
    bottom: .65rem;
    max-width: none;
  }

  .map-section { padding: 3rem 0 1.5rem; }
  .otk-map { height: 340px !important; }

  .site-nav {
    max-height: calc(100svh - var(--header-h) - var(--utility-h, 44px) - 1rem);
    overflow-y: auto;
    z-index: 120;
    overscroll-behavior: contain;
  }

  .sticky-cta a { font-size: .82rem; }
  .dock-cta { padding-left: .65rem; padding-right: .65rem; }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; }

  .footer-trust__inner {
    grid-template-columns: 1fr !important;
    gap: 1.35rem !important;
  }
  .footer-aff-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .5rem !important;
  }
  .footer-aff {
    min-height: 3.85rem !important;
    background: #fff !important;
  }
  .footer-pay-list {
    max-width: none !important;
    grid-template-columns: repeat(auto-fit, minmax(3rem, 1fr)) !important;
  }

  /* Feature pages */
  .feature-strip {
    grid-template-columns: 1fr !important;
    margin: 1rem auto 0 !important;
    padding: 0 1rem;
    gap: .75rem;
  }
  .feature-chip { padding: 1rem; }

  .page-hero--rich {
    padding: 3.5rem 0 2rem;
    min-height: 0;
  }
  .page-hero--media {
    min-height: 240px;
  }
  .page-hero__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    max-width: none;
  }
  .page-hero__lead {
    max-width: none;
  }

  .detail-layout {
    grid-template-columns: 1fr !important;
    gap: 1.35rem;
  }
  .side-card {
    position: static !important;
    top: auto !important;
  }
  .detail-hero-media {
    aspect-ratio: 16 / 11;
    border-radius: 14px;
  }

  .card-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem;
  }

  .pkg-card__foot {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .cta-band { padding: 2.75rem 0; }
  .cta-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: .65rem;
  }
  .cta-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .contact-split,
  .about-split,
  .about-story,
  .blog-featured {
    grid-template-columns: 1fr !important;
  }
  .about-visual { max-height: 420px; aspect-ratio: 4 / 3; }
  .blog-featured__body { padding: 1.15rem !important; }

  .include-grid {
    grid-template-columns: 1fr !important;
  }

  .values-grid {
    grid-template-columns: 1fr !important;
  }

  .gallery-masonry {
    columns: 2 !important;
    column-gap: .65rem;
  }
  .gallery-cell { margin-bottom: .65rem; }

  /* Prevent 3D tilt transform glitches on touch */
  .card,
  .pkg-card,
  .dest-tile { transform: none !important; }
  .btn-magnetic { transform: none !important; }
}

@media (max-width: 640px) {
  .trust-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 1rem .65rem;
  }
  .page-home .trust-item,
  .trust-item {
    padding: .35rem .25rem;
    text-align: center;
    justify-items: center;
  }
  .page-home .trust-item__icon,
  .trust-item__icon {
    width: 4.5rem !important;
    height: 4.5rem !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }
  .page-home .trust-ico,
  .trust-ico {
    width: 100% !important;
    height: 100% !important;
  }
  .trust-item strong {
    font-size: .98rem;
  }
  .trust-item span {
    font-size: .82rem;
  }
  .card-grid, .why-grid, .quote-grid, .gallery-grid {
    grid-template-columns: 1fr !important;
  }
  .footer-grid { grid-template-columns: 1fr !important; }
  .footer-aff-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .45rem !important;
  }
  .footer-pay-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .brand-wordmark {
    display: block !important;
    width: min(168px, calc(100vw - 140px)) !important;
    min-width: 0 !important;
  }
  .brand-logo { width: 64px !important; height: 64px !important; border-radius: 0 !important; }

  .gallery-masonry { columns: 1 !important; }

  .page-hero__stats {
    grid-template-columns: 1fr 1fr;
  }
  .page-hero__stats dt {
    font-size: 1.45rem;
  }

  .dock-cta__copy small { display: none; }
}

/* Desktop-only helpers */
@media (hover: hover) and (pointer: fine) {
  .otk-cursor { display: none !important; }
}
