*, *::before, *::after {
  box-sizing: border-box;
}
:root{
  --ink:#202120; --muted:#62645f; --soft:#f4f2ec; --paper:rgba(255,255,250,.68);
  --line:rgba(77,75,65,.14); --olive:#a9ad39; --olive-dark:#7b8118; --cream:#e8e0cf;
  --shadow:0 22px 70px rgba(42,42,35,.12); --glass:blur(22px) saturate(145%);
}
html {
  overflow-x: hidden;
}
body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:#0F172A;min-height:100vh;overflow-x:hidden}
body::after{content:"";position:fixed;inset:-10%;background-image:url('../assets/background.png');background-size:cover;background-position:center;background-repeat:no-repeat;z-index:-4;animation:colorFlow 20s ease-in-out infinite alternate}
.theme-overlay{position:fixed;inset:0;z-index:-3;background:var(--theme-overlay, transparent);pointer-events:none;transition:background 0.1s}
body::before{content:"";position:fixed;inset:0;background:rgba(255,255,255,0.15);pointer-events:none;z-index:-2}
@keyframes colorFlow{0%{filter:hue-rotate(calc(var(--theme-hue, 0deg) + 0deg)) blur(20px);transform:scale(1) translate(0, 0)} 33%{filter:hue-rotate(calc(var(--theme-hue, 0deg) + 15deg)) blur(25px);transform:scale(1.05) translate(-2%, 1%)} 66%{filter:hue-rotate(calc(var(--theme-hue, 0deg) - 10deg)) blur(20px);transform:scale(1.02) translate(1%, -1%)} 100%{filter:hue-rotate(calc(var(--theme-hue, 0deg) + 5deg)) blur(30px);transform:scale(1.08) translate(0, 2%)}}
.ambient{display:none}
.page-shell{width:min(1440px,calc(100% - 56px));margin:8px auto 28px;position:relative;overflow-x:hidden}.glass{background:var(--paper);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);border:1px solid rgba(255,255,255,.62);box-shadow:var(--shadow)}
.navbar{height:74px;border-radius:0 0 24px 24px;display:flex;align-items:center;padding:0 28px;gap:34px;position:sticky;top:0;z-index:20}.brand img{width:218px;display:block}.desktop-nav{display:flex;align-items:center;gap:36px;margin-left:auto}.desktop-nav a{color:#393b39;text-decoration:none;font-size:14px;font-weight:500;position:relative}.desktop-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-15px;margin:auto;width:0;height:3px;border-radius:6px;background:var(--olive);transition:.25s}.desktop-nav a:hover:after{width:18px}.nav-cta,.btn{border:1px solid var(--line);border-radius:18px;text-decoration:none;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:14px;white-space:nowrap;flex-shrink:0}.nav-cta{background:linear-gradient(135deg,#b7ba54,#9ca032);color:white;padding:14px 24px;box-shadow:0 12px 28px rgba(122,126,22,.22)}.nav-cta span,.btn span{width:24px;height:24px;border-radius:50%;display:inline-grid;place-items:center;background:rgba(255,255,255,.28)}.menu-btn{display:none;background:transparent;border:0;font-size:28px}
.hero{min-height:372px;display:grid;grid-template-columns:36% 34% 30%;align-items:center;gap:12px;padding:72px 78px 24px;position:relative;z-index:2}.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--olive-dark);font-weight:800;margin:0 0 22px;display:flex;align-items:center;gap:10px}.eyebrow span{width:5px;height:5px;border-radius:50%;background:var(--olive)}h1,h2,h3,p{margin-top:0}.hero h1{font-family:"Libre Baskerville",serif;font-size:clamp(48px,5.2vw,74px);line-height:1.08;letter-spacing:-.05em;margin-bottom:24px}.hero h1 em,.section-intro em,.program-title em{font-style:normal;color:var(--olive-dark)}.lead{font-size:17px;line-height:1.8;color:#53544f;max-width:510px}.actions{display:flex;gap:20px;margin-top:32px;flex-wrap:wrap}.btn{height:52px;padding:0 24px}.btn.primary{background:linear-gradient(135deg,#b8ba51,#9da235);color:#fff;box-shadow:0 16px 34px rgba(128,132,25,.22)}.btn.ghost{color:#252622;background:rgba(255,255,255,.38)}
.hero-copy{position:relative;z-index:5}.hero-visual{height:410px;position:relative;display:flex;align-items:flex-end;justify-content:center;align-self:end;overflow:visible;z-index:1;pointer-events:none}.person{position:absolute !important;bottom:-180px !important;left:50% !important;transform:translateX(-50%) !important;width:1100px !important;height:1100px !important;object-fit:contain !important;border-radius:0 !important;mix-blend-mode:normal !important;mask-image:none !important;filter:drop-shadow(0 16px 64px rgba(42,42,35,0.08)) !important;z-index:1 !important;opacity:0.85 !important}.halo{position:absolute;width:1300px;height:1300px;border-radius:50%;border:1px solid rgba(255,255,255,.78);box-shadow:inset 0 0 100px rgba(255,255,255,.36);bottom:-280px;left:50%;transform:translateX(-50%);z-index:0}.halo:before,.halo:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.55);inset:180px}.halo:after{inset:360px}.metrics-stack{position:relative;z-index:5;align-self:center;display:grid;gap:14px;max-width:360px}.metric-card{border-radius:18px;padding:20px;transition:transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1), border-color 0.5s, box-shadow 0.5s;will-change:transform}.metric-card:hover{animation-play-state:paused !important;transform:translateY(-12px) scale(1.03) !important;border-color:rgba(169,173,57,0.7) !important;box-shadow:0 26px 54px rgba(169,173,57,0.18), var(--shadow) !important}.metrics-stack > .metric-card.large{min-height:150px;animation:floatCard1 8s ease-in-out infinite}.metrics-stack .metric-grid article:nth-child(1){animation:floatCard2 7s ease-in-out infinite;animation-delay:0.5s}.metrics-stack .metric-grid article:nth-child(2){animation:floatCard3 9s ease-in-out infinite;animation-delay:1s}.metric-head{font-size:13px;font-weight:700;color:#3b3c39;margin-bottom:14px}.metric-body{display:flex;align-items:center;gap:26px}.ring{width:102px;height:102px;position:relative;display:flex;align-items:center;justify-content:center}.ring svg{position:absolute;top:0;left:0;transform:rotate(-90deg);width:100%;height:100%}.ring-bg{fill:none;stroke:rgba(169,173,57,.15);stroke-width:9}.ring-fill{fill:none;stroke:var(--olive);stroke-width:9;stroke-linecap:round;stroke-dasharray:276.46;stroke-dashoffset:276.46;transition:stroke-dashoffset 2.2s cubic-bezier(0.2, 0.8, 0.2, 1);animation:ringGlow 4s ease-in-out infinite alternate}.ring-text{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.ring strong{font-size:36px;line-height:1;color:var(--ink)}.ring small{font-size:12px;margin-top:2px;color:#777}.metric-card b{display:block;font-size:22px;color:var(--olive-dark);margin-bottom:10px}.metric-card p{font-size:13px;color:#555;margin-bottom:10px}.metric-card small{color:#777}.metric-card i{display:inline-block;width:6px;height:6px;background:var(--olive);border-radius:50%;margin-left:8px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.spark{height:42px;background:linear-gradient(160deg,transparent 0 18%,rgba(169,173,57,.45) 19% 21%,transparent 22% 36%,rgba(169,173,57,.45) 37% 39%,transparent 40% 55%,rgba(169,173,57,.55) 56% 59%,transparent 60%);clip-path:inset(0 100% 0 0);transition:clip-path 2.2s cubic-bezier(0.2, 0.8, 0.2, 1);will-change:clip-path}.spark.loaded{clip-path:inset(0 0 0 0);animation:lineGlow 3s ease-in-out infinite alternate}.scale{height:2px;background:#d5d2c5;margin-top:22px;position:relative;transform-origin:left;transform:scaleX(0);transition:transform 2.2s cubic-bezier(0.2, 0.8, 0.2, 1);will-change:transform}.scale.loaded{transform:scaleX(1)}.scale::after{content:"";position:absolute;inset:0;background:var(--olive);opacity:0.3;filter:blur(1px)}.scale span{display:block;width:8px;height:8px;border-radius:50%;background:var(--olive);margin:-3px auto 0;box-shadow:0 0 8px var(--olive);transform:scale(0);transition:transform 2.2s cubic-bezier(0.2, 0.8, 0.2, 1);will-change:transform}.scale.loaded span{transform:scale(1);animation:lineGlow 3.5s ease-in-out infinite alternate}@keyframes floatCard1{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes floatCard2{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes floatCard3{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes lineGlow{0%,100%{filter:drop-shadow(0 0 1px rgba(169,173,57,0.3))}50%{filter:drop-shadow(0 0 8px rgba(169,173,57,0.95))}}@keyframes ringGlow{0%,100%{filter:drop-shadow(0 0 1px rgba(169,173,57,.2));stroke:var(--olive)}50%{filter:drop-shadow(0 0 8px rgba(169,173,57,.85));stroke:#cdd24a}}
.what-we-do{border-radius:24px;padding:30px 44px;display:grid;grid-template-columns:250px 1fr;gap:36px;margin-top:14px}.section-intro h2,.program-title h2{font-size:29px;line-height:1.18;letter-spacing:-.04em}.pillars{display:grid;grid-template-columns:repeat(5,1fr);gap:0}.pillars article{padding:0 28px;border-left:1px solid var(--line)}.pillars i,.program-card i{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(247,246,240,.76);border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 0 0 1px rgba(169,173,57,.12)}.pillars i:before{font-size:22px;color:var(--olive-dark)}[data-icon=map]:before{content:"◎"}[data-icon=flask]:before{content:"⚗"}[data-icon=pulse]:before{content:"⌁"}[data-icon=dna]:before{content:"⌬"}[data-icon=monitor]:before{content:"○"}.pillars h3,.program-card h3{font-size:16px;line-height:1.25;margin:18px 0 12px;padding-right:30px}.pillars p,.program-card p{font-size:13px;line-height:1.58;color:#555;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;transition:all 0.3s ease}.program-card.expanded p{-webkit-line-clamp:unset}
.programs.glass {
  border-radius: 24px;
  padding: 44px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-top: 14px;
  position: relative;
  z-index: 10;
}
.programs-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 24px;
  width: 100%;
}
.program-title-block {
  flex-grow: 1;
  text-align: left;
}
.program-title-block h2 {
  font-family: "Libre Baskerville", serif;
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: -0.03em;
  color: var(--ink);
  margin: 0;
}
.program-title-block h2 em {
  font-style: normal;
  color: var(--olive-dark);
}
.programs-body {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 20px;
  width: 100%;
}
.program-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.program-card {
  min-height: 220px;
  border-radius: 14px;
  border: 1px solid rgba(169, 173, 57, 0.25);
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 10px 30px rgba(42, 42, 35, 0.05), var(--shadow);
  text-decoration: none;
  color: var(--ink);
  padding: 24px;
  position: relative;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  cursor: pointer;
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}
.program-card .card-top {
  display: flex !important;
  flex-direction: column !important;
  flex-grow: 1 !important;
  width: 100% !important;
}
.program-card .card-footer {
  display: flex !important;
  justify-content: flex-end !important;
  margin-top: 16px !important;
  align-items: center !important;
  width: 100% !important;
}
.program-card p {
  margin: 0;
}
.program-card:hover {
  transform: translateY(-5px);
  background: rgba(255, 255, 255, 0.98);
  border-color: rgba(169, 173, 57, 0.55);
  box-shadow: 0 16px 36px rgba(122, 126, 22, 0.12), var(--shadow);
}
.program-card .go-btn {
  position: static !important;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.75);
  color: var(--olive-dark);
  box-shadow: 0 10px 20px rgba(45, 45, 40, 0.08);
  text-decoration: none;
  font-weight: bold;
  transition: 0.2s;
  margin-left: auto !important;
  flex-shrink: 0 !important;
}
.program-card .go-btn:hover {
  background: #fff;
  transform: scale(1.1);
}
.program-card.highlight {
  background: rgba(255, 255, 255, 0.94);
  border: 2px solid rgba(169, 173, 57, 0.42);
  box-shadow: 0 12px 34px rgba(169, 173, 57, 0.08), var(--shadow);
}
.clinic-card {
  border-radius: 18px;
  overflow: hidden;
  position: relative;
  min-height: 340px;
  height: 100%;
}
.clinic-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.82) contrast(0.96);
}
.clinic-card:before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 250, 0.02), rgba(238, 235, 224, 0.78));
}
.clinic-card div {
  position: absolute;
  inset: auto 24px 26px 24px;
}
.clinic-card h2 {
  font-size: 31px;
  line-height: 1.15;
  letter-spacing: -0.04em;
}
.clinic-card a {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: rgba(182, 185, 71, 0.78);
  color: #34351d;
  text-decoration: none;
  padding: 12px 18px;
  border-radius: 14px;
  font-weight: 700;
}
.footer{margin-top:14px;min-height:70px;border-radius:18px;padding:18px 26px;display:grid;grid-template-columns:220px repeat(3,auto) 1fr;align-items:center;gap:32px;font-size:13px}
.footer img{width:190px}
.footer a{color:#333;text-decoration:none}
.footer address{font-style:normal;color:#555}
.social{justify-self:end;display:flex;gap:10px}
.social a{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.45);font-size:11px;font-weight:800}
@media (max-width:1100px){.page-shell{width:min(100% - 24px,960px)}.desktop-nav,.nav-cta{display:none}.menu-btn{display:block;margin-left:auto}.hero{grid-template-columns:1fr;padding:48px 28px 20px}.hero-visual{order:-1;height:300px;position:relative !important}.person{width:320px !important;height:320px !important;bottom:-40px !important;position:absolute !important;left:50% !important;transform:translateX(-50%) !important;object-fit:contain !important;border-radius:0 !important;mix-blend-mode:normal !important;mask-image:none !important}.halo{width:420px !important;height:420px !important;bottom:-90px !important}.metrics-stack{max-width:100%;grid-template-columns:1fr}.what-we-do,.programs-body{grid-template-columns:1fr}.programs-header{flex-direction:column;align-items:flex-start;gap:16px}.home-tab-filters{margin:0;justify-content:flex-start;width:100%}.pillars,.program-grid{grid-template-columns:1fr 1fr}.footer{grid-template-columns:1fr 1fr}.social{justify-self:start}}@media (max-width:680px){.page-shell{width:100%;margin:0}.navbar{border-radius:0;padding:0 16px}.brand img{width:170px}.hero h1{font-size:43px}.actions{flex-direction:column}.pillars,.program-grid,.metric-grid{grid-template-columns:1fr}.what-we-do{padding:24px;gap:16px}.pillars article{border-left:0;border-top:1px solid var(--line);padding:20px 0}.footer{grid-template-columns:1fr;border-radius:0}.hero{padding-inline:20px}.metrics-stack{display:none}}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(20,20,18,.4);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity 0.3s ease}
.modal-overlay.open{opacity:1;pointer-events:auto}
.modal-content{width:min(100% - 40px, 640px);max-height:90vh;display:flex;flex-direction:column;border-radius:22px;padding:34px;position:relative;transform:translateY(20px);transition:transform 0.4s cubic-bezier(0.2,0.8,0.2,1);box-shadow:0 30px 80px rgba(0,0,0,.15)}
.modal-overlay.open .modal-content{transform:translateY(0)}
.modal-close{position:absolute;top:20px;right:24px;background:none;border:none;font-size:32px;color:var(--muted);cursor:pointer;line-height:1;transition:0.2s}
.modal-close:hover{color:var(--ink);transform:scale(1.1)}
.modal-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.modal-header i{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:rgba(247,246,240,.76);border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 0 0 1px rgba(169,173,57,.12);font-size:24px;font-style:normal;color:var(--olive-dark)}
.modal-header h2{font-size:26px;line-height:1.2;margin:0;letter-spacing:-0.03em}
.modal-body{overflow-y:auto;padding-right:12px;font-size:15px;line-height:1.7;color:#4a4b48}
.modal-body::-webkit-scrollbar{width:6px}
.modal-body::-webkit-scrollbar-thumb{background:var(--olive);border-radius:10px}
.modal-footer{margin-top:30px;display:flex;justify-content:flex-end}

/* WhatsApp Float */
.whatsapp-float{position:fixed;bottom:30px;right:30px;width:60px;height:60px;background-color:#25d366;color:#FFF;border-radius:50px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,211,102,.35);z-index:90;transition:transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease}
.whatsapp-float:hover{transform:scale(1.1) translateY(-4px);box-shadow:0 12px 32px rgba(37,211,102,.5);color:#FFF}
.whatsapp-float svg{width:32px;height:32px}

/* Instagram Float */
.instagram-float{position:fixed;bottom:100px;right:30px;width:60px;height:60px;background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);color:#FFF;border-radius:50px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(214, 36, 159, .35);z-index:90;transition:transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease}
.instagram-float:hover{transform:scale(1.1) translateY(-4px);box-shadow:0 12px 32px rgba(214, 36, 159, .5);color:#FFF}
.instagram-float svg{width:32px;height:32px}

/* Theme Brush Button */
.theme-brush-btn {
  position: fixed;
  bottom: 30px;
  left: 30px;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  z-index: 95;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.68);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.theme-brush-btn:hover {
  transform: scale(1.1) rotate(10deg);
  box-shadow: 0 12px 32px rgba(169, 173, 57, 0.22);
}
.theme-brush-btn.active {
  background: linear-gradient(135deg, #b7ba54, #9ca032);
  border-color: transparent;
  color: white !important;
  transform: scale(1.05) rotate(-10deg);
  box-shadow: 0 8px 24px rgba(122, 126, 22, 0.3);
}
.theme-brush-btn svg {
  width: 22px;
  height: 22px;
  color: var(--olive-dark);
  transition: color 0.3s;
}
.theme-brush-btn.active svg {
  color: white;
}

/* Theme Slider */
.theme-slider-container {
  position: fixed;
  bottom: 96px;
  left: 30px;
  padding: 18px 24px;
  border-radius: 22px;
  z-index: 90;
  display: flex;
  flex-direction: column;
  gap: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  opacity: 0;
  transform: translateY(15px) scale(0.95);
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.theme-slider-container.open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.slider-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.slider-group label {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--olive-dark);
}
.complex-slider {
  -webkit-appearance: none;
  width: 180px;
  height: 8px;
  border-radius: 8px;
  outline: none;
  border: 1px solid rgba(255, 255, 255, 0.8);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
}
.hue-slider {
  background: linear-gradient(to right, #b4bd48, #48bda2, #486bbd, #a248bd, #bd486b, #b4bd48);
}
.lum-slider {
  background: linear-gradient(to right, #000, #888, #fff);
}
.complex-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--olive);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  transition: transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.complex-slider::-webkit-slider-thumb:hover {
  transform: scale(1.25);
}

/* --- Estilos Complementares da Página de Produtos --- */
.navbar .nav-back {
  color: var(--muted);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: color 0.25s, transform 0.25s;
}
.navbar .nav-back:hover {
  color: var(--olive-dark);
  transform: translateX(-4px);
}

.products-page-title {
  padding: 60px 20px 20px;
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}
.products-page-title h1 {
  font-family: "Libre Baskerville", serif;
  font-size: clamp(36px, 4vw, 56px);
  line-height: 1.15;
  letter-spacing: -0.04em;
  margin-bottom: 16px;
}
.products-page-title h1 em {
  font-style: normal;
  color: var(--olive-dark);
}
.products-page-title p {
  font-size: 16px;
  line-height: 1.7;
  color: var(--muted);
}

/* Filtros */
.filter-controls-container {
  border-radius: 20px;
  padding: 24px;
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  z-index: 10;
}
.search-sort-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.search-wrapper {
  position: relative;
  flex: 1;
  min-width: 280px;
}
.search-input {
  width: 100%;
  box-sizing: border-box;
  padding: 14px 16px 14px 44px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.45);
  font-family: inherit;
  font-size: 14px;
  color: var(--ink);
  outline: none;
  transition: all 0.25s ease;
}
.search-input:focus {
  background: rgba(255, 255, 255, 0.8);
  border-color: var(--olive);
  box-shadow: 0 0 0 3px rgba(169, 173, 57, 0.15);
}
.search-icon {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  font-size: 16px;
  pointer-events: none;
}
.sort-select {
  padding: 0 16px;
  height: 48px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.45);
  font-family: inherit;
  font-size: 14px;
  color: var(--ink);
  outline: none;
  cursor: pointer;
  min-width: 200px;
  transition: all 0.25s ease;
}
.sort-select:focus {
  background: rgba(255, 255, 255, 0.8);
  border-color: var(--olive);
}

.category-filter-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.category-filter-row span {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-right: 8px;
}
.filter-btn {
  background: rgba(255, 255, 255, 0.35);
  border: 1px solid var(--line);
  padding: 10px 20px;
  border-radius: 30px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
  cursor: pointer;
  transition: all 0.25s ease;
}
.filter-btn:hover {
  background: rgba(255, 255, 255, 0.65);
  color: var(--ink);
  transform: translateY(-1px);
}
.filter-btn.active {
  background: linear-gradient(135deg, #b7ba54, #9ca032);
  color: white;
  border-color: transparent;
  box-shadow: 0 6px 16px rgba(122, 126, 22, 0.2);
}

/* Grid de Produtos Dedicado */
.products-display-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  gap: 20px;
  margin-bottom: 40px;
}
.products-display-grid .program-card {
  min-height: 240px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.products-display-grid .program-card .card-top {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.products-display-grid .program-card h3 {
  margin: 10px 0 6px 0;
  font-size: 18px;
  line-height: 1.3;
}
.products-display-grid .program-card p {
  margin-bottom: 18px;
  line-height: 1.6;
}

/* Badges */
.card-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.badge {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 10px;
  border-radius: 20px;
}
.badge.specialty {
  background: rgba(169, 173, 57, 0.12);
  color: var(--olive-dark);
  border: 1px solid rgba(169, 173, 57, 0.22);
}
.badge.price {
  background: rgba(255, 255, 255, 0.7);
  color: var(--ink);
  font-weight: 700;
  border: 1px solid var(--line);
}

.card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}
.price-display {
  display: flex;
  flex-direction: column;
}
.price-display span {
  font-size: 10px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.price-display strong {
  font-size: 20px;
  color: var(--olive-dark);
  font-weight: 700;
}

/* Estado de busca vazia */
.no-results-card {
  grid-column: 1 / -1;
  padding: 60px 20px;
  text-align: center;
  border-radius: 18px;
}
.no-results-card i {
  font-size: 40px;
  display: block;
  margin-bottom: 16px;
  color: var(--muted);
}
.no-results-card h3 {
  font-size: 20px;
  margin-bottom: 8px;
}
.no-results-card p {
  color: var(--muted);
  max-width: 400px;
  margin: 0 auto;
}

/* Orientações e detalhes do Modal */
.modal-price-tag {
  font-size: 26px;
  color: var(--olive-dark);
  font-weight: 700;
  margin-bottom: 20px;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.modal-price-tag small {
  font-size: 12px;
  color: var(--muted);
  font-weight: normal;
  text-transform: uppercase;
}
.modal-body h4 {
  font-size: 15px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--olive-dark);
  margin: 24px 0 12px 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.modal-body h4::before {
  content: "✦";
  font-size: 12px;
}
.orientations-list {
  background: rgba(169, 173, 57, 0.06);
  border: 1px solid rgba(169, 173, 57, 0.12);
  border-radius: 14px;
  padding: 16px 20px;
  margin-bottom: 20px;
}
.orientations-list p {
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 12px;
  color: #555;
}
.orientations-list p:last-child {
  margin-bottom: 0;
}
.orientations-list ul {
  margin: 0 0 12px 0;
  padding-left: 20px;
}
.orientations-list li {
  font-size: 13px;
  line-height: 1.6;
  color: #555;
  margin-bottom: 8px;
}
.orientations-list li:last-child {
  margin-bottom: 0;
}

@media (max-width: 768px) {
  .search-sort-row {
    flex-direction: column;
  }
  .search-wrapper, .sort-select {
    width: 100%;
    min-width: 100%;
  }
  .category-filter-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .category-filter-row .filter-btn {
    width: 100%;
    text-align: center;
  }
}

/* --- Estilos da Página Comercial de Medicina Preditiva --- */
.medicina-hero {
  padding: 100px 78px 60px;
  text-align: center;
  max-width: 900px;
  margin: 0 auto;
  position: relative;
}
.medicina-hero h1 {
  font-family: "Libre Baskerville", serif;
  font-size: clamp(38px, 4.5vw, 62px);
  line-height: 1.1;
  letter-spacing: -0.04em;
  margin-bottom: 28px;
}
.medicina-hero h1 em {
  font-style: normal;
  color: var(--olive-dark);
}
.medicina-hero .subtitle {
  font-size: 20px;
  line-height: 1.7;
  color: var(--muted);
  font-weight: 500;
  max-width: 720px;
  margin: 0 auto 40px;
}

.commercial-story-section {
  border-radius: 24px;
  padding: 48px;
  margin-bottom: 32px;
  line-height: 1.8;
  color: #333;
}
.story-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 48px;
  align-items: center;
}
.story-lead {
  font-size: 16px;
  color: #4a4b48;
}
.story-lead h2 {
  font-family: "Libre Baskerville", serif;
  font-size: 32px;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--olive-dark);
  margin-bottom: 24px;
}
.story-lead p {
  margin-bottom: 20px;
}
.quote-box {
  border-left: 3px solid var(--olive);
  padding-left: 28px;
  font-family: "Libre Baskerville", serif;
  font-style: italic;
  font-size: 19px;
  line-height: 1.6;
  color: var(--olive-dark);
  margin: 32px 0 0 0;
}

/* Tabela Comparativa de Paradigmas */
.comparison-section {
  margin-bottom: 32px;
  border-radius: 24px;
  padding: 48px;
}
.comparison-section h2 {
  text-align: center;
  font-family: "Libre Baskerville", serif;
  font-size: 32px;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin-bottom: 12px;
}
.comparison-section .section-subtitle {
  text-align: center;
  color: var(--muted);
  font-size: 16px;
  max-width: 600px;
  margin: 0 auto 44px;
}
.comparison-wrapper {
  overflow-x: auto;
  border-radius: 16px;
  border: 1px solid var(--line);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}
.comparison-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  background: rgba(255, 255, 255, 0.35);
  font-size: 14px;
  min-width: 600px;
}
.comparison-table th, .comparison-table td {
  padding: 18px 24px;
  border-bottom: 1px solid var(--line);
}
.comparison-table th {
  background: rgba(255, 255, 255, 0.65);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 12px;
  color: var(--ink);
}
.comparison-table th:first-child {
  width: 30%;
}
.comparison-table th.highlight-header {
  background: rgba(169, 173, 57, 0.1);
  color: var(--olive-dark);
  border-left: 2px solid rgba(169, 173, 57, 0.2);
  border-right: 2px solid rgba(169, 173, 57, 0.2);
}
.comparison-table td:first-child {
  font-weight: 700;
  color: var(--ink);
}
.comparison-table td.negative-cell {
  color: #727470;
}
.comparison-table td.positive-cell {
  background: rgba(169, 173, 57, 0.04);
  color: var(--ink);
  font-weight: 500;
  border-left: 2px solid rgba(169, 173, 57, 0.15);
  border-right: 2px solid rgba(169, 173, 57, 0.15);
}
.comparison-table tr:last-child td {
  border-bottom: 0;
}
.comparison-table td.positive-cell i {
  color: var(--olive-dark);
  font-weight: bold;
  margin-right: 8px;
  font-style: normal;
  display: inline-block;
}
.comparison-table td.negative-cell i {
  color: #a82424;
  font-weight: bold;
  margin-right: 8px;
  font-style: normal;
  display: inline-block;
  opacity: 0.8;
}

/* Quatro Pilares */
.pillars-section {
  margin-bottom: 32px;
}
.pillars-section h2 {
  text-align: center;
  font-family: "Libre Baskerville", serif;
  font-size: 32px;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin-bottom: 12px;
}
.pillars-section .section-subtitle {
  text-align: center;
  color: var(--muted);
  font-size: 16px;
  max-width: 600px;
  margin: 0 auto 44px;
}
.pillars-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.pillar-card {
  border-radius: 20px;
  padding: 34px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.pillar-card:hover {
  transform: translateY(-4px);
  background: rgba(255, 255, 255, 0.72);
}
.pillar-header {
  display: flex;
  align-items: center;
  gap: 16px;
}
.pillar-header i {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: rgba(169, 173, 57, 0.12);
  border: 1px solid rgba(169, 173, 57, 0.22);
  display: grid;
  place-items: center;
  font-size: 22px;
  color: var(--olive-dark);
}
.pillar-header h3 {
  font-size: 19px;
  margin: 0;
  font-weight: 700;
  color: var(--ink);
}
.pillar-card p {
  font-size: 14px;
  line-height: 1.7;
  color: #555;
  margin: 0;
}

/* Call to Action Final */
.medicina-cta-block {
  border-radius: 24px;
  padding: 60px 48px;
  text-align: center;
  background: linear-gradient(135deg, rgba(232, 224, 207, 0.45) 0%, rgba(255, 255, 250, 0.78) 100%);
  margin-bottom: 40px;
}
.medicina-cta-block h2 {
  font-family: "Libre Baskerville", serif;
  font-size: 36px;
  letter-spacing: -0.03em;
  margin-bottom: 18px;
}
.medicina-cta-block p {
  font-size: 16px;
  color: var(--muted);
  max-width: 600px;
  margin: 0 auto 34px;
  line-height: 1.6;
}

@media (max-width: 900px) {
  .story-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .quote-box {
    margin-top: 10px;
    padding-left: 20px;
  }
  .pillars-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 768px) {
  .medicina-hero {
    padding: 60px 20px 40px;
  }
  .commercial-story-section, .comparison-section {
    padding: 24px;
  }
  .pillar-card {
    padding: 24px;
  }
  .medicina-cta-block {
    padding: 40px 24px;
  }
}

/* --- Novo Card CTA de Catálogo Completo --- */
.cta-catalog-card {
  background: linear-gradient(135deg, rgba(123, 129, 24, 0.16) 0%, rgba(123, 129, 24, 0.28) 100%) !important;
  border: 1px solid rgba(123, 129, 24, 0.45) !important;
  text-decoration: none !important;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}
.cta-catalog-card:hover {
  background: linear-gradient(135deg, rgba(123, 129, 24, 0.24) 0%, rgba(123, 129, 24, 0.38) 100%) !important;
  border-color: rgba(123, 129, 24, 0.6) !important;
  transform: translateY(-4px) !important;
}
.cta-catalog-card .cta-content {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: left;
}
.cta-catalog-card h3 {
  margin: 0 !important;
  font-size: 19px !important;
  color: var(--olive-dark) !important;
  font-weight: 800 !important;
  padding-right: 0 !important;
}
.cta-catalog-card p {
  margin: 0 !important;
  font-size: 13px !important;
  color: #4a4b48 !important;
  padding-right: 10px !important;
  display: block !important;
  -webkit-line-clamp: unset !important;
  overflow: visible !important;
}
.cta-catalog-card .go-btn {
  position: static !important;
  background: var(--olive-dark) !important;
  color: white !important;
  box-shadow: 0 8px 20px rgba(122, 126, 22, 0.3) !important;
  flex-shrink: 0 !important;
  display: grid !important;
  place-items: center !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;
  font-size: 18px !important;
  transition: all 0.2s ease !important;
  transform: none !important;
}
.cta-catalog-card:hover .go-btn {
  background: var(--olive) !important;
  color: white !important;
  transform: scale(1.1) !important;
}

/* --- Carrossel de Imagens no Modal --- */
.carousel-container {
  position: relative !important;
  width: 100% !important;
  height: 280px !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  margin-bottom: 24px !important;
  border: 1px solid rgba(255, 255, 255, 0.4) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08) !important;
  background: rgba(0, 0, 0, 0.05) !important;
}
.carousel-track {
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}
.carousel-slide {
  min-width: 100% !important;
  height: 100% !important;
  display: block !important;
}
.carousel-slide img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.carousel-btn {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  background: rgba(255, 255, 255, 0.35) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(255, 255, 255, 0.5) !important;
  color: var(--ink) !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  cursor: pointer !important;
  z-index: 10 !important;
  font-size: 14px !important;
  font-weight: bold !important;
  transition: all 0.2s ease !important;
  outline: none !important;
}
.carousel-btn:hover {
  background: rgba(255, 255, 255, 0.75) !important;
  transform: translateY(-50%) scale(1.08) !important;
}
.carousel-btn.prev-btn {
  left: 12px !important;
}
.carousel-btn.next-btn {
  right: 12px !important;
}
.carousel-dots {
  position: absolute !important;
  bottom: 12px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  display: flex !important;
  gap: 8px !important;
  z-index: 10 !important;
}
.carousel-dot {
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.4) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
}
.carousel-dot.active {
  background: var(--olive-dark) !important;
  transform: scale(1.2) !important;
  box-shadow: 0 0 6px rgba(123, 129, 24, 0.4) !important;
}

@media (max-width: 680px) {
  .carousel-container {
    height: 180px !important;
  }
}

/* --- Layout em duas colunas no Modal (Imagem esquerda fixa, Texto direita com scroll) --- */
.modal-content.has-media {
  width: min(100% - 40px, 940px) !important;
  height: 540px !important; /* Altura compacta conforme solicitado */
  max-height: 80vh !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}
.modal-content.has-media .modal-body {
  flex: 1 !important;
  overflow: hidden !important; /* Impede que o corpo do modal scrolle por inteiro */
  padding-right: 0 !important;
}
.modal-grid-layout {
  display: grid !important;
  grid-template-columns: 1.15fr 0.85fr !important;
  gap: 32px !important;
  align-items: stretch !important;
  height: 100% !important;
  overflow: hidden !important;
}
.modal-media-side {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
.modal-media-side .carousel-container {
  height: 100% !important; /* Preenche toda a altura da coluna da esquerda */
  min-height: 380px !important;
  margin-bottom: 0 !important;
}
.modal-text-side {
  width: 100% !important;
  height: 100% !important;
  max-height: 380px !important;
  overflow-y: auto !important; /* Somente a coluna do texto rola */
  padding-right: 12px !important;
  display: flex !important;
  flex-direction: column !important;
}
.modal-text-side::-webkit-scrollbar {
  width: 6px;
}
.modal-text-side::-webkit-scrollbar-thumb {
  background: var(--olive);
  border-radius: 10px;
}

@media (max-width: 768px) {
  .modal-content.has-media {
    width: min(100% - 40px, 640px) !important;
    height: auto !important; /* Restaura fluxo vertical no celular */
    max-height: 90vh !important;
    overflow-y: auto !important;
  }
  .modal-content.has-media .modal-body {
    overflow: visible !important;
  }
  .modal-grid-layout {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    height: auto !important;
    overflow: visible !important;
  }
  .modal-media-side .carousel-container {
    height: 200px !important;
    min-height: 200px !important;
    margin-bottom: 12px !important;
  }
  .modal-text-side {
    max-height: none !important;
    overflow-y: visible !important;
    padding-right: 0 !important;
  }
}

/* --- 💎 EFEITOS VISUAIS E MICRO-INTERAÇÕES DE UX/UI AVANÇADA --- */

/* 1. Efeito Shimmer (Reflexo de Vidro) Diagonal nos Botões de Ação */
.nav-cta, .btn.primary {
  position: relative !important;
  overflow: hidden !important;
}
.nav-cta::after, .btn.primary::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: -150% !important;
  width: 50% !important;
  height: 100% !important;
  background: linear-gradient(
    to right,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.45) 50%,
    rgba(255, 255, 255, 0) 100%
  ) !important;
  transform: skewX(-25deg) !important;
  pointer-events: none !important;
  animation: shimmerCTA 4.5s infinite linear !important;
}
@keyframes shimmerCTA {
  0% {
    left: -150%;
  }
  15% {
    left: 150%;
  }
  100% {
    left: 150%;
  }
}

/* 2. Suavização das Transições de Cores do Tema da Atmosfera */
body::after {
  transition: filter 0.5s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}
.theme-overlay {
  transition: background 0.4s ease-out !important;
}

/* 3. Orbes Flutuantes Orgânicos de Fundo ( Floating Orbs ) */
.ambient {
  display: block !important;
  position: fixed !important;
  border-radius: 50% !important;
  z-index: -3 !important;
  pointer-events: none !important;
  mix-blend-mode: screen !important;
}
.ambient-a {
  width: 650px !important;
  height: 650px !important;
  background: radial-gradient(circle, rgba(169, 173, 57, 0.26) 0%, rgba(169, 173, 57, 0) 70%) !important;
  top: -120px !important;
  left: -120px !important;
  animation: floatOrbA 28s ease-in-out infinite alternate !important;
}
.ambient-b {
  width: 550px !important;
  height: 550px !important;
  background: radial-gradient(circle, rgba(123, 129, 24, 0.2) 0%, rgba(123, 129, 24, 0) 70%) !important;
  bottom: -100px !important;
  right: -100px !important;
  animation: floatOrbB 32s ease-in-out infinite alternate !important;
}
@keyframes floatOrbA {
  0% {
    transform: translate(0, 0) scale(1);
    filter: hue-rotate(calc(var(--theme-hue, 0deg) + 0deg));
  }
  50% {
    transform: translate(80px, 60px) scale(1.08);
    filter: hue-rotate(calc(var(--theme-hue, 0deg) + 20deg));
  }
  100% {
    transform: translate(-30px, 110px) scale(0.95);
    filter: hue-rotate(calc(var(--theme-hue, 0deg) - 15deg));
  }
}
@keyframes floatOrbB {
  0% {
    transform: translate(0, 0) scale(1);
    filter: hue-rotate(calc(var(--theme-hue, 0deg) + 0deg));
  }
  50% {
    transform: translate(-90px, -40px) scale(0.92);
    filter: hue-rotate(calc(var(--theme-hue, 0deg) - 25deg));
  }
  100% {
    transform: translate(50px, -90px) scale(1.12);
    filter: hue-rotate(calc(var(--theme-hue, 0deg) + 15deg));
  }
}

/* 4. Efeito de Spotlight Interativo que Segue o Mouse nos Cards */
.program-card, .pillar-card, .pillar-card-preditiva {
  position: relative !important;
  overflow: hidden !important;
}
.program-card::before, .pillar-card::before, .pillar-card-preditiva::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: inherit !important;
  background: radial-gradient(
    380px circle at var(--mouse-x, -9999px) var(--mouse-y, -9999px),
    rgba(169, 173, 57, 0.13) 0%,
    transparent 80%
  ) !important;
  z-index: 1 !important;
  pointer-events: none !important;
  transition: opacity 0.4s ease !important;
  opacity: 0;
}
.program-card:hover::before, .pillar-card:hover::before, .pillar-card-preditiva:hover::before {
  opacity: 1 !important;
}
/* Eleva os filhos acima do spotlight para manter as interações */
.program-card > *, .pillar-card > *, .pillar-card-preditiva > * {
  position: relative !important;
  z-index: 2 !important;
}
.program-card .go-btn, .program-card i, .pillar-card i, .pillar-card-preditiva i {
  z-index: 3 !important;
}

/* --- 📋 ABAS INTERATIVAS NO MODAL DE DETALHES --- */
.modal-tabs {
  display: flex !important;
  border-bottom: 1px solid var(--line) !important;
  margin-bottom: 20px !important;
  gap: 16px !important;
}
.modal-tab-btn {
  background: none !important;
  border: none !important;
  padding: 8px 4px 12px 4px !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--muted) !important;
  cursor: pointer !important;
  position: relative !important;
  transition: color 0.25s ease !important;
  outline: none !important;
}
.modal-tab-btn:hover {
  color: var(--ink) !important;
}
.modal-tab-btn.active {
  color: var(--olive-dark) !important;
}
.modal-tab-btn::after {
  content: "" !important;
  position: absolute !important;
  bottom: -1px !important;
  left: 0 !important;
  right: 0 !important;
  height: 2px !important;
  background: var(--olive-dark) !important;
  transform: scaleX(0) !important;
  transition: transform 0.25s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
  border-radius: 4px !important;
}
.modal-tab-btn.active::after {
  transform: scaleX(1) !important;
}
.modal-tab-content {
  display: none !important;
  flex-direction: column !important;
  opacity: 0;
  transition: opacity 0.3s ease-out !important;
}
.modal-tab-content.active {
  display: flex !important;
  opacity: 1 !important;
}

