/* ============================================================
   CIRÚRGICA TECHMED — Design System
   ============================================================ */

/* ---------- Fonts (self-hosted, variable, latin + latin-ext) ---------- */
@font-face{ font-family:'Inter'; src:url('../fonts/inter-latin.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:'Inter'; src:url('../fonts/inter-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:'Inter'; src:url('../fonts/inter-latin.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; }
@font-face{ font-family:'Inter'; src:url('../fonts/inter-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; font-weight:500; font-style:normal; font-display:swap; }
@font-face{ font-family:'Inter'; src:url('../fonts/inter-latin.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:'Inter'; src:url('../fonts/inter-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:'Inter'; src:url('../fonts/inter-latin.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; }
@font-face{ font-family:'Inter'; src:url('../fonts/inter-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; font-weight:700; font-style:normal; font-display:swap; }

@font-face{ font-family:'Plus Jakarta Sans'; src:url('../fonts/jakarta-latin.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:'Plus Jakarta Sans'; src:url('../fonts/jakarta-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:'Plus Jakarta Sans'; src:url('../fonts/jakarta-latin.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; }
@font-face{ font-family:'Plus Jakarta Sans'; src:url('../fonts/jakarta-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; font-weight:700; font-style:normal; font-display:swap; }
@font-face{ font-family:'Plus Jakarta Sans'; src:url('../fonts/jakarta-latin.woff2') format('woff2'); font-weight:800; font-style:normal; font-display:swap; }
@font-face{ font-family:'Plus Jakarta Sans'; src:url('../fonts/jakarta-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; font-weight:800; font-style:normal; font-display:swap; }

/* ---------- Tokens ---------- */
:root{
  /* Navy (from the real brand mark) */
  --navy-950:#0a0e19;
  --navy-900:#111a2e;
  --navy-800:#1b2743;
  --navy-700:#243258;
  --navy-600:#33416b;
  --navy-500:#4c5c92;
  --navy-300:#94a2ce;
  --navy-100:#e6eaf6;

  /* Green (from the real brand mark) */
  --green-900:#15220f;
  --green-800:#23361d;
  --green-700:#3a5937;
  --green-600:#4b763b;
  --green-500:#5fa23d;
  --green-400:#78c247;
  --green-300:#9ee566;
  --green-100:#e8f8dc;

  --white:#ffffff;
  --paper:#f4f7fb;
  --paper-alt:#eaf0f8;
  --ink:#0f1420;
  --ink-soft:rgba(15,20,32,.64);
  --ink-faint:rgba(15,20,32,.44);
  --line:rgba(15,20,32,.09);

  --on-dark:#f5f8fc;
  --on-dark-soft:rgba(245,248,252,.72);
  --on-dark-faint:rgba(245,248,252,.5);
  --line-dark:rgba(245,248,252,.14);

  --font-display:'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
  --font-body:'Inter', ui-sans-serif, system-ui, sans-serif;

  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px; --r-pill:999px;

  --shadow-sm:0 2px 10px rgba(10,14,25,.08);
  --shadow-md:0 10px 30px rgba(10,14,25,.12);
  --shadow-lg:0 28px 70px rgba(10,14,25,.22);
  --shadow-glow:0 0 0 1px rgba(120,194,71,.25), 0 14px 40px rgba(120,194,71,.28);

  --ease:cubic-bezier(.16,1,.3,1);
  --t-fast:.25s var(--ease);
  --t:.45s var(--ease);
  --t-slow:.8s var(--ease);

  --header-h:84px;
}

@media (max-width:720px){
  :root{ --header-h:68px; }
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:var(--header-h); }
body{
  font-family:var(--font-body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; background:none; border:0; cursor:pointer; color:inherit; }
ul{ list-style:none; }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:700; line-height:1.15; letter-spacing:-.02em; color:var(--ink); }
svg.icon, img.icon{ width:20px; height:20px; flex:none; object-fit:contain; }
svg.icon.icon-sm, img.icon.icon-sm{ width:16px; height:16px; }
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* ---------- Layout ---------- */
.container{ width:100%; max-width:1240px; margin:0 auto; padding:0 24px; }
.section{ padding:112px 0; position:relative; overflow:hidden; }
.section-alt{ background:var(--paper-alt); }
.section > .container{ position:relative; z-index:1; }
@media (max-width:720px){ .section{ padding:76px 0; } }

.section-watermark{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.watermark-photo{ position:absolute; height:auto; animation:watermarkDrift 16s ease-in-out infinite; user-select:none; }
@keyframes watermarkDrift{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(-12px,14px); } }

.section-photo-bg{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.section-photo-bg img{ width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.section-photo-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(244,247,251,.55) 0%, rgba(244,247,251,.2) 25%, rgba(244,247,251,.25) 60%, rgba(244,247,251,.6) 100%);
}

.section-head{ max-width:640px; margin:0 auto 56px; text-align:center; }
.section-head h2{ font-size:clamp(28px,4vw,42px); margin:12px 0 14px; }
.section-head p{ color:var(--ink-soft); font-size:17px; }

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-display); font-weight:700; font-size:13px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--green-600);
  background:var(--green-100); padding:7px 16px; border-radius:var(--r-pill);
}
.eyebrow-light{ color:var(--green-300); background:rgba(158,229,102,.14); }

.section-cta{ display:flex; justify-content:center; margin-top:48px; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-display); font-weight:700; font-size:15px;
  padding:15px 26px; border-radius:var(--r-pill);
  transition:transform var(--t-fast), box-shadow var(--t-fast), background var(--t-fast), border-color var(--t-fast);
  white-space:nowrap;
}
.btn:active{ transform:scale(.97); }
.btn-primary{
  background:linear-gradient(135deg, var(--green-500), var(--green-700));
  color:var(--white);
  box-shadow:0 12px 30px rgba(75,118,59,.35);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 38px rgba(75,118,59,.45); }
.btn-glow{ position:relative; }
.btn-glow::after{
  content:''; position:absolute; inset:-6px; border-radius:inherit;
  background:linear-gradient(135deg, var(--green-400), var(--green-700));
  filter:blur(16px); opacity:.55; z-index:-1;
  animation:pulseGlow 2.6s ease-in-out infinite;
}
.btn-ghost{
  background:rgba(255,255,255,.08); color:var(--on-dark);
  border:1.5px solid var(--line-dark); backdrop-filter:blur(6px);
}
.btn-ghost:hover{ background:rgba(255,255,255,.16); border-color:rgba(245,248,252,.32); transform:translateY(-2px); }
.btn-ghost-invert{
  background:var(--white); color:var(--navy-700);
  border:1.5px solid var(--line); box-shadow:var(--shadow-sm);
}
.btn-ghost-invert:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-lg{ padding:18px 32px; font-size:16px; }
.btn-sm{ padding:10px 18px; font-size:13px; }

@keyframes pulseGlow{ 0%,100%{ opacity:.45; transform:scale(1); } 50%{ opacity:.7; transform:scale(1.04); } }

/* ---------- Preloader ---------- */
.preloader{
  position:fixed; inset:0; z-index:9999;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
  background:linear-gradient(160deg, var(--navy-950), var(--navy-800));
  transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
.preloader.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
.preloader-card{
  background:var(--white); border-radius:var(--r-lg); padding:26px 36px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-glow);
  animation:preloaderPulse 1.4s var(--ease) infinite;
}
.preloader-logo{ height:48px; width:auto; display:block; }
@keyframes preloaderPulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.06); } }

/* ---------- Nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:500;
  height:var(--header-h);
  display:flex; align-items:center;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:box-shadow var(--t), border-color var(--t), height var(--t);
}
.nav.is-scrolled{ box-shadow:0 6px 24px rgba(10,14,25,.08); border-color:var(--line); }
.nav-inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; }
.nav-logo-img{ height:56px; width:auto; transition:height var(--t); }
@media (max-width:720px){ .nav-logo-img{ height:42px; } }

.nav-links{ display:flex; align-items:center; gap:32px; }
.nav-links a{
  font-family:var(--font-display); font-weight:600; font-size:14.5px; color:var(--ink-soft);
  position:relative; padding:6px 0; transition:color var(--t-fast);
}
.nav-links a::after{
  content:''; position:absolute; left:0; right:100%; bottom:0; height:2px;
  background:linear-gradient(90deg, var(--green-500), var(--green-300));
  transition:right var(--t);
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a:hover::after, .nav-links a.is-active::after{ right:0; }
.nav-links a.is-active{ color:var(--ink); }

.nav-actions{ display:flex; align-items:center; gap:14px; }
.nav-cta span{ display:inline; }
.nav-burger{ display:none; padding:6px; color:var(--ink); }

@media (max-width:960px){
  .nav-links{ display:none; }
  .nav-burger{ display:flex; }
  .nav-cta span{ display:none; }
  .nav-cta{ padding:12px; }
}

/* ---------- Mobile menu overlay ---------- */
.mobile-menu{
  position:fixed; inset:0; z-index:600;
  background:linear-gradient(165deg, var(--navy-950), var(--navy-700) 120%);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:36px;
  opacity:0; visibility:hidden; transform:translateY(-12px);
  transition:opacity var(--t), visibility var(--t), transform var(--t);
}
.mobile-menu.is-open{ opacity:1; visibility:visible; transform:translateY(0); }
.mobile-menu-close{ position:absolute; top:22px; right:24px; color:var(--on-dark); padding:10px; }
.mobile-menu-links{ display:flex; flex-direction:column; align-items:center; gap:22px; }
.mobile-menu-links a{
  font-family:var(--font-display); font-weight:700; font-size:28px; color:var(--on-dark);
  opacity:0; transform:translateY(14px);
  transition:opacity .45s var(--ease), transform .45s var(--ease);
  transition-delay:calc(var(--i) * .06s);
}
.mobile-menu.is-open .mobile-menu-links a{ opacity:1; transform:translateY(0); }
.mobile-menu-cta{ opacity:0; transform:translateY(14px); transition:opacity .45s var(--ease) .4s, transform .45s var(--ease) .4s; }
.mobile-menu.is-open .mobile-menu-cta{ opacity:1; transform:translateY(0); }
.mobile-menu-social{ display:flex; gap:20px; color:var(--on-dark-soft); opacity:0; transition:opacity .45s var(--ease) .5s; }
.mobile-menu.is-open .mobile-menu-social{ opacity:1; }
.mobile-menu-social a{ transition:color var(--t-fast); }
.mobile-menu-social a:hover{ color:var(--green-300); }

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  padding-top:var(--header-h); overflow:hidden;
  background:linear-gradient(165deg, var(--navy-950) 0%, var(--navy-800) 55%, var(--green-900) 130%);
  isolation:isolate;
}
.hero-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; animation:floatBlob 16s ease-in-out infinite; }
.blob-a{ width:520px; height:520px; top:-140px; right:-100px; background:radial-gradient(circle, var(--green-500), transparent 70%); animation-duration:18s; }
.blob-b{ width:420px; height:420px; bottom:-160px; left:-80px; background:radial-gradient(circle, var(--navy-500), transparent 70%); animation-duration:22s; animation-delay:-4s; }
.blob-c{ width:300px; height:300px; top:40%; left:55%; background:radial-gradient(circle, var(--green-300), transparent 70%); opacity:.3; animation-duration:14s; animation-delay:-8s; }
@keyframes floatBlob{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-30px,30px) scale(1.08); } }

.grid-overlay{
  position:absolute; inset:0;
  background-image:linear-gradient(var(--line-dark) 1px, transparent 1px), linear-gradient(90deg, var(--line-dark) 1px, transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%, black 40%, transparent 90%);
  mask-image:radial-gradient(ellipse 70% 60% at 50% 40%, black 40%, transparent 90%);
  opacity:.6;
}

.float-icon{ position:absolute; width:44px; height:44px; --fi-op:.4; color:var(--green-300); animation:driftIcon 8s ease-in-out infinite; filter:drop-shadow(0 0 10px currentColor); }
.fi-1{ top:20%; left:9%; width:50px; height:50px; animation-duration:7.5s; }
.fi-2{ top:64%; left:15%; width:40px; height:40px; color:var(--on-dark); --fi-op:.32; animation-duration:8.8s; animation-delay:-2s; }
.fi-3{ top:26%; right:12%; width:58px; height:58px; animation-duration:6.5s; animation-delay:-3.4s; }
.fi-4{ top:70%; right:17%; width:42px; height:42px; color:var(--on-dark); --fi-op:.28; animation-duration:9.5s; animation-delay:-5s; }
.fi-5{ top:10%; left:46%; width:38px; height:38px; animation-duration:7.2s; animation-delay:-2.6s; }
@keyframes driftIcon{
  0%,100%{ transform:translate(0,0) rotate(0deg) scale(1); opacity:var(--fi-op); }
  50%{ transform:translate(20px,-26px) rotate(16deg) scale(1.28); opacity:calc(var(--fi-op) + .35); }
}

.hero-inner{ position:relative; z-index:2; padding:64px 24px 80px; text-align:center; display:flex; flex-direction:column; align-items:center; }

.hero-badge{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(255,255,255,.1); border:1px solid var(--line-dark);
  color:var(--on-dark); font-size:13.5px; font-weight:600;
  padding:9px 18px; border-radius:var(--r-pill); backdrop-filter:blur(6px);
  margin-bottom:26px;
}
.hero-badge .icon{ color:var(--green-300); }

.hero-title{
  color:var(--on-dark); font-size:clamp(34px,5.4vw,64px); max-width:920px;
  margin-bottom:22px;
}
.text-gradient{
  background:linear-gradient(120deg, var(--green-300), var(--green-500) 60%, var(--green-300));
  background-size:200% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:shineText 6s linear infinite;
}
@keyframes shineText{ to{ background-position:200% center; } }

.hero-subtitle{ color:var(--on-dark-soft); font-size:clamp(16px,2vw,19px); max-width:640px; margin-bottom:38px; }

.hero-actions{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px; margin-bottom:64px; }

.hero-stats{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:28px;
  padding:26px 34px; border-radius:var(--r-lg);
  background:rgba(255,255,255,.06); border:1px solid var(--line-dark); backdrop-filter:blur(10px);
}
.stat{ display:flex; flex-direction:column; align-items:center; gap:4px; min-width:110px; }
.stat-num{ font-family:var(--font-display); font-weight:800; font-size:28px; color:var(--on-dark); }
.stat-label{ font-size:12.5px; color:var(--on-dark-faint); font-weight:500; }
.stat-sep{ width:1px; height:36px; background:var(--line-dark); }
.stat-badge{ flex-direction:row; gap:10px; min-width:auto; }
.stat-badge-img{ width:34px; height:34px; object-fit:contain; border-radius:8px; }
.stat-badge .stat-label{ text-align:left; max-width:110px; }
@media (max-width:720px){
  .hero-stats{ gap:18px 22px; padding:22px; }
  .stat-sep{ display:none; }
}

.scroll-cue{
  position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:2;
  width:26px; height:42px; border:2px solid var(--line-dark); border-radius:var(--r-pill);
  display:flex; justify-content:center; padding-top:8px;
}
.scroll-cue span{ width:4px; height:8px; border-radius:2px; background:var(--green-300); animation:scrollCue 1.8s ease-in-out infinite; }
@keyframes scrollCue{ 0%{ opacity:1; transform:translateY(0); } 70%,100%{ opacity:0; transform:translateY(12px); } }
@media (max-width:720px){ .scroll-cue{ display:none; } }

/* ---------- Features / Diferenciais ---------- */
.features-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:960px){ .features-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .features-grid{ grid-template-columns:1fr; } }

.feature-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:32px 28px; transition:transform var(--t), box-shadow var(--t), border-color var(--t);
}
.feature-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(75,118,59,.25); }
.feature-icon{
  width:52px; height:52px; border-radius:14px; margin-bottom:18px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--green-100), var(--paper-alt));
  color:var(--green-600);
}
.feature-icon-img{ width:34px; height:34px; object-fit:contain; }
.feature-card h3{ font-size:19px; margin-bottom:8px; }
.feature-card p{ color:var(--ink-soft); font-size:15px; }

/* ---------- Products (icon category tiles) ---------- */
.products-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:1080px){ .products-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .products-grid{ grid-template-columns:1fr; } }

