/* =========================================================
   GeoCarto Consultoria — "Território claro"
   Bootstrap 5.3 + identidade organic (leve, acolhedora, confiável)
   ========================================================= */

:root {
  /* Paleta do tema — todas as cores do site saem daqui.
     Os outros temas (seletor de cores) estão em css/temas.css e só redefinem estas variáveis. */
  --c-dark: #364127;          /* títulos, rodapé, card escuro */
  --c-dark-rgb: 54, 65, 39;
  --c-accent: #6bb252;        /* ícones e detalhes */
  --c-accent-rgb: 107, 178, 82;
  --c-ink: #42782f;           /* botões e links (contraste AA) */
  --c-ink-rgb: 66, 120, 47;
  --c-soft: #eef5e5;          /* fundos suaves de destaque */
  --c-hl: #f6c445;            /* realce (sublinhado, selos, botão no fundo escuro) */
  --c-hl-soft: #fff;
  --c-hl-ink: #7a5d06;        /* ícone sobre --c-hl-soft */
  --c-bg: #ffffff;            /* fundo principal (branco) */
  --c-bg2: #ffffff;           /* fundo alternativo (branco) */
  --c-white: #ffffff;
  --c-text: #5b6553;
  --c-muted: #6b745f;
  --c-border: #ece8dc;
  --c-on-dark: #dfe5d3;       /* texto sobre --c-dark */
  --c-on-dark-muted: #b9c3aa;

  /* Forma */
  --gc-radius: 20px;
  --gc-radius-lg: 32px;
  --gc-shadow: 0 5px 22px rgba(var(--c-dark-rgb), .05);
  --gc-shadow-hover: 0 20px 44px rgba(var(--c-dark-rgb), .10);

  /* Tipografia: Poppins (títulos, números, rótulos) + Roboto (texto)
     Pesos — Poppins: 500 rótulos · 600 títulos · 700 destaque | Roboto: 300 leitura leve · 400 texto · 500 ênfase · 700 negrito */
  --ff-display: 'Poppins', system-ui, sans-serif;
  --ff-text: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --bs-body-font-family: var(--ff-text);
  --bs-body-font-weight: 400;
  --bs-body-color: var(--c-text);
  --bs-body-bg: var(--c-bg2);
  --bs-link-color: var(--c-ink);
  --bs-link-color-rgb: var(--c-ink-rgb);
  --bs-link-hover-color: var(--c-dark);
  --bs-link-hover-color-rgb: var(--c-dark-rgb);
  --bs-border-color: var(--c-border);
}

html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body { background: var(--c-bg2); font-size: 1.02rem; line-height: 1.65; }

h1, h2, h3, h4, h5, h6, .font-display {
  font-family: var(--ff-display);
  color: var(--c-dark);
  font-weight: 600;
  letter-spacing: -.02em;
}
h1 { font-weight: 700; }
h4 { font-weight: 500; letter-spacing: -.01em; }
strong, b { font-weight: 700; }

.section { padding: 6.5rem 0; position: relative; }
@media (max-width: 767.98px) { .section { padding: 4.5rem 0; } }
.bg-cream { background: var(--c-bg); }
.text-olive { color: var(--c-dark) !important; }
.text-muted-gc { color: var(--c-muted) !important; }
.text-green { color: var(--c-ink) !important; }

.eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--c-soft);
  color: var(--c-ink);
  font-family: var(--ff-display); font-weight: 500; font-size: .8rem;
  padding: .35rem .9rem;
  border-radius: 50rem;
}
.section-title { font-size: clamp(1.75rem, 3.1vw, 2.5rem); line-height: 1.2; font-weight: 600; margin: .9rem 0 1rem; }
.section-lead { font-size: 1.12rem; font-weight: 300; color: var(--c-text); max-width: 40rem; }