/* --- 📱 EXCELLENT MOBILE & RESPONSIVE UX OPTIMIZATIONS --- */

@media (max-width: 1100px) {
  /* Fix para o Menu Hamburguer responsivo quebrados */
  .desktop-nav {
    display: none !important;
    flex-direction: column !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    background: rgba(255, 255, 250, 0.96) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    padding: 24px !important;
    gap: 16px !important;
    border-radius: 0 0 24px 24px !important;
    border: 1px solid rgba(255, 255, 255, 0.62) !important;
    border-top: none !important;
    box-shadow: 0 16px 40px rgba(42, 42, 35, 0.15) !important;
    z-index: 9999 !important;
    transform: translateY(-10px) !important;
    opacity: 0 !important;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease !important;
    pointer-events: none !important;
  }
  
  .desktop-nav.is-open {
    display: flex !important;
    transform: translateY(0) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .desktop-nav a {
    font-size: 16px !important;
    padding: 12px 16px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border-radius: 12px !important;
    text-align: left !important;
    transition: background 0.2s ease, color 0.2s ease !important;
  }

  .desktop-nav a:hover {
    background: rgba(169, 173, 57, 0.1) !important;
    color: var(--olive-dark) !important;
  }

  .desktop-nav a::after {
    display: none !important;
  }
}

@media (max-width: 768px) {
  /* Oculta botão Voltar redundante em telas mobile para evitar empilhamento desordenado */
  .navbar .nav-back {
    display: none !important;
  }
}

@media (max-width: 680px) {
  /* Filtros e Inputs 100% responsivos (Sem esmagar em telas pequenas) */
  .search-sort-row {
    flex-direction: column !important;
    gap: 12px !important;
  }
  .search-wrapper, .sort-select {
    width: 100% !important;
    min-width: 0 !important;
  }
  .filter-controls-container {
    padding: 16px !important;
    gap: 16px !important;
  }
  .category-filter-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
  .category-filter-row span {
    margin-right: 0 !important;
  }
  #category-filters-container {
    width: 100% !important;
    justify-content: space-between !important;
  }
  .filter-btn {
    flex: 1 !important;
    text-align: center !important;
    padding: 10px 8px !important;
    font-size: 12px !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 480px) {
  /* Centraliza e impede o vazamento lateral do Customizador de Cores */
  .theme-slider-container {
    left: 16px !important;
    right: 16px !important;
    bottom: 90px !important;
    padding: 16px 20px !important;
    box-sizing: border-box !important;
    width: auto !important;
  }

  /* Reduz paddings e margens do Modal para ganho de área de leitura */
  .modal-content {
    padding: 20px 16px !important;
    border-radius: 18px !important;
    width: min(100% - 24px, 420px) !important;
  }
  .modal-header {
    gap: 12px !important;
    margin-bottom: 16px !important;
  }
  .modal-header h2 {
    font-size: 18px !important;
  }
  .modal-tab-btn {
    font-size: 11px !important;
    padding: 8px 6px !important;
  }

  /* Ajuste de escala tipográfica para títulos longos não quebrarem o layout */
  .medicina-hero h1, .products-page-title h1, .hero h1 {
    font-size: clamp(25px, 7vw, 34px) !important;
    line-height: 1.25 !important;
  }
  .medicina-hero .subtitle, .products-page-title p, .lead {
    font-size: 14px !important;
    line-height: 1.68 !important;
  }
  .actions {
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
  }
  .actions .btn {
    width: 100% !important;
    font-size: 13px !important;
    height: 48px !important;
  }
}

/* --- NOVOS COMPONENTES PREMIUM (AIDA & FUNIL) --- */

/* Seção de Personas (Atenção/Interesse) */
.personas-section {
  position: relative;
  z-index: 10;
}
.personas-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 32px 0 54px;
  position: relative;
  z-index: 10;
}
.persona-selector-card {
  border-radius: 20px;
  padding: 32px 28px;
  text-decoration: none;
  color: var(--ink);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 220px;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  border: 1px solid rgba(255, 255, 255, 0.65);
  box-sizing: border-box;
}
.persona-selector-card:hover {
  transform: translateY(-6px);
  background: rgba(255, 255, 255, 0.72);
  border-color: rgba(169, 173, 57, 0.4);
  box-shadow: 0 16px 36px rgba(122, 126, 22, 0.08);
}
.persona-selector-card .badge {
  align-self: flex-start;
}
.persona-selector-card h3 {
  font-family: "Libre Baskerville", serif;
  font-size: 22px;
  margin: 20px 0 10px 0;
  color: var(--olive-dark);
  font-weight: 700;
}
.persona-selector-card p {
  font-size: 13.5px;
  line-height: 1.6;
  color: #555;
  margin: 0 0 20px 0;
}
.persona-selector-card .go-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 13px;
  color: var(--olive-dark);
  margin-top: auto;
}
.persona-selector-card .go-link span {
  transition: transform 0.2s ease;
}
.persona-selector-card:hover .go-link span {
  transform: translateX(4px);
}

