/* =========================================================
   Bruna Braga · Estética Avançada
   Design tokens — Luxury/Premium palette (black + gold)
   Heading: Playfair Display · Body: Inter
========================================================= */

:root{
  --bg:            #FAFAF9;
  --fg:            #1C1917;
  --fg-soft:       #44403C;
  --card:          #FFFFFF;
  --muted:         #6B6560;
  --border:        #E2DDD8;

  --gold:          #A16207;   /* accent on light backgrounds — WCAG AA */
  --gold-bright:   #D4AF6A;   /* accent on dark backgrounds, matches logo */
  --gold-soft:     #F3E9D8;

  --dark:          #14110F;   /* hero / footer / testimonials backdrop */
  --dark-card:     #211B17;

  --whatsapp:      #25D366;

  --font-head: 'Playfair Display', Georgia, serif;
  --font-body: 'Lora', Georgia, 'Times New Roman', serif;

  --space-1: .5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2rem;
  --space-5: 3rem;
  --space-6: 4.5rem;
  --space-7: 7rem;

  --radius: 14px;
  --radius-sm: 8px;
  --shadow-md: 0 12px 32px -12px rgba(20,17,15,.18);
  --shadow-lg: 0 24px 60px -20px rgba(20,17,15,.28);

  --ease: cubic-bezier(.16,.84,.44,1);
  --dur: 260ms;
}

