/* MEZZO / celular — auditoria mobile de 13/10/2026.
   Carregado por último. Só mexe em tela de celular (até 800 px de largura) e no
   celular deitado; o computador continua exatamente como estava.
   Medidas de referência: alvo de toque ≥ 44 px, texto ≥ 12 px, nota ≥ 13 px,
   campo de formulário ≥ 16 px (abaixo disso o iPhone dá zoom ao tocar). */

/* 01. Menu: cabe em qualquer altura e rola por dentro ----------------------- */
@media (max-width: 800px) {
  .navigation {
    max-height: calc(100svh - 79px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}
@media (max-width: 800px) and (max-height: 720px) {
  .navigation {
    padding-block: 14px 28px;
    gap: 0;
    font-size: 21px;
  }
  .navigation > a {
    padding-block: 11px;
  }
  .navigation .nav-cta {
    margin-top: 12px;
  }
}

/* 02. WhatsApp flutuante: só o ícone, no canto, fora da área segura --------- */
@media (max-width: 800px) {
  .whatsapp-float {
    right: calc(14px + env(safe-area-inset-right));
    bottom: calc(14px + env(safe-area-inset-bottom));
    width: 54px;
    height: 54px;
    min-height: 0;
    padding: 0;
    gap: 0;
    justify-content: center;
    font-size: 0;
    letter-spacing: 0;
  }
  .whatsapp-float svg {
    width: 26px;
    height: 26px;
  }
}

/* 03. Campo de cidade: 16 px para o iPhone não dar zoom --------------------- */
@media (max-width: 800px), (max-height: 500px) and (pointer: coarse) {
  .contact select,
  #city {
    font-size: 16px;
    min-height: 52px;
  }
}

/* 04. Letra mínima (também no celular deitado) ------------------------------ */
@media (max-width: 800px), (max-height: 500px) and (pointer: coarse) {
  /* rótulos em caixa alta: 12 px, com o espaçamento um pouco menor para caber */
  .eyebrow,
  .hero-copy .eyebrow,
  .chapter,
  .treatment-category,
  .plan-list-label,
  .picture-label {
    font-size: 12px !important;
    letter-spacing: 0.14em;
  }
  .plan-intro .price-caption {
    font-size: 12.5px;
  }
  /* faixa de marca */
  .faixa-grupo > span {
    font-size: 12px;
  }
  /* abertura: linha de baixo e "Clube do Laser a partir de" */
  .hero-bottom > span:first-child {
    font-size: 12px;
  }
  /* com a letra maior, a linha de baixo da abertura não cabe numa linha só:
     a cidade quebra em duas e "Conheça a tecnologia" fica inteira */
  .hero-bottom {
    gap: 14px;
  }
  .hero-bottom > span:first-child {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 150px;
    white-space: normal;
    letter-spacing: 0.08em;
    line-height: 1.5;
  }
  .hero-bottom a {
    flex: none;
    white-space: nowrap;
  }
  .product-caption > span {
    font-size: 12px;
  }
  .hero-bottom a {
    font-size: 13px;
  }
  .hero .hero-secondary > span:first-child {
    font-size: 12.5px;
  }
  .hero .hero-secondary strong {
    font-size: max(13px, 1em);
  }
  /* Tecnologia */
  .tip-tag,
  .tip-tag small {
    font-size: 12px;
  }
  .tech-chapters a,
  .tech-chapters a span {
    font-size: 12.5px;
  }
  /* Clube: "3 áreas" e "/mês" */
  .plan-option-name small,
  .plan-option-price small,
  .plan-price > span:first-of-type,
  .plan-price > span:last-of-type {
    font-size: 12px;
  }
  /* Cidades */
  .cidade small {
    font-size: 12px;
    letter-spacing: 0.1em;
  }
  /* notas de rodapé de seção */
  .treatments-note,
  .jornada-nota,
  .cuidados-nota,
  .cidades-nota,
  .club-note,
  .contact-note,
  .estreia-nota,
  .estreia-detalhe,
  .footer-disclaimer {
    font-size: 13px;
    line-height: 1.6;
  }
  /* botões e escolhas */
  .button,
  .button-outline,
  .button-dark,
  .choice {
    font-size: 14px;
  }
}

/* 05. Alvo de toque mínimo (também no celular deitado) ---------------------- */
@media (max-width: 800px), (max-height: 500px) and (pointer: coarse) {
  .hero-secondary {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-top: 10px;
  }
  .hero-bottom a {
    min-height: 44px;
  }
  .header .brand,
  .footer-brand {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .footer-nav {
    column-gap: 22px;
    row-gap: 0;
  }
  .footer-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 14px;
  }
  .choice,
  .back-top {
    min-height: 44px;
  }
  .back-top {
    display: inline-flex;
    align-items: center;
  }
}

/* 06. Tecnologia sem o modo cinema (celular baixo, SE, mini) -------------------
   O rótulo da ponteira sai de cima da foto, e as abas 01/02/03 somem: sem o modo
   cinema os três capítulos já estão um embaixo do outro. */
@media (max-width: 800px) {
  html:not(.has-motion) .tip-scene {
    margin-bottom: 60px;
  }
  html:not(.has-motion) .tip-tag {
    left: 50%;
    bottom: -38px;
    transform: translateX(-50%);
    white-space: nowrap;
  }
  html:not(.has-motion) .tip-tag small {
    display: none;
  }
  html:not(.has-motion) .tech-bottom {
    display: none;
  }
}

/* 07. Abertura em tela baixa: o botão principal aparece na primeira tela ------ */
@media (max-width: 800px) and (max-height: 760px) {
  .hero-product {
    width: min(74%, 290px);
    margin: -24px auto -12px;
    align-self: center;
  }
  .hero-description {
    margin-block: 16px 20px;
  }
}

/* 08. Celular deitado: menu em gaveta, como no celular em pé ------------------ */
@media (min-width: 801px) and (max-width: 1100px) and (max-height: 500px) and (pointer: coarse) {
  .header-inner {
    height: 64px;
  }
  .menu-toggle {
    display: flex;
    flex-direction: column;
    gap: 7px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    color: var(--paper);
    z-index: 22;
  }
  .menu-toggle span {
    width: 25px;
    height: 1px;
    background: currentColor;
    transition: transform 0.2s;
  }
  .menu-toggle[aria-expanded="true"] span:first-child {
    transform: translateY(4px) rotate(45deg);
  }
  .menu-toggle[aria-expanded="true"] span:last-child {
    transform: translateY(-4px) rotate(-45deg);
  }
  .navigation {
    display: none;
    position: fixed;
    top: 64px;
    left: 0;
    right: 0;
    max-height: calc(100svh - 64px);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--navy);
    padding: 12px 32px 24px;
  }
  .navigation.is-open {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 32px;
    align-items: center;
  }
  .navigation > a {
    display: flex;
    align-items: center;
    min-height: 48px;
    font-size: 18px;
  }
  .navigation .nav-cta {
    grid-column: 1 / -1;
    justify-content: space-between;
    margin-top: 10px;
    padding: 14px 20px;
    font-size: 16px;
  }
  .header:has(.is-open) {
    background: var(--navy);
  }
  html {
    scroll-padding-top: 64px;
  }
}

