/* Mobile form controls: >=16px avoids automatic Safari focus zoom. */
@media (max-width: 900px) {
 input, select, textarea { font-size:16px !important; }
 button, a, input, select { -webkit-tap-highlight-color:transparent; }
 .visual-stage,.body-figure,.hair-visual { touch-action:pan-y; }
 .zoom-controls button { min-width:36px;min-height:36px; }
}
@media (prefers-reduced-motion:reduce) {html{scroll-behavior:auto}}

/* iOS Safari: no automatic field zoom, double-tap zoom or horizontal overflow. */
html, body { width:100%; max-width:100%; overflow-x:clip; }
html { -webkit-text-size-adjust:100%; touch-action:pan-y; }
body { touch-action:pan-y; }
*, *::before, *::after { min-width:0; }
img, video, svg, canvas { max-width:100%; }
button, a, input, select, textarea { touch-action:manipulation; }
input, select, textarea { font-size:16px !important; }
main, section, header, footer { max-width:100%; }
@media(max-width:900px) {
  .hero-content,.section,.studio-grid,.studio-main,.studio-side,
  .journal,.treatments,.features,.journey,.consult { max-width:100%; min-width:0; }
  .hero-buttons,.actions { flex-wrap:wrap; }
  .assistant-launch { max-width:calc(100vw - 24px); }
  .marquee { max-width:100vw; overflow:hidden; }
  .hero-foot { max-width:90%; }
}
/* Consistent CSS-drawn icon instead of device-dependent emoji glyphs. */
a.cta::after, a[data-i="read"]::after, a[data-i="explore"]::after,
a[data-i="enquire"]::after, button[data-i="submit"]::after {
  content:""; display:inline-block; width:7px; height:7px;
  border-top:1.6px solid currentColor; border-right:1.6px solid currentColor;
  transform:rotate(45deg); margin-left:9px; vertical-align:2px;
}
.assistant-launch::before {
  content:""; display:inline-block; width:8px; height:8px;
  border:1.5px solid currentColor; border-radius:50%; margin-right:9px;
}