/* ---------- Botões ---------- */
.btn { font-family: var(--ff-display); font-weight: 500; border-radius: 50rem; padding: .75rem 1.6rem; }
.btn-sm { padding: .45rem 1.1rem; }
.btn-lg { font-size: 1.02rem; padding: .85rem 1.6rem; }
.btn-brand {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--c-ink);
  --bs-btn-border-color: var(--c-ink);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--c-dark);
  --bs-btn-hover-border-color: var(--c-dark);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--c-dark);
  --bs-btn-active-border-color: var(--c-dark);
  --bs-btn-focus-shadow-rgb: 107, 178, 82;
}
.btn-soft {
  --bs-btn-color: var(--c-dark);
  --bs-btn-bg: var(--c-white);
  --bs-btn-border-color: transparent;
  --bs-btn-hover-color: var(--c-dark);
  --bs-btn-hover-bg: var(--c-soft);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-color: var(--c-dark);
  --bs-btn-active-bg: var(--c-soft);
  box-shadow: var(--gc-shadow);
}
.btn-light-on-dark {
  --bs-btn-color: var(--c-dark);
  --bs-btn-bg: var(--c-hl);
  --bs-btn-border-color: var(--c-hl);
  --bs-btn-hover-color: var(--c-dark);
  --bs-btn-hover-bg: #fff;
  --bs-btn-hover-border-color: #fff;
  --bs-btn-active-bg: #fff;
}
.link-arrow { font-weight: 500; text-decoration: none; display: inline-flex; align-items: center; gap: .35rem; }
.link-arrow i { transition: transform .2s; }
.link-arrow:hover i { transform: translateX(3px); }

/* ---------- Navbar ---------- */
.navbar-gc {
  background: color-mix(in srgb, var(--c-bg) 82%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding: 1rem 0;
  transition: padding .3s, box-shadow .3s, background .3s;
}
.navbar-gc.scrolled { padding: .55rem 0; background: rgba(255, 255, 255, .96); box-shadow: 0 6px 24px rgba(var(--c-dark-rgb), .07); }
.navbar-gc .navbar-brand { font-family: var(--ff-display); font-weight: 700; color: var(--c-dark); font-size: 1.3rem; }
.navbar-gc .nav-link { color: var(--c-text); font-weight: 500; padding: .5rem .9rem !important; border-radius: 50rem; }
.navbar-gc .nav-link:hover { color: var(--c-dark); }
.navbar-gc .nav-link.active { color: var(--c-dark); background: var(--c-soft); }
.navbar-gc .navbar-toggler { border: 0; box-shadow: none; }

/* Logo que acompanha a cor do tema (máscara sobre o desenho do logo) */
.logo-mark {
  display: inline-block; width: 34px; height: 34px; flex-shrink: 0;
  background: var(--c-dark);
  -webkit-mask: url("data:image/png;base64,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") center / contain no-repeat;
          mask: url("data:image/png;base64,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") center / contain no-repeat;
}

/* ---------- Hero ---------- */
.hero { padding: 9.5rem 0 5.5rem; background: var(--c-bg); overflow: hidden; position: relative; }
.hero h1 { font-size: clamp(2.2rem, 4.4vw, 3.4rem); line-height: 1.12; }
.hero h1 .hl {
  background: linear-gradient(transparent 62%, var(--c-hl) 62%, var(--c-hl) 92%, transparent 92%);
  padding: 0 .1em;
}
.hero .lead { font-size: 1.2rem; font-weight: 300; color: var(--c-text); max-width: 34rem; }
.trust-row { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-size: .92rem; color: var(--c-dark); font-weight: 500; }
.trust-row i { color: var(--c-accent); margin-right: .35rem; }

.hero-visual { position: relative; padding: 1rem; isolation: isolate; }
.hero-visual .frame {
  border-radius: 40px 40px 40px 160px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  box-shadow: var(--gc-shadow-hover);
}
.hero-visual .frame img { width: 100%; height: 100%; object-fit: cover; object-position: 72% 50%; display: block; }
.hero-visual .blob {
  position: absolute; z-index: -1;
  width: 70%; aspect-ratio: 1; right: -8%; top: -6%;
  background: var(--c-soft);
  border-radius: 58% 42% 55% 45% / 45% 55% 45% 55%;
}
.float-card {
  position: absolute;
  background: var(--c-white);
  border-radius: 18px;
  padding: .85rem 1.1rem;
  box-shadow: var(--gc-shadow-hover);
  display: flex; align-items: center; gap: .8rem;
  animation: floaty 7s ease-in-out infinite;
}
.float-card .num { font-family: var(--ff-display); font-weight: 700; font-size: 1.5rem; color: var(--c-dark); line-height: 1; }
.float-card strong { color: var(--c-dark); display: block; line-height: 1.3; font-size: .95rem; font-weight: 500; }
.float-card small { color: var(--c-muted); display: block; line-height: 1.3; }
.float-card.fc-1 { left: 1.5rem; bottom: 2rem; }
.float-card.fc-2 { right: -1rem; top: 2.5rem; animation-delay: -3.5s; }
@media (max-width: 991.98px) {
  .float-card.fc-1 { left: .5rem; bottom: 1.5rem; }
  .float-card.fc-2 { right: .5rem; top: 1.5rem; }
}
@keyframes floaty { 50% { transform: translateY(-8px); } }

/* ---------- Imagens em duotom (seguem as cores do tema) ---------- */
.duo { position: relative; overflow: hidden; background: var(--c-bg); isolation: isolate; }
.duo img { filter: grayscale(1) contrast(1.08); mix-blend-mode: multiply; display: block; width: 100%; }
.duo::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: var(--c-dark); mix-blend-mode: lighten;
}
.duo::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: var(--c-accent); mix-blend-mode: color; opacity: .35;
}

