/* =========================================================
   Homevie — Medicina Domiciliar
   Layout desenhado em 1920 px: 1rem = 16 px em 1920 px de largura.
   Entre 1200 e 1920 px tudo escala junto; abaixo de 1200 px o layout muda para tablet/celular.
   ========================================================= */

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/homevie/assets/fonts/PlusJakartaSans-Variable.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

:root {
  --navy: #172F3C;
  --navy-2: #003F4B;
  --ink: #00171B;
  --teal: #00CFC9;
  --teal-2: #00B4AF;
  --green: #17756A;
  --mint: #A0EAE6;
  --bg: #F4F4F4;
  --bg-2: #EFEFEF;
  --sage: #CBD1C3;
  --gray: #494949;
  --gray-2: #6C767B;
  --line: #D5D5D5;
  --red: #E20059;
  --ok: #1FD879;
  --font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { font-size: clamp(10px, 0.8333vw, 16px); scroll-behavior: smooth; scroll-padding-top: 6rem; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font); font-size: 1.5625rem; line-height: 1.2; color: var(--navy); background: var(--bg); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, p, ul, ol, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
button { font: inherit; color: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
[hidden] { display: none !important; }

.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--navy); color: #fff; padding: .75rem 1rem; border-radius: 4px; }
.skip-link:focus { top: 1rem; }

.wrap { width: 100rem; max-width: calc(100% - 3rem); margin-inline: auto; }

/* ---------- ícones (máscaras SVG herdam a cor do texto) ---------- */
.ico { display: inline-block; flex: none; width: 1em; height: 1em; background: currentColor; -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.ico--arrow { --i: url("/homevie/assets/icons/arrow-right.svg"); width: 1.6em; }
.ico--up-right { --i: url("/homevie/assets/icons/arrow-up-right.svg"); }
.ico--chevron { --i: url("/homevie/assets/icons/chevron-down.svg"); }
.ico--left { --i: url("/homevie/assets/icons/chevron-left.svg"); }
.ico--right { --i: url("/homevie/assets/icons/chevron-right.svg"); }
.ico--check { --i: url("/homevie/assets/icons/check.svg"); }
.ico--close { --i: url("/homevie/assets/icons/close.svg"); }
.ico--menu { --i: url("/homevie/assets/icons/menu.svg"); }
.ico--linkedin { --i: url("/homevie/assets/icons/linkedin.svg"); }
.ico--instagram { --i: url("/homevie/assets/icons/instagram.svg"); }

/* ---------- botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 1.1rem; min-height: 44px; padding: 1.5rem 2.6rem; background: var(--teal); color: #fff; font-weight: 700; font-size: max(15px, 1.25rem); letter-spacing: -.03em; line-height: 1; text-decoration: none; border: 0; border-radius: 0; transition: background-color .2s, color .2s, transform .2s; }
.btn:hover { background: var(--teal-2); }
.btn:active { transform: translateY(1px); }
.btn .ico { font-size: 1.1em; }
.btn--white { background: #fff; color: var(--green); }
.btn--white:hover { background: var(--mint); color: var(--navy-2); }
.btn--nav-mobile { display: none; }

/* ---------- cabeçalho ---------- */
.site-header { position: absolute; inset: 0 0 auto 0; z-index: 20; padding-top: 2.9rem; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.logo img { width: 24rem; height: auto; }
.main-nav { display: flex; gap: 3rem; margin-left: 12rem; margin-right: auto; }
.main-nav a:not(.btn) { color: #fff; font-size: max(14px, 1.25rem); text-decoration: none; padding: .5rem 0; position: relative; }
.main-nav a:not(.btn)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--mint); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.main-nav a:not(.btn):hover::after { transform: scaleX(1); }
.btn--header { padding: 1.5rem 2.2rem; }
.menu-toggle { display: none; }

/* ---------- hero ---------- */
.hero { position: relative; min-height: 61.75rem; color: #fff; background: var(--navy); isolation: isolate; overflow: hidden; }
.hero-media, .hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; z-index: -2; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,23,27,.62) 0%, rgba(0,23,27,.28) 48%, rgba(0,23,27,0) 72%), linear-gradient(0deg, rgba(23,47,60,.7) 0%, rgba(23,47,60,0) 22%); }
.hero-inner { padding-top: 16rem; padding-bottom: 7rem; }
.hero-eyebrow { max-width: 38rem; font-size: max(14px, 1.5625rem); line-height: 1.68; letter-spacing: .1em; text-transform: uppercase; }
.hero h1 { max-width: 49.25rem; margin-top: 2.25rem; font-size: clamp(32px, 3.75rem, 60px); font-size: max(32px, 3.75rem); line-height: 1.083; font-weight: 800; }
.hero h1 em { font-style: normal; color: var(--mint); }
.hero-line { display: block; width: 49.25rem; max-width: 100%; height: 2px; margin: 3.4rem 0 3.75rem; background: linear-gradient(90deg, var(--mint) 0 25%, rgba(255,255,255,.5) 25% 100%); }
.hero-text { max-width: 49.4rem; font-size: max(15px, 1.5625rem); line-height: 1.2; }

/* ---------- faixa de situações ---------- */
.strip { background: var(--teal); }
.strip-list { display: grid; grid-template-columns: repeat(5, 1fr); align-items: center; padding-block: 1.8rem; }
.strip-list li { display: flex; align-items: center; justify-content: center; gap: 1.5rem; min-height: 5.4rem; border-left: 2px solid var(--teal-2); }
.strip-list li:first-child { border-left: 0; }
.strip-list img { height: 3.8rem; width: auto; }
.strip-list li:first-child img { height: 3.8rem; }
.strip-list span { font-size: max(12px, 1.05rem); font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--navy); }