.category-card{
  position:relative; display:flex; flex-direction:column; align-items:flex-start;
  padding:30px 26px; border-radius:var(--r-lg); overflow:hidden;
  background:var(--white); border:1px solid var(--line);
  transition:transform var(--t), box-shadow var(--t), border-color var(--t);
}
.category-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(75,118,59,.25); }
.category-card:nth-child(even){
  background:linear-gradient(150deg, var(--navy-800), var(--green-800) 140%);
  border-color:transparent;
}
.category-icon{
  width:52px; height:52px; border-radius:14px; margin-bottom:18px; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--green-100), var(--paper-alt));
  color:var(--green-600); transition:transform var(--t);
}
.category-card:hover .category-icon{ transform:scale(1.08) rotate(-4deg); }
.category-card:nth-child(even) .category-icon{
  background:rgba(255,255,255,.1); color:var(--green-300);
}
.category-card h3{ font-size:17px; margin-bottom:8px; }
.category-card:nth-child(even) h3{ color:var(--on-dark); }
.category-card p{ color:var(--ink-soft); font-size:14px; margin-bottom:20px; flex:1; }
.category-card:nth-child(even) p{ color:var(--on-dark-soft); }
.category-link{
  display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700;
  color:var(--green-600); transition:gap var(--t-fast);
}
.category-card:nth-child(even) .category-link{ color:var(--green-300); }
.category-card:hover .category-link{ gap:10px; }