/* ---------- Ícone em círculo ---------- */
.icon-soft {
  width: 3.25rem; height: 3.25rem; flex-shrink: 0;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--c-soft);
  color: var(--c-ink);
  font-size: 1.35rem;
}
.icon-soft.yellow { background: var(--c-hl-soft); color: var(--c-hl-ink); }

/* ---------- Cards (sem bordas) ---------- */
.card-gc {
  background: var(--c-white);
  border: 0;
  border-radius: var(--gc-radius);
  box-shadow: var(--gc-shadow);
  height: 100%;
  transition: transform .3s ease-out, box-shadow .3s ease-out;
}
.card-gc:hover { transform: translateY(-4px); box-shadow: var(--gc-shadow-hover); }
.card-gc .card-media { border-radius: var(--gc-radius) var(--gc-radius) 0 0; }
.card-gc .card-img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; display: block; }
.card-gc .card-pad { padding: 1.75rem; }
.card-gc h3 { font-size: 1.35rem; margin-bottom: .6rem; }

.check-list { list-style: none; padding: 0; margin: 0; }
.check-list li { display: flex; gap: .6rem; padding: .28rem 0; }
.check-list li::before { content: "\F26E"; font-family: "bootstrap-icons"; color: var(--c-accent); font-size: 1.1rem; line-height: 1.45; }