/* ---------- chamada ---------- */
.call { background: var(--navy); color: #fff; text-align: center; padding: 6.5rem 0 6.5rem; }
.call-inner { display: flex; flex-direction: column; align-items: center; }
.call-pre { max-width: 96rem; font-size: max(14px, 1.5625rem); line-height: 1.4; }
.call-pre strong { font-weight: 800; }
.call-title { max-width: 96rem; margin: 2.5rem 0 3.6rem; font-size: max(24px, 3.125rem); line-height: 1.14; font-weight: 400; }
.call-title strong { color: var(--mint); font-weight: 800; }

/* ---------- seções genéricas ---------- */
.section { padding: 8rem 0; }
.section--light { background: var(--bg-2); }
.section--gray { background: var(--bg); }
.eyebrow { font-size: max(11px, 1rem); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--navy); margin-bottom: 1.5rem; }
.eyebrow--light { color: #fff; }
.eyebrow--center { text-align: center; color: #fff; }
h2 { font-size: max(26px, 3.4375rem); line-height: 1.025; font-weight: 700; color: var(--navy); }
.green { color: var(--green); }
.teal { color: var(--teal); }
.mint { color: var(--mint); }
.body { font-size: max(15px, 1.375rem); line-height: 1.5; color: var(--navy); }
.diff .body, .versus .body { text-align: justify; }
.body + .body { margin-top: 1.4rem; }
.body strong { font-weight: 800; }
.lead { font-size: max(15px, 1.25rem); line-height: 1.5; text-align: justify; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 6rem; align-items: start; }

/* ---------- intro ---------- */
.intro { padding-top: 6.2rem; padding-bottom: 5rem; }
.intro h2 { max-width: 41rem; }
.lead--right { max-width: 41rem; justify-self: end; margin-top: 3.4rem; line-height: 1.5; }
.tags { display: flex; flex-wrap: wrap; gap: .9rem 2.4rem; margin: 3rem 0 3.4rem; font-size: max(11px, 1rem); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.tags li { display: flex; align-items: center; gap: 1.4rem; }
.tags li + li::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--teal); }
.video video { display: block; width: 100%; height: auto; aspect-ratio: 1600 / 625; object-fit: cover; background: var(--navy); border-radius: 4px; }
.video-ph { display: grid; place-items: center; aspect-ratio: 1600 / 625; background: var(--navy); color: #fff; font-size: max(18px, 3.125rem); font-weight: 600; letter-spacing: -.01em; }

/* ---------- diferencial ---------- */
.diff { padding-top: 3.5rem; padding-bottom: 4.9rem; }
.split--diff { grid-template-columns: 1fr 41rem; gap: 4rem; }
.diff h2 { max-width: 48rem; margin-bottom: 3.4rem; }
.diff .body { max-width: 49.25rem; }
.creds { display: grid; grid-template-columns: 1fr 1fr; margin-top: .6rem; }
.creds li { display: flex; align-items: center; min-height: 9.8rem; padding: 2rem 1.5rem 2rem 0; font-size: max(14px, 1.3rem); font-weight: 700; line-height: 1.18; color: var(--navy-2); }
.creds li:nth-child(-n+4) { border-bottom: 1px solid var(--line); }
.creds li:nth-child(odd) { border-right: 1px solid var(--line); }
.creds li:nth-child(even) { padding-left: 4.5rem; }

/* ---------- pronto-socorro x homevie ---------- */
.versus { padding-top: 4rem; padding-bottom: 0; }
.split--versus { grid-template-columns: 1fr 1fr; }
.versus h2 { max-width: 48rem; margin-bottom: 4rem; }
.versus .body { max-width: 49.25rem; }
.vs-cards { position: relative; min-height: 34rem; }
.vs-card { position: absolute; width: 24rem; color: #fff; }
.vs-head { display: flex; align-items: center; justify-content: space-between; height: 6.4rem; padding: 0 1.2rem 0 1.5rem; }
.vs-head h3 { font-size: max(15px, 1.875rem); font-weight: 500; }
.vs-badge { display: grid; place-items: center; width: 4.1rem; height: 4.1rem; font-size: 2.6rem; color: #fff; }
.vs-badge--no { background: var(--red); }
.vs-badge--yes { background: var(--ok); }
.vs-card ul { padding: 2.2rem 1.5rem 2.4rem; font-size: max(12px, 1.25rem); line-height: 1.5; }
.vs-card li::before { content: "→ "; }
.vs-card--ps { top: 0; left: 0; background: var(--gray-2); }
.vs-card--ps .vs-head { background: #6f7a80; }
.vs-card--ps ul { background: #6C767B; }
.vs-card--hv { top: 9.5rem; left: 18.4rem; color: var(--navy); }
.vs-card--hv .vs-head { background: var(--teal); color: #fff; }
.vs-card--hv ul { background: var(--mint); color: var(--navy); padding-bottom: 2.4rem; }

/* ---------- marquee ---------- */
.marquee { overflow: hidden; background: var(--teal); padding: 1.6rem 0; white-space: nowrap; }
.marquee-track { display: inline-flex; animation: marquee 38s linear infinite; }
.marquee-track span { padding-right: 3rem; font-size: max(12px, 1.0625rem); font-weight: 500; text-transform: uppercase; letter-spacing: .02em; color: var(--navy); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- serviços ---------- */
.services { padding-top: 4.4rem; }
.services h2 { max-width: 44.5rem; margin-bottom: 5rem; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.card { position: relative; aspect-ratio: 520 / 331; overflow: hidden; background: var(--navy); color: #fff; }
.card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease, filter .4s ease; }
.card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,23,27,.62) 0%, rgba(0,23,27,.34) 100%); transition: background .35s; }
.card .card-cor { opacity: 0; transition: transform .6s ease, opacity .5s ease; }
.card:hover img, .card:focus-within img { transform: scale(1.04); }
.card:hover .card-cor, .card:focus-within .card-cor { opacity: 1; }
.card:hover::after, .card:focus-within::after { background: linear-gradient(0deg, rgba(0,63,75,.88) 0%, rgba(0,63,75,.45) 55%, rgba(0,63,75,.2) 100%); }
.card-body { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 0 2.4rem 3rem; transition: transform .35s ease; }
.card h3 { font-size: max(16px, 1.875rem); line-height: 1.05; font-weight: 500; }
.card h3::after { content: ""; display: block; width: 2.4rem; height: 2px; margin-top: 1.2rem; background: #fff; }
.card p { max-height: 0; opacity: 0; overflow: hidden; margin-top: 0; font-size: max(12px, 1rem); line-height: 1.32; font-weight: 600; max-width: 24rem; transition: max-height .4s ease, opacity .3s ease, margin-top .3s ease; }
.card:hover p, .card:focus-within p { max-height: 8rem; opacity: 1; margin-top: 1.2rem; }
.card { outline-offset: -3px; }
@media (hover: none) { .card p { max-height: none; opacity: 1; margin-top: 1rem; } }
.complement { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 3.4rem; padding-top: 3rem; border-top: 1px solid var(--line); }
.complement h3 { color: var(--green); font-size: max(15px, 1.5rem); font-weight: 700; margin-bottom: 1rem; }
.complement p { font-size: max(13px, 1.25rem); line-height: 1.25; color: var(--gray); max-width: 27rem; }

/* ---------- desospitalização ---------- */
.desosp { padding-top: 6.65rem; padding-bottom: 4.7rem; }
.split--desosp { grid-template-columns: 1fr 45.8rem; padding-inline: 1.9rem; }
.desosp h2 { max-width: 37rem; margin-bottom: 3.4rem; }
.desosp .btn, .families .btn { padding: 1.2rem 2.2rem; font-size: max(14px, 1.25rem); }
.body-col .body { max-width: 44rem; margin-left: auto; font-size: max(15px, 1.25rem); line-height: 1.4; }
.desosp .body-col .body { margin-left: 0; max-width: none; font-size: max(15px, 1.5625rem); line-height: 1.32; text-align: justify; }
.desosp .body-col .body + .body { margin-top: 2.2rem; }

/* ---------- infusão ---------- */
.infusion { position: relative; color: #fff; background: var(--navy); isolation: isolate; overflow: hidden; }
.infusion-bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 60% 30%; }
.infusion::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,23,27,.78) 0%, rgba(0,23,27,.55) 55%, rgba(0,23,27,.2) 100%); }
.infusion { min-height: 64.75rem; }
.infusion-inner { padding-top: 9.1rem; padding-bottom: 6rem; }
.infusion h2 { color: #fff; max-width: 41rem; margin-bottom: 2.6rem; font-size: max(26px, 3.125rem); line-height: 1.12; }
.infusion .body { max-width: 41rem; font-size: max(14px, 1.25rem); line-height: 1.4; }
.infusion .body + .body { margin-top: 2rem; }
.body--light { color: #fff; }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); margin: 2.4rem 0 4rem; border: 1px solid rgba(255,255,255,.7); }
.steps li { padding: 2.2rem 2rem 2.6rem; border-left: 1px solid rgba(255,255,255,.7); }
.steps li:first-child { border-left: 0; }
.steps h3 { font-size: max(14px, 1.25rem); font-weight: 700; margin-bottom: 1.2rem; }
.steps p { font-size: max(12px, 1rem); line-height: 1.45; }
.infusion-foot { display: flex; align-items: center; justify-content: space-between; gap: 3rem; }
.infusion-foot .body { max-width: 62rem; font-size: max(13px, 1.25rem); line-height: 1.35; }
.infusion-foot .btn { flex: none; padding: 1.3rem 2.4rem; font-size: max(13px, 1.25rem); }

/* ---------- por que a homevie ---------- */
.why { padding-top: 9.4rem; padding-bottom: 8.2rem; }
.why h2 { max-width: 83rem; margin-bottom: 5rem; font-size: max(26px, 3.4375rem); }
.why-grid { display: grid; grid-template-columns: 23.75rem 1fr; gap: 1.4rem; border-top: 1px solid var(--line); padding-top: 3.4rem; }
.why-list button { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; padding: 1.5rem 0; background: none; border: 0; border-bottom: 1px solid var(--line); text-align: left; font-size: max(13px, 1.25rem); color: var(--gray); position: relative; }
.why-list button .ico { font-size: 1.1rem; }
.why-list button[aria-selected="true"] { color: var(--navy); font-weight: 700; }
.why-list button[aria-selected="true"]::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 3.4rem; height: 2px; background: var(--teal); }
.why-list button[aria-selected="true"] .ico { color: var(--teal); }
.why-stage { position: relative; overflow: hidden; }
.why-track { display: flex; gap: 1.25rem; transition: transform .5s ease; will-change: transform; }
.why-slide { flex: none; width: 49.4rem; opacity: .54; transition: opacity .4s; }
.why-slide[aria-hidden="false"], .why-slide.is-active { opacity: 1; }
.why-slide { position: relative; }
.why-slide::before { content: ""; position: absolute; z-index: 1; top: 0; left: 0; width: 100%; aspect-ratio: 790 / 582; border-radius: .25rem; background: rgba(29,42,52,.31); pointer-events: none; }
.why-nav { z-index: 2; }
.why-slide img { width: 100%; aspect-ratio: 790 / 582; object-fit: cover; margin-bottom: 1.6rem; }
.why-slide h3 { color: var(--green); font-size: max(15px, 1.5rem); font-weight: 700; margin-bottom: .9rem; }
.why-slide p { font-size: max(13px, 1.25rem); line-height: 1.4; color: var(--navy); max-width: 46rem; }
.why-nav { position: absolute; left: 1.2rem; top: 0; width: calc(49.4rem - 2.4rem); aspect-ratio: 790 / 582; display: flex; align-items: center; justify-content: space-between; pointer-events: none; }
.why-arrow { pointer-events: auto; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; min-width: 32px; min-height: 32px; border-radius: 50%; border: 1px solid rgba(255,255,255,.85); background: rgba(255,255,255,.12); color: #fff; font-size: 1rem; width: 2.4rem; height: 2.4rem; backdrop-filter: blur(2px); }
.why-arrow:hover { background: rgba(255,255,255,.3); }

/* ---------- famílias ---------- */
.families { background: var(--sage); padding: 7rem 0 5.4rem; }
.families h2 { margin-bottom: 3.4rem; font-size: max(26px, 3.4375rem); }
.split--fam { grid-template-columns: 1fr 46rem; padding-inline: 1.9rem; }
.families .body-col .body { font-size: max(14px, 1.375rem); line-height: 1.5; margin-left: 0; max-width: none; }
.families .body-col .body + .body { margin-top: 1.5rem; }
.families .body-col { padding-top: 1.8rem; }

/* ---------- time ---------- */
.team { padding-top: 7rem; padding-bottom: 9rem; }
.team h2 { margin-bottom: 2.2rem; }
.team > .wrap > .body { max-width: 58rem; font-size: max(14px, 1.375rem); line-height: 1.5; margin-bottom: 4rem; }
.team-list { display: grid; grid-template-columns: repeat(5, 1fr); gap: 3.2rem; }
.team-ico { display: grid; place-items: center; width: 9.8rem; height: 9.8rem; background: var(--teal); margin-bottom: 2rem; }
.team-ico img { width: auto; height: auto; max-width: none; }
.team-list h3 { font-size: 1.25rem; font-weight: 700; color: var(--navy-2); margin-bottom: 1rem; line-height: 1.15; }
.team-list p { font-size: max(12px, 1.0625rem); line-height: 1.4; color: var(--gray); padding-bottom: 2.4rem; }
.team-list li { display: flex; flex-direction: column; }
.team-list li::after { content: ""; display: block; margin-top: auto; width: 10rem; height: 1px; background: var(--line); }

/* ---------- FAQ ---------- */
.faq { padding-top: 4.5rem; padding-bottom: 9.7rem; }
.faq-grid { display: grid; grid-template-columns: 33rem 1fr; gap: 9rem; align-items: start; }
.faq-left .eyebrow { margin-bottom: 5.4rem; }
.faq-media { position: relative; }
.faq-media > picture > img, .faq-media > img:first-child { width: 100%; aspect-ratio: 1058 / 838; object-fit: cover; }
.faq-seal { position: absolute; right: -4.2rem; bottom: -4.6rem; width: 15rem; height: 15rem; border-radius: 50%; object-fit: contain; }
.faq h2 { margin: 0 0 3.4rem; }
.acc { border-top: 1px solid var(--line); }
.acc details { border-bottom: 1px solid var(--line); }
.acc summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.05rem 0; cursor: pointer; list-style: none; font-size: max(14px, 1.0625rem); font-weight: 600; color: var(--green); }
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after { content: ""; width: 1rem; height: 1rem; background: var(--gray-2); -webkit-mask: url("/homevie/assets/icons/chevron-down.svg") center / contain no-repeat; mask: url("/homevie/assets/icons/chevron-down.svg") center / contain no-repeat; transition: transform .2s; }
.acc details[open] summary::after { transform: rotate(180deg); }
.acc details p { padding: 0 3rem 1.6rem 0; font-size: max(13px, 1rem); line-height: 1.5; color: var(--gray); max-width: 46rem; }

/* ---------- contato final ---------- */
.contact { position: relative; color: #fff; text-align: center; }
.contact-inner { display: flex; flex-direction: column; align-items: center; padding-top: 7rem; padding-bottom: 6.3rem; }
.contact h2 { color: #fff; max-width: 60rem; font-size: max(26px, 3.4375rem); font-weight: 600; margin-bottom: 2.4rem; }
.contact h2 .mint { color: var(--mint); }
.contact-text { max-width: 55rem; font-size: max(14px, 1.375rem); line-height: 1.45; }
.contact-24 { margin: 2.6rem 0 3rem; font-size: max(13px, 1.25rem); letter-spacing: .26em; text-transform: uppercase; }
.contact-24 strong { color: var(--mint); font-weight: 500; }

/* ---------- rodapé ---------- */
.end-bg { position: relative; isolation: isolate; background: var(--navy); }
/* camada 1: seda azul com tonalidade verde (mix-blend color, como no Figma) */
.end-bg::before { content: ""; position: absolute; z-index: -2; top: 0; left: 0; right: 0; height: min(51.5rem, 100%);
  background: linear-gradient(rgba(23,117,106,.36), rgba(23,117,106,.36)), url("/homevie/assets/img/rodape-seda.webp") center top / cover no-repeat;
  background-blend-mode: color, normal; }
/* camada 2: gradiente navy (transparente no topo → sólido) por cima da seda */
.end-bg::after { content: ""; position: absolute; z-index: -1; inset: 0; background: url("/homevie/assets/img/rodape-gradiente.webp") center top / 100% 100% no-repeat; }
.site-footer { color: #fff; }
.footer-grid { display: grid; grid-template-columns: 529fr 356fr 307fr 406fr; gap: 0; padding-top: 5rem; padding-bottom: 4rem; border-top: 1px solid rgba(160,234,230,.28); }
.footer-brand img { width: 24rem; height: auto; }
.footer-brand p { margin-top: 1.6rem; font-size: max(16px, 2.1875rem); line-height: 1.05; font-weight: 400; max-width: 25rem; }
.social { display: flex; gap: .8rem; margin-top: 1.8rem; }
.social a { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; min-width: 28px; min-height: 28px; background: #fff; color: var(--navy); border-radius: 3px; font-size: 1.4rem; }
.footer-col { font-size: max(12px, .83rem); line-height: 1.5; }
.footer-col h3 { font-size: max(11px, .75rem); font-weight: 400; color: var(--mint); margin: 0 0 .5rem; }
.footer-col h3:not(:first-child) { margin-top: 1.4rem; }
.footer-col--contact h3:not(:first-child) { margin-top: 3.2rem; }
.footer-col--contact p { margin-top: 1rem; }
.footer-col a { display: block; text-decoration: none; padding: .55rem 0; font-size: max(13px, 1.25rem); }
.footer-col p a { display: inline; font-size: inherit; }
.footer-col a:hover { color: var(--mint); }
.footer-col address { font-style: normal; }
.footer-legal { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-block: 2rem 2.4rem; border-top: 1px solid rgba(160,234,230,.2); font-size: max(11px, .75rem); color: rgba(255,255,255,.7); }
.footer-legal a { text-decoration: underline; }
.footer-reg { flex: 0 0 100%; margin: 0; }

/* ---------- páginas de texto (privacidade, 404) ---------- */
.doc-header { position: static; background: var(--navy); padding: 2rem 0; }
.doc { padding: 6rem 0 8rem; background: var(--bg); }
.doc .wrap { max-width: 56rem; }
.doc h1 { font-size: max(30px, 3rem); line-height: 1.1; font-weight: 800; margin-bottom: 2rem; }
.doc h2 { font-size: max(20px, 1.6rem); margin: 3rem 0 1rem; }
.doc p, .doc li { font-size: max(15px, 1.125rem); line-height: 1.6; margin-bottom: 1rem; }
.doc ul { list-style: disc; padding-left: 1.4rem; }
.doc a { color: var(--green); }

/* ---------- desktop: ajustes de tipografia (23 px / 20 px no frame de 1920 px) ---------- */
@media (min-width: 1200px) {
  .intro .lead--right { font-size: 1.4375rem; line-height: 1.45; text-align: justify; }
  .diff .body--diff-lead { font-size: 1.4375rem; line-height: 1.45; }
  .team > .wrap > .body--team-lead { font-size: 1.4375rem; line-height: 1.45; max-width: none; }
  .desosp .body-col { padding-top: 3.15rem; }
  .team-list h3 { font-size: 1.25rem; white-space: nowrap; letter-spacing: -.01em; }
  .team-list p.p-4 { max-width: 15.5rem; }
  .team-list p.p-3 { max-width: 17.4rem; }
  .team-list p.p-3--short { max-width: 16rem; }
}

/* =========================================================
   Tablet e celular
   ========================================================= */
@media (max-width: 1199px) {
  html { font-size: 16px; scroll-padding-top: 5rem; }
  body { font-size: 1.0625rem; }
  .wrap { max-width: calc(100% - 3rem); }
  .site-header { padding-top: 1.2rem; }
  .logo img { width: 13rem; }
  .menu-toggle { display: grid; place-items: center; width: 44px; height: 44px; margin-left: auto; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.45); color: #fff; font-size: 1.5rem; }
  .btn--header { display: none; }
  .main-nav { position: fixed; inset: 0 0 auto 0; flex-direction: column; gap: 0; margin: 0; padding: 5.5rem 1.5rem 2rem; background: var(--navy); transform: translateY(-110%); transition: transform .3s ease; z-index: -1; box-shadow: 0 20px 40px rgba(0,0,0,.35); }
  .main-nav.open { transform: none; }
  .main-nav a:not(.btn) { padding: 1rem 0; font-size: 1.125rem; border-bottom: 1px solid rgba(160,234,230,.2); }
  .main-nav a:not(.btn)::after { display: none; }
  .btn--nav-mobile { display: inline-flex; margin-top: 1.4rem; align-self: flex-start; }
  .site-header .header-inner { position: relative; z-index: 2; }
  .btn { font-size: 1rem; padding: 1.1rem 1.6rem; }

  .hero { min-height: 40rem; }
  .hero-inner { padding-top: 9rem; padding-bottom: 4rem; }
  .hero-eyebrow { font-size: .875rem; max-width: 28rem; line-height: 1.5; }
  .hero h1 { font-size: 2.25rem; max-width: 34rem; margin-top: 1.2rem; }
  .hero-line { margin: 1.8rem 0 1.6rem; width: 22rem; }
  .hero-text { font-size: 1rem; max-width: 34rem; }
  .strip-list { grid-template-columns: repeat(5, auto); overflow-x: auto; justify-content: start; gap: 0; padding-block: 1.2rem; scrollbar-width: none; }
  .strip-list li { flex: none; padding: 0 1.6rem; min-height: 4rem; }
  .strip-list img { height: 2.6rem; }
  .strip-list span { font-size: .8125rem; white-space: nowrap; }
  .call { padding: 4rem 0; }
  .call-pre { font-size: .9375rem; }
  .call-title { font-size: 1.5rem; margin: 1.4rem 0 2rem; }
  .section { padding: 4rem 0; }
  h2 { font-size: 1.875rem; }
  .eyebrow { font-size: .75rem; }
  .body { font-size: 1.0625rem; }
  .split, .split--diff, .split--versus, .split--desosp, .split--fam { grid-template-columns: 1fr; gap: 2rem; }
  .lead--right { justify-self: start; margin-top: 0; max-width: none; text-align: left; font-size: 1rem; }
  .video-ph { aspect-ratio: 16 / 9; font-size: 1.25rem; }
  .creds li { font-size: 1rem; min-height: 0; padding: 1.2rem 1rem 1.2rem 0; }
  .creds li:nth-child(even) { padding-left: 1.6rem; }
  .vs-cards { min-height: 0; display: grid; gap: 1rem; }
  .vs-card, .vs-card--hv { position: static; width: 100%; max-width: 26rem; }
  .vs-head h3 { font-size: 1.25rem; }
  .vs-card ul { font-size: 1rem; }
  .marquee-track span { font-size: .875rem; }
  .cards { grid-template-columns: repeat(2, 1fr); gap: .75rem; }
  .card h3 { font-size: 1.25rem; }
  .card p { font-size: .8125rem; max-height: none; opacity: 1; margin-top: 1rem; }
  .card-body { padding: 0 1.4rem 1.6rem; }
  .complement { grid-template-columns: 1fr; gap: 1.6rem; }
  .complement h3 { font-size: 1.125rem; }
  .complement p { font-size: .9375rem; }
  .body-col .body { font-size: 1.0625rem; margin-left: 0; }
  .infusion-inner { padding-top: 4rem; padding-bottom: 4rem; }
  .infusion h2 { font-size: 1.875rem; }
  .infusion .body { font-size: 1rem; }
  .steps { grid-template-columns: 1fr 1fr; }
  .steps li:nth-child(3) { border-left: 0; }
  .steps li:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.55); }
  .steps h3 { font-size: 1.0625rem; }
  .steps p { font-size: .875rem; }
  .infusion-foot { flex-direction: column; align-items: flex-start; }
  .infusion-foot .body { font-size: .9375rem; }
  .why { padding: 4rem 0; }
  .why h2 { font-size: 1.875rem; margin-bottom: 2.4rem; }
  .why-grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .why-list { display: flex; overflow-x: auto; gap: 1.4rem; scrollbar-width: none; border-bottom: 1px solid var(--line); }
  .why-list li { flex: none; }
  .why-list button { width: auto; border-bottom: 0; padding: .9rem 0; font-size: .9375rem; gap: .6rem; }
  .why-list button[aria-selected="true"]::after { bottom: 0; }
  .why-slide { width: 80%; }
  .why-slide h3 { font-size: 1.125rem; }
  .why-slide p { font-size: .9375rem; }
  .why-nav { width: calc(80% - 2.4rem); }
  .families { padding: 4rem 0; }
  .families h2 { font-size: 1.875rem; margin-bottom: 2rem; }
  .families .body-col .body { font-size: 1.0625rem; }
  .team { padding: 4rem 0; }
  .team > .wrap > .body { font-size: 1.0625rem; margin-bottom: 2.4rem; }
  .team-list { grid-template-columns: 1fr 1fr; gap: 2rem 1.4rem; }
  .team-ico { width: 5.2rem; height: 5.2rem; }
  .team-list h3 { font-size: 1rem; }
  .team-list p { font-size: .875rem; }
  .faq { padding: 3rem 0 5rem; }
  .faq-grid { grid-template-columns: 1fr; gap: 3.4rem; }
  .faq-media { max-width: 26rem; }
  .faq-seal { width: 8rem; height: 8rem; right: -1rem; bottom: -2rem; }
  .faq h2 { margin-top: 0; margin-bottom: 1.6rem; }
  .faq-left .eyebrow { margin-bottom: 1.6rem; }
  .acc summary { font-size: 1rem; }
  .acc details p { font-size: .9375rem; padding-right: 0; }
  .contact-inner { padding-block: 4rem; }
  .contact h2 { font-size: 1.875rem; }
  .contact-text { font-size: 1.0625rem; }
  .contact-24 { font-size: .8125rem; letter-spacing: .18em; }
  .footer-grid { grid-template-columns: 1fr 1fr; padding-top: 3rem; gap: 2.4rem 1.5rem; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand img { width: 15rem; }
  .footer-brand p { font-size: 1.5rem; }
  .footer-col { font-size: .9375rem; }
  .footer-col h3 { font-size: .8125rem; }
  .footer-col--wide { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .cards { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .steps li { border-left: 0; border-top: 1px solid rgba(255,255,255,.55); }
  .steps li:first-child { border-top: 0; }
  .team-list { grid-template-columns: 1fr; }
  .creds { grid-template-columns: 1fr; }
  .creds li, .creds li:nth-child(odd), .creds li:nth-child(even) { border-right: 0; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
  .footer-grid { grid-template-columns: 1fr; }
  .why-slide { width: 88%; }
  .why-nav { width: calc(88% - 2.4rem); }
}

.br-m { display: none; }
.card .card-m { display: none; }
.strip-list li[data-clone] { display: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .marquee-track { animation: none; }
}

/* =========================================================
   MOBILE (até 760 px) — Figma "OnePage_Homevie_Mobile" (430 px)
   Aqui 1rem = 16 px quando a tela tem 430 px; tudo escala junto com a largura.
   ========================================================= */
@media (max-width: 760px) {
  html { font-size: clamp(13.5px, 3.72093vw, 17.5px); scroll-padding-top: 5rem; }
  body { font-size: 0.6875rem; line-height: 0.9375rem; background: #f6f5f1; }
  .wrap { width: calc(100% - 5rem); max-width: none; }
  .br-m { display: inline; }
  .br-d { display: none; }

  /* tipografia base */
  h2 { font-size: 1.5625rem; line-height: 1.875rem; letter-spacing: 0; font-weight: 700; }
  .eyebrow { font-size: 0.6875rem; line-height: 0.9375rem; letter-spacing: 0.1139rem; margin-bottom: 0.6875rem; }
  .body { font-size: 0.6875rem; line-height: 0.9375rem; color: var(--gray); text-align: justify; }
  .body + .body { margin-top: 0.9375rem; }
  .btn { min-height: 2.875rem; padding: 0 1.375rem; gap: 1rem; font-size: 0.875rem; letter-spacing: -0.0125rem; border-radius: 0.1875rem; color: #003f4b; }
  .btn .ico--arrow { font-size: 0.7188rem; }
  .btn--white { color: #17756a; border-radius: 0.25rem; }

  /* ---------- cabeçalho ---------- */
  .site-header { padding-top: 1.4375rem; }
  .header-inner { gap: 0; align-items: center; }
  .logo img { width: 8rem; }
  .menu-toggle { display: none; }
  .main-nav { display: none; }
  .main-nav-old { position: static; inset: auto; flex-direction: row; align-items: center; gap: 0.5rem; margin: 0 0 0 auto; padding: 0; background: none; transform: none; box-shadow: none; z-index: auto; }
  .main-nav a:not(.btn) { padding: 0; border: 0; font-size: 0.5125rem; line-height: 0.75rem; color: #fff; white-space: nowrap; }
  .btn--nav-mobile { display: none; }
  .btn--header { display: inline-flex; width: auto; min-height: 2.25rem; padding: 0 0.9375rem; margin-left: auto; white-space: nowrap; gap: 0.5rem; font-size: 0.6875rem; letter-spacing: 0; border-radius: 0.15rem; }
  .btn--header .ico--arrow { font-size: 0.65rem; }

  /* ---------- hero ---------- */
  .hero { min-height: calc(max(22.375rem, 83.256vw) + 3.25rem); background: #271f1c; }
  .hero-media { position: absolute; inset: 0 0 auto 0; height: max(22.375rem, 83.256vw); overflow: hidden; z-index: -2; }
  .hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 20%; }
  .hero::before { background: linear-gradient(180deg, rgba(0,0,0,.82) 0, rgba(0,0,0,0) 11.5625rem), linear-gradient(180deg, rgba(39,31,28,0) 18.75rem, #271f1c 22.375rem); }
  .hero-inner { padding: 5.8125rem 0 1.5rem; }
  .hero-eyebrow { max-width: 18.125rem; font-size: 0.75rem; line-height: 1.25rem; letter-spacing: 0.075rem; }
  .hero h1 { max-width: 18.75rem; margin-top: 0.75rem; font-size: 1.75rem; line-height: 2rem; letter-spacing: -0.0625rem; text-shadow: 0 0.25rem 0.7375rem rgba(0,0,0,.7); }
  .hero-line { width: 21.875rem; max-width: 100%; height: 0.125rem; margin: 1.4375rem 0 1rem; background: linear-gradient(90deg, var(--mint) 0 6.9225rem, rgba(255,255,255,.5) 6.9225rem 100%); }
  .hero-text { max-width: 21.8125rem; font-size: 0.75rem; line-height: 1.125rem; }

  /* ---------- faixa de situações ---------- */
  .strip { height: 3.5625rem; overflow: hidden; }
  .strip-list { display: flex; width: max-content; max-width: none; margin: 0; padding: 0; gap: 0; overflow: visible; align-items: stretch; }
  .strip-list li { position: relative; flex: none; width: 9.5rem; height: 3.5625rem; min-height: 0; padding: 0; gap: 1.1875rem; border: 0; }
  .strip-list li::before { content: ""; position: absolute; left: 0; top: 0.5625rem; width: 0.0625rem; height: 2.4375rem; background: #00b4af; }
  .strip-list li[data-clone] { display: flex; }
  .strip-list img { height: 1.625rem; width: auto; }
  .strip-list li:first-child img { height: 1.75rem; }
  .strip-list span { font-size: 0.6539rem; letter-spacing: 0.0542rem; white-space: nowrap; }
  .strip-list.is-marquee { animation: strip-marquee 25s linear infinite; animation-delay: -5.5s; }
  @keyframes strip-marquee { to { transform: translateX(-50%); } }

  /* ---------- chamada ---------- */
  .call { padding: 2rem 0 2.375rem; }
  .call-pre { max-width: 21.8125rem; font-size: 0.6875rem; line-height: 0.9375rem; }
  .call-title { max-width: 21.8125rem; margin: 1.875rem 0 2.0625rem; font-size: 1.25rem; line-height: 1.5625rem; }

  /* ---------- home care + diferencial (mesmo fundo) ---------- */
  .intro { background: #efefef; padding: 1.8125rem 0 0; }
  .intro .split { display: block; }
  .intro .eyebrow { margin-bottom: 0.375rem; }
  .intro h2 { max-width: none; line-height: 1.9886rem; }
  .lead--right { justify-self: auto; max-width: none; margin-top: 0.875rem; font-size: 0.6875rem; line-height: 0.9375rem; text-align: justify; color: var(--gray); }
  .tags { justify-content: space-between; flex-wrap: nowrap; gap: 0; margin: 1.9375rem 0 2rem; font-size: 0.5122rem; line-height: 0.7rem; letter-spacing: 0.0849rem; }
  .tags li { gap: 0.5rem; white-space: nowrap; }
  .tags li + li::before { width: 0.1812rem; height: 0.1812rem; }
  .video video { aspect-ratio: 350 / 207; object-fit: contain; border-radius: 0.055rem; }
  .diff { background: #efefef; padding: 1.8125rem 0 2.25rem; }
  .split--diff { display: block; }
  .diff h2 { max-width: 21.625rem; margin-bottom: 1.1875rem; }
  .diff .body, .diff .body--diff-lead { max-width: none; font-size: 0.6875rem; line-height: 0.9375rem; }
  .diff .body + .body { margin-top: 0.9375rem; }
  .creds { grid-template-columns: 1fr 1fr; margin-top: 2.75rem; }
  .creds li, .creds li:nth-child(odd), .creds li:nth-child(even) { min-height: 0; padding: 0; font-size: 0.7336rem; line-height: 0.8892rem; font-weight: 800; color: #003f4b; border: 0; align-items: center; }
  .creds li:nth-child(odd) { padding-right: 2.6rem; border-right: 1px solid var(--line); }
  .creds li:nth-child(even) { padding-left: 2.6rem; padding-right: 0.1875rem; }
  .creds li:nth-child(-n+4) { border-bottom: 1px solid var(--line); }
  .creds li:nth-child(-n+2) { height: 3.735rem; padding-top: 0.3rem; align-items: flex-start; box-sizing: border-box; }
  .creds li:nth-child(n+3):nth-child(-n+4) { height: 5.235rem; box-sizing: border-box; }
  .creds li:nth-child(n+5) { height: 4.4688rem; padding-top: 1.3375rem; align-items: flex-start; box-sizing: border-box; }

  /* ---------- pronto-socorro x homevie ---------- */
  .versus { background: #f6f5f1; padding: 2.375rem 0 1.875rem; }
  .split--versus { display: flex; flex-direction: column; gap: 0; align-items: stretch; }
  .split--versus > div:first-child { display: contents; }
  .versus .eyebrow { order: 1; margin-bottom: 0.625rem; }
  .versus h2 { order: 2; max-width: none; margin-bottom: 1.375rem; }
  .vs-cards { order: 3; display: block; position: relative; min-height: 0; height: 14.2188rem; margin-bottom: 1.875rem; }
  .versus .body { order: 4; max-width: none; }
  .vs-card, .vs-card--hv { position: absolute; width: 12.385rem; max-width: none; border-radius: 0.1288rem; overflow: hidden; }
  .vs-card--ps { top: 0; left: 0; background: none; }
  .vs-card--hv { top: 4.9219rem; left: 9.49rem; }
  .vs-head { height: 3.3438rem; padding: 0 0.625rem 0 1rem; }
  .vs-head h3 { font-size: 0.9651rem; line-height: 0.8578rem; font-weight: 600; }
  .vs-badge { width: 2.0812rem; height: 2.0812rem; font-size: 1.25rem; }
  .vs-card ul { padding: 1.0938rem 1rem 0; font-size: 0.7077rem; line-height: 0.9972rem; font-weight: 600; }
  .vs-card--ps .vs-head { background: #6c767b; }
  .vs-card--ps ul { height: 5.5rem; background: rgba(23,47,60,.52); box-sizing: border-box; }
  .vs-card--hv .vs-head { color: #003f4b; }
  .vs-card--hv ul { height: 5.9531rem; box-sizing: border-box; padding-bottom: 0; }

  /* ---------- marquee ---------- */
  .marquee { display: flex; align-items: center; height: 2.3125rem; padding: 0; }
  .marquee-track span { padding-right: 1.5625rem; font-size: 0.5rem; font-weight: 600; letter-spacing: 0.057rem; }

  /* ---------- serviços ---------- */
  .services { background: #f6f5f1; padding: 1.8125rem 0 2.1875rem; }
  .services .eyebrow { margin-bottom: 0.4375rem; }
  .services h2 { max-width: none; margin-bottom: 1.6875rem; }
  .cards-stage { position: relative; margin-right: -2.5rem; }
  .cards { display: flex; gap: 0.75rem; padding-right: 2.5rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .cards::-webkit-scrollbar { display: none; }
  .cards .card { flex: 0 0 21.8125rem; width: 21.8125rem; scroll-snap-align: start; }
  .card { aspect-ratio: auto; height: 10.7063rem; border-radius: 0.1675rem; background: none; }
  .card > img:not(.card-m) { display: none; }
  .card::after, .card:hover::after, .card:focus-within::after { background: rgba(54,54,54,.61); mix-blend-mode: multiply; }
  .card .card-m { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 1; transform: none; transition: none; }
  .card-body { top: 2.875rem; bottom: auto; padding: 0 0 0 1.2125rem; }
  .card h3 { font-size: 1.1175rem; line-height: 1.1175rem; font-weight: 600; }
  .card h3::after { width: 2.0531rem; height: 0.0838rem; margin-top: 0.5312rem; }
  .card p, .card:hover p, .card:focus-within p { max-height: none; opacity: 1; margin-top: 0.9625rem; max-width: 14.6687rem; font-size: 0.6705rem; line-height: 0.894rem; font-weight: 600; }
  .cards li:nth-child(7) p { max-width: 15.375rem; }
  .complement { display: block; margin-top: 1.5rem; padding-top: 1rem; }
  .complement li + li { margin-top: 1.8125rem; }
  .complement h3 { margin-bottom: 0.375rem; font-size: 0.9375rem; line-height: 1.1875rem; font-weight: 800; color: #17756a; }
  .complement p { max-width: none; font-size: 0.6875rem; line-height: 0.9375rem; color: var(--gray); }

  /* ---------- desospitalização ---------- */
  .desosp { background: #efefef; padding: 2.1875rem 0 2.375rem; }
  .split--desosp, .split--fam { display: flex; flex-direction: column; gap: 0; padding-inline: 0; align-items: stretch; }
  .split--desosp > div:first-child, .split--fam > div:first-child { display: contents; }
  .desosp .eyebrow, .families .eyebrow { order: 1; margin-bottom: 0.5rem; }
  .desosp h2, .families h2 { order: 2; max-width: none; margin-bottom: 1.4375rem; font-size: 1.5625rem; line-height: 1.875rem; }
  .desosp .body-col, .families .body-col { order: 3; padding-top: 0; }
  .desosp .btn, .families .btn { order: 4; align-self: flex-start; margin-top: 1.625rem; padding: 0 1.375rem; font-size: 0.875rem; }
  .desosp .body-col .body { margin: 0; font-size: 0.6875rem; line-height: 0.9375rem; letter-spacing: 0.0138rem; text-align: justify; }
  .desosp .body-col .body + .body { margin-top: 0.9375rem; }
  .desosp .body strong { font-weight: 600; }

  /* ---------- infusão ---------- */
  .infusion { --ih: max(28.75rem, 106.977vw); min-height: 0; background: #030101; }
  .infusion-bg { inset: 0 0 auto 0; width: 100%; height: var(--ih); max-width: none; object-fit: cover; object-position: 50% 20%; }
  .infusion::before { inset: 0 0 auto 0; height: calc(var(--ih) + 0.375rem); background: linear-gradient(180deg, rgba(3,1,1,0) calc(var(--ih) - 12.4375rem), #030101 calc(var(--ih) - 0.5rem)), linear-gradient(rgba(0,23,27,.3), rgba(0,23,27,.3)), linear-gradient(90deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.18) 70%, rgba(0,0,0,0) 100%); }
  .infusion-inner { padding: 2.5625rem 0 2.5rem; }
  .infusion .eyebrow { margin-bottom: 0.5rem; }
  .infusion h2 { max-width: 21.6875rem; margin-bottom: 1.125rem; font-size: 1.5625rem; line-height: 1.4375rem; }
  .infusion .body { max-width: 15.75rem; font-size: 0.6875rem; line-height: 0.9375rem; text-align: left; color: #fff; }
  .infusion .body + .body { margin-top: 0.9375rem; }
  .steps { grid-template-columns: 1fr 1fr; margin: 0.8125rem 0 1.3125rem; border: 0; border-top: 0.0833rem solid #d9d9d9; border-left: 0.0833rem solid #d9d9d9; }
  .steps li, .steps li:first-child, .steps li:nth-child(3), .steps li:nth-child(n+3) { height: 8.25rem; padding: 0.8125rem 0.875rem 0 1.3125rem; border: 0; border-right: 0.0833rem solid #d9d9d9; border-bottom: 0.0833rem solid #d9d9d9; box-sizing: border-box; }
  .steps h3 { margin-bottom: 0.3312rem; font-size: 0.75rem; line-height: 1.6667rem; font-weight: 800; }
  .steps p { font-size: 0.625rem; line-height: 0.75rem; }
  .infusion-foot { display: block; }
  .infusion-foot .body { max-width: none; font-size: 0.6875rem; line-height: 0.9375rem; }
  .infusion-foot .body strong { font-weight: 700; }
  .infusion-foot .btn { margin-top: 1.5rem; padding: 0 1.375rem; font-size: 0.875rem; }

  /* ---------- por que a homevie ---------- */
  .why { background: #f6f5f1; padding: 2.8125rem 0 3.3125rem; }
  .why .eyebrow { margin-bottom: 1rem; }
  .why h2 { max-width: none; margin-bottom: 1.25rem; font-size: 1.5625rem; }
  .why-grid { display: block; padding-top: 1.25rem; }
  .why-list { display: none; }
  .why-stage { margin-right: -2.5rem; }
  .why-track { gap: 1.2937rem; align-items: flex-start; }
  .why-slide { width: 17.2063rem; }
  .why-slide { position: relative; }
  .why-slide::before { content: ""; position: absolute; z-index: 1; top: 0; left: 0; width: 100%; aspect-ratio: 275.3 / 202.8; border-radius: 0.0875rem; background: rgba(29,43,51,.31); mix-blend-mode: multiply; pointer-events: none; }
  .why-slide img { aspect-ratio: 275.3 / 202.8; border-radius: 0.0875rem; margin-bottom: 1.3125rem; }
  .why-slide h3 { margin-bottom: 0.3125rem; font-size: 0.9375rem; line-height: 1.1875rem; }
  .why-slide p { max-width: 17.25rem; font-size: 0.625rem; line-height: 0.75rem; color: var(--gray); }
  .why-nav { left: 0.625rem; top: 0; width: calc(17.2063rem - 1.25rem); height: 12.675rem; aspect-ratio: auto; }
  .why-arrow { width: 1.8313rem; height: 1.8313rem; min-width: 0; min-height: 0; font-size: 0.5rem; }

  /* ---------- para famílias ---------- */
  .families { padding: 2.1875rem 0 2.375rem; }
  .families .body-col .body { margin: 0; font-size: 0.6875rem; line-height: 0.9375rem; letter-spacing: 0.0138rem; text-align: justify; max-width: none; }
  .families .body-col .body + .body { margin-top: 0.9375rem; }
  .families .body strong { font-weight: 700; }


  /* ---------- time ---------- */
  .team { background: #efefef; padding: 2.1875rem 0 2rem; }
  .team h2 { margin-bottom: 1.125rem; }
  .team > .wrap > .body, .team > .wrap > .body--team-lead { max-width: none; margin-bottom: 1.25rem; font-size: 0.6875rem; line-height: 0.9375rem; }
  .team .body--team-lead br { display: none; }
  .team-list { display: flex; flex-direction: column; gap: 0.375rem; }
  .team-list li { display: grid; grid-template-columns: 5.1875rem 16.25rem; column-gap: 1.4375rem; align-items: start; min-height: 4.9375rem; }
  .team-list li::after { display: none; }
  .team-ico { grid-row: 1 / span 2; width: 5.1875rem; height: 4.6875rem; margin: 0.25rem 0 0; border-radius: 0.25rem; }
  .team-list h3 { grid-column: 2; margin: 0; font-size: 0.9375rem; line-height: 2.5625rem; white-space: normal; letter-spacing: 0; }
  .team-list p, .team-list p.p-3, .team-list p.p-4, .team-list p.p-3--short { grid-column: 2; max-width: 16.25rem; padding: 0; font-size: 0.625rem; line-height: 0.9375rem; }
  .team-list li:nth-child(1) .team-ico img { width: 2.5rem; }
  .team-list li:nth-child(2) .team-ico img { width: 2.4375rem; }
  .team-list li:nth-child(3) .team-ico img { width: 2.175rem; }
  .team-list li:nth-child(4) .team-ico img { width: 1.9812rem; }
  .team-list li:nth-child(5) .team-ico img { width: 2.7rem; }

  /* ---------- faq ---------- */
  .faq { background: #f4f4f4; padding: 0 0 2.5625rem; }
  .faq-grid { display: flex; flex-direction: column; gap: 0; align-items: stretch; }
  .faq-left { display: contents; }
  .faq-media { order: 1; margin: 0 -2.5rem; max-width: none; }
  .faq-media > picture > img, .faq-media > img:first-child { display: block; width: 100%; height: 12.125rem; aspect-ratio: auto; object-position: 50% 30%; }
  .faq-seal { left: auto; right: 2.5rem; bottom: auto; top: 9.125rem; width: 6rem; height: 6rem; }
  .faq-left .eyebrow { order: 2; margin: 1.75rem 0 0; }
  .faq-grid > div:last-child { order: 3; }
  .faq h2 { margin: 0 0 2.375rem; line-height: 1.875rem; }
  .acc summary { gap: 0.75rem; padding: 0.75rem 0; font-size: 0.6875rem; line-height: 0.9375rem; }
  .acc summary::after { width: 0.75rem; height: 0.75rem; }
  .acc details[open] summary { padding-bottom: 0.4375rem; }
  .acc details[open] summary::after { background: var(--navy); }
  .acc details p { max-width: 17.625rem; padding: 0 0 1.25rem; font-size: 0.6875rem; line-height: 0.9375rem; }

  /* ---------- contato + rodapé ---------- */
  .end-bg::after { top: 10.375rem; background: linear-gradient(180deg, rgba(23,47,60,0) 0, rgba(23,47,60,.55) 28%, #172f3c 62%); }
  .contact-inner { padding: 2.6875rem 0 2.625rem; }
  .contact .eyebrow { margin-bottom: 0.875rem; letter-spacing: 0.1667rem; }
  .contact h2 { max-width: 21.6875rem; margin-bottom: 2rem; font-size: 1.5625rem; line-height: 1.875rem; letter-spacing: -0.0833rem; }
  .contact-text { max-width: 21.6875rem; font-size: 0.6875rem; line-height: 0.9375rem; }
  .contact-24 { margin: 0.9375rem 0 1.75rem; font-size: 0.6875rem; line-height: 0.9375rem; font-weight: 600; letter-spacing: 0.1787rem; }
  .contact .btn { padding: 0 1.25rem 0 1.5rem; }
  .footer-grid { display: grid; grid-template-columns: 9.6625rem 1fr; gap: 0; padding: 1.9375rem 0 1.9375rem; }
  .footer-brand { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; }
  .footer-brand img { width: 7.25rem; }
  .social { margin-top: 0.1875rem; gap: 0; }
  .social a { width: 1.1519rem; height: 1.1519rem; min-width: 0; min-height: 0; border-radius: 0.1562rem; font-size: 0.75rem; }
  .footer-brand p { order: 3; flex: 0 0 100%; max-width: none; padding-right: 9.0625rem; box-sizing: border-box; margin-top: 1.1875rem; font-size: 1.0873rem; line-height: 1.1317rem; }
  .footer-col { font-size: 0.4116rem; line-height: normal; }
  .footer-col h3 { margin: 0; font-size: 0.4116rem; line-height: normal; color: #fff; }
  .footer-grid > nav.footer-col { grid-column: 1 / -1; margin-top: 1.3125rem; }
  .footer-col a { padding: 0; font-size: 0.6584rem; line-height: 1.5227rem; }
  .footer-col p a { font-size: inherit; line-height: inherit; }
  .footer-col--contact, .footer-col--wide { grid-column: auto; margin-top: 2.1875rem; }
  .footer-col--contact h3:not(:first-child) { margin-top: 1.5625rem; }
  .footer-col--contact p { margin-top: 0.525rem; }
  .footer-col--wide h3:not(:first-child) { margin-top: 1.5rem; }
  .footer-col--wide address, .footer-col--wide p { margin-top: 0.625rem; line-height: 0.7408rem; }
  .footer-legal { flex-direction: column; gap: 0.25rem; padding: 0 0 1.9375rem; border-top: 0; font-size: 0.4116rem; }
  .footer-reg { flex: none; }
  .footer-reg span { display: none; }
  .footer-legal a { display: none; }
}

@media (max-width: 359px) {
  html { font-size: 3.72093vw; }
}