/* Seção Ciência Comprovada (Relatório & Metodologia) */
.science-section {
  border-radius: 24px;
  padding: 54px 48px;
  margin-top: 14px;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 48px;
  align-items: center;
}
.science-intro-block h2 {
  font-family: "Libre Baskerville", serif;
  font-size: 32px;
  line-height: 1.2;
  letter-spacing: -0.03em;
  margin-bottom: 20px;
}
.science-intro-block p {
  font-size: 15px;
  line-height: 1.7;
  color: #53544f;
  margin-bottom: 24px;
}
.science-features {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.science-feature-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.science-feature-item i {
  font-style: normal;
  font-size: 22px;
  background: rgba(169, 173, 57, 0.12);
  border: 1px solid rgba(169, 173, 57, 0.22);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--olive-dark);
  flex-shrink: 0;
}
.science-feature-item h4 {
  font-size: 16px;
  margin: 0 0 6px 0;
  color: var(--ink);
  font-weight: 700;
}
.science-feature-item p {
  font-size: 13.5px;
  line-height: 1.5;
  color: #555;
  margin: 0;
}
.report-preview-visual {
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.2) 100%);
  padding: 28px;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
}
.report-preview-visual::after {
  content: "Visualização do Laudo Digital";
  position: absolute;
  top: 12px;
  right: 18px;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--muted);
  letter-spacing: 0.05em;
}
.report-header {
  border-bottom: 1px solid var(--line);
  padding-bottom: 14px;
}
.report-header h4 {
  margin: 0 0 4px 0;
  font-size: 17px;
  font-family: "Libre Baskerville", serif;
}
.report-header p {
  margin: 0;
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.report-indicator-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(255, 255, 255, 0.35);
  border-radius: 12px;
  padding: 12px 16px;
  border: 1px solid rgba(255, 255, 255, 0.4);
}
.report-indicator-name {
  display: flex;
  flex-direction: column;
}
.report-indicator-name strong {
  font-size: 13.5px;
  color: var(--ink);
}
.report-indicator-name span {
  font-size: 11px;
  color: var(--muted);
}
.report-indicator-value {
  font-size: 16px;
  font-weight: 700;
  color: var(--olive-dark);
}