@media (prefers-color-scheme: dark){
  :root{ --bg:#FAFAF9; --fg:#1C1917; } /* brand is intentionally light-mode; keep consistent */
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *,*::before,*::after{ animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

body{
  margin:0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font: inherit; }

/* On-brand keyboard focus ring (never removed — only restyled) */
a:focus-visible, button:focus-visible{
  outline: 2px solid var(--gold-bright); outline-offset: 3px; border-radius: 2px;
}
h1,h2,h3{ font-family: var(--font-head); line-height: 1.15; margin: 0 0 var(--space-2); font-weight: 600; }
p{ margin: 0 0 var(--space-2); color: var(--fg-soft); }
svg{ width:1.5em; height:1.5em; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

.container{ width:100%; max-width: 1180px; margin-inline:auto; padding-inline: var(--space-3); }

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--dark); color:#fff;
  padding:.75em 1.25em; z-index:1000; border-radius: 0 0 8px 0;
}
.skip-link:focus{ left:0; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  padding: .95em 1.7em; border-radius: 999px; font-weight:500; font-size:.97rem;
  cursor:pointer; border:1px solid transparent; transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease);
  touch-action: manipulation;
}
.btn svg{ width:1.15em; height:1.15em; }
.btn:active{ transform: scale(.97); }
.btn-gold{ background: var(--gold); color:#fff; }
.btn-gold:hover{ background:#8a5606; box-shadow: var(--shadow-md); transform: translateY(-2px); }
.btn-lg{ padding: 1.1em 2.2em; font-size: 1.05rem; }
.btn-ghost{ background: transparent; color: var(--fg); border-color: var(--border); }
.btn-ghost:hover{ background: rgba(20,17,15,.05); }
.btn-outline{ background:transparent; border-color: var(--gold); color: var(--gold); }
.btn-outline:hover{ background: var(--gold); color:#fff; }
/* White-on-#25D366 is only 1.98:1 (fails WCAG AA); dark text/icon clears 9:1+ */
.btn-whatsapp{ background: var(--whatsapp); color: var(--dark); }
.btn-whatsapp:hover{ background:#1fb959; box-shadow: var(--shadow-md); }

/* ---------- Header ---------- */
.site-header{
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  transition: background var(--dur) var(--ease), box-shadow var(--dur) var(--ease), padding var(--dur) var(--ease);
  padding-block: var(--space-2);
}
.site-header.scrolled{
  background: rgba(250,249,249,.9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 1px 0 var(--border); padding-block: .6em;
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap: var(--space-3); }

.brand{ display:flex; align-items:center; gap:.75em; }

/* Official logo file (transparent PNG/WebP) — height fixed, width auto so
   it always keeps its own aspect ratio and never stretches. */
.brand-logo{
  height: 3.4em; width:auto; display:block;
  transition: transform var(--dur) var(--ease);
}
.brand:hover .brand-logo{ transform: scale(1.04); }

.brand-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:2.5em; height:2.5em; border:1.5px solid var(--gold-bright); color: var(--gold-bright);
  font-family: var(--font-head); font-weight:700; font-size:1rem; letter-spacing: .02em;
  transition: color var(--dur), border-color var(--dur);
}
.brand-mark.small{ width:2.1em; height:2.1em; font-size:.85rem; }

.main-nav{ display:none; align-items:center; gap: var(--space-4); }
.main-nav a{ color:#fff; font-size:.94rem; font-weight:500; position:relative; padding: .3em 0; transition: color var(--dur); }
.main-nav a::after{ content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background: var(--gold-bright); transition: right var(--dur) var(--ease); }
.main-nav a:hover::after{ right:0; }
.site-header.scrolled .main-nav a{ color: var(--fg-soft); }
.site-header.scrolled .main-nav a::after{ background: var(--gold); }

.header-cta{ display:none; }

.nav-toggle{
  display:inline-flex; flex-direction:column; justify-content:center; gap:5px;
  width:2.6em; height:2.6em; align-items:center; background:transparent; border:1px solid rgba(255,255,255,.35);
  border-radius: 999px; cursor:pointer; transition: border-color var(--dur);
}
.site-header.scrolled .nav-toggle{ border-color: var(--border); }
.nav-toggle span{ width:18px; height:1.5px; background:#fff; transition: transform var(--dur) var(--ease), opacity var(--dur); }
.site-header.scrolled .nav-toggle span{ background: var(--fg); }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(6.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-6.5px) rotate(-45deg); }

@media (max-width: 899px){
  .main-nav{
    position: fixed; inset:0; background: var(--dark); flex-direction:column; justify-content:center;
    gap: var(--space-4); transform: translateX(100%); transition: transform .38s var(--ease);
    padding: var(--space-3);
  }
  .main-nav.open{ display:flex; transform: translateX(0); }
  .main-nav a{ font-family: var(--font-head); font-size: 1.6rem; color:#fff !important; }
  .main-nav a::after{ background: var(--gold-bright) !important; }
}
@media (min-width: 900px){
  .main-nav{ display:flex; }
  .header-cta{ display:inline-flex; }
  .nav-toggle{ display:none; }
}

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform: translateY(22px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform: none; }
.servico-card.reveal, .diferencial.reveal, .depoimento.reveal{ transition-delay: var(--reveal-delay, 0ms); }

/* ---------- Hero ---------- */
.hero{
  position: relative; min-height: 100dvh; display:flex; flex-direction:column; justify-content:center;
  color:#fff; overflow:hidden; padding-top: 6rem; padding-bottom: var(--space-5);
}
.hero-bg{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(rgba(10,8,7,.55), rgba(10,8,7,.55)),
    linear-gradient(105deg, #14110F 0%, #14110F 42%, rgba(20,17,15,.88) 60%, rgba(20,17,15,.5) 100%),
    url('../assets/img/hero-bg.jpg');
  background-size: cover;
  background-position: 78% center;
  background-repeat: no-repeat;
}
@media (min-width: 900px){
  .hero-bg{
    background-image:
      linear-gradient(rgba(10,8,7,.4), rgba(10,8,7,.4)),
      linear-gradient(105deg, #14110F 0%, #14110F 36%, rgba(20,17,15,.82) 56%, rgba(20,17,15,.35) 100%),
      url('../assets/img/hero-bg.jpg');
    background-position: right center;
  }
}
.hero-bg::after{
  content:""; position:absolute; inset:0;
  background-image: radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 26px 26px; opacity:.4;
}
.hero-inner{ max-width: 780px; }
.eyebrow{ font-size:.8rem; letter-spacing:.18em; text-transform:uppercase; color: var(--gold-bright); font-weight:600; margin-bottom: var(--space-2); }
.eyebrow.light{ color: var(--gold-bright); }
.eyebrow.center{ text-align:center; }
.hero h1{ font-size: clamp(2.2rem, 5.2vw, 3.6rem); color:#fff; max-width: 14ch; }
.hero-lede{ font-size: 1.1rem; color: rgba(255,255,255,.78); max-width: 46ch; margin-bottom: var(--space-4); }
.hero-actions{ display:flex; flex-wrap:wrap; gap: var(--space-2); margin-bottom: var(--space-6); }
.hero .btn-ghost{ color:#fff; border-color: rgba(255,255,255,.35); }
.hero .btn-ghost:hover{ background: rgba(255,255,255,.08); }

.hero-stats{ display:flex; gap: var(--space-5); flex-wrap:wrap; }
.hero-stats div{ display:flex; flex-direction:column; }
.hero-stats strong{ font-family: var(--font-head); font-size:1.7rem; color: var(--gold-bright); }
.hero-stats span{ font-size:.82rem; color: rgba(255,255,255,.6); }

.scroll-cue{
  position:absolute; left:50%; bottom: var(--space-3); transform: translateX(-50%);
  width: 26px; height: 42px; border: 1.5px solid rgba(255,255,255,.4); border-radius: 20px;
}
.scroll-cue span{
  position:absolute; top:7px; left:50%; width:4px; height:4px; margin-left:-2px; border-radius:50%;
  background: var(--gold-bright); animation: scrollcue 1.8s infinite var(--ease);
}
@keyframes scrollcue{ 0%{ transform: translateY(0); opacity:1;} 70%{ transform: translateY(14px); opacity:0;} 100%{ opacity:0; } }
@media (prefers-reduced-motion: reduce){ .scroll-cue span{ animation:none; } }

/* ---------- Section basics ---------- */
section{ padding-block: var(--space-7); }
.section-lede{ color: var(--muted); max-width: 56ch; margin-inline:auto; }
.center{ text-align:center; margin-inline:auto; }
h2{ font-size: clamp(1.7rem, 3.6vw, 2.4rem); }

/* ---------- Sobre ---------- */
.sobre-grid{ display:grid; gap: var(--space-6); align-items:center; }
.sobre-media{ position:relative; max-width: 420px; margin-inline:auto; }
.sobre-media img{ border-radius: var(--radius); box-shadow: var(--shadow-lg); width:100%; height:auto; }
.sobre-badge{
  position:absolute; left: -1.2rem; bottom: -1.2rem; background: var(--dark); color:#fff;
  display:flex; align-items:center; gap:.8em; padding: .9em 1.2em; border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md); max-width: 88%;
}
.sobre-badge img.badge-symbol{ width:2.6em; height:2.6em; flex-shrink:0; display:block; border-radius:0; box-shadow:none; }
.sobre-badge strong{ display:block; font-family: var(--font-head); font-size:.95rem; }
.sobre-badge span{ font-size:.75rem; color: rgba(255,255,255,.65); }
.sobre-text .eyebrow{ color: var(--gold); }
.sobre-highlights{ list-style:none; margin: var(--space-3) 0; padding:0; display:flex; flex-direction:column; gap:.6em; }
.sobre-highlights li{ position:relative; padding-left:1.6em; color: var(--fg-soft); font-size:.95rem; }
.sobre-highlights li::before{ content:"✓"; position:absolute; left:0; color: var(--gold); font-weight:700; }

@media (min-width: 860px){
  .sobre-grid{ grid-template-columns: .8fr 1fr; }
  .sobre-media{ margin-inline:0; }
}

/* ---------- Prêmios ---------- */
.premios-grid{ display:grid; gap: var(--space-6); align-items:center; }
.premios-text .eyebrow{ color: var(--gold); }
.premios-media img{ border-radius: var(--radius); box-shadow: var(--shadow-lg); width:100%; height:auto; display:block; }

@media (min-width: 860px){
  .premios-grid{ grid-template-columns: 1fr .9fr; }
}

/* ---------- Diferenciais ---------- */
.diferenciais{ background: var(--gold-soft); padding-block: var(--space-6); }
.diferenciais-grid{ display:grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(230px,1fr)); }
.diferencial{ text-align:center; padding: var(--space-3); transition: transform var(--dur) var(--ease); }
.diferencial:hover{ transform: translateY(-3px); }
.diferencial svg{ width:2.4em; height:2.4em; color: var(--gold); margin-bottom: var(--space-2); transition: transform .4s var(--ease); }
.diferencial:hover svg{ transform: scale(1.12) rotate(-4deg); }
.diferencial h3{ font-size:1.1rem; margin-bottom:.4em; }
.diferencial p{ font-size:.92rem; margin:0; }

/* ---------- Serviços ---------- */
.servicos-grid{ display:grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(250px,1fr)); margin-top: var(--space-5); }
.servico-card{
  position:relative; background: var(--card); border:1px solid var(--border); border-radius: var(--radius);
  padding: var(--space-4); transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur);
}
.servico-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, var(--gold), var(--gold-bright));
  border-radius: var(--radius) var(--radius) 0 0;
  transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease);
}
.servico-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: transparent; }
.servico-card:hover::before{ transform: scaleX(1); }
.servico-card svg{ width:2.1em; height:2.1em; color: var(--gold); margin-bottom: var(--space-2); transition: transform .4s var(--ease); }
.servico-card:hover svg{ transform: translateY(-3px) scale(1.08); }
.servico-card h3{ font-size:1.12rem; margin-bottom:.4em; }
.servico-card p{ font-size:.92rem; min-height: 3.6em; }
.servico-card a{ display:inline-flex; margin-top:.6em; color: var(--gold); font-weight:600; font-size:.88rem; transition: transform var(--dur) var(--ease), color var(--dur); }
.servico-card a:hover{ color:#8a5606; transform: translateX(4px); }

/* ---------- Depoimentos ---------- */
.depoimentos{ background: var(--dark); color:#fff; }
.depoimentos h2, .depoimentos .section-lede{ color:#fff; }

/* Full-bleed, seamlessly-looping testimonial marquee. JS drives the track's
   transform (auto-scroll + arrow nudges); the track holds the 9 real items
   followed by an aria-hidden duplicate set so the loop has no visible seam. */
.carousel{
  position:relative; margin-top: var(--space-5); overflow:hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.carousel-track{ display:flex; align-items:flex-start; gap: 1.25rem; width:max-content; will-change: transform; }
.carousel-item{
  display:block; flex-shrink:0; position:relative; padding:0; margin:0; border:none;
  background:none; cursor:zoom-in; border-radius: var(--radius); overflow:hidden;
  box-shadow: var(--shadow-md);
}
.carousel-item img{ width: 240px; height:auto; display:block; transition: transform .4s var(--ease); }
.carousel-item::after{
  content:""; position:absolute; inset:0; background: rgba(20,17,15,0); transition: background var(--dur);
}
.carousel-item:hover::after{ background: rgba(20,17,15,.15); }
.carousel-item:hover img{ transform: scale(1.05); }

.carousel-arrow{
  position:absolute; top:50%; transform: translateY(-50%); z-index:5;
  width:2.75em; height:2.75em; border-radius:50%; border:none; cursor:pointer;
  background: rgba(20,17,15,.55); color:#fff; display:flex; align-items:center; justify-content:center;
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  transition: background var(--dur), transform var(--dur) var(--ease);
}
.carousel-arrow:hover{ background: var(--gold); }
.carousel-arrow:active{ transform: translateY(-50%) scale(.92); }
.carousel-arrow svg{ width:1.4em; height:1.4em; }
.carousel-arrow--prev{ left: .75rem; }
.carousel-arrow--next{ right: .75rem; }

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
  background: rgba(10,8,7,.92); padding: var(--space-3);
}
.lightbox[hidden]{ display:none; }
.lightbox-img{ max-width:min(90vw, 560px); max-height:85vh; width:auto; height:auto; border-radius: var(--radius); box-shadow: var(--shadow-lg); }
.lightbox-close, .lightbox-nav{
  position:absolute; border:none; border-radius:50%; background: rgba(255,255,255,.1); color:#fff;
  cursor:pointer; display:flex; align-items:center; justify-content:center; transition: background var(--dur);
}
.lightbox-close:hover, .lightbox-nav:hover{ background: var(--gold); }
.lightbox-close{ top: var(--space-3); right: var(--space-3); width:2.75em; height:2.75em; }
.lightbox-close svg{ width:1.3em; height:1.3em; }
.lightbox-nav{ top:50%; transform: translateY(-50%); width:3em; height:3em; }
.lightbox-nav svg{ width:1.5em; height:1.5em; }
.lightbox-nav--prev{ left: var(--space-3); }
.lightbox-nav--next{ right: var(--space-3); }
@media (max-width:600px){
  .lightbox-nav, .lightbox-close{ width:2.4em; height:2.4em; }
  .lightbox-nav--prev{ left:.4rem; }
  .lightbox-nav--next{ right:.4rem; }
  .lightbox-close{ top:.4rem; right:.4rem; }
}
@media (prefers-reduced-motion: reduce){
  .carousel-item img, .carousel-arrow, .lightbox-close, .lightbox-nav{ transition:none; }
}

/* ---------- FAQ ---------- */
.faq-grid{ display:grid; gap: var(--space-5); }
.faq-intro .eyebrow{ color: var(--gold); }
.faq-intro p{ max-width: 40ch; }
.faq-item{
  position:relative; padding-left: 2.5rem; border-bottom: 1px solid var(--border);
  transition: border-color var(--dur);
}
.faq-item::before{
  content:""; position:absolute; left:0; top:1.5em; bottom:1.5em; width:2px;
  background: linear-gradient(var(--gold), var(--gold-bright));
  transform: scaleY(0); transform-origin: top; transition: transform .5s var(--ease);
}
.faq-item:hover, .faq-item.open{ border-color: rgba(161,98,7,.35); }
.faq-item:hover::before, .faq-item.open::before{ transform: scaleY(1); }
.faq-question{
  width:100%; display:flex; align-items:baseline; gap: var(--space-2);
  background:none; border:none; text-align:left; padding: 1.25em 0; cursor:pointer;
}
.faq-num{ font-family: var(--font-head); font-style:italic; font-size:.82rem; color: var(--gold); flex-shrink:0; width:1.4em; }
.faq-text{ flex:1; font-family: var(--font-head); font-size:1.05rem; color: var(--fg); transition: color var(--dur); }
.faq-item:hover .faq-text, .faq-item.open .faq-text{ color: var(--gold); }
.faq-question svg{ flex-shrink:0; align-self:center; color: var(--gold); transition: transform .5s var(--ease); }
.faq-question[aria-expanded="true"] svg{ transform: rotate(180deg); }
@media (max-width: 560px){
  .faq-item{ padding-left: 1.1rem; }
  .faq-num{ display:none; }
}
.faq-answer{
  display:grid; grid-template-rows: 0fr; transition: grid-template-rows .35s var(--ease);
}
.faq-answer > *{ overflow:hidden; min-height:0; }
.faq-item.open .faq-answer{ grid-template-rows: 1fr; }
.faq-answer p{ padding-bottom: 1.25em; margin:0; max-width: 62ch; }

@media (min-width: 900px){
  .faq-grid{ grid-template-columns: .8fr 1.2fr; }
}

/* ---------- CTA final ---------- */
.cta-final{ position:relative; overflow:hidden; background: linear-gradient(160deg, var(--dark), #201a16); color:#fff; text-align:center; }
.cta-final::before{
  content:""; position:absolute; left:50%; top:50%; width:640px; height:640px; max-width:140vw;
  background: radial-gradient(circle, rgba(212,175,106,.18), transparent 65%);
  transform: translate(-50%,-50%) scale(1); border-radius:50%; pointer-events:none;
  animation: ctaGlow 7s ease-in-out infinite;
}
@keyframes ctaGlow{
  0%,100%{ transform: translate(-50%,-50%) scale(1); opacity:.7; }
  50%{ transform: translate(-50%,-50%) scale(1.15); opacity:1; }
}
@media (prefers-reduced-motion: reduce){ .cta-final::before{ animation:none; } }
.cta-final-inner{ position:relative; z-index:1; }
.cta-final h2{ color:#fff; }
.cta-final p{ color: rgba(255,255,255,.75); max-width: 42ch; margin-inline:auto; }
.cta-final .btn{ margin-top: var(--space-2); }
.cta-final .btn-gold{ position:relative; isolation:isolate; overflow:hidden; }
.cta-final .btn-gold::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.4) 50%, transparent 70%);
  transform: translateX(-130%); transition: transform .85s var(--ease);
}
.cta-final .btn-gold:hover::after{ transform: translateX(130%); }
.cta-meta{ margin-top: var(--space-3); font-size:.85rem; color: rgba(255,255,255,.55); }

/* ---------- Footer ---------- */
.site-footer{ position:relative; background: var(--dark); color: rgba(255,255,255,.7); padding-top: var(--space-6); }
.site-footer::before{
  content:""; position:absolute; top:0; left:50%; width:140px; height:2px;
  transform: translateX(-50%); background: linear-gradient(90deg, transparent, var(--gold-bright), transparent);
}
.footer-grid{ display:grid; gap: var(--space-5); grid-template-columns: 1fr; padding-bottom: var(--space-5); }
.footer-brand{ display:flex; flex-direction:column; align-items:flex-start; gap:.9em; max-width: 320px; }
.footer-logo{ height: 4em; width:auto; display:block; flex-shrink:0; }
.footer-brand p{ color: rgba(255,255,255,.55); font-size:.88rem; margin:0; }
.footer-col h4{ font-family: var(--font-head); color:#fff; font-size:1rem; margin-bottom: var(--space-2); }
.footer-col{ display:flex; flex-direction:column; gap:.6em; font-size:.9rem; }
.footer-col a{
  position:relative; display:inline-block; width:fit-content;
  transition: color var(--dur), transform var(--dur) var(--ease);
}
.footer-col a::before{
  content:"–"; position:absolute; left:-1.1em; opacity:0; color: var(--gold-bright);
  transition: opacity var(--dur) var(--ease), left var(--dur) var(--ease);
}
.footer-col a:hover{ color: var(--gold-bright); transform: translateX(.6em); }
.footer-col a:hover::before{ opacity:1; left:-1.3em; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding-block: var(--space-3); font-size:.8rem; color: rgba(255,255,255,.45); }
.footer-bottom p{ margin:0; padding-right: 4rem; }
@media (min-width: 640px){ .footer-bottom p{ padding-right:0; } }

@media (min-width: 700px){
  .footer-grid{ grid-template-columns: 1.3fr 1fr 1fr; }
}

/* ---------- WhatsApp floating button ---------- */
.whatsapp-float{
  position: fixed; right: var(--space-3); bottom: var(--space-3); z-index: 90;
  width: 3.4em; height: 3.4em; border-radius:50%; background: var(--whatsapp); color: var(--dark);
  display:flex; align-items:center; justify-content:center; box-shadow: var(--shadow-lg);
  animation: pulse 2.6s infinite;
}
.whatsapp-float svg{ width:1.7em; height:1.7em; }
@keyframes pulse{
  0%,100%{ box-shadow: 0 0 0 0 rgba(37,211,102,.45), var(--shadow-lg); }
  50%{ box-shadow: 0 0 0 10px rgba(37,211,102,0), var(--shadow-lg); }
}
@media (prefers-reduced-motion: reduce){ .whatsapp-float{ animation:none; } }

/* ==========================================================
   Mobile compaction — smaller screens get their own rhythm,
   not just a shrunk desktop layout. Tighter spacing, smaller
   icons/type, and a few purely-decorative elements removed.
========================================================== */
@media (max-width: 640px){
  section{ padding-block: 3.25rem; }

  /* Hero: keep the 3 stats on one row (grid instead of wrap)
     so they never collide with the fixed WhatsApp button, and
     trim the padding that was pushing the hero taller than
     one screen. */
  .hero{ padding-top: 5.5rem; padding-bottom: var(--space-4); }
  .hero-inner{ padding-bottom: 3.5rem; }
  .hero-actions{ margin-bottom: var(--space-4); }
  .hero-stats{ display:grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
  .hero-stats strong{ font-size: 1.3rem; }
  .hero-stats span{ font-size: .72rem; line-height:1.3; }
  .scroll-cue{ display:none; }

  .sobre-grid{ gap: var(--space-4); }
  .premios-grid{ gap: var(--space-4); }

  .diferenciais{ padding-block: 2.5rem; }
  .diferenciais-grid{ gap: var(--space-3); }
  .diferencial{ padding: var(--space-2) var(--space-1); }
  .diferencial svg{ width:2em; height:2em; margin-bottom: .5rem; }

  .servicos-grid{ gap: var(--space-2); margin-top: var(--space-4); }
  .servico-card{ padding: 1.25rem; }
  .servico-card svg{ width:1.8em; height:1.8em; margin-bottom: .5rem; }
  .servico-card h3{ font-size: 1.05rem; }
  .servico-card p{ min-height: 0; }

  .carousel{ margin-top: var(--space-4); }
  .carousel-track{ gap: .75rem; }
  .carousel-item img{ width: 160px; }
  .carousel-arrow{ width:2.25em; height:2.25em; }
  .carousel-arrow--prev{ left:.4rem; }
  .carousel-arrow--next{ right:.4rem; }

  .faq-grid{ gap: var(--space-4); }
  .faq-question{ padding: 1em 0; }

  .site-footer{ padding-top: var(--space-5); }
  .footer-grid{ gap: var(--space-4); padding-bottom: var(--space-4); }

  .whatsapp-float{ width: 3em; height: 3em; }
  .whatsapp-float svg{ width:1.5em; height:1.5em; }
}