/* 09. Cena da Tecnologia no celular, com o modo cinema --------------------------
   A cena foi desenhada para 740–820 px de altura; no celular ela passava da tela e as
   abas 01/02/03 sumiam. Aqui ela cabe na altura visível (100svh, a menor, com a barra
   do navegador aparecendo): a ponteira ocupa o espaço que sobra e o texto tem caixa
   fixa do tamanho do capítulo mais longo. */
@media (max-width: 800px) {
  html.has-motion .technology-story {
    height: 290svh;
    min-height: 1800px;
  }
  html.has-motion .technology-stage {
    min-height: 0;
    height: 100svh;
    padding-block: 88px 6px;
  }
  html.has-motion .tech-layout {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    flex: 1 1 auto;
    min-height: 0;
  }
  html.has-motion .tip-scene {
    flex: 1 1 auto;
    width: min(100%, 460px);
    height: auto;
    min-height: 110px;
    max-height: 330px;
    margin: 0 auto;
  }
  html.has-motion .tech-copy-stack {
    flex: none;
    height: 306px;
    margin-top: 10px;
  }
  /* o rótulo da ponteira fica dentro da área da foto, sem encostar no capítulo */
  html.has-motion .tip-tag {
    bottom: 4px;
  }
  html.has-motion .tech-panel {
    justify-content: flex-start;
  }
  html.has-motion .tech-bottom {
    flex: none;
  }
}
@media (max-width: 800px) and (max-height: 720px) {
  html.has-motion .tech-top {
    display: none;
  }
  html.has-motion .technology-stage {
    padding-top: 84px;
  }
  html.has-motion .tech-copy-stack {
    height: 272px;
  }
  html.has-motion .temperature strong {
    font-size: 50px;
    margin-bottom: 0;
  }
  html.has-motion .tech-panel h2 {
    font-size: 34px;
    line-height: 1.02;
  }
  html.has-motion .tech-panel p {
    font-size: 13px;
    line-height: 1.6;
    margin-top: 10px;
  }
  html.has-motion .tech-panel .chapter {
    margin-bottom: 8px;
  }
  html.has-motion .temperature {
    margin-top: 8px;
  }
  html.has-motion .tech-panel .tech-detail {
    margin-top: 10px;
    padding-top: 8px;
  }
  html.has-motion .tech-panel .tech-note {
    font-size: 12px;
    line-height: 1.45;
    margin-top: 8px;
  }
}
@media (max-width: 800px) and (max-height: 600px) {
  html.has-motion .tech-copy-stack {
    height: 256px;
  }
  html.has-motion .temperature strong {
    font-size: 42px;
  }
  html.has-motion .tech-panel h2 {
    font-size: 30px;
  }
  html.has-motion .tech-panel p {
    line-height: 1.5;
  }
}

/* 10. Motion no toque: versão de rolagem e de toque dos efeitos de mouse ---------
   No computador a luz segue o cursor, os cartões inclinam sob o mouse e os botões
   dourados são magnéticos. No celular: a luz percorre a seção com a rolagem e os
   cartões inclinam ao entrar (motion.js, TOQUE_ROLAGEM), o aparelho da abertura
   flutua e o botão dourado responde ao toque. Nada disso com movimento reduzido. */
@media (hover: none) and (prefers-reduced-motion: no-preference),
  (pointer: coarse) and (prefers-reduced-motion: no-preference) {
  .club.has-cursor-light:after,
  .treatments.has-cursor-light:after,
  .cidades.has-cursor-light:after {
    opacity: 1;
  }
  [data-tilt] {
    transition: transform 0.35s var(--ease);
  }
  .product-motion img {
    animation: mezzo-flutua 6.5s ease-in-out infinite;
    transform-origin: 55% 60%;
  }
  .button-gold {
    transition:
      scale 0.18s var(--ease),
      filter 0.18s;
  }
  .button-gold:active {
    scale: 0.96;
    filter: brightness(1.08);
  }
}
@keyframes mezzo-flutua {
  0%,
  100% {
    translate: 0 0;
    rotate: 0deg;
  }
  50% {
    translate: 0 -9px;
    rotate: 1.2deg;
  }
}
