/**
 * Responsividade global: telemóveis, tablets e entalhes (safe-area).
 * Carregar depois de css/dua-public-nav.css nas páginas públicas.
 */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
}

/* ——— Topo fixo + entalhe (notch / Dynamic Island) ——— */
.dua-site-header {
  padding-top: env(safe-area-inset-top, 0);
}

.dua-site-header .dua-site-nav {
  padding-left: max(var(--dua-nav-pad), env(safe-area-inset-left, 0px));
  padding-right: max(var(--dua-nav-pad), env(safe-area-inset-right, 0px));
}

/* Links do menu: área mínima ~44×44px (acessibilidade toque) */
.dua-site-header .nav-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.5rem 0.65rem;
  -webkit-tap-highlight-color: color-mix(in oklab, var(--dua-nav-accent, #ffd700), transparent 70%);
}

/* Em ecrãs estreitos: menu numa linha deslizante (evita coluna alta; links acessíveis ao dedo) */
@media (max-width: 720px) {
  .dua-site-header .dua-site-nav {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
  }

  .dua-site-header .dua-nav-end {
    flex: 1 1 100%;
    min-width: 0;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
  }

  .dua-site-header .nav-links,
  .dua-site-header .dua-nav-end .nav-links {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    gap: 0.25rem 0.5rem;
    padding: 0.15rem 0 0.35rem;
    margin: 0 -0.25rem;
    max-width: none;
    scrollbar-width: thin;
  }

  .dua-site-header .nav-links li {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .dua-site-header .nav-links a {
    white-space: nowrap;
  }
}

/* Fil de Ariadne: não cortar em ecrãs pequenos */
.dua-site-breadcrumb-wrap {
  padding-left: max(var(--dua-nav-pad), env(safe-area-inset-left, 0px));
  padding-right: max(var(--dua-nav-pad), env(safe-area-inset-right, 0px));
}

.dua-site-breadcrumb {
  row-gap: 0.35rem;
}

/* ——— Páginas com tema index (variáveis --pad no body ou herança) ——— */
@media (max-width: 820px) {
  .hero .cta {
    flex-direction: column;
    align-items: stretch;
  }

  .hero .cta .btn-primary,
  .hero .cta .btn-ghost {
    justify-content: center;
    min-height: 48px;
  }
}

/* Campos de texto: min. 16px em telemóvel evita zoom automático do iOS ao focar */
@media (max-width: 480px) {
  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="range"]),
  textarea,
  select {
    font-size: max(16px, 1em);
  }
}

/* Botões principais: resposta ao toque */
.dua-form-contact .btn-submit,
.btn-primary,
.btn-ghost {
  touch-action: manipulation;
}

/* ——— Páginas .dua-site-public-page ——— */
body.dua-site-public-page .dua-btn {
  min-height: 44px;
  padding-left: 1.15rem;
  padding-right: 1.15rem;
}

@media (max-width: 480px) {
  body.dua-site-public-page .dua-card,
  body.dua-site-public-page .veja-comprar-card {
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
  }

  .veja-cookie-bar__btn {
    min-height: 44px;
    padding-left: 1.1rem;
    padding-right: 1.1rem;
  }
}

/* Texto explicativo dos formulários: mais escuro que --muted (distinto do texto escrito nos campos) */
.dua-form-hint {
  color: color-mix(in oklab, var(--muted), var(--text) 42%) !important;
}
.dua-form-contact .form-check label {
  color: color-mix(in oklab, var(--muted), var(--text) 36%) !important;
}
.dua-form-contact .form-check label a {
  color: var(--link) !important;
}
.dua-form-contact .form-check label a:hover,
.dua-form-contact .form-check label a:focus-visible {
  color: var(--accent) !important;
}

/* Botões: rebordo 1px visível; no hover/foco — rebordo dourado (--accent / --dua-accent) */
button.btn:not(.btn-link):not(.btn-close),
a.btn:not(.btn-link):not(.btn-close),
input.btn:not(.btn-link):not(.btn-close),
.btn:not(.btn-link):not(.btn-close),
.btn-ghost,
.btn-primary,
.dua-btn:not(.btn-link),
.dua-form-contact .btn-submit {
  border-width: 1px !important;
  border-style: solid !important;
}

button.btn:not(.btn-link):not(.btn-close),
a.btn:not(.btn-link):not(.btn-close),
input.btn:not(.btn-link):not(.btn-close),
.btn:not(.btn-link):not(.btn-close),
.btn-ghost {
  border-color: var(--form-border, #6b7280) !important;
}

.btn-primary {
  border-color: var(--form-border, #6b7280) !important;
}

button.btn:not(.btn-link):not(.btn-close):hover,
button.btn:not(.btn-link):not(.btn-close):focus-visible,
a.btn:not(.btn-link):not(.btn-close):hover,
a.btn:not(.btn-link):not(.btn-close):focus-visible,
input.btn:not(.btn-link):not(.btn-close):hover,
input.btn:not(.btn-link):not(.btn-close):focus-visible,
.btn:not(.btn-link):not(.btn-close):hover,
.btn:not(.btn-link):not(.btn-close):focus-visible,
.btn-ghost:hover,
.btn-ghost:focus-visible,
.btn-primary:hover,
.btn-primary:focus-visible,
.dua-btn:not(.btn-link):hover,
.dua-btn:not(.btn-link):focus-visible,
.dua-form-contact .btn-submit:hover,
.dua-form-contact .btn-submit:focus-visible,
.dua-form-contact button[type="submit"]:hover,
.dua-form-contact button[type="submit"]:focus-visible {
  border-color: var(--accent, #ffd700) !important;
}

@media (prefers-reduced-motion: reduce) {
  button.btn,
  a.btn,
  input.btn,
  .btn,
  .btn-ghost,
  .btn-primary,
  .dua-btn,
  .dua-form-contact .btn-submit {
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
  }
}