/* ---------- Faixa de clientes ---------- */
.clients-band { background: var(--c-white); padding: 2.5rem 0; }
.clients-band p { font-size: .9rem; color: var(--c-muted); font-weight: 500; }
.clients-strip { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.clients-track { display: flex; gap: 4rem; width: max-content; align-items: center; animation: marquee 40s linear infinite; }
.clients-strip:hover .clients-track { animation-play-state: paused; }
.clients-track img { height: 52px; width: auto; max-width: 150px; object-fit: contain; filter: grayscale(1); opacity: .55; transition: filter .3s, opacity .3s; }
.clients-track img:hover { filter: none; opacity: 1; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Garantias / números ---------- */
.promise { display: flex; gap: 1rem; align-items: flex-start; }
.promise h4 { font-size: 1.1rem; margin: .1rem 0 .3rem; }
.promise p { font-size: .95rem; margin: 0; color: var(--c-text); }
.stat-card { background: var(--c-white); border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); padding: 1.6rem; text-align: center; height: 100%; }
.stat-card .num { font-family: var(--ff-display); font-weight: 700; font-size: 2.6rem; color: var(--c-dark); line-height: 1; }
.stat-card .lbl { color: var(--c-muted); font-size: .92rem; margin-top: .4rem; }
.stat-card.green { background: var(--c-soft); box-shadow: none; }
.stat-card.yellow { background: var(--c-hl-soft); box-shadow: none; }

/* ---------- Como trabalhamos ---------- */
.steps { position: relative; }
.step { text-align: center; padding: 0 .75rem; position: relative; }
.step .n {
  width: 4rem; height: 4rem; border-radius: 50%;
  background: var(--c-white); box-shadow: var(--gc-shadow-hover);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--ff-display); font-weight: 600; font-size: 1.4rem; color: var(--c-ink);
  margin-bottom: 1.1rem; position: relative; z-index: 1;
}
.step h4 { font-size: 1.15rem; }
.step p { font-size: .95rem; }
@media (min-width: 992px) {
  .steps::before {
    content: ""; position: absolute; top: 2rem; left: 12%; right: 12%;
    border-top: 2px dashed rgba(var(--c-accent-rgb), .45);
  }
}

/* ---------- Casos ---------- */
.case .card-img { aspect-ratio: 16 / 10; }
.case-tag { display: inline-block; font-family: var(--ff-display); font-size: .76rem; font-weight: 500; color: var(--c-ink); background: var(--c-soft); border-radius: 50rem; padding: .25rem .75rem; margin-bottom: .9rem; }
.case-client { font-size: .88rem; color: var(--c-muted); margin-bottom: 1rem; }
.case-steps { margin: 0 0 1.25rem; font-size: .93rem; }
.case-steps dt { font-family: var(--ff-display); font-weight: 600; color: var(--c-dark); font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; }
.case-steps dd { margin: 0 0 .7rem; }
.case-result { background: var(--c-hl-soft); border-radius: 14px; padding: 1rem 1.1rem; }
.case-result .big { display: block; font-family: var(--ff-display); font-weight: 700; font-size: 1.6rem; color: var(--c-dark); line-height: 1.1; }
.case-result small { color: var(--c-text); font-size: .85rem; }

/* ---------- Depoimentos ---------- */
.quote { margin: 0; padding: 2rem 1.75rem 1.75rem; display: flex; flex-direction: column; }
.quote .quote-mark { font-size: 2.6rem; line-height: 1; color: var(--c-accent); }
.quote blockquote { flex-grow: 1; margin: .5rem 0 1.5rem; font-size: 1.05rem; font-weight: 300; font-style: italic; color: var(--c-dark); }
.quote figcaption { display: flex; gap: .85rem; align-items: center; font-size: .85rem; color: var(--c-muted); line-height: 1.35; }
.quote figcaption strong { display: block; color: var(--c-dark); font-size: .95rem; font-family: var(--ff-display); font-weight: 500; }
.avatar {
  width: 3rem; height: 3rem; border-radius: 50%; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--c-soft); color: var(--c-ink);
  font-family: var(--ff-display); font-weight: 600;
}
.avatar.yellow { background: var(--c-hl-soft); color: var(--c-hl-ink); }

/* ---------- Mini-bio ---------- */
.bio { padding: 2.25rem; }
.bio:hover { transform: none; }
.bio-photo {
  width: 9rem; height: 9rem; margin: 0 auto;
  border-radius: 40px 40px 40px 80px;
  background: linear-gradient(135deg, var(--c-soft), var(--c-hl-soft));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ff-display); font-weight: 600; font-size: 2.6rem; color: var(--c-ink);
}
.bio-chip { display: inline-flex; align-items: center; gap: .4rem; font-size: .85rem; font-weight: 400; color: var(--c-dark); background: var(--c-bg2); border-radius: 50rem; padding: .4rem .9rem; }
.bio-chip i { color: var(--c-ink); }

