:root {
  color-scheme: light;
  --zelo: #4a6741;
  --forest: #2f4229;
  --cream: #f5f3ec;
  --sand: #e7e2d3;
  --ink: #1f2a1c;
  --muted: #5b6556;
  --paper: #fffefb;
  --sage: #dfe7d8;
  --line: rgba(47, 66, 41, 0.16);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Jost", system-ui, sans-serif;
  --container: 1160px;
  --radius-lg: 26px;
  --radius-md: 18px;
  font-family: var(--sans);
  scroll-behavior: smooth;
  scroll-padding-top: 92px;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  padding: 0;
  color: var(--ink);
  background: var(--cream);
  font: 400 17px/1.6 var(--sans);
  -webkit-font-smoothing: antialiased;
}
body, button, input, select { font-family: var(--sans); }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #b4cf9e; outline-offset: 4px; }
[hidden] { display: none !important; }

.container { width: min(var(--container), calc(100% - 48px)); margin-inline: auto; }
.section { padding: clamp(68px, 8vw, 116px) 0; }
.eyebrow {
  margin: 0 0 12px;
  color: var(--zelo);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  line-height: 1.4;
  text-transform: uppercase;
}
.eyebrow-light { color: #cdd8c5; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; letter-spacing: -0.025em; }
h1 { margin-bottom: 0; font-size: clamp(3.8rem, 7vw, 6.6rem); line-height: 0.9; }
h1 em, h2 em { color: #cdd8c5; font-weight: 500; }
h2 { margin-bottom: 0; font-size: clamp(2.7rem, 5vw, 4.2rem); line-height: 0.98; }
h3 { margin-bottom: 10px; font-size: clamp(1.65rem, 2.2vw, 2.15rem); line-height: 1.05; }

.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 13px 22px;
  text-align: center;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.25;
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
}
.button:hover { transform: translateY(-1px); }
.button:active { transform: translateY(0); }
.button-small { min-height: 42px; padding: 10px 18px; font-size: 0.88rem; }
.button-green { color: var(--paper); background: var(--zelo); }
.button-green:hover { background: var(--forest); }
.button-sage { color: var(--forest); background: var(--sage); }
.button-sage:hover { color: var(--forest); background: var(--paper); }
.button-outline-light { color: var(--paper); border-color: rgba(255,255,255,0.52); background: transparent; }
.button-outline-light:hover { border-color: var(--paper); background: rgba(255,255,255,0.1); }
.button-outline-green { color: var(--zelo); border-color: rgba(74,103,65,0.62); background: transparent; }
.button-outline-green:hover { color: var(--paper); border-color: var(--zelo); background: var(--zelo); }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--zelo);
  font-weight: 600;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.text-link:hover { color: var(--forest); }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 10px;
  left: 10px;
  transform: translateY(-160%);
  border-radius: 10px;
  padding: 10px 14px;
  color: var(--paper);
  background: var(--forest);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: sticky;
  z-index: 30;
  top: 0;
  border-bottom: 1px solid rgba(47,66,41,0.1);
  background: rgba(245,243,236,0.93);
  backdrop-filter: blur(14px);
}
.header-inner { display: flex; min-height: 78px; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; flex: 0 0 auto; align-items: center; width: 91px; }
.brand img { width: 100%; height: 62px; object-fit: contain; }
.desktop-nav { display: flex; align-items: center; gap: clamp(18px, 2.4vw, 34px); }
.desktop-nav > a:not(.button) { position: relative; color: rgba(31,42,28,0.74); font-size: 0.9rem; text-decoration: none; transition: color 160ms ease; }
.desktop-nav > a:not(.button):hover { color: var(--zelo); }
.desktop-nav > a:not(.button)::after { position: absolute; right: 0; bottom: -6px; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: left; transition: transform 220ms ease; }
.desktop-nav > a:not(.button):hover::after, .desktop-nav > a:not(.button):focus-visible::after { transform: scaleX(1); }
.menu-toggle { display: none; width: 46px; height: 46px; align-items: center; justify-content: center; border: 1px solid rgba(74,103,65,0.28); border-radius: 50%; color: var(--forest); background: transparent; cursor: pointer; }
.mobile-nav { border-top: 1px solid var(--line); padding: 8px 24px 20px; background: var(--cream); }
.mobile-nav a:not(.button) { display: block; padding: 11px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.mobile-nav .button { width: 100%; margin-top: 16px; }

.hero { 
  position: relative;
  overflow: hidden;
  color: var(--paper);
  background-color: var(--forest);
  background-image: linear-gradient(100deg, rgba(36,52,31,0.96) 0%, rgba(44,63,38,0.82) 53%, rgba(44,63,38,0.58) 100%), url("assets-site/hero-garden.jpg");
  background-position: calc(50% + var(--garden-shift-x, 0px)) calc(50% + var(--garden-shift-y, 0px));
  background-size: cover;
}
.hero-leaf { position: absolute; z-index: 1; width: clamp(34px, 4vw, 58px); pointer-events: none; color: rgba(237,244,225,0.72); opacity: 0.54; translate: var(--leaf-shift-x, 0px) var(--leaf-shift-y, 0px); rotate: var(--leaf-turn, 0deg); transition: translate 420ms cubic-bezier(.2,.75,.25,1), rotate 520ms cubic-bezier(.2,.75,.25,1); will-change: translate, rotate; }
.hero-leaf svg { display: block; width: 100%; height: auto; overflow: visible; fill: rgba(223,231,216,0.08); stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2; }
.hero-leaf-one { top: 19%; right: 10%; animation: leaf-drift 11s ease-in-out infinite; }
.hero-leaf-two { right: 44%; bottom: 12%; width: clamp(24px, 2.8vw, 40px); opacity: 0.34; animation: leaf-drift 14s ease-in-out -6s infinite reverse; }
.hero-leaf-three { top: 44%; right: 35%; width: clamp(22px, 2.3vw, 34px); opacity: .31; animation: leaf-drift 13s ease-in-out -3s infinite reverse; }
.hero-leaf-four { right: 7%; bottom: 21%; width: clamp(30px, 3.3vw, 48px); opacity: .28; animation: leaf-drift 16s ease-in-out -8s infinite; }
.hero-leaf-five { top: 31%; left: 5%; width: clamp(18px, 2vw, 28px); opacity: .27; animation: leaf-drift 12s ease-in-out -5s infinite reverse; }
.hero-leaf-six { top: 8%; left: 31%; width: clamp(19px, 2.2vw, 31px); opacity: .3; animation: leaf-drift 15s ease-in-out -9s infinite; }
.hero-leaf-seven { top: 58%; right: 16%; width: clamp(22px, 2.7vw, 39px); opacity: .35; animation: leaf-drift 12s ease-in-out -4s infinite reverse; }
.hero-leaf-eight { top: 70%; left: 25%; width: clamp(16px, 1.8vw, 26px); opacity: .25; animation: leaf-drift 17s ease-in-out -11s infinite; }
.hero-leaf-nine { top: 14%; right: 31%; width: clamp(25px, 3vw, 43px); opacity: .33; animation: leaf-drift 13s ease-in-out -7s infinite reverse; }
.hero-leaf-ten { right: 3%; bottom: 5%; width: clamp(17px, 2vw, 29px); opacity: .26; animation: leaf-drift 16s ease-in-out -2s infinite; }
@keyframes leaf-drift { 0%, 100% { transform: translate3d(0, -5px, 0) rotate(-8deg); } 50% { transform: translate3d(12px, 15px, 0) rotate(8deg); } }
.hero-layout { position: relative; z-index: 2; display: grid; min-height: auto; grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.78fr); align-items: start; gap: clamp(34px, 6vw, 82px); padding-block: clamp(58px, 7vw, 92px); }
.hero-copy { max-width: 650px; }
.hero-copy > * { animation: hero-arrive 680ms cubic-bezier(.2,.7,.2,1) both; }
.hero-copy > :nth-child(2) { animation-delay: 70ms; }
.hero-copy > :nth-child(3) { animation-delay: 140ms; }
.hero-copy > :nth-child(4) { animation-delay: 210ms; }
.hero-copy > :nth-child(5) { animation-delay: 280ms; }
.lead-disclosure[open] > .lead-card { animation: hero-arrive 520ms cubic-bezier(.2,.7,.2,1) both; }
@keyframes hero-arrive { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
.hero-copy .eyebrow { margin-bottom: 25px; }
.hero-lead { max-width: 560px; margin: 24px 0 27px; color: rgba(255,255,255,0.83); font-size: clamp(1.02rem, 1.4vw, 1.16rem); line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-benefits { display: flex; flex-wrap: wrap; gap: 12px 22px; margin: 35px 0 0; padding: 0; color: rgba(255,255,255,0.78); font-size: 0.82rem; list-style: none; }
.hero-benefits li { display: inline-flex; align-items: center; gap: 7px; }
.hero-benefits li span { color: #cdd8c5; font-size: 1.05rem; }

.lead-disclosure { width: 100%; max-width: 440px; justify-self: end; align-self: start; scroll-margin-top: 100px; }
.lead-disclosure-summary { display: flex; min-height: 122px; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid rgba(255,255,255,0.58); border-radius: var(--radius-lg); padding: 22px 24px; color: var(--ink); background: rgba(255,254,251,0.97); box-shadow: 0 24px 64px rgba(12,21,11,0.25); cursor: pointer; list-style: none; transition: transform 220ms ease, box-shadow 220ms ease, border-radius 220ms ease; }
.lead-disclosure-summary::-webkit-details-marker { display: none; }
.lead-disclosure-summary:hover { transform: translateY(-2px); box-shadow: 0 28px 68px rgba(12,21,11,0.31); }
.lead-disclosure-summary:focus-visible { outline: 3px solid #cdd8c5; outline-offset: 5px; }
.lead-disclosure-copy { display: grid; gap: 5px; }
.lead-disclosure-copy .form-kicker { font-size: 0.68rem; }
.lead-disclosure-title { font-family: var(--serif); font-size: clamp(1.5rem, 2vw, 1.85rem); font-weight: 600; letter-spacing: -0.025em; line-height: 1.08; }
.lead-disclosure-note { color: var(--muted); font-size: 0.79rem; line-height: 1.4; }
.lead-disclosure-toggle { display: grid; width: 40px; height: 40px; flex: none; place-items: center; border: 1px solid rgba(74,103,65,0.25); border-radius: 50%; color: var(--zelo); font-size: 1.5rem; line-height: 1; transition: color 180ms ease, background-color 180ms ease, transform 220ms ease; }
.lead-disclosure-toggle::before { content: "+"; }
.lead-disclosure[open] > .lead-disclosure-summary { margin-bottom: 12px; border-radius: 20px; }
.lead-disclosure[open] .lead-disclosure-toggle { color: var(--paper); background: var(--zelo); transform: rotate(45deg); }
.lead-disclosure[open] .lead-disclosure-toggle::before { content: "+"; }

.lead-card {
  width: 100%;
  max-width: 440px;
  justify-self: end;
  border: 1px solid rgba(255,255,255,0.55);
  border-radius: var(--radius-lg);
  padding: clamp(22px, 3vw, 32px);
  color: var(--ink);
  background: rgba(255,254,251,0.97);
  box-shadow: 0 24px 64px rgba(12,21,11,0.25);
}
.form-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.form-kicker { color: var(--zelo); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
.form-time { border-radius: 999px; padding: 4px 9px; color: var(--muted); background: #edf0e8; font-size: 0.72rem; }
.lead-card h2 { font-size: clamp(2.15rem, 3vw, 2.8rem); line-height: 0.98; }
.form-intro { margin: 11px 0 20px; color: var(--muted); font-size: 0.91rem; line-height: 1.5; }
.form-field { min-width: 0; margin: 0 0 15px; padding: 0; border: 0; }
.form-field > label, .form-field > legend { display: block; margin-bottom: 6px; color: var(--ink); font-size: 0.87rem; font-weight: 600; }
.form-field select, .form-field input[type="text"], .form-field input[type="tel"], .form-field input[type="email"], .form-field input[type="date"] {
  width: 100%;
  min-height: 46px;
  border: 1px solid #b8bfae;
  border-radius: 11px;
  padding: 10px 12px;
  color: var(--ink);
  background: var(--cream);
  font-size: 0.91rem;
}
.form-field input[type="date"] { display: block; min-width: 0; max-width: 100%; box-sizing: border-box; }
/* iOS WebKit adds date-control padding outside a 100% width. Keep the
   padding inside its segmented value instead of on the native control. */
@supports (-webkit-touch-callout: none) {
  .form-field input[type="date"] { padding-inline: 0; }
  .form-field input[type="date"]::-webkit-datetime-edit { padding-inline-start: 12px; }
}
.form-field select:focus-visible, .form-field input[type="text"]:focus-visible, .form-field input[type="tel"]:focus-visible, .form-field input[type="email"]:focus-visible, .form-field input[type="date"]:focus-visible { outline: 3px solid rgba(74,103,65,0.35); outline-offset: 2px; }
.form-field small { display: block; margin-top: 5px; color: var(--muted); font-size: 0.72rem; line-height: 1.4; }
.interest-field { margin-bottom: 17px; }
.interest-options { display: flex; flex-wrap: wrap; gap: 7px; }
.choice { position: relative; cursor: pointer; }
.choice input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; clip-path: inset(50%); }
.choice span { display: block; border: 1px solid #b8bfae; border-radius: 999px; padding: 8px 11px; color: var(--muted); background: var(--paper); font-size: 0.77rem; line-height: 1.2; transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease, transform 150ms ease; }
.choice:hover span { transform: translateY(-1px); border-color: var(--zelo); }
.choice input:checked + span { border-color: var(--zelo); color: var(--paper); background: var(--zelo); }
.choice input:focus-visible + span { outline: 3px solid #b4cf9e; outline-offset: 3px; }
.form-submit { width: 100%; min-height: 50px; border: 0; }
.form-note { margin: 11px 0 0; color: var(--muted); font-size: 0.72rem; line-height: 1.45; text-align: center; }
.optional-label { color: var(--muted); font-size: .76em; font-weight: 400; }
.honeypot { position: absolute!important; width: 1px!important; height: 1px!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; clip-path: inset(50%)!important; }
.consent-choice { display: flex; align-items: flex-start; gap: 9px; margin: 0 0 15px; color: var(--muted); font-size: .75rem; line-height: 1.45; cursor: pointer; }
.consent-choice input { width: 16px; height: 16px; flex: none; margin: 1px 0 0; accent-color: var(--zelo); }
.consent-choice input:focus-visible { outline: 3px solid rgba(74,103,65,.35); outline-offset: 2px; }
.form-note a { color: var(--zelo); text-underline-offset: 2px; }
.form-submit:disabled { opacity: .68; cursor: wait; }
.form-error { margin: 0 0 10px; color: #8c3f32; font-size: .82rem; line-height: 1.4; text-align: center; }
.form-fallback { width: 100%; justify-content: center; margin: 0 0 10px; text-align: center; }
.lead-success { align-self: center; border: 1px solid rgba(47,66,41,.13); border-radius: 18px; padding: clamp(24px,4vw,38px); color: var(--ink); background: rgba(255,254,251,.97); box-shadow: 0 24px 64px rgba(12,21,11,.25); }
.lead-success { max-width: 440px; }
.lead-success[hidden] { display: none; }
.success-mark { display: grid; width: 39px; height: 39px; place-items: center; border-radius: 50%; color: var(--paper); background: var(--zelo); font-size: 1.25rem; }
.lead-success h2 { margin: 13px 0 10px; font-size: clamp(1.8rem,3vw,2.4rem); line-height: 1; }
.lead-success>p:not(.form-kicker) { max-width: 380px; color: var(--muted); font-size: .91rem; line-height: 1.55; }
.success-whatsapp { display: inline-flex; margin-top: 8px; }
.success-new-request { display: block; margin: 12px auto 0; border: 0; padding: 6px; color: var(--zelo); background: transparent; cursor: pointer; }

html.motion-ready [data-reveal] { opacity: 0; transform: translateY(20px); transition: opacity 650ms cubic-bezier(.2,.7,.2,1), transform 650ms cubic-bezier(.2,.7,.2,1); }
html.motion-ready [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
.care-grid [data-reveal]:nth-child(2), .steps [data-reveal]:nth-child(2), .plan-grid [data-reveal]:nth-child(2) { transition-delay: 110ms; }
.care-grid [data-reveal]:nth-child(3), .steps [data-reveal]:nth-child(3), .plan-grid [data-reveal]:nth-child(3) { transition-delay: 210ms; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .hero h1 em { display: inline-block; transition: transform 220ms ease; }
  .hero h1:hover em { transform: translateX(4px); }
}

.benefit-band { border-bottom: 1px solid rgba(47,66,41,0.1); background: var(--cream); }
.benefit-inner { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; padding-block: 24px; }
.benefit-inner p { display: flex; align-items: center; gap: 13px; margin: 0; color: var(--muted); font-size: 0.9rem; }
.benefit-mark { color: var(--zelo); font-family: var(--serif); font-size: 1.5rem; font-weight: 600; }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; }
.section-heading h2 { max-width: 720px; }
.section-lead { max-width: 380px; margin: 0 0 5px; color: var(--muted); font-size: 1.02rem; line-height: 1.7; }
.care-section { background: var(--cream); }
.care-heading { margin-bottom: 42px; }
.care-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); align-items: start; gap: 24px; }
.care-card { overflow: hidden; border: 1px solid rgba(47,66,41,0.08); border-radius: var(--radius-lg); background: var(--paper); box-shadow: 0 12px 35px rgba(31,42,28,0.045); }
.care-card { transition: transform 260ms ease, box-shadow 260ms ease; }
.care-card:hover { transform: translateY(-5px); box-shadow: 0 20px 46px rgba(31,42,28,0.11); }
.care-card-offset { margin-top: 32px; }
.care-image-wrap { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: var(--sand); }
.care-image-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform 400ms ease; }
.care-card:hover .care-image-wrap img { transform: scale(1.035); }
.care-number { position: absolute; top: 14px; left: 14px; display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid rgba(255,255,255,0.6); border-radius: 50%; color: var(--paper); background: rgba(47,66,41,0.75); font-size: 0.73rem; }
.care-card-content { padding: 23px 24px 25px; }
.care-card-content .eyebrow { margin-bottom: 7px; font-size: 0.66rem; }
.care-card-content h3 { margin-bottom: 9px; font-size: 1.7rem; }
.care-card-content > p:last-child { margin: 0; color: var(--muted); font-size: 0.91rem; line-height: 1.65; }
.care-card-content .care-plan { display: inline-flex; margin: 15px 0 0; border-radius: 999px; padding: 6px 10px; color: var(--forest); background: #edf1e8; font-size: .7rem; font-weight: 600; line-height: 1.35; }
.care-carousel-controls { display: none; }
.image-disclaimer { margin: 20px 0 0; color: var(--muted); font-size: 0.78rem; text-align: right; }

.process-section { background: var(--sand); }
.process-heading { margin-bottom: 44px; }
.steps { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.step { min-height: 205px; border-top: 2px solid rgba(74,103,65,0.6); padding: 20px 15px 0 0; }
.step-index { display: inline-block; margin-bottom: 20px; color: var(--zelo); font-family: var(--serif); font-size: 2.3rem; line-height: 1; }
.step h3 { max-width: 290px; font-size: 1.75rem; }
.step p { max-width: 330px; margin: 0; color: var(--muted); font-size: 0.96rem; line-height: 1.65; }
.process-section .text-link { margin-top: 34px; }

.plans-section { background: #e9e8dc; }
.plans-heading { margin-bottom: 43px; }
.plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); align-items: stretch; gap: 20px; }
.plan-card { position: relative; display: flex; min-width: 0; flex-direction: column; border: 1px solid rgba(47,66,41,0.1); border-radius: var(--radius-lg); padding: 27px 25px 25px; background: var(--paper); box-shadow: 0 14px 38px rgba(31,42,28,0.045); }
.plan-card { transition: transform 240ms ease, box-shadow 240ms ease; }
.plan-card:hover { transform: translateY(-4px); box-shadow: 0 20px 46px rgba(31,42,28,0.12); }
.plan-card-featured { border: 2px solid var(--zelo); box-shadow: 0 18px 45px rgba(47,66,41,0.14); }
.featured-tag { position: absolute; top: -14px; right: 24px; border-radius: 999px; padding: 5px 13px; color: var(--forest); background: var(--sage); font-size: 0.67rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.plan-topline { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 15px; }
.plan-index { color: var(--zelo); font-family: var(--serif); font-size: 1.45rem; }
.plan-label { border-radius: 999px; padding: 5px 10px; color: var(--muted); background: #f0f1eb; font-size: 0.68rem; font-weight: 600; }
.plan-card h3 { min-height: 1.1em; margin: 0; font-size: clamp(1.8rem, 2.35vw, 2.35rem); }
.plan-price { display: flex; align-items: baseline; gap: 2px; margin: 17px 0 0; color: var(--forest); font-family: var(--serif); font-size: clamp(2.75rem, 4vw, 3.7rem); font-weight: 600; letter-spacing: -0.04em; line-height: 1; white-space: nowrap; }
.currency { align-self: flex-start; margin: 8px 4px 0 0; font-family: var(--sans); font-size: 0.84rem; font-weight: 500; letter-spacing: 0; }
.period { margin-left: 4px; color: var(--muted); font-family: var(--sans); font-size: 0.79rem; font-weight: 400; letter-spacing: 0; }
.plan-frequency { margin: 13px 0 0; font-weight: 600; }
.plan-rhythm { min-height: 46px; margin: 2px 0 0; color: var(--muted); font-size: 0.83rem; line-height: 1.45; }
.plan-divider { height: 1px; margin: 18px 0 14px; background: var(--line); }
.included-label { min-height: 1.4em; margin: 0 0 8px; color: var(--muted); font-size: 0.75rem; font-weight: 600; }
.plan-list { display: grid; gap: 8px; margin: 0 0 22px; padding: 0; list-style: none; }
.plan-list li { position: relative; padding-left: 23px; font-size: 0.91rem; line-height: 1.5; }
.plan-list li::before { position: absolute; top: 0; left: 0; color: var(--zelo); content: "✓"; font-weight: 700; }
.qualifier { color: var(--muted); font-size: 0.8rem; }
.plan-cta { width: 100%; margin-top: auto; }
.flex-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 22px; margin-top: 22px; border: 1px solid rgba(47,66,41,0.18); border-radius: var(--radius-lg); padding: 26px 30px; background: rgba(255,254,251,0.7); }
.flex-icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 50%; color: var(--paper); background: var(--zelo); font-family: var(--serif); font-size: 2rem; }
.flex-copy .eyebrow { margin-bottom: 3px; font-size: 0.66rem; }
.flex-copy h3 { margin-bottom: 4px; font-size: 1.9rem; }
.flex-copy > p:last-child { max-width: 680px; margin: 0; color: var(--muted); font-size: 0.9rem; }
.pricing-note { max-width: 820px; margin: 17px 0 0; color: var(--muted); font-size: 0.79rem; line-height: 1.55; }

.about-section { color: var(--paper); background: var(--forest); }
.about-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(260px,0.75fr); align-items: center; gap: clamp(44px, 9vw, 130px); }
.about-copy h2 { margin-bottom: 24px; }
.about-copy > p:not(.eyebrow) { max-width: 620px; margin: 0 0 15px; color: rgba(255,255,255,0.8); font-size: 1rem; line-height: 1.8; }
.about-copy strong { color: var(--paper); font-weight: 600; }
.service-area { display: flex; align-items: center; gap: 9px; margin-top: 25px; color: #dbe3d4; font-size: 0.86rem; }
.service-area span { color: #b7c9a9; font-size: 1.35rem; }
.about-brand-panel { display: flex; min-height: 280px; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,0.23); border-radius: 50% 50% 46% 46% / 44% 44% 56% 56%; padding: 40px; text-align: center; background: radial-gradient(ellipse at 50% 45%, rgba(255,255,255,0.09), transparent 68%); }
.about-brand-panel img { width: 116px; height: 90px; object-fit: contain; }
.about-brand-panel p { margin: 13px 0 4px; font-family: var(--serif); font-size: 1.75rem; font-style: italic; }
.about-brand-panel span { max-width: 220px; color: rgba(255,255,255,0.67); font-size: 0.78rem; }

.faq-section { background: var(--cream); }
.faq-layout { display: grid; grid-template-columns: minmax(240px,0.72fr) minmax(0,1.28fr); align-items: start; gap: clamp(42px, 8vw, 110px); }
.faq-intro h2 { margin-bottom: 18px; }
.faq-intro > p:not(.eyebrow) { max-width: 350px; color: var(--muted); font-size: 0.98rem; line-height: 1.7; }
.faq-intro .text-link { margin-top: 8px; }
.faq-list details { border-bottom: 1px solid rgba(47,66,41,0.18); }
.faq-list details:first-child { border-top: 1px solid rgba(47,66,41,0.18); }
.faq-list summary { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 68px; padding: 17px 4px; color: var(--ink); font-family: var(--serif); font-size: 1.42rem; font-weight: 600; line-height: 1.15; list-style: none; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { flex: 0 0 auto; color: var(--zelo); content: "+"; font-family: var(--sans); font-size: 1.35rem; font-weight: 400; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 700px; margin: -1px 35px 20px 4px; color: var(--muted); font-size: 0.92rem; line-height: 1.75; }

.final-cta { position: relative; overflow: hidden; color: var(--paper); background: var(--zelo); }
.final-cta::before, .final-cta::after { position: absolute; width: 390px; height: 390px; border: 1px solid rgba(255,255,255,0.14); border-radius: 50%; content: ""; pointer-events: none; }
.final-cta::before { top: -230px; left: -80px; }
.final-cta::after { right: -140px; bottom: -270px; width: 520px; height: 520px; }
.final-content { position: relative; z-index: 1; padding-block: clamp(70px, 9vw, 120px); text-align: center; }
.final-content h2 { margin-bottom: 19px; font-size: clamp(3.2rem, 6vw, 5.4rem); }
.final-content > p:not(.eyebrow) { margin-bottom: 24px; color: rgba(255,255,255,0.82); font-size: 1rem; }
.final-content .button { min-width: 220px; }

.site-footer { padding: 44px 0 24px; color: rgba(255,255,255,0.76); background: #24341f; }
.footer-main { display: flex; align-items: flex-start; justify-content: space-between; gap: 36px; padding-bottom: 32px; }
.footer-brand img { width: 90px; height: 69px; object-fit: contain; }
.footer-brand p { margin: 14px 0 0; font-size: 0.8rem; line-height: 1.6; }
.footer-contact { display: grid; grid-template-columns: repeat(3, minmax(150px,1fr)); gap: 24px; }
.footer-contact > div { display: grid; align-content: start; gap: 5px; }
.footer-label { color: #cdd8c5; font-size: 0.69rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.footer-contact a { width: fit-content; color: var(--paper); font-size: 0.86rem; text-decoration: none; }
.footer-contact a:hover, .footer-bottom a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,0.16); padding-top: 18px; font-size: 0.73rem; }
.footer-bottom a { color: #dbe3d4; text-decoration: none; }
.floating-whatsapp { position: fixed; z-index: 20; right: 24px; bottom: 22px; display: inline-flex; min-height: 50px; align-items: center; gap: 9px; border: 1px solid rgba(255,255,255,0.5); border-radius: 999px; padding: 0 17px; color: #fff; background: #188b4c; box-shadow: 0 9px 28px rgba(20,45,27,0.24); font-size: 0.86rem; font-weight: 600; text-decoration: none; }
.floating-whatsapp:hover { background: #116b39; }
.mobile-cta { display: none; }

@media (max-width: 1050px) {
  .container { width: min(var(--container), calc(100% - 40px)); }
  .desktop-nav { gap: 17px; }
  .desktop-nav > a:not(.button) { font-size: 0.84rem; }
  .hero-layout { grid-template-columns: minmax(0,1fr) minmax(330px,0.86fr); gap: 34px; }
  .lead-disclosure { max-width: 650px; justify-self: start; }
  .plan-card { padding-inline: 20px; }
  .plan-price { font-size: clamp(2.45rem, 4vw, 3.1rem); }
}

@media (max-width: 900px) {
  :root { scroll-padding-top: 78px; }
  .header-inner { min-height: 70px; }
  .desktop-nav { display: none; }
  .menu-toggle { display: inline-flex; }
  .hero-layout { min-height: auto; grid-template-columns: 1fr; gap: 34px; padding-block: 58px 48px; }
  .hero-copy { max-width: 720px; }
  .lead-card { max-width: 650px; justify-self: start; }
  .benefit-inner { gap: 15px; }
  .benefit-inner p { align-items: flex-start; font-size: 0.81rem; }
  .care-grid { gap: 16px; }
  .care-card-content { padding: 19px 18px 22px; }
  .care-card-content h3 { font-size: 1.5rem; }
  .plan-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
  .plan-card-featured { grid-row: span 1; }
  .plan-card:last-child { grid-column: 1 / -1; }
  .plan-card:last-child .plan-list { min-height: 0; }
  .about-layout { gap: 50px; }
  .faq-layout { gap: 48px; }
  .footer-contact { grid-template-columns: repeat(2, minmax(150px,1fr)); }
  body { padding-bottom: calc(78px + env(safe-area-inset-bottom, 0px)); }
  .floating-whatsapp { display: none; }
  .mobile-cta { position: fixed; z-index: 40; right: 0; bottom: 0; left: 0; display: flex; gap: 9px; border-top: 1px solid rgba(47,66,41,0.14); padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px)); background: rgba(255,254,251,0.96); backdrop-filter: blur(12px); }
  .mobile-cta .button { min-width: 0; flex: 1; min-height: 46px; padding: 11px 8px; font-size: 0.84rem; white-space: nowrap; }
}

@media (max-width: 640px) {
  body { font-size: 16px; }
  :root { scroll-padding-top: calc(70px + env(safe-area-inset-top, 0px)); }
  .site-header { padding-top: env(safe-area-inset-top, 0px); }
  .container { width: calc(100% - 32px); }
  .section { padding-block: 58px; }
  .header-inner { min-height: 66px; gap: 12px; }
  .brand { width: 78px; }
  .brand img { height: 52px; }
  .menu-toggle { width: 44px; height: 44px; }
  .mobile-nav { padding: 8px 16px calc(18px + env(safe-area-inset-bottom, 0px)); }
  .mobile-nav a:not(.button) { min-height: 46px; padding-block: 12px; }
  .hero { background-position: calc(57% + var(--garden-shift-x, 0px)) calc(50% + var(--garden-shift-y, 0px)); }
  .hero-layout { gap: 24px; padding-block: 42px 28px; }
  .hero-copy .eyebrow { margin-bottom: 18px; font-size: 0.64rem; letter-spacing: 0.14em; }
  h1 { font-size: clamp(3.25rem, 15.5vw, 4.8rem); line-height: .92; }
  .hero-lead { max-width: 38rem; margin: 18px 0 20px; font-size: 0.96rem; line-height: 1.58; }
  .hero-actions { display: grid; grid-template-columns: 1fr; gap: 9px; }
  .hero-actions .button { width: 100%; min-height: 50px; padding: 12px 16px; font-size: 0.9rem; }
  .hero-benefits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 12px; margin-top: 19px; font-size: 0.76rem; line-height: 1.35; }
  .hero-benefits li { align-items: flex-start; }
  .hero-benefits li:last-child { grid-column: 1 / -1; }
  .lead-disclosure { width: 100%; scroll-margin-top: calc(82px + env(safe-area-inset-top, 0px)); }
  .lead-disclosure-summary { min-height: 104px; gap: 10px; border-radius: 20px; padding: 17px 15px; }
  .lead-disclosure-title { font-size: 1.42rem; line-height: 1.05; }
  .lead-disclosure-note { max-width: 225px; font-size: 0.74rem; line-height: 1.35; }
  .lead-disclosure-toggle { width: 36px; height: 36px; }
  .lead-card { width: 100%; border-radius: 20px; padding: 21px 17px calc(20px + env(safe-area-inset-bottom, 0px)); }
  .lead-card h2 { font-size: clamp(2rem, 9vw, 2.35rem); }
  .form-intro { font-size: 0.86rem; }
  .form-field { margin-bottom: 14px; }
  .form-field select, .form-field input[type="text"], .form-field input[type="tel"], .form-field input[type="email"], .form-field input[type="date"] { min-height: 50px; padding: 12px 13px; font-size: 16px; }
  .choice span { min-height: 40px; display: flex; align-items: center; padding: 9px 11px; font-size: 0.76rem; }
  .consent-choice { align-items: flex-start; }
  .consent-choice input { width: 20px; height: 20px; flex: none; margin-top: 2px; }
  .form-note { font-size: 0.7rem; }
  .form-submit { min-height: 52px; }
  .benefit-inner { grid-template-columns: 1fr; gap: 13px; padding-block: 20px; }
  .benefit-inner p { align-items: center; font-size: 0.86rem; }
  .section-heading { display: block; }
  .section-heading h2 { font-size: clamp(2.65rem, 12vw, 3.55rem); }
  .section-lead { margin-top: 17px; font-size: 0.94rem; }
  .care-heading { margin-bottom: 28px; }
  .care-section { --care-w: min(84vw, 720px); overflow-x: clip; }
  .care-grid { display: grid; width: 100vw; margin-inline: calc(50% - 50vw); grid-auto-flow: column; grid-auto-columns: var(--care-w); grid-template-columns: none; align-items: stretch; gap: 14px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; padding: 13px calc((100vw - var(--care-w)) / 2) 22px; scroll-padding-inline: calc((100vw - var(--care-w)) / 2); scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; }
  .care-grid::-webkit-scrollbar { display: none; width: 0; height: 0; }
  .care-card { position: relative; top: 0; scroll-snap-align: center; scroll-snap-stop: always; transition: transform 260ms ease, top 260ms ease; }
  .care-card.is-active { top: -11px; }
  .care-card-offset { top: 0; margin-top: 0; }
  .care-image-wrap { aspect-ratio: 16 / 10; }
  .care-card-content { padding: 18px 17px 20px; }
  .care-card-content .eyebrow { margin-bottom: 6px; font-size: 0.62rem; }
  .care-card-content h3 { margin-bottom: 8px; font-size: 1.55rem; line-height: 1.08; }
  .care-card-content > p:last-child { font-size: 0.88rem; line-height: 1.5; }
  .care-card-content .care-plan { margin-top: 12px; padding: 6px 9px; font-size: .73rem; }
  .care-carousel-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 3px; }
  .care-carousel-arrow { display: grid; width: 42px; height: 42px; flex: none; place-items: center; border: 1px solid rgba(47,66,41,.22); border-radius: 50%; color: var(--forest); background: var(--paper); font-size: 1.15rem; cursor: pointer; transition: color 180ms ease, background 180ms ease, transform 180ms ease; }
  .care-carousel-arrow:active { transform: scale(.94); }
  .care-carousel-arrow:disabled { opacity: .38; cursor: default; }
  .care-carousel-progress { display: flex; min-width: 0; flex: 1; flex-wrap: wrap; align-items: center; justify-content: center; gap: 5px 10px; text-align: center; }
  .care-carousel-count { color: var(--forest); font-size: .76rem; font-weight: 700; letter-spacing: .07em; }
  #care-carousel-current { color: var(--forest); font-weight: 700; }
  #care-carousel-total { color: var(--muted); font-weight: 500; }
  .care-carousel-hint { color: var(--muted); font-size: .72rem; }
  .care-carousel-dots { display: flex; flex-basis: 100%; justify-content: center; gap: 6px; }
  .care-carousel-dots button { width: 7px; height: 7px; border: 0; border-radius: 999px; padding: 0; background: #c9d0c2; cursor: pointer; transition: width 220ms ease, background 220ms ease; }
  .care-carousel-dots button[aria-current="true"] { width: 22px; background: var(--zelo); }
  .care-carousel-arrow:focus-visible, .care-carousel-dots button:focus-visible { outline: 3px solid #a2bd8e; outline-offset: 3px; }
  .care-carousel-toggle { display: grid; width: 42px; height: 42px; flex: none; place-items: center; border: 1px solid rgba(47,66,41,.22); border-radius: 50%; color: var(--forest); background: var(--paper); font-size: .9rem; cursor: pointer; }
  .care-carousel-toggle:focus-visible { outline: 3px solid #a2bd8e; outline-offset: 3px; }
  .care-carousel-toggle:hover, .care-carousel-arrow:not(:disabled):hover { color: #fff; background: var(--zelo); }
  .image-disclaimer { text-align: left; font-size: 0.73rem; }
  .process-heading { margin-bottom: 30px; }
  .steps { grid-template-columns: 1fr; gap: 22px; }
  .step { min-height: 0; padding-top: 15px; }
  .step-index { margin-bottom: 12px; font-size: 2rem; }
  .step h3 { margin-bottom: 7px; font-size: 1.65rem; }
  .process-section .text-link { margin-top: 28px; }
  .plans-heading { margin-bottom: 34px; }
  .plan-grid { grid-template-columns: 1fr; gap: 18px; }
  .plan-card:last-child { grid-column: auto; }
  .plan-card { border-radius: 22px; padding: 25px 22px 22px; }
  .plan-card h3 { font-size: 2rem; }
  .plan-price { font-size: 3.3rem; }
  .plan-rhythm { min-height: 0; }
  .featured-tag { right: 20px; }
  .flex-card { grid-template-columns: auto minmax(0,1fr); gap: 14px; padding: 22px 18px; }
  .flex-icon { width: 42px; height: 42px; font-size: 1.7rem; }
  .flex-copy h3 { font-size: 1.75rem; }
  .flex-copy > p:last-child { font-size: 0.84rem; }
  .flex-card > .button { grid-column: 1 / -1; width: 100%; }
  .pricing-note { font-size: 0.75rem; }
  .about-layout { grid-template-columns: 1fr; gap: 35px; }
  .about-copy h2 { font-size: 3.2rem; }
  .about-brand-panel { width: min(270px, 100%); min-height: 230px; justify-self: center; }
  .faq-layout { grid-template-columns: 1fr; gap: 31px; }
  .faq-intro h2 { font-size: 3rem; }
  .faq-intro > p:not(.eyebrow) { max-width: 470px; }
  .faq-list summary { min-height: 62px; font-size: 1.3rem; }
  .faq-list details p { margin-right: 6px; font-size: 0.88rem; }
  .final-content { padding-block: 70px; }
  .final-content h2 { font-size: 3.7rem; }
  .footer-main { display: block; padding-bottom: 25px; }
  .footer-brand { margin-bottom: 26px; }
  .footer-contact { grid-template-columns: 1fr; gap: 18px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; font-size: 0.69rem; }
  .mobile-cta { gap: 8px; padding: 9px 10px calc(9px + env(safe-area-inset-bottom, 0px)); }
  .mobile-cta .button { min-height: 46px; padding-inline: 5px; font-size: 0.75rem; }
}

@media (max-width: 390px) {
  .container { width: calc(100% - 28px); }
  .hero-layout { padding-top: 36px; }
  .hero-benefits { grid-template-columns: 1fr; gap: 7px; }
  .hero-benefits li:last-child { grid-column: auto; }
  .lead-disclosure-summary { padding-inline: 13px; }
  .lead-disclosure-title { font-size: 1.32rem; }
  .lead-card { padding-inline: 15px; }
  .mobile-cta .button { font-size: 0.69rem; }
  .care-grid { width: calc(100% + 28px); margin-inline: -14px; }
  .care-card-content { padding: 17px 15px 18px; }
  .care-card-content h3 { font-size: 1.45rem; }
  .care-carousel-hint { font-size: .68rem; }
}

@media (prefers-reduced-motion: reduce) {
  .care-grid { scroll-behavior: auto; }
  .care-carousel-arrow, .care-carousel-dots button, .care-carousel-toggle, .care-card { transition: none; }
}

@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
  html.motion-ready [data-reveal] { opacity: 1; transform: none; }
  .hero-leaf { display: none; }
}

/* =====================================================================
   APPLE HIG + VIDRO — camada de estilo sobre o site original (fontes
   originais Cormorant Garamond / Jost). Para desfazer: apague tudo daqui
   para baixo, ou volte ao arquivo styles.original.css.
   ===================================================================== */
:root {
  --radius-lg: 28px;
  --radius-md: 20px;
  --hairline: rgba(31, 42, 28, 0.1);
  --glass: rgba(255, 254, 251, 0.58);
  --glass-strong: rgba(255, 254, 251, 0.82);
  --glass-line: rgba(255, 255, 255, 0.7);
  --blur: saturate(170%) blur(22px);
  --soft-shadow: 0 1px 2px rgba(31,42,28,.04), 0 14px 36px rgba(31,42,28,.07);
  scroll-padding-top: 72px;
}

/* Fundo com manchas suaves de verde: é isso que o vidro "enxerga" */
body {
  background:
    radial-gradient(ellipse 720px 520px at 8% 24%, rgba(111,150,96,.22), transparent 70%),
    radial-gradient(ellipse 680px 560px at 94% 44%, rgba(180,207,158,.34), transparent 70%),
    radial-gradient(ellipse 760px 560px at 10% 68%, rgba(111,150,96,.18), transparent 70%),
    radial-gradient(ellipse 700px 520px at 90% 90%, rgba(180,207,158,.30), transparent 70%),
    var(--cream);
}
.care-section, .faq-section, .benefit-band { background: transparent; }
.plans-section { background: rgba(223, 231, 216, 0.38); }

/* Rótulos em texto normal, sem caixa-alta espaçada */
.eyebrow, .form-kicker, .footer-label, .featured-tag { text-transform: none; letter-spacing: 0.01em; }
.eyebrow { font-size: 0.88rem; font-weight: 600; }
.footer-label { font-size: 0.8rem; }
h1 em, h2 em { font-style: italic; }
.hero-lead { color: rgba(255,255,255,.88); }

/* Botões: 48px de toque, resposta ao pressionar */
.button { min-height: 48px; padding: 12px 26px; transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .15s ease; }
.button:hover { transform: none; }
.button:active { transform: scale(.97); }
.button-small { min-height: 36px; padding: 8px 18px; }
.button-outline-green { background: rgba(255,254,251,.35); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); }
.button-outline-green:hover { background: var(--zelo); }
.text-link { text-decoration: none; }
.text-link:hover { text-decoration: underline; text-underline-offset: 4px; }
:focus-visible { outline: 3px solid rgba(74,103,65,.55); outline-offset: 3px; border-radius: 8px; }

/* Cabeçalho e menu móvel: vidro */
.site-header { background: rgba(245,243,236,.55); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-bottom: 1px solid rgba(255,255,255,.55); }
.header-inner { min-height: 62px; }
.brand { width: 70px; }
.brand img { height: 48px; }
.desktop-nav > a:not(.button) { color: var(--ink); opacity: .78; }
.desktop-nav > a:not(.button):hover { opacity: 1; color: var(--ink); }
.desktop-nav > a:not(.button)::after { display: none; }
.menu-toggle { width: 44px; height: 44px; background: rgba(255,254,251,.4); border-color: var(--glass-line); }
.mobile-nav { background: rgba(245,243,236,.78); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); }
.mobile-nav a:not(.button) { padding: 14px 0; font-size: 1.05rem; }

/* Hero: sem folhas flutuando; formulário em vidro sobre a foto */
.hero-leaf { display: none; }
.hero-layout { padding-block: clamp(72px, 9vw, 120px); }
.button-outline-light { border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.06); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); }
.lead-disclosure-summary, .lead-card { background: var(--glass-strong); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-color: var(--glass-line); box-shadow: 0 30px 80px rgba(12,21,11,.3); }
.form-time { background: rgba(74,103,65,.1); color: var(--zelo); }
/* 16px+ evita o zoom automático do iOS ao focar no campo */
.form-field select, .form-field input[type="text"], .form-field input[type="tel"], .form-field input[type="email"], .form-field input[type="date"] {
  min-height: 48px; border: 1px solid var(--hairline); border-radius: 14px; padding: 12px 14px; font-size: 1rem; background: rgba(255,255,255,.55);
}
.form-field select:focus-visible, .form-field input:focus-visible { outline: 3px solid rgba(74,103,65,.4); outline-offset: 1px; }
.form-field small, .form-note { font-size: .8rem; }
.choice span { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 16px; border-color: var(--hairline); background: rgba(255,255,255,.55); font-size: .9rem; }
.choice:hover span { transform: none; }
.choice input:checked + span { background: var(--zelo); }
.form-submit { min-height: 52px; font-size: 1rem; }

/* Numerações decorativas saem; os passos (sequência real) ficam */
.benefit-mark, .care-number, .plan-index { display: none; }
.benefit-band { border-bottom: 1px solid var(--hairline); }

/* Cards em vidro: cantos amplos, sem "saltos" no hover */
.care-card, .plan-card, .step, .flex-card {
  background: var(--glass);
  -webkit-backdrop-filter: var(--blur);
  backdrop-filter: var(--blur);
  border: 1px solid var(--glass-line);
  box-shadow: var(--soft-shadow);
}
.care-card:hover, .plan-card:hover { transform: none; box-shadow: 0 2px 4px rgba(31,42,28,.05), 0 20px 48px rgba(31,42,28,.11); }
.care-card:hover .care-image-wrap img { transform: scale(1.03); }
.care-card-offset { margin-top: 0; }
.care-card-content .care-plan { background: rgba(74,103,65,.1); }
.care-carousel-arrow, .care-carousel-toggle { background: var(--glass); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-color: var(--glass-line); }

/* Como funciona: três cartões com número circular */
.step { min-height: 0; border-radius: var(--radius-lg); padding: 28px 26px 30px; }
.step-index { display: grid; width: 38px; height: 38px; place-items: center; margin-bottom: 18px; border-radius: 50%; color: #fff; background: var(--zelo); font-family: var(--sans); font-size: .95rem; font-weight: 600; }
.step h3, .step p { max-width: none; }

/* Planos */
.plan-card { padding: 32px 28px 28px; }
.plan-label { background: rgba(74,103,65,.09); color: var(--zelo); }
.featured-tag { font-weight: 600; background: rgba(219,233,211,.95); top: -14px; }
.plan-card-featured { border: 1px solid rgba(255,255,255,.25); color: #fff; background: rgba(47,66,41,.9); box-shadow: 0 30px 70px -24px rgba(47,66,41,.65); }
.plan-card-featured h3, .plan-card-featured .plan-price, .plan-card-featured .plan-frequency { color: #fff; }
.plan-card-featured .plan-rhythm, .plan-card-featured .included-label, .plan-card-featured .plan-list li, .plan-card-featured .period, .plan-card-featured .currency { color: rgba(255,255,255,.84); }
.plan-card-featured .plan-divider { background: rgba(255,255,255,.22); }
.plan-card-featured .plan-label { color: #fff; background: rgba(255,255,255,.16); }
.plan-card-featured .plan-list li::before { color: #b9d6ad; }

/* Sobre, FAQ, rodapé */
.about-brand-panel { border-radius: 36px; border-color: rgba(255,255,255,.2); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); }
.faq-list details { border-color: var(--hairline); }
.final-cta::before, .final-cta::after { border-color: rgba(255,255,255,.1); }
.floating-whatsapp { min-height: 48px; border-color: rgba(255,255,255,.4); }

@media (max-width: 640px) {
  .mobile-cta { background: rgba(245,243,236,.62); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); border-top: 1px solid rgba(255,255,255,.6); }
  .mobile-cta .button { min-height: 46px; }
  .mobile-cta .button-outline-green { background: rgba(255,254,251,.5); }
}

/* Acessibilidade: quem reduz transparência vê tudo opaco; navegadores sem blur também */
@media (prefers-reduced-transparency: reduce) {
  .site-header, .mobile-nav, .mobile-cta, .care-card, .plan-card, .step, .flex-card, .lead-disclosure-summary, .lead-card { background: var(--paper); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .plan-card-featured { background: var(--forest); }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .site-header, .mobile-nav, .mobile-cta { background: rgba(245,243,236,.96); }
  .care-card, .plan-card, .step, .flex-card { background: rgba(255,254,251,.92); }
  .plan-card-featured { background: var(--forest); }
}

/* =====================================================================
   ACABAMENTO APPLE — detalhes que dão qualidade percebida
   ===================================================================== */
html { -webkit-text-size-adjust: 100%; text-rendering: optimizeLegibility; }
body { font-feature-settings: "kern", "liga"; -webkit-tap-highlight-color: transparent; }
::selection { background: rgba(74,103,65,.25); color: inherit; }
input, select, textarea { accent-color: var(--zelo); caret-color: var(--zelo); }
a, button, summary, .choice { touch-action: manipulation; }
h1, h2, h3, .hero-lead, .section-lead { text-wrap: balance; }
p, li, summary { text-wrap: pretty; }
.plan-price, .care-carousel-count { font-variant-numeric: lining-nums tabular-nums; }

/* Respeita as áreas seguras do iPhone em modo paisagem */
.container { width: min(var(--container), calc(100% - 48px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))); }

/* Entrada suave ao rolar (curva "mola", com leve desfoque) */
html.motion-ready [data-reveal] {
  opacity: 0; transform: translateY(28px) scale(.985); filter: blur(6px);
  transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1), filter .9s cubic-bezier(.16,1,.3,1);
}
html.motion-ready [data-reveal].is-visible { opacity: 1; transform: none; filter: none; }

/* Hero com base arredondada e itens em cápsulas de vidro */
.hero { border-radius: 0 0 44px 44px; }
.hero-benefits { gap: 10px; }
.hero-benefits li { padding: 8px 14px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: rgba(255,255,255,.1); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); font-size: .85rem; }
.hero h1 { text-shadow: 0 2px 30px rgba(12,21,11,.25); }

/* Blocos escuros viram "cartões" grandes, no estilo Apple */
.about-section, .final-cta { margin-inline: clamp(12px, 2vw, 28px); border-radius: 40px; }
.about-section { margin-top: clamp(8px, 2vw, 20px); }
.final-cta { margin-bottom: clamp(12px, 2vw, 28px); }
.site-footer { border-radius: 40px 40px 0 0; }
.service-area { display: inline-flex; padding: 9px 16px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: rgba(255,255,255,.08); }

/* Botões com profundidade sutil */
.button-green { background: linear-gradient(180deg, #55794b, #4a6741); box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 10px 22px -8px rgba(47,66,41,.55); }
.button-green:hover { background: linear-gradient(180deg, #3b5433, #2f4229); }
.button-sage { box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 8px 20px -10px rgba(12,21,11,.4); }
.floating-whatsapp { background: rgba(24,139,76,.9); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 12px 30px rgba(20,45,27,.3); }
.site-header { box-shadow: 0 1px 0 rgba(31,42,28,.04); }

/* Vidro com reflexo na borda superior (como o Liquid Glass) */
.care-card, .plan-card, .step, .flex-card { box-shadow: inset 0 1px 0 rgba(255,255,255,.9), var(--soft-shadow); }
.care-card:hover, .plan-card:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 2px 4px rgba(31,42,28,.05), 0 22px 50px rgba(31,42,28,.12); }
.plan-card-featured { box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 0 0 5px rgba(74,103,65,.12), 0 34px 70px -24px rgba(47,66,41,.7); }
.plan-card-featured:hover { box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 0 0 5px rgba(74,103,65,.16), 0 40px 80px -24px rgba(47,66,41,.75); }

/* Serviços: foto "embutida" no cartão, com cantos internos arredondados */
.care-card { padding: 10px; }
.care-image-wrap { border-radius: 20px; }
.care-image-wrap::after { position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); background: linear-gradient(180deg, transparent 60%, rgba(12,21,11,.14)); content: ""; pointer-events: none; }
.care-card-content { padding: 20px 16px 16px; }

/* Formulário: seletor com seta própria, foco suave */
.form-field select {
  -webkit-appearance: none; appearance: none; padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%234a6741' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; background-size: 12px 8px;
}
.form-field select, .form-field input { transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
.form-field select:focus, .form-field input:focus { border-color: var(--zelo); box-shadow: 0 0 0 4px rgba(74,103,65,.16); background-color: rgba(255,255,255,.85); }
.consent-choice input { width: 20px; height: 20px; }

/* Perguntas: resposta aparece deslizando; ícone gira */
.faq-list details { border: 1px solid var(--glass-line); border-radius: 20px; margin-bottom: 10px; padding: 0 20px; background: var(--glass); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); box-shadow: inset 0 1px 0 rgba(255,255,255,.9), var(--soft-shadow); }
.faq-list details:first-child { border-top: 1px solid var(--glass-line); }
.faq-list summary { padding-inline: 0; }
.faq-list summary::after { transition: transform .3s cubic-bezier(.16,1,.3,1); }
.faq-list details[open] summary::after { content: "+"; transform: rotate(45deg); }
.faq-list details p { margin-inline: 0 28px; }
.faq-list details[open] p { animation: faq-open .4s cubic-bezier(.16,1,.3,1); }
@keyframes faq-open { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

@media (max-width: 640px) {
  .hero { border-radius: 0 0 32px 32px; }
  .about-section, .final-cta { border-radius: 30px; }
  .site-footer { border-radius: 30px 30px 0 0; }
  .care-card { padding: 8px; }
  .hero-benefits li { font-size: .8rem; }
}

@media (prefers-reduced-motion: reduce) {
  html.motion-ready [data-reveal] { opacity: 1; transform: none; filter: none; transition: none; }
  .faq-list details[open] p { animation: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .faq-list details, .hero-benefits li, .floating-whatsapp { -webkit-backdrop-filter: none; backdrop-filter: none; }
  .faq-list details { background: var(--paper); }
}

/* =====================================================================
   CARROSSEL DOS SERVIÇOS EM TODAS AS TELAS (celular já era carrossel).
   Um cartão por vez em destaque, avanço automático a cada 3 s (script.js).
   ===================================================================== */
@media (min-width: 641px) {
  .care-section { --care-w: clamp(560px, 72vw, 1000px); overflow-x: clip; }
  .care-grid {
    display: grid; width: 100vw; margin-inline: calc(50% - 50vw);
    grid-auto-flow: column; grid-auto-columns: var(--care-w); grid-template-columns: none;
    align-items: stretch; gap: 22px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain;
    /* o respiro lateral permite centralizar qualquer cartão, inclusive o primeiro e o último */
    padding: 28px calc((100vw - var(--care-w)) / 2) 30px;
    scroll-snap-type: x mandatory; scroll-padding-inline: calc((100vw - var(--care-w)) / 2);
    scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch;
  }
  .care-grid::-webkit-scrollbar { display: none; width: 0; height: 0; }
  .care-card { display: grid; grid-template-columns: 1.15fr .85fr; align-items: stretch; min-height: 350px; }
  .care-image-wrap { min-height: 350px; aspect-ratio: 3 / 2; }
  .care-card-content { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(24px, 4vw, 56px); }
  .care-card-content h3 { font-size: clamp(2rem, 3vw, 3rem); }
  .care-card-content > p:not(.eyebrow):not(.care-plan) { font-size: 1rem; }
  .care-card { position: relative; scroll-snap-align: center; scroll-snap-stop: always; }
  .care-card-offset { top: 0; margin-top: 0; }
  /* cartão ativo em destaque, os outros recuam */
  html.motion-ready .care-grid .care-card[data-reveal].is-visible:not(.is-active) { opacity: .55; transform: scale(.94); }
  html.motion-ready .care-grid .care-card[data-reveal].is-visible.is-active { opacity: 1; transform: translateY(-6px); box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 2px 4px rgba(31,42,28,.05), 0 26px 56px rgba(31,42,28,.16); }

  /* controles: setas, contador, pontos e pausa, em vidro */
  .care-carousel-controls { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 4px; }
  .care-carousel-progress { display: flex; min-width: 0; max-width: 460px; flex: 1; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 12px; text-align: center; }
  .care-carousel-arrow, .care-carousel-toggle { display: grid; width: 44px; height: 44px; flex: none; place-items: center; border: 1px solid var(--glass-line); border-radius: 50%; color: var(--forest); background: var(--glass); -webkit-backdrop-filter: var(--blur); backdrop-filter: var(--blur); box-shadow: inset 0 1px 0 rgba(255,255,255,.9), var(--soft-shadow); font-size: 1.1rem; cursor: pointer; transition: color .18s ease, background .18s ease, transform .18s ease; }
  .care-carousel-arrow:active, .care-carousel-toggle:active { transform: scale(.94); }
  .care-carousel-arrow:disabled { opacity: .38; cursor: default; }
  .care-carousel-arrow:not(:disabled):hover, .care-carousel-toggle:hover { color: #fff; background: var(--zelo); }
  .care-carousel-count { color: var(--forest); font-size: .85rem; font-weight: 700; }
  #care-carousel-current { color: var(--forest); font-weight: 700; }
  #care-carousel-total { color: var(--muted); font-weight: 500; }
  .care-carousel-hint { color: var(--muted); font-size: .8rem; }
  .care-carousel-dots { display: flex; flex-basis: 100%; justify-content: center; gap: 7px; }
  .care-carousel-dots button { width: 8px; height: 8px; border: 0; border-radius: 999px; padding: 0; background: rgba(47,66,41,.22); cursor: pointer; transition: width .3s cubic-bezier(.16,1,.3,1), background .2s ease; }
  .care-carousel-dots button[aria-current="true"] { width: 24px; background: var(--zelo); }
  .care-carousel-arrow:focus-visible, .care-carousel-dots button:focus-visible, .care-carousel-toggle:focus-visible { outline: 3px solid rgba(74,103,65,.55); outline-offset: 3px; }
  .image-disclaimer { text-align: center; }
}
@media (min-width: 901px) { .care-section { --care-w: clamp(640px, 72vw, 1000px); } }
@media (min-width: 1200px) { .care-section { --care-w: min(72vw, 1060px); } }
@media (prefers-reduced-motion: reduce) and (min-width: 641px) {
  html.motion-ready .care-grid .care-card[data-reveal].is-visible:not(.is-active) { transform: none; }
}

.plan-nav { display: none; }
@media (max-width: 700px) {
  .plans-section { --pw: clamp(268px, 74vw, 300px); }
  .plan-grid {
    position: relative; display: flex; align-items: stretch; gap: 14px;
    margin-inline: calc(50% - 50vw); padding: 26px calc(50vw - var(--pw) / 2) 22px;
    overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-snap-type: x mandatory;
    scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch;
  }
  .plan-grid::-webkit-scrollbar { display: none; width: 0; height: 0; }
  .plan-card {
    flex: 0 0 var(--pw); min-width: 0; scroll-snap-align: center; scroll-snap-stop: always;
    padding: 24px 20px 20px; border-radius: 24px;
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
  .plan-card:not(.plan-card-featured) { background: rgba(255,254,251,.92); }
  .plan-card:hover { transform: none; }
  .plan-card { padding: 22px 18px 18px; }
  .plan-card h3 { font-size: 1.45rem; }
  .plan-card .plan-price { font-size: 2.3rem; }
  .plan-card .plan-frequency { font-size: 1rem; }
  .plan-card .plan-rhythm { font-size: .92rem; }
  .plan-card .plan-divider { margin: 14px 0; }
  .plan-list li { padding-block: 4px; font-size: .92rem; line-height: 1.38; }
  .plan-card .plan-cta { min-height: 46px; }
  .plan-card-featured { box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 0 0 4px rgba(74,103,65,.12), 0 22px 44px -22px rgba(47,66,41,.7); }
  .plan-nav { display: grid; justify-items: center; gap: 3px; margin-top: 2px; }
  .plan-dots { display: flex; align-items: center; height: 30px; padding: 0; background: transparent; }
  .plan-dot { position: relative; width: 22px; height: 30px; padding: 0; border: 0; background: transparent; cursor: pointer; transition: width .35s cubic-bezier(.16,1,.3,1); }
  .plan-dot::after { content: ""; position: absolute; left: 50%; top: 50%; width: 5px; height: 5px; margin: -2.5px 0 0 -2.5px; border-radius: 999px; background: rgba(31,42,28,.28); transition: width .28s ease, margin .28s ease, background .28s ease; }
  .plan-dot[aria-current="true"] { width: 30px; }
  .plan-dot[aria-current="true"]::after { width: 18px; height: 5px; margin: -2.5px 0 0 -9px; background: var(--zelo); }
  .plan-dot:focus-visible { outline: 2px solid var(--zelo); border-radius: 999px; }
  .plan-swipe { margin: 0; color: var(--muted); font-size: .82rem; }
}
@media (prefers-reduced-motion: reduce) { .plan-dot { transition: none; } }

/* =====================================================================
   PLANOS EM VIDRO — design próprio da Zelo
   • fundo com manchas de verde e uma folha grande, que o vidro "enxerga"
   • borda de luz em degradê + reflexo no topo
   • medidor de visitas em folhas (2, 3 ou 4 de 4) e folha-marca d'água
   ===================================================================== */
.plans-section { position: relative; overflow: hidden; isolation: isolate; }
.plans-section::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(300px 300px at 10% 34%, rgba(74,103,65,.42), transparent 70%),
    radial-gradient(340px 340px at 92% 60%, rgba(168,203,142,.75), transparent 70%),
    radial-gradient(260px 260px at 48% 92%, rgba(243,231,170,.6), transparent 70%);
}
.plans-section::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none; right: -120px; top: 34%; width: 560px; height: 560px; opacity: .1; transform: rotate(18deg);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4.2C11.4 4.2 5 8.8 5 16.6c0 1.1.1 2.1.4 3.2C13.6 19.8 20 14 20 4.2Z' fill='%234a6741'/%3E%3C/svg%3E") center / contain no-repeat;
}
.plan-card {
  overflow: visible;
  background: linear-gradient(155deg, rgba(255,255,255,.76), rgba(255,255,255,.34));
  -webkit-backdrop-filter: blur(18px) saturate(165%); backdrop-filter: blur(18px) saturate(165%);
  border-color: transparent;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.95), 0 22px 44px -22px rgba(31,42,28,.3);
}
.plan-card::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(150deg, rgba(255,255,255,.98), rgba(255,255,255,.2) 38%, rgba(74,103,65,.34));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.plan-card > *:not(.leafmark) { position: relative; z-index: 1; }
.plan-card .featured-tag { position: absolute; }
.leafmark { position: absolute; inset: 0; z-index: 0; border-radius: inherit; overflow: hidden; pointer-events: none; }
.leafmark svg { position: absolute; right: -38px; bottom: -44px; width: 190px; height: 190px; color: rgba(74,103,65,.09); transform: rotate(-14deg); }
.plan-card-featured {
  background: linear-gradient(160deg, rgba(74,103,65,.95), rgba(31,48,32,.92));
  -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 0 0 5px rgba(74,103,65,.14), 0 30px 60px -24px rgba(31,48,32,.75);
}
.plan-card-featured::before { background: linear-gradient(150deg, rgba(255,255,255,.55), rgba(255,255,255,.06) 40%, rgba(185,214,173,.4)); }
.plan-card-featured .leafmark svg { color: rgba(255,255,255,.08); }
.plan-card .plan-label { background: rgba(255,255,255,.55); box-shadow: inset 0 0 0 1px rgba(74,103,65,.14); }
.plan-card-featured .plan-label { background: rgba(255,255,255,.16); box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); }
.plan-card .plan-divider { background: linear-gradient(90deg, rgba(74,103,65,.28), rgba(74,103,65,0)); height: 1px; }
.plan-card-featured .plan-divider { background: linear-gradient(90deg, rgba(255,255,255,.4), rgba(255,255,255,0)); }
/* medidor de visitas: folhas cheias = visitas por mês (de 4) */
.plan-frequency { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.visits { display: inline-flex; gap: 3px; flex: none; }
.visits svg { width: 17px; height: 17px; color: rgba(74,103,65,.2); }
.visits svg.on { color: var(--zelo); filter: drop-shadow(0 2px 3px rgba(74,103,65,.3)); }
.plan-card-featured .visits svg { color: rgba(255,255,255,.22); }
.plan-card-featured .visits svg.on { color: #cfe8bd; filter: drop-shadow(0 2px 4px rgba(0,0,0,.25)); }
.plan-card .plan-cta.button-outline-green { background: rgba(255,255,255,.5); }
@media (max-width: 700px) {
  .plan-card, .plan-card:not(.plan-card-featured) {
    background: linear-gradient(155deg, rgba(255,255,255,.78), rgba(255,255,255,.36));
    -webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%);
  }
  .plan-card.plan-card-featured { background: linear-gradient(160deg, rgba(74,103,65,.95), rgba(31,48,32,.92)); }
  .plans-section::after { width: 420px; height: 420px; right: -150px; top: 26%; }
}
@media (prefers-reduced-transparency: reduce) {
  .plan-card, .plan-card:not(.plan-card-featured) { background: var(--paper); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .plan-card.plan-card-featured { background: var(--forest); }
}

/* Calculadora de plano, privacidade e acessibilidade */
.calculator-section { background: linear-gradient(135deg, #f4f2e8, #e8eddf); }
.calculator-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr); align-items: center; gap: clamp(28px, 6vw, 84px); }
.calculator-copy h2 { max-width: 12ch; margin: 10px 0 16px; color: var(--forest); font: 600 clamp(2.3rem, 4vw, 4rem)/.98 'Cormorant Garamond', Georgia, serif; }
.calculator-copy > p:not(.eyebrow) { max-width: 48ch; color: var(--muted); line-height: 1.7; }
.calculator-note { display: inline-block; margin-top: 12px; color: var(--forest); font-size: .9rem; }
.calculator-card { padding: clamp(20px, 4vw, 36px); border: 1px solid rgba(47,66,41,.12); border-radius: 26px; background: rgba(255,254,251,.86); box-shadow: 0 22px 50px -30px rgba(31,42,28,.35); }
.calculator-services, .calculator-frequency { display: grid; gap: 10px; border: 0; padding: 0; }
.calculator-services legend, .calculator-frequency legend { margin-bottom: 8px; font-weight: 600; }
.calculator-services label, .calculator-frequency label { display: flex; align-items: center; gap: 10px; min-height: 42px; color: var(--ink, #273128); }
.calculator-services input, .calculator-frequency input { width: 18px; height: 18px; accent-color: var(--zelo, #4a6741); }
.calculator-submit { width: 100%; margin-top: 8px; }
.calculator-error { color: #9c2f24; font-weight: 600; }
.calculator-result h3 { margin: 8px 0; color: var(--forest); font: 600 2rem/1.05 'Cormorant Garamond', Georgia, serif; }
.calculator-result > p { line-height: 1.6; }
.calculator-result-note { color: var(--muted); font-size: .92rem; }
.calculator-restart { display: block; margin: 14px auto 0; border: 0; background: transparent; color: var(--forest); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.emergency-note { margin: 18px 0 0; padding: 14px 18px; border-left: 3px solid #718a5e; background: rgba(74,103,65,.07); color: var(--forest); line-height: 1.55; }
.footer-legal { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px; }
.footer-legal a, .footer-legal button { color: inherit; font: inherit; }
.footer-legal button { padding: 0; border: 0; background: none; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cookie-banner { position: fixed; z-index: 80; right: 16px; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); display: grid; grid-template-columns: 1fr auto; gap: 18px 24px; width: min(680px, calc(100vw - 32px)); padding: 22px 54px 22px 24px; border: 1px solid rgba(47,66,41,.18); border-radius: 20px; background: rgba(255,254,250,.97); box-shadow: 0 20px 60px rgba(31,42,28,.24); color: #273128; }
.cookie-banner[hidden] { display: none; }
.cookie-copy h2 { margin: 4px 0; font: 600 1.55rem/1.1 'Cormorant Garamond', Georgia, serif; }
.cookie-copy p:last-child { margin: 6px 0 0; font-size: .9rem; line-height: 1.5; }
.cookie-copy a { color: var(--forest); }
.cookie-actions { display: flex; align-items: center; gap: 8px; }
.cookie-actions .button { min-height: 42px; padding-inline: 14px; }
.cookie-close { position: absolute; top: 9px; right: 11px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: transparent; color: inherit; font-size: 24px; cursor: pointer; }
.policy-page { min-height: 100vh; background: #f4f2e8; }
.policy-main { padding: clamp(44px, 8vw, 90px) 0; }
.policy-container { max-width: 900px; }
.policy-container > h1 { margin: 8px 0 14px; color: var(--forest); font: 600 clamp(2.7rem, 6vw, 4.8rem)/.98 'Cormorant Garamond', Georgia, serif; }
.policy-intro { max-width: 68ch; color: var(--muted); font-size: 1.1rem; line-height: 1.65; }
.policy-card { margin-top: 30px; padding: clamp(22px, 5vw, 44px); border: 1px solid rgba(47,66,41,.12); border-radius: 24px; background: #fffefa; }
.policy-card h2 { margin: 28px 0 8px; color: var(--forest); font: 600 1.75rem/1.1 'Cormorant Garamond', Georgia, serif; }
.policy-card h2:first-child { margin-top: 0; }
.policy-card p, .policy-card li { line-height: 1.7; }
.policy-card li + li { margin-top: 10px; }
.policy-card a { color: var(--forest); overflow-wrap: anywhere; }
.policy-footnote { color: var(--muted); font-size: .9rem; }
.policy-home { color: var(--forest); }
.policy-back { margin-top: 24px; }
@media (max-width: 760px) {
  .calculator-layout { grid-template-columns: 1fr; gap: 24px; }
  .calculator-copy h2 { max-width: 16ch; }
  .cookie-banner { grid-template-columns: 1fr; gap: 12px; padding: 20px 48px 18px 18px; }
  .cookie-actions { flex-wrap: wrap; }
  .footer-legal { gap: 12px 16px; }
}
@media (max-width: 420px) {
  .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .cookie-actions .button { padding-inline: 9px; font-size: .85rem; }
}

/* Barra nativa invisível em qualquer tamanho; o indicador ativo fica minimalista. */
.care-grid, .plan-grid { scrollbar-width: none !important; -ms-overflow-style: none; }
.care-grid::-webkit-scrollbar, .plan-grid::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; background: transparent; }
.care-carousel-dots button, .plan-dot { -webkit-appearance: none; appearance: none; }
.care-carousel-dots button[aria-current="true"], .plan-dot[aria-current="true"]::after { border-radius: 999px; }

/* Calculadora de planos: interface guiada, clara e alinhada à identidade da Zelo. */
.calculator-section {
  position: relative; isolation: isolate; overflow: hidden;
  background: linear-gradient(125deg, #f3f1e6 0%, #e7eddf 52%, #dfe8d8 100%);
}

/* Trilho de serviços: cartão central e prévia contínua do próximo, sem scrollbar nativa. */
.care-grid.is-carousel-ready {
  display: block;
  position: relative;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  overflow: hidden;
  padding: 28px 0 30px;
  touch-action: pan-y;
}
.care-track {
  display: flex;
  width: max-content;
  align-items: stretch;
  gap: 22px;
  will-change: transform;
}
.care-grid.is-carousel-ready .care-card {
  display: block;
  position: relative;
  top: auto;
  flex: 0 0 clamp(420px, 58vw, 760px);
  min-width: 0;
  margin: 0;
  scroll-snap-align: none;
}
.care-grid.is-carousel-ready .care-card-offset { margin-top: 0; }
.care-grid.is-carousel-ready .care-image-wrap { min-height: 0; aspect-ratio: 16 / 9; }
.care-grid.is-carousel-ready .care-card-content { display: block; padding: 20px 22px 23px; }
.care-grid.is-carousel-ready .care-card-content h3 { font-size: 1.55rem; }
.care-grid.is-carousel-ready .care-card-content > p:not(.eyebrow):not(.care-plan) { font-size: .91rem; }
.care-grid.is-carousel-ready .care-card.is-active { top: 0; }
@media (max-width: 640px) {
  .care-grid.is-carousel-ready { padding: 13px 0 22px; }
  .care-track { gap: 14px; }
  .care-grid.is-carousel-ready .care-card { flex-basis: min(84vw, 720px); }
  .care-grid.is-carousel-ready .care-image-wrap { aspect-ratio: 16 / 10; }
  .care-grid.is-carousel-ready .care-card-content { padding: 18px 17px 20px; }
  .care-grid.is-carousel-ready .care-card-content .eyebrow { margin-bottom: 6px; font-size: .62rem; }
  .care-grid.is-carousel-ready .care-card-content h3 { margin-bottom: 8px; font-size: 1.55rem; line-height: 1.08; }
  .care-grid.is-carousel-ready .care-card-content > p:last-child { font-size: .88rem; line-height: 1.5; }
  .care-grid.is-carousel-ready .care-card-content .care-plan { margin-top: 12px; padding: 6px 9px; font-size: .73rem; }
  .care-grid.is-carousel-ready .care-card.is-active { top: 0; }
}
@media (max-width: 390px) {
  .care-grid.is-carousel-ready .care-card-content { padding: 17px 15px 18px; }
  .care-grid.is-carousel-ready .care-card-content h3 { font-size: 1.45rem; }
}

/* A barra do sistema fica oculta; o traço discreto surge apenas durante a rolagem. */
html, body { scrollbar-width: none; -ms-overflow-style: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; width: 0; height: 0; }
.page-scroll-indicator {
  position: fixed;
  z-index: 9999;
  top: 0;
  right: 1px;
  bottom: 0;
  width: 7px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 180ms ease;
}
.page-scroll-indicator.is-visible { opacity: 1; }
.page-scroll-thumb {
  position: absolute;
  top: 0;
  right: 1px;
  width: 4px;
  min-height: 26px;
  border-radius: 999px;
  background: rgba(47,66,41,.54);
  box-shadow: 0 0 0 1px rgba(255,255,255,.28);
  will-change: transform, height;
}
@media (hover: hover) {
  .page-scroll-thumb { width: 3px; background: rgba(47,66,41,.4); }
  .page-scroll-indicator.is-visible:hover .page-scroll-thumb { width: 4px; background: var(--zelo); }
}
@media (prefers-reduced-motion: reduce) { .page-scroll-indicator { transition: none; } }
.calculator-section::before, .calculator-section::after { position: absolute; z-index: -1; pointer-events: none; content: ""; border-radius: 50%; filter: blur(2px); }
.calculator-section::before { width: 460px; height: 460px; top: -190px; left: -140px; background: radial-gradient(circle, rgba(177,197,153,.42), transparent 70%); }
.calculator-section::after { width: 520px; height: 520px; right: -220px; bottom: -240px; background: radial-gradient(circle, rgba(74,103,65,.2), transparent 68%); }
.calculator-layout { position: relative; grid-template-columns: minmax(0,.86fr) minmax(360px,1.14fr); gap: clamp(36px,7vw,104px); }
.calculator-copy .eyebrow { display: inline-flex; align-items: center; gap: 9px; }
.calculator-copy .eyebrow::before { width: 26px; height: 1px; background: var(--zelo); content: ""; }
.calculator-copy h2 { max-width: 10ch; font-size: clamp(2.7rem,5vw,5rem); letter-spacing: -.025em; }
.calculator-copy > p:not(.eyebrow) { max-width: 42ch; font-size: 1.02rem; }
.calculator-note { display: inline-flex; align-items: center; gap: 9px; margin-top: 18px; border: 1px solid rgba(47,66,41,.12); border-radius: 999px; padding: 9px 13px; background: rgba(255,255,255,.44); font-size: .82rem; }
.calculator-note::before { display: grid; width: 19px; height: 19px; place-items: center; border-radius: 50%; color: white; background: var(--zelo); content: "✓"; font-size: .72rem; }
.calculator-card { position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.72); border-radius: 30px; padding: clamp(22px,3.4vw,38px); background: linear-gradient(145deg,rgba(255,255,255,.88),rgba(255,255,255,.66)); -webkit-backdrop-filter: blur(20px) saturate(145%); backdrop-filter: blur(20px) saturate(145%); box-shadow: 0 28px 70px -38px rgba(31,42,28,.45), inset 0 1px 0 rgba(255,255,255,.9); }
.calculator-card::before { position: absolute; top: 0; right: 32px; left: 32px; height: 2px; border-radius: 0 0 999px 999px; background: linear-gradient(90deg,transparent,rgba(74,103,65,.65),transparent); content: ""; }
#plan-calculator .form-field { margin-bottom: 23px; }
#plan-calculator .form-field > label, #plan-calculator legend { margin-bottom: 10px; color: var(--forest); font-size: .9rem; font-weight: 700; letter-spacing: .01em; }
#calc-area { min-height: 54px; border: 1px solid rgba(47,66,41,.16); border-radius: 15px; background-color: rgba(255,255,255,.72); transition: border-color .2s, box-shadow .2s, background .2s; }
#calc-area:focus-visible { border-color: var(--zelo); outline: 0; background: white; box-shadow: 0 0 0 4px rgba(74,103,65,.12); }
.calculator-services { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.calculator-services legend { grid-column: 1 / -1; }
.calculator-services label, .calculator-frequency label { position: relative; min-height: 54px; border: 1px solid rgba(47,66,41,.12); border-radius: 14px; padding: 10px 12px; background: rgba(255,255,255,.52); font-size: .84rem; line-height: 1.35; cursor: pointer; transition: border-color .2s, background .2s, transform .2s, box-shadow .2s; }
.calculator-services label:hover, .calculator-frequency label:hover { transform: translateY(-1px); border-color: rgba(74,103,65,.42); background: rgba(255,255,255,.85); }
.calculator-services label:has(input:checked), .calculator-frequency label:has(input:checked) { border-color: rgba(74,103,65,.72); background: #edf3e7; box-shadow: inset 0 0 0 1px rgba(74,103,65,.16); }
.calculator-services label:focus-within, .calculator-frequency label:focus-within { outline: 3px solid rgba(74,103,65,.28); outline-offset: 2px; }
.calculator-services input, .calculator-frequency input { flex: none; margin: 0; accent-color: var(--zelo); }
.calculator-frequency { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.calculator-frequency legend { grid-column: 1 / -1; }
.calculator-frequency label { min-height: 48px; }
.calculator-submit { min-height: 54px; margin-top: 5px; border-radius: 15px; box-shadow: 0 9px 22px rgba(47,66,41,.17); transition: transform .2s, box-shadow .2s, filter .2s; }
.calculator-submit:hover { transform: translateY(-2px); filter: brightness(1.04); box-shadow: 0 14px 28px rgba(47,66,41,.22); }
.calculator-submit:active { transform: translateY(0) scale(.99); }
.calculator-error { border-left: 3px solid #9c2f24; border-radius: 0 8px 8px 0; padding: 8px 12px; background: rgba(156,47,36,.07); }
.calculator-result { border: 1px solid rgba(74,103,65,.2); border-radius: 22px; padding: clamp(20px,3vw,30px); background: linear-gradient(145deg,#f3f7ee,#e7efdf); }
.calculator-result h3 { font-size: clamp(2.1rem,4vw,3rem); }
.calculator-result .button { width: 100%; margin-top: 8px; border-radius: 14px; }
@media (max-width: 760px) {
  .calculator-layout { grid-template-columns: 1fr; gap: 24px; }
  .calculator-copy h2 { max-width: 13ch; }
  .calculator-card { border-radius: 24px; padding: 22px 17px; }
  .calculator-services { gap: 8px; }
  .calculator-services label, .calculator-frequency label { min-height: 52px; padding: 9px 10px; font-size: .8rem; }
}
@media (max-width: 390px) {
  .calculator-services { grid-template-columns: 1fr; }
  .calculator-services label { min-height: 46px; }
  .calculator-frequency { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .calculator-services label, .calculator-frequency label, .calculator-submit, #calc-area { transition: none; }
}