/* Seção de Autoridade Médica (Dr. Siro) */
.authority-section {
  border-radius: 24px;
  padding: 54px 48px;
  margin-top: 14px;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 48px;
  align-items: center;
}
.authority-visual {
  display: flex;
  justify-content: center;
  position: relative;
}
.authority-avatar-frame {
  width: 280px;
  height: 280px;
  border-radius: 50%;
  border: 1px solid rgba(169, 173, 57, 0.4);
  padding: 8px;
  background: rgba(255, 255, 255, 0.2);
  box-shadow: var(--shadow);
  display: flex;
  align-items: center;
  justify-content: center;
}
.authority-avatar {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  background: linear-gradient(135deg, var(--cream) 0%, rgba(169, 173, 57, 0.3) 100%);
}
.authority-content h2 {
  font-family: "Libre Baskerville", serif;
  font-size: 32px;
  margin-bottom: 8px;
  letter-spacing: -0.02em;
}
.authority-title {
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--olive-dark);
  letter-spacing: 0.1em;
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.authority-title span {
  background: var(--olive);
  color: white;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 10px;
}
.authority-content p {
  font-size: 15px;
  line-height: 1.7;
  color: #53544f;
  margin-bottom: 20px;
}
.authority-quote {
  font-family: "Libre Baskerville", serif;
  font-style: italic;
  font-size: 18px;
  line-height: 1.6;
  color: var(--olive-dark);
  border-left: 2px solid var(--olive);
  padding-left: 20px;
  margin: 24px 0 0 0;
}