/* ---------- Crédito PcD Caixa ---------- */
.credit-section{
  background:linear-gradient(150deg, var(--navy-900), var(--navy-700) 120%);
  overflow:hidden;
}
.credit-inner{ display:flex; align-items:center; gap:64px; }
.credit-badge-wrap{ position:relative; flex:none; width:220px; }
.credit-badge{ width:100%; border-radius:var(--r-lg); position:relative; z-index:1; animation:floatCard 5s ease-in-out infinite; }
.credit-glow{ position:absolute; inset:10%; background:var(--green-400); filter:blur(50px); opacity:.35; z-index:0; }
@keyframes floatCard{ 0%,100%{ transform:translateY(0) rotate(-2deg); } 50%{ transform:translateY(-14px) rotate(2deg); } }
.credit-text h2{ color:var(--on-dark); margin:10px 0 16px; font-size:clamp(26px,3.4vw,36px); }
.credit-text p{ color:var(--on-dark-soft); font-size:16px; margin-bottom:26px; max-width:560px; }
@media (max-width:820px){
  .credit-inner{ flex-direction:column; text-align:center; gap:36px; }
  .credit-badge-wrap{ width:180px; }
  .credit-text p{ margin-left:auto; margin-right:auto; }
}

/* ---------- Instagram marquee ---------- */
.section-instagram{ position:relative; background:linear-gradient(165deg, var(--navy-950), var(--navy-800) 130%); overflow:hidden; isolation:isolate; }
.section-instagram > *:not(.instagram-bg){ position:relative; z-index:1; }
.section-instagram .section-head h2{ color:var(--on-dark); }
.section-instagram .section-head p{ color:var(--on-dark-soft); }
.section-instagram .eyebrow{ background:rgba(158,229,102,.14); color:var(--green-300); }