/* ---------- Setores ---------- */
.sector { padding: 1.5rem; }
@media (max-width: 575.98px) { .sector { padding: 1.1rem; } .sector h4 { font-size: .98rem; } }
.sector h4 { font-size: 1.05rem; margin: 1rem 0 .3rem; }
.sector p { font-size: .9rem; color: var(--c-muted); margin: 0; }

/* ---------- Soluções prontas ---------- */
.solution { display: flex; gap: 1.25rem; align-items: flex-start; padding: 1.75rem; }
.solution h3 { font-size: 1.2rem; }

/* ---------- Planos ---------- */
.plan { padding: 2rem 1.6rem; display: flex; flex-direction: column; }
.plan h3 { font-size: 1.2rem; }
.plan .from { font-size: .85rem; color: var(--c-muted); margin-top: 1rem; }
.plan .price { font-family: var(--ff-display); font-weight: 700; font-size: 1.85rem; color: var(--c-dark); line-height: 1.1; white-space: nowrap; }
.plan .price small { font-family: var(--ff-text); font-size: .9rem; font-weight: 400; color: var(--c-muted); }
.plan .check-list { margin: 1.25rem 0 1.5rem; font-size: .95rem; flex-grow: 1; }
.plan.featured { background: var(--c-dark); }
.plan.featured, .plan.featured .check-list { color: var(--c-on-dark); }
.plan.featured h3, .plan.featured .price { color: #fff; }
.plan.featured .from, .plan.featured .price small, .plan.featured .text-muted-gc { color: var(--c-on-dark-muted) !important; }
.badge-pop { font-family: var(--ff-display); font-size: .74rem; font-weight: 600; padding: .35rem .75rem; border-radius: 50rem; align-self: flex-start; margin-bottom: .75rem; background: var(--c-hl); color: var(--c-dark); }

/* ---------- FAQ ---------- */
.faq .accordion-item { border: 0; background: var(--c-white); border-radius: 16px !important; box-shadow: var(--gc-shadow); margin-bottom: .9rem; overflow: hidden; }
.faq .accordion-button { font-family: var(--ff-display); font-weight: 500; color: var(--c-dark); font-size: 1.02rem; padding: 1.25rem 1.5rem; background: var(--c-white); box-shadow: none; }
.faq .accordion-button:not(.collapsed) { color: var(--c-ink); background: var(--c-white); }
.faq .accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(var(--c-accent-rgb), .25); }
.faq .accordion-body { padding: 0 1.5rem 1.4rem; }

