/* Refinement of the existing Gordon & Smith identity, October 2026. */
:root { --cookie-height: 0px; }
html { scroll-padding-top: calc(var(--nav-h) + 20px); }
::selection { background: var(--gold); color: var(--black); }
input, textarea { caret-color: var(--gold); }
:focus-visible { outline: 3px solid var(--gold2); outline-offset: 4px; }
button, a { -webkit-tap-highlight-color: rgba(201,168,76,.2); }
a { text-underline-offset: .2em; }
.nav-links a { min-height: 44px; display: inline-flex; align-items: center; letter-spacing: .07em; }
.nav-links a.active { color: var(--gold2); }
.nav-links .nav-cta:hover, .btn-primary:hover { color: var(--black); }
.trust-item { font-size: .8rem; }
.servico-badge, .mat-badge { font-size: .75rem; }
.pq-num { display: none; }
.menu-toggle { min-width: 44px; min-height: 44px; justify-content: center; }
.hero { height: auto; min-height: min(760px, 88svh); padding: 110px 0 70px; }
.hero-content { padding-top: 0; }
.hero-content h1 { font-size: clamp(2.5rem, 5.8vw, 5rem); font-weight: 800; max-width: 18ch; }
.hero-content p { max-width: 52ch; margin-bottom: 28px; }
.hero-badge { font-size: .8rem; letter-spacing: .08em; padding: 8px 12px; margin-bottom: 22px; }
.hero-scroll-hint { display: none; }
.section-header { margin-bottom: 36px; }
.section-header h2, .galeria-top h2, .contato-info h2, .sobre-text h2 { font-size: clamp(1.9rem,3.2vw,2.8rem); line-height: 1.2; font-weight: 700; text-wrap: balance; }
.section-header p { max-width: 60ch; margin-inline: auto; }
.servicos, .processo, .sobre, .certificacoes, .faq, .depoimentos, .briefing, .video-showcase { padding-top: 64px; padding-bottom: 64px; }
.servico-card { padding: 28px; }
.servico-card p, .processo-step p, .cert-card p, .pq-card p { font-size: .95rem; }
.stat-item p { font-size: .8rem; text-transform: none; letter-spacing: .02em; }
.stats-bar { font-variant-numeric: tabular-nums; }
.clientes { padding-top: 24px; padding-bottom: 24px; }
.clientes-track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; gap: 20px 32px; }
.clientes-track .client-txt:nth-child(n+18) { display: none; }
.client-txt { font-size: 1rem; }
.clientes-label { font-size: .8rem; }
[data-aos] { opacity: 1; transform: none; transition: none; }
.video-wrap { aspect-ratio: 16 / 10; background: #161616; }
.video-wrap video { width: 100%; height: 100%; object-fit: contain; }
.video-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); padding: 14px 22px; min-height: 48px; background: var(--gold); color: var(--black); border: 0; border-radius: 4px; font: 700 .95rem var(--font-body); cursor: pointer; white-space: nowrap; }
.video-play[hidden] { display: none; }
.video-play:disabled { cursor: wait; }
.form-field label { font-size: .85rem; letter-spacing: .03em; text-transform: none; }
.form-field input, .form-field select, .form-field textarea { font-size: 16px; }
.form-field input::placeholder, .form-field textarea::placeholder { color: #aaa; }
.form-msg a { text-decoration: underline; font-weight: 600; }
.form-note { font-size: .85rem; }
.contato-info, .contato-form-wrap, .contato-inner > *, .sobre-inner > * { min-width: 0; }
.dado-item > div:last-child { min-width: 0; overflow-wrap: anywhere; }
.mapa-link { overflow-wrap: anywhere; }
.briefing-back { background: transparent; color: var(--gray2); border: 0; padding: 12px; min-height: 44px; margin-top: 16px; font: inherit; text-decoration: underline; cursor: pointer; }
.bq-opt { min-height: 48px; }
.sticky-cta-btn { color: #0a0a0a; min-height: 44px; display: inline-flex; align-items: center; }
.sticky-cta-close { width: 44px; height: 44px; }
.has-sticky-cta .whatsapp-float { bottom: 90px; }
.cookie-notice .whatsapp-float { bottom: calc(var(--cookie-height) + 16px); }
#lgpdBanner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 300; display: flex; align-items: center; justify-content: center; gap: 24px; padding: 12px 24px max(12px,env(safe-area-inset-bottom)); background: #161616; border-top: 1px solid #555; color: #ddd; }
#lgpdBanner p { max-width: 70ch; font-size: .85rem; line-height: 1.5; }
.lgpd-actions { display: flex; gap: 8px; flex-shrink: 0; }
.lgpd-actions button { min-height: 44px; padding: 8px 16px; font: 600 .85rem var(--font-body); border-radius: 4px; cursor: pointer; }
#lgpdAceitar { background: var(--gold); color: var(--black); border: 1px solid var(--gold); }
#lgpdRecusar { background: transparent; color: #ddd; border: 1px solid #777; }
.home .faq-list .faq-item:nth-child(n+7) { display: none; }
.faq-more { display: block; margin: 24px auto 0; text-align: center; text-decoration: underline; color: var(--gold2); }
.details-nav { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin: 36px 16px; }
.details-nav a { padding: 10px 16px; min-height: 44px; border: 1px solid #555; border-radius: 4px; font-size: .9rem; }
.footer-links a { min-height: 32px; display: inline-block; }
@media (min-width: 769px) and (max-width: 1100px) {
  .nav-inner { padding-inline: 20px; gap: 12px; }
  .logo-fallback { font-size: 1rem; letter-spacing: 1px; }
  .nav-links { gap: 0; }
  .nav-links a { font-size: .68rem; padding-inline: 8px; }
}
@media (max-width: 900px) {
  :root { --nav-h: 68px; }
  .menu-toggle { display: flex; }
  .nav-links { position: fixed; top: var(--nav-h); left: 0; right: 0; display: flex; flex-direction: column; align-items: stretch; gap: 4px; background: #111; padding: 16px 24px 24px; border-top: 1px solid #333; visibility: hidden; opacity: 0; pointer-events: none; transform: translateY(-12px); }
  .nav-links.open { visibility: visible; opacity: 1; pointer-events: all; transform: none; }
  .nav-links a { font-size: .95rem; padding: 14px 0; color: var(--white); border-bottom: 1px solid #333; }
  .nav-links .nav-cta { justify-content: center; margin-top: 8px; color: var(--black); }
}
@media (max-width: 600px) {
  .nav-inner { padding-inline: 16px; gap: 12px; }
  .logo-fallback { font-size: clamp(.85rem,3.7vw,1.05rem); letter-spacing: .05em; white-space: nowrap; }
  .hero { min-height: 590px; padding: 100px 0 40px; }
  .hero-content { padding-inline: 20px; }
  .hero-content h1 { font-size: clamp(2.15rem,8.9vw,3.25rem); line-height: 1.09; }
  .hero-badge { font-size: .72rem; line-height: 1.5; }
  .hero-actions { align-items: stretch; gap: 12px; }
  .hero-actions a { width: 100%; text-align: center; padding: 14px 12px; min-height: 48px; }
  .stat-item { padding: 16px 8px; }
  .stat-item p { font-size: .78rem; }
  .servicos, .processo, .sobre, .certificacoes, .faq, .depoimentos, .briefing, .video-showcase { padding-top: 44px; padding-bottom: 44px; }
  .section-header { margin-bottom: 28px; }
  .section-header h2 { font-size: 1.9rem; }
  .clientes-track { gap: 14px 20px; }
  .client-txt { font-size: .85rem; }
  .servico-card { padding: 24px 20px; }
  .video-wrap { aspect-ratio: 4 / 5; }
  .contato-form-wrap { padding: 24px 20px; }
  .has-sticky-cta .whatsapp-float, .cookie-notice .whatsapp-float { visibility: hidden; pointer-events: none; }
  .sticky-cta { padding-bottom: max(12px,env(safe-area-inset-bottom)); }
  #lgpdBanner { padding: 10px 16px max(10px,env(safe-area-inset-bottom)); gap: 8px; flex-direction: column; align-items: stretch; }
  #lgpdBanner p { font-size: .8rem; }
  .lgpd-actions { justify-content: flex-end; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-scroll-hint, .clientes-track { animation: none; }
  .nav-links, .sticky-cta, .btn-primary, .servico-card, .whatsapp-float { transition: none; }
}