.instagram-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.grid-overlay-drift{ animation:gridDrift 22s linear infinite; }
@keyframes gridDrift{ from{ background-position:0 0; } to{ background-position:48px 96px; } }
.ig-blob-a{ width:460px; height:460px; top:-160px; left:-100px; background:radial-gradient(circle, var(--green-500), transparent 70%); animation-duration:20s; }
.ig-blob-b{ width:380px; height:380px; bottom:-180px; right:-100px; background:radial-gradient(circle, var(--navy-500), transparent 70%); animation-duration:24s; animation-delay:-6s; }
.ig-fi-1{ top:14%; left:6%; width:46px; height:46px; animation-duration:7.8s; }
.ig-fi-2{ top:70%; left:10%; width:38px; height:38px; color:var(--on-dark); --fi-op:.28; animation-duration:9s; animation-delay:-3s; }
.ig-fi-3{ top:18%; right:8%; width:40px; height:40px; color:var(--on-dark); --fi-op:.3; animation-duration:8.2s; animation-delay:-4.5s; }
.ig-fi-4{ top:72%; right:6%; width:52px; height:52px; animation-duration:7s; animation-delay:-2s; }

.marquee-wrap{ overflow:hidden; margin:14px 0; -webkit-mask-image:linear-gradient(90deg, transparent, black 8%, black 92%, transparent); mask-image:linear-gradient(90deg, transparent, black 8%, black 92%, transparent); }
.marquee{ display:flex; gap:16px; width:max-content; }
.marquee img{ width:176px; height:220px; object-fit:cover; border-radius:var(--r-md); flex:none; transition:transform var(--t); }
.marquee img:hover{ transform:scale(1.05); }
.marquee-left{ animation:scrollLeft 70s linear infinite; }
.marquee-right{ animation:scrollRight 70s linear infinite; }
.marquee-wrap:hover .marquee{ animation-play-state:paused; }
@keyframes scrollLeft{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes scrollRight{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
@media (max-width:720px){ .marquee img{ width:132px; height:165px; } }

/* ---------- Testimonials ---------- */
.rating-display{ display:flex; flex-direction:column; align-items:center; gap:8px; margin-top:18px; }
.rating-stars{ display:flex; gap:4px; color:var(--green-500); }
.rating-stars.sm{ color:var(--green-500); margin-bottom:14px; }
.rating-stars .icon{ width:18px; height:18px; }
.rating-stars.sm .icon{ width:15px; height:15px; }
.rating-display span{ color:var(--ink-soft); font-size:14.5px; }

.testi-wrap{ display:flex; align-items:center; gap:16px; }
.testi-track{
  flex:1; display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory;
  scrollbar-width:none; padding:6px 2px 24px; cursor:grab;
}
.testi-track::-webkit-scrollbar{ display:none; }
.testi-track.is-dragging{ cursor:grabbing; scroll-snap-type:none; user-select:none; }
.testi-card{
  flex:0 0 100%; scroll-snap-align:start;
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:32px; position:relative;
}
.testi-quote{ width:28px; height:28px; color:var(--green-300); margin-bottom:12px; }
.testi-card p{ font-size:15.5px; color:var(--ink); margin-bottom:18px; min-height:96px; }
.testi-name{ font-family:var(--font-display); font-weight:700; font-size:14px; color:var(--green-700); }
@media (min-width:720px){ .testi-card{ flex-basis:calc(50% - 12px); } }
@media (min-width:1080px){ .testi-card{ flex-basis:calc(33.333% - 16px); } }

.testi-nav{
  flex:none; width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--white); border:1px solid var(--line); color:var(--ink); box-shadow:var(--shadow-sm);
  transition:transform var(--t-fast), box-shadow var(--t-fast), color var(--t-fast);
}
.testi-nav:hover{ transform:translateY(-2px) scale(1.05); box-shadow:var(--shadow-md); color:var(--green-600); }
@media (max-width:640px){ .testi-nav{ display:none; } }

.testi-dots{ display:flex; justify-content:center; gap:8px; margin-top:8px; }
.testi-dots button{ width:8px; height:8px; border-radius:50%; background:var(--line); transition:background var(--t-fast), transform var(--t-fast); }
.testi-dots button.is-active{ background:var(--green-500); transform:scale(1.3); }

/* ---------- CTA band ---------- */
.cta-band{
  position:relative; overflow:hidden; text-align:center; padding:110px 24px;
  background:linear-gradient(135deg, var(--green-700), var(--navy-800));
}
.cta-glow{ position:absolute; width:600px; height:600px; background:radial-gradient(circle, var(--green-400), transparent 70%); opacity:.28; top:-220px; left:50%; transform:translateX(-50%); }
.cta-inner{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:20px; }
.cta-inner h2{ color:var(--on-dark); font-size:clamp(26px,4vw,40px); max-width:680px; }
.cta-inner p{ color:var(--on-dark-soft); font-size:17px; margin-bottom:10px; }
.cta-phones{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; color:var(--on-dark-faint); font-size:14px; margin-top:8px; }
.cta-phones a{ color:var(--on-dark-soft); font-weight:600; transition:color var(--t-fast); }
.cta-phones a:hover{ color:var(--green-300); }

/* ---------- Footer ---------- */
.footer{ background:var(--navy-950); color:var(--on-dark-soft); padding:88px 0 0; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr; gap:48px; padding-bottom:64px; border-bottom:1px solid var(--line-dark); }
@media (max-width:960px){ .footer-grid{ grid-template-columns:1fr 1fr; row-gap:40px; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }

.footer-logo{ height:38px; width:auto; filter:brightness(0) invert(1); margin-bottom:16px; }
.footer-brand p{ font-size:14.5px; margin-bottom:20px; max-width:260px; }
.footer-social{ display:flex; gap:14px; }
.footer-social a{
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.06); border:1px solid var(--line-dark);
  transition:background var(--t-fast), transform var(--t-fast), color var(--t-fast);
}
.footer-social a:hover{ background:var(--green-600); transform:translateY(-3px); color:var(--white); }

.footer-col h4{ color:var(--on-dark); font-size:15px; margin-bottom:18px; }
.footer-line{
  display:flex; align-items:flex-start; gap:10px; font-size:14px; margin-bottom:14px;
  transition:color var(--t-fast); color:var(--on-dark-soft);
}
a.footer-line:hover{ color:var(--green-300); }
.footer-line .icon{ margin-top:2px; color:var(--green-400); }
.footer-line-indent{ padding-left:30px; margin-top:-8px; }

.map-embed{ border-radius:var(--r-md); overflow:hidden; border:1px solid var(--line-dark); filter:grayscale(.2) brightness(.92); background:rgba(255,255,255,.04); }
.map-fallback-link{
  display:inline-flex; align-items:center; gap:6px; margin-top:10px;
  font-size:12.5px; font-weight:600; color:var(--green-300); transition:color var(--t-fast);
}
.map-fallback-link:hover{ color:var(--green-100); }

.footer-bottom{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px;
  padding:26px 110px 26px 24px; font-size:13px; color:var(--on-dark-faint);
}
@media (max-width:640px){
  .footer-bottom{ flex-direction:column; align-items:center; text-align:center; padding:22px 24px 108px; }
}
.footer-bottom a{ color:var(--on-dark-soft); font-weight:600; transition:color var(--t-fast); }
.footer-bottom a:hover{ color:var(--green-300); }
.footer-credit{ display:inline-flex; align-items:center; gap:8px; opacity:.85; transition:opacity var(--t-fast); }
.footer-credit:hover{ opacity:1; }
.footer-credit-logo{ height:20px; width:auto; }

/* ---------- Floating actions ---------- */
.float-whatsapp{
  position:fixed; right:24px; bottom:24px; z-index:400;
  width:60px; height:60px; border-radius:50%;
  background:linear-gradient(135deg, var(--green-500), var(--green-700));
  color:var(--white); display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 34px rgba(75,118,59,.4);
  transition:transform var(--t-fast);
}
.float-whatsapp:hover{ transform:scale(1.08); }
.float-whatsapp .icon{ width:28px; height:28px; }
.float-whatsapp-ring{
  position:absolute; inset:0; border-radius:50%; border:2px solid var(--green-400);
  animation:ringPulse 2.2s ease-out infinite;
}
@keyframes ringPulse{ 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(1.6); opacity:0; } }

.float-top{
  position:fixed; right:24px; bottom:96px; z-index:400;
  width:44px; height:44px; border-radius:50%;
  background:var(--white); color:var(--navy-700); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity var(--t-fast), transform var(--t-fast), visibility var(--t-fast);
}
.float-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.float-top .icon{ transform:rotate(-90deg); width:18px; height:18px; }
@media (max-width:640px){
  .float-whatsapp{ right:16px; bottom:16px; width:54px; height:54px; }
  .float-top{ right:16px; bottom:82px; width:40px; height:40px; }
}

/* ---------- Reveal (JS-driven via GSAP; this is just the pre-anim baseline) ---------- */
.reveal{ will-change:transform, opacity; }