/* ---------- CTA final ---------- */
.cta-card {
  background: var(--c-dark);
  border-radius: var(--gc-radius-lg);
  overflow: hidden;
  color: var(--c-on-dark);
  position: relative;
}
.cta-card h2 { color: #fff; }
.cta-card .cta-img { height: 100%; min-height: 280px; background: url("../images/hero-banner.jpg") 75% 50% / cover no-repeat; }

/* ---------- Contato ---------- */
.form-card { padding: 2.25rem; }
@media (max-width: 575.98px) { .form-card { padding: 1.5rem; } }
.form-label { font-weight: 500; color: var(--c-dark); font-size: .92rem; }
.form-control, .form-select {
  background-color: var(--c-bg2);
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: .8rem 1rem;
}
.form-control:focus, .form-select:focus { background-color: #fff; border-color: var(--c-accent); box-shadow: 0 0 0 .2rem rgba(var(--c-accent-rgb), .18); }
.contact-line { display: flex; gap: 1rem; align-items: center; padding: .7rem 0; }
.contact-line strong { color: var(--c-dark); display: block; font-weight: 500; }

/* ---------- Rodapé ---------- */
.footer-gc { background: var(--c-dark); color: var(--c-on-dark-muted); font-size: .93rem; padding: 4.5rem 0 2rem; }
.footer-gc h6 { color: #fff; font-family: var(--ff-display); font-weight: 600; margin-bottom: 1rem; }
.footer-gc a { color: var(--c-on-dark-muted); text-decoration: none; }
.footer-gc a:hover { color: #fff; }
.footer-gc .social a { width: 38px; height: 38px; border-radius: 50%; background: rgba(255, 255, 255, .08); display: inline-flex; align-items: center; justify-content: center; }
.footer-gc .social a:hover { background: var(--c-ink); }
.footer-gc hr { border-color: rgba(255, 255, 255, .15); opacity: 1; }

/* ---------- Seletor de cores (canto inferior esquerdo) ---------- */
.theme-switcher { position: fixed; left: 1.25rem; bottom: 1.25rem; z-index: 1030; }
.theme-fab {
  width: 56px; height: 56px; border-radius: 50%; border: 0;
  background: var(--c-dark); color: #fff; font-size: 1.45rem;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 25px rgba(0, 0, 0, .18); transition: transform .2s, background .3s;
}
.theme-fab:hover { transform: scale(1.08); }
.theme-fab:focus-visible { outline: 3px solid var(--c-hl); outline-offset: 3px; }
.theme-panel {
  position: absolute; left: 0; bottom: calc(100% + .75rem);
  width: 280px; max-width: calc(100vw - 2.5rem);
  background: var(--c-white); border-radius: 18px; padding: 1rem;
  box-shadow: 0 20px 50px rgba(0, 0, 0, .18);
  transform-origin: bottom left; animation: panelIn .18s ease-out;
}
@keyframes panelIn { from { opacity: 0; transform: translateY(6px) scale(.98); } }
.theme-panel[hidden] { display: none; }
.theme-panel .tp-title { font-family: var(--ff-display); font-weight: 600; color: var(--c-dark); font-size: .95rem; margin: 0 0 .15rem; }
.theme-panel .tp-sub { font-size: .8rem; color: var(--c-muted); margin: 0 0 .75rem; }
.theme-option {
  width: 100%; border: 0; background: transparent; text-align: left;
  display: flex; align-items: center; gap: .8rem;
  padding: .55rem .6rem; border-radius: 12px; color: var(--c-text);
  transition: background .15s;
}
.theme-option:hover { background: color-mix(in srgb, var(--c-soft) 55%, #fff); }
.theme-option:focus-visible { outline: 2px solid var(--c-ink); outline-offset: 1px; }
.theme-option[aria-checked="true"] { background: var(--c-soft); }
.theme-option strong { display: block; font-family: var(--ff-display); font-weight: 500; font-size: .9rem; color: var(--c-dark); line-height: 1.2; }
.theme-option small { font-size: .78rem; color: var(--c-muted); }
.theme-option .check { margin-left: auto; color: var(--c-ink); visibility: hidden; }
.theme-option[aria-checked="true"] .check { visibility: visible; }
.swatch { display: flex; flex-shrink: 0; }
.swatch i { width: 22px; height: 22px; border-radius: 50%; border: 2px solid #fff; margin-left: -7px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .06); }
.swatch i:first-child { margin-left: 0; }
@media print { .theme-switcher, .wa-float { display: none; } }

/* ---------- WhatsApp flutuante ---------- */
.wa-float {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1030;
  width: 56px; height: 56px; border-radius: 50%;
  background: #25d366; color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 1.6rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, .18); transition: transform .2s;
}
.wa-float:hover { transform: scale(1.08); color: #fff; }

/* ---------- Animação de entrada ---------- */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .float-card { animation: none; }
  .theme-panel { animation: none; }
  .clients-track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; gap: 2rem 3rem; padding: 0 1rem; }
  .clients-track img[aria-hidden="true"] { display: none; }
}