/* Seção de Depoimentos / Google Reviews */
.reviews-section {
  margin-top: 14px;
  padding: 54px 0;
}
.reviews-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 36px;
}
.reviews-intro h2 {
  font-family: "Libre Baskerville", serif;
  font-size: 32px;
  margin-bottom: 12px;
}
.reviews-intro p {
  color: var(--muted);
  font-size: 15px;
}
.reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.review-card {
  border-radius: 18px;
  padding: 26px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border: 1px solid rgba(255, 255, 255, 0.6);
  min-height: 180px;
}
.review-stars {
  color: #ffb800;
  font-size: 15px;
  margin-bottom: 14px;
  display: flex;
  gap: 2px;
}
.review-card p {
  font-size: 13.5px;
  line-height: 1.65;
  color: #4a4b48;
  margin: 0 0 16px 0;
  font-style: italic;
}
.review-author {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.review-author::before {
  content: "G";
  background: var(--olive-dark);
  color: white;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 9px;
  font-weight: 800;
}

/* Seção de FAQ / Transparência Operacional */
.faq-section {
  border-radius: 24px;
  padding: 54px 48px;
  margin-top: 14px;
}
.faq-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 40px;
}
.faq-intro h2 {
  font-family: "Libre Baskerville", serif;
  font-size: 32px;
  margin-bottom: 12px;
}
.faq-intro p {
  color: var(--muted);
  font-size: 15px;
}
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 800px;
  margin: 0 auto;
}
.faq-item {
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  background: rgba(255, 255, 250, 0.38);
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.faq-item.active {
  background: rgba(255, 255, 255, 0.68);
  border-color: rgba(169, 173, 57, 0.3);
}
.faq-question {
  width: 100%;
  padding: 20px 24px;
  background: none;
  border: none;
  font-family: inherit;
  font-size: 15.5px;
  font-weight: 700;
  text-align: left;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  outline: none;
}
.faq-question span {
  font-size: 18px;
  color: var(--olive-dark);
  transition: transform 0.3s ease;
}
.faq-item.active .faq-question span {
  transform: rotate(45deg);
}
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.faq-answer-inner {
  padding: 0 24px 20px 24px;
  font-size: 14px;
  line-height: 1.7;
  color: #555;
}

/* Home Tab Filters */
.home-tab-filters {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin: 20px 0 32px 0;
  flex-wrap: wrap;
}
.home-filter-btn {
  background: rgba(255, 255, 255, 0.35);
  border: 1px solid var(--line);
  padding: 10px 24px;
  border-radius: 30px;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--muted);
  cursor: pointer;
  transition: all 0.25s ease;
}
.home-filter-btn:hover {
  background: rgba(255, 255, 255, 0.65);
  color: var(--ink);
  transform: translateY(-1px);
}
.home-filter-btn.active {
  background: linear-gradient(135deg, #b7ba54, #9ca032);
  color: white;
  border-color: transparent;
  box-shadow: 0 6px 16px rgba(122, 126, 22, 0.2);
}

/* Adaptabilidade Responsiva dos Novos Blocos */
@media (max-width: 1024px) {
  .personas-grid, .reviews-grid {
    grid-template-columns: 1fr 1fr;
  }
  .science-section, .authority-section {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 36px 28px;
  }
  .authority-section {
    direction: rtl; /* Inverte a ordem no tablet para imagem ficar acima */
  }
  .authority-content {
    direction: ltr;
  }
}

@media (max-width: 680px) {
  .personas-grid, .reviews-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .persona-selector-card {
    min-height: auto;
    padding: 24px;
  }
  .science-section, .authority-section, .faq-section {
    padding: 28px 20px;
  }
  .faq-question {
    padding: 16px 20px;
    font-size: 14px;
  }
  .faq-answer-inner {
    padding: 0 20px 16px 20px;
  }
}

/* --- 📱 PREMIUM RESPONSIVE ADDITIONS & FLOAT OPTIMIZATIONS --- */

/* Transições e estados de ocultação dos flutuadores */
.whatsapp-float, .instagram-float, .theme-brush-btn {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease, box-shadow 0.3s ease, background 0.3s ease, border-color 0.3s ease !important;
}

.whatsapp-float.float-hidden, .instagram-float.float-hidden, .theme-brush-btn.float-hidden {
  transform: translateY(120px) scale(0.8) !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Botão CTA Mobile no Menu Hambúrguer */
.desktop-nav .nav-cta-mobile {
  display: none !important;
}

.comparison-wrapper {
  -webkit-overflow-scrolling: touch; /* Rolagem de toque suave no mobile */
}

@media (max-width: 1100px) {
  .desktop-nav .nav-cta-mobile {
    display: flex !important;
    background: linear-gradient(135deg, #b7ba54, #9ca032) !important;
    color: white !important;
    padding: 14px 20px !important;
    border-radius: 12px !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    text-align: center !important;
    justify-content: center !important;
    align-items: center !important;
    margin-top: 14px !important;
    box-shadow: 0 8px 22px rgba(122, 126, 22, 0.2) !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
    transition: transform 0.2s ease, opacity 0.2s ease !important;
  }
  .desktop-nav .nav-cta-mobile:active {
    transform: scale(0.98) !important;
  }
}

@media (max-width: 680px) {
  /* WhatsApp Flutuante Menor e Mais Discreto */
  .whatsapp-float {
    width: 48px !important;
    height: 48px !important;
    bottom: 16px !important;
    right: 16px !important;
    box-shadow: 0 6px 18px rgba(37, 211, 102, 0.3) !important;
  }
  .whatsapp-float svg {
    width: 24px !important;
    height: 24px !important;
  }

  /* Instagram Flutuante Menor e Mais Discreto */
  .instagram-float {
    width: 48px !important;
    height: 48px !important;
    bottom: 74px !important; /* Perfeitamente empilhado acima do WhatsApp */
    right: 16px !important;
    box-shadow: 0 6px 18px rgba(214, 36, 159, 0.3) !important;
  }
  .instagram-float svg {
    width: 24px !important;
    height: 24px !important;
  }

  /* Pincel do Customizador de Cores Menor */
  .theme-brush-btn {
    width: 46px !important;
    height: 46px !important;
    bottom: 16px !important;
    left: 16px !important;
  }
  .theme-brush-btn svg {
    width: 18px !important;
    height: 18px !important;
  }
  
  /* Ajuste no container do slider correspondente */
  .theme-slider-container {
    bottom: 72px !important;
    left: 16px !important;
    right: 16px !important;
  }
}

@media (max-width: 480px) {
  /* Proteção de segurança contra sobreposição de botões no header do modal */
  .modal-header h2 {
    padding-right: 42px !important;
    font-size: 19px !important;
    line-height: 1.3 !important;
  }
  .modal-close {
    top: 14px !important;
    right: 16px !important;
    font-size: 28px !important;
  }
}
