:root {
  --color-primary: #6f3a8a;
  --color-primary-dark: #3c214a;
  --color-primary-deep: #291533;
  --color-accent: #d84c9a;
  --color-accent-soft: #f7d7eb;
  --color-cream: #fff8f1;
  --color-caramel: #b96d3a;
  --color-whatsapp: #15833f;
  --color-white: #fff;
  --color-text: #35263a;
  --color-muted: #6f6173;
  --color-border: #eadbea;
  --font-display: "Fredoka", "Trebuchet MS", sans-serif;
  --font-body: "Nunito Sans", Arial, sans-serif;
  --step--1: clamp(.84rem, .8rem + .12vw, .92rem);
  --step-0: clamp(1rem, .96rem + .18vw, 1.08rem);
  --step-1: clamp(1.18rem, 1.08rem + .42vw, 1.42rem);
  --step-2: clamp(1.55rem, 1.32rem + .95vw, 2.15rem);
  --step-3: clamp(2rem, 1.58rem + 1.75vw, 3.2rem);
  --step-4: clamp(2.55rem, 1.9rem + 2.9vw, 4.6rem);
  --space-1: .5rem;
  --space-2: .75rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
  --space-7: 4.5rem;
  --space-8: 7rem;
  --radius-sm: .9rem;
  --radius-md: 1.4rem;
  --radius-lg: 2rem;
  --radius-xl: 3.2rem;
  --shadow-sm: 0 10px 30px rgba(60, 33, 74, .08);
  --shadow-md: 0 22px 55px rgba(60, 33, 74, .14);
  --container: 74rem;
  --ease: cubic-bezier(.2, .8, .2, 1);
  --duration-fast: 160ms;
  --duration-base: 320ms;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 7.5rem; }

body {
  margin: 0;
  color: var(--color-text);
  background: var(--color-cream);
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input { font: inherit; }
button { cursor: pointer; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 {
  color: var(--color-primary-dark);
  font-family: var(--font-display);
  line-height: 1.08;
  text-wrap: balance;
}
h1 { margin-bottom: var(--space-4); font-size: var(--step-4); letter-spacing: -.035em; }
h2 { margin-bottom: var(--space-4); font-size: var(--step-3); letter-spacing: -.025em; }
h3 { margin-bottom: var(--space-2); font-size: var(--step-1); }
p { margin-bottom: var(--space-3); }

svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}

.svg-sprite { position: absolute; overflow: hidden; }
.container { width: min(100% - 2rem, var(--container)); margin-inline: auto; }
.section { padding-block: var(--space-7); }

.skip-link {
  position: fixed;
  z-index: 2000;
  top: .5rem;
  left: .5rem;
  padding: .75rem 1rem;
  color: var(--color-white);
  background: var(--color-primary-dark);
  border-radius: .5rem;
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }

:focus-visible {
  outline: 3px solid #ec7cbc;
  outline-offset: 4px;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: var(--space-3);
  color: var(--color-primary);
  font-weight: 800;
  font-size: var(--step--1);
}
.eyebrow svg { color: var(--color-accent); }
.eyebrow--light { color: #f9d9ec; }

.topbar { color: #fff; background: var(--color-primary-dark); font-size: .84rem; }
.topbar__content { display: flex; justify-content: center; min-height: 2.55rem; align-items: center; }
.topbar p, .topbar a { display: flex; align-items: center; gap: .45rem; margin: 0; }
.topbar a { display: none; text-decoration: none; font-weight: 700; }
.topbar svg { width: 1rem; height: 1rem; }

.site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  background: rgba(255, 248, 241, .94);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(14px);
  transition: box-shadow var(--duration-base) var(--ease), border-color var(--duration-base) var(--ease);
}
.site-header.is-scrolled { border-color: rgba(111, 58, 138, .1); box-shadow: 0 8px 28px rgba(60, 33, 74, .08); }
.header__content { display: flex; justify-content: space-between; align-items: center; min-height: 4.8rem; gap: 1rem; }

.brand { display: inline-flex; align-items: center; gap: .75rem; color: var(--color-primary-dark); text-decoration: none; }
.brand img { width: 3.4rem; height: 3.4rem; border: 2px solid #fff; border-radius: 50%; object-fit: cover; box-shadow: 0 5px 14px rgba(60, 33, 74, .13); }
.brand span { display: grid; line-height: 1; }
.brand strong { font: 700 1.25rem/1 var(--font-display); }
.brand small { margin-top: .35rem; color: var(--color-accent); font-weight: 800; font-size: .65rem; letter-spacing: .09em; text-transform: uppercase; }

.menu-toggle {
  position: relative;
  z-index: 2;
  display: grid;
  place-content: center;
  width: 3rem;
  height: 3rem;
  gap: .3rem;
  color: var(--color-primary-dark);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 50%;
}
.menu-toggle span { display: block; width: 1.25rem; height: 2px; background: currentColor; transition: transform var(--duration-base) var(--ease), opacity var(--duration-fast); }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(.4rem) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-.4rem) rotate(-45deg); }

.nav {
  position: fixed;
  inset: 7.35rem 0 auto;
  display: grid;
  gap: .2rem;
  max-height: calc(100dvh - 7.35rem);
  padding: 1rem;
  overflow-y: auto;
  background: var(--color-cream);
  box-shadow: var(--shadow-md);
  transform: translateY(-120%);
  visibility: hidden;
  transition: transform var(--duration-base) var(--ease), visibility var(--duration-base);
}
.nav.is-open { transform: translateY(0); visibility: visible; }
.nav > a:not(.button) { min-height: 3rem; padding: .7rem .8rem; color: var(--color-primary-dark); border-radius: .7rem; text-decoration: none; font-weight: 700; }
.nav > a:not(.button):hover { color: var(--color-primary); background: var(--color-accent-soft); }
.nav__mobile-cta { margin-top: .5rem; }
.header__cta { display: none; flex: 0 0 auto; }

.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 3.25rem;
  gap: .55rem;
  padding: .78rem 1.25rem;
  border: 2px solid transparent;
  border-radius: 999px;
  text-align: center;
  text-decoration: none;
  font-weight: 800;
  line-height: 1.15;
  touch-action: manipulation;
  transition: color var(--duration-fast), background var(--duration-fast), border-color var(--duration-fast), box-shadow var(--duration-fast), transform var(--duration-fast);
}
.button:hover { transform: translateY(-2px); }
.button:active { transform: scale(.97); }
.button--small { min-height: 2.8rem; padding: .65rem 1rem; font-size: .9rem; }
.button--primary { color: #fff; background: var(--color-primary); box-shadow: 0 10px 24px rgba(111, 58, 138, .22); }
.button--primary:hover { background: #5e2d78; box-shadow: 0 14px 30px rgba(111, 58, 138, .3); }
.button--secondary { color: var(--color-primary-dark); background: transparent; border-color: rgba(111, 58, 138, .3); }
.button--secondary:hover { background: #fff; border-color: var(--color-primary); }
.button--whatsapp { color: #fff; background: var(--color-whatsapp); }
.button--whatsapp:hover { background: #117438; }
.button--light { color: var(--color-primary-dark); background: #fff; box-shadow: 0 12px 28px rgba(31, 11, 39, .2); }
.button--light:hover { background: var(--color-cream); }

.hero { position: relative; padding-block: 3.2rem 4.8rem; overflow: hidden; isolation: isolate; }
.hero__grid { display: grid; align-items: center; gap: var(--space-6); }
.hero__content { position: relative; z-index: 2; }
.hero__lead { max-width: 41rem; margin-bottom: var(--space-5); color: var(--color-muted); font-size: clamp(1.06rem, 1rem + .3vw, 1.24rem); }
.hero__eyebrow { padding: .48rem .8rem; background: rgba(247, 215, 235, .58); border: 1px solid rgba(216, 76, 154, .16); border-radius: 999px; }
.hero__actions { display: flex; flex-direction: column; align-items: stretch; gap: .75rem; }
.hero__benefits { display: grid; gap: .7rem; margin: var(--space-5) 0 0; padding: 0; list-style: none; color: var(--color-primary-dark); font-size: .93rem; font-weight: 700; }
.hero__benefits li { display: flex; align-items: center; gap: .5rem; }
.hero__benefits svg { color: var(--color-whatsapp); }

.hero__visual { position: relative; width: min(100%, 31rem); min-height: 31rem; margin-inline: auto; }
.hero__blob { position: absolute; inset: 6% 0 2% 5%; background: linear-gradient(145deg, var(--color-primary) 0 64%, var(--color-accent) 64%); border-radius: 44% 56% 63% 37% / 38% 36% 64% 62%; transform: rotate(3deg); }
.hero__photo-wrap { position: absolute; inset: 0 7% 0 10%; overflow: hidden; border: .5rem solid #fff; border-radius: 48% 52% 47% 53% / 38% 39% 61% 62%; box-shadow: var(--shadow-md); }
.hero__photo { width: 100%; height: 100%; object-fit: cover; object-position: center 26%; }
.hero__stamp {
  position: absolute;
  right: -.4rem;
  bottom: 1.6rem;
  display: flex;
  align-items: center;
  gap: .65rem;
  max-width: 11rem;
  padding: .8rem 1rem;
  color: var(--color-primary-dark);
  background: #fff;
  border-radius: 1rem;
  box-shadow: var(--shadow-md);
  font-size: .82rem;
  line-height: 1.25;
}
.hero__stamp svg { width: 1.8rem; height: 1.8rem; color: var(--color-accent); }
.hero__stamp span { display: grid; }
.paw { position: absolute; z-index: -1; width: 3.2rem; height: 3.2rem; color: var(--color-accent); fill: currentColor; stroke: none; opacity: .18; }
.paw--one { top: 8%; left: -2%; transform: rotate(-22deg); }
.paw--two { right: 2%; bottom: 34%; transform: rotate(20deg) scale(.7); }
.hero__glow { position: absolute; z-index: -2; border-radius: 50%; filter: blur(1px); }
.hero__glow--one { top: -8rem; left: -12rem; width: 30rem; height: 30rem; background: rgba(247, 215, 235, .45); }
.hero__glow--two { right: -9rem; bottom: -6rem; width: 22rem; height: 22rem; background: rgba(111, 58, 138, .08); }

.trust-strip { color: #fff; background: var(--color-primary-dark); }
.trust-strip__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; }
.trust-strip p { display: flex; flex-direction: column; align-items: center; gap: .5rem; margin: 0; padding: 1.2rem .6rem; text-align: center; font-size: .82rem; font-weight: 700; }
.trust-strip p:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.12); }
.trust-strip p:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.12); }
.trust-strip svg { color: #ef94c7; }

.section-heading { max-width: 46rem; margin: 0 auto var(--space-6); text-align: center; }
.section-heading > p:last-child { max-width: 39rem; margin: 0 auto; color: var(--color-muted); }
.services { background: #fff; }
.services__grid { display: grid; gap: var(--space-3); }
.service-card { position: relative; display: flex; flex-direction: column; min-height: 19rem; padding: var(--space-4); overflow: hidden; background: var(--color-cream); border: 1px solid rgba(111, 58, 138, .1); border-radius: var(--radius-md); transition: transform var(--duration-base) var(--ease), box-shadow var(--duration-base) var(--ease), border-color var(--duration-base); }
.service-card::after { position: absolute; right: -2rem; bottom: -2rem; width: 6rem; height: 6rem; content: ""; background: rgba(111, 58, 138, .05); border-radius: 50%; }
.service-card:hover { border-color: rgba(216, 76, 154, .32); box-shadow: var(--shadow-sm); transform: translateY(-5px); }
.service-card--accent { background: #fff3fa; }
.service-card__icon { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; margin-bottom: var(--space-4); color: var(--color-primary); background: #fff; border-radius: 1rem; box-shadow: 0 8px 20px rgba(60,33,74,.08); }
.service-card__icon svg { width: 1.65rem; height: 1.65rem; }
.service-card p { color: var(--color-muted); }
.service-card .text-link { margin-top: auto; }
.text-link { display: inline-flex; align-items: center; gap: .4rem; color: var(--color-primary); font-weight: 800; text-decoration: none; }
.text-link span { transition: transform var(--duration-fast); }
.text-link:hover span { transform: translateX(.25rem); }
.section-cta { display: flex; flex-direction: column; align-items: center; gap: 1rem; margin-top: var(--space-5); padding: var(--space-4); text-align: center; background: var(--color-accent-soft); border-radius: var(--radius-md); }
.section-cta p { margin: 0; color: var(--color-primary-dark); font-weight: 800; }

.home-care { position: relative; background: var(--color-cream); }
.home-care__grid { display: grid; align-items: center; gap: var(--space-6); }
.organic-photo { position: relative; width: min(100%, 31rem); margin-inline: auto; }
.organic-photo::before { position: absolute; inset: -1rem 1.5rem 1rem -1rem; content: ""; background: var(--color-accent-soft); border-radius: 42% 58% 35% 65% / 56% 35% 65% 44%; transform: rotate(-4deg); }
.organic-photo img { position: relative; width: 100%; max-height: 37rem; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; border: .45rem solid #fff; border-radius: 35% 65% 45% 55% / 45% 38% 62% 55%; box-shadow: var(--shadow-md); }
.photo-note { position: absolute; right: -.4rem; bottom: 1rem; display: flex; align-items: center; gap: .45rem; padding: .75rem .9rem; color: #fff; background: var(--color-primary-dark); border-radius: .9rem; box-shadow: var(--shadow-sm); font-size: .82rem; font-weight: 800; }
.photo-note svg { color: #f299c9; }
.home-care__content > p:not(.eyebrow) { color: var(--color-muted); }
.check-list { display: grid; gap: .75rem; margin: var(--space-4) 0 var(--space-5); padding: 0; list-style: none; }
.check-list li { display: flex; align-items: flex-start; gap: .65rem; font-weight: 700; }
.check-list svg { margin-top: .16rem; color: var(--color-whatsapp); }

.about { color: #fff; background: var(--color-primary-dark); overflow: hidden; }
.about__grid { display: grid; align-items: center; gap: var(--space-6); }
.about h2 { color: #fff; }
.about__content > p:not(.eyebrow) { color: #e6dce9; }
.about__person { display: flex; align-items: center; gap: .8rem; margin-top: var(--space-5); }
.about__initial { display: grid; place-items: center; width: 3rem; height: 3rem; color: var(--color-primary-dark); background: #ef9aca; border-radius: 50%; font: 700 1.25rem/1 var(--font-display); }
.about__person p { margin: 0; line-height: 1.35; }
.about__person strong { color: #fff; }
.about__person span { color: #cdbfd1; font-size: .9rem; }
.about__photos { position: relative; min-height: 30rem; }
.about__photo { position: absolute; margin: 0; overflow: hidden; border: .35rem solid rgba(255,255,255,.92); box-shadow: 0 20px 42px rgba(16,5,22,.34); }
.about__photo img { width: 100%; height: 100%; object-fit: cover; }
.about__photo--one { top: 0; left: 0; width: 63%; height: 75%; border-radius: 5rem 1.3rem 5rem 1.3rem; transform: rotate(-3deg); }
.about__photo--two { right: 0; bottom: 0; width: 56%; height: 69%; border-radius: 1.3rem 5rem 1.3rem 5rem; transform: rotate(3deg); }
.about__badge { position: absolute; z-index: 2; left: 50%; bottom: 12%; display: flex; align-items: center; gap: .45rem; padding: .8rem 1rem; color: var(--color-primary-dark); background: #fff; border-radius: 999px; box-shadow: var(--shadow-sm); font-size: .82rem; font-weight: 800; transform: translateX(-50%); white-space: nowrap; }
.about__badge svg { color: var(--color-accent); fill: currentColor; stroke: none; }

.gallery { background: #fff; }
.gallery__rail { display: grid; grid-auto-flow: column; grid-auto-columns: 82%; gap: var(--space-3); padding: .5rem .2rem 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--color-accent) #f3e9f1; }
.gallery-card { position: relative; height: 26rem; margin: 0; overflow: hidden; background: var(--color-cream); border-radius: var(--radius-md); scroll-snap-align: center; }
.gallery-card img { width: 100%; height: 100%; object-fit: cover; object-position: center 28%; transition: transform 700ms var(--ease); }
.gallery-card:hover img { transform: scale(1.025); }
.gallery-card figcaption { position: absolute; right: .8rem; bottom: .8rem; left: .8rem; padding: .75rem .9rem; color: #fff; background: rgba(41,21,51,.82); border-radius: .8rem; backdrop-filter: blur(8px); font-size: .86rem; font-weight: 700; }
.gallery__hint { margin: .75rem 0 0; color: var(--color-muted); text-align: center; font-size: .88rem; }

.steps { position: relative; background: #fff8f1; }
.steps__grid { position: relative; display: grid; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.step-card { display: grid; grid-template-columns: auto 1fr; gap: var(--space-3); padding: var(--space-4); background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.step-card__number { display: grid; place-items: center; width: 3rem; height: 3rem; color: #fff; background: var(--color-primary); border-radius: 50% 50% 50% 16%; font: 700 1.2rem/1 var(--font-display); }
.step-card p { margin: 0; color: var(--color-muted); }
.steps__cta { margin-top: var(--space-5); text-align: center; }

.location { background: #fff; }
.location__shell { display: grid; overflow: hidden; color: #fff; background: var(--color-primary); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.location__content { padding: clamp(1.4rem, 4vw, 3.4rem); }
.location h2 { color: #fff; }
.location__content > p:not(.eyebrow) { color: #ebdfef; }
.contact-list { display: grid; gap: 1rem; margin: var(--space-5) 0; }
.contact-list div { display: grid; gap: .25rem; padding-bottom: 1rem; border-bottom: 1px solid rgba(255,255,255,.17); }
.contact-list dt { display: flex; align-items: center; gap: .5rem; color: #f8cde6; font-weight: 800; }
.contact-list dd { margin: 0; color: #fff; line-height: 1.45; }
.contact-list a { color: #fff; }
.region-form { padding: 1rem; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius-sm); }
.region-form label { display: block; margin-bottom: .65rem; font-weight: 800; }
.region-form__row { display: grid; gap: .65rem; }
.region-form input { width: 100%; min-height: 3.25rem; padding: .75rem 1rem; color: var(--color-primary-dark); background: #fff; border: 2px solid transparent; border-radius: 999px; outline: none; }
.region-form input:focus { border-color: #ef9aca; box-shadow: 0 0 0 3px rgba(239,154,202,.25); }
.region-form input[aria-invalid="true"] { border-color: #ffb4b4; }
.form-help { margin: .6rem .25rem 0; color: #e5d8e8; font-size: .78rem; line-height: 1.4; }
.form-error { margin: .4rem .25rem 0; color: #fff0a7; font-size: .82rem; font-weight: 800; }
.form-error:empty { display: none; }

.faq { background: var(--color-cream); }
.faq__grid { display: grid; gap: var(--space-5); }
.faq__intro > p:not(.eyebrow) { color: var(--color-muted); }
.accordion { border-top: 1px solid var(--color-border); }
.accordion__item { border-bottom: 1px solid var(--color-border); }
.accordion__item h3 { margin: 0; }
.accordion__item button { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 4.5rem; gap: 1rem; padding: 1rem 0; color: var(--color-primary-dark); background: none; border: 0; text-align: left; font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; }
.accordion__item button span { position: relative; width: 1.7rem; height: 1.7rem; flex: 0 0 auto; background: var(--color-accent-soft); border-radius: 50%; }
.accordion__item button span::before, .accordion__item button span::after { position: absolute; top: 50%; left: 50%; width: .75rem; height: 2px; content: ""; background: var(--color-primary); transform: translate(-50%,-50%); transition: transform var(--duration-base) var(--ease); }
.accordion__item button span::after { transform: translate(-50%,-50%) rotate(90deg); }
.accordion__item button[aria-expanded="true"] span::after { transform: translate(-50%,-50%) rotate(0deg); }
.accordion__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--duration-base) var(--ease); }
.accordion__panel > div { overflow: hidden; }
.accordion__panel p { margin: 0; padding: 0 2.8rem 1.4rem 0; color: var(--color-muted); }
.accordion__panel.is-open { grid-template-rows: 1fr; }

.final-cta { background: #fff; }
.final-cta__shell { position: relative; display: grid; min-height: 30rem; overflow: hidden; color: #fff; background: var(--color-primary-dark); border-radius: var(--radius-lg); }
.final-cta__content { position: relative; z-index: 2; padding: clamp(1.7rem, 5vw, 4rem); }
.final-cta h2 { color: #fff; }
.final-cta__content > p:not(.eyebrow) { max-width: 35rem; color: #e6dce9; }
.final-cta__paw { position: absolute; top: -1.5rem; right: -1rem; width: 8rem; height: 8rem; color: #fff; fill: currentColor; stroke: none; opacity: .06; transform: rotate(18deg); }
.final-cta__photo { min-height: 22rem; overflow: hidden; }
.final-cta__photo img { width: 100%; height: 100%; max-height: 32rem; object-fit: cover; object-position: center 24%; }

.footer { padding: var(--space-6) 0 6.5rem; color: #ddcedf; background: var(--color-primary-deep); }
.footer__grid { display: grid; gap: var(--space-5); }
.brand--footer { color: #fff; }
.footer__brand > p { max-width: 28rem; margin-top: 1rem; }
.footer h2 { margin-bottom: .8rem; color: #fff; font-size: 1rem; }
.footer ul { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.footer a { text-decoration-color: rgba(255,255,255,.28); text-underline-offset: .2rem; }
.footer a:hover { color: #fff; }
.text-link--light { color: #f5b4d8; }
.footer__bottom { display: flex; flex-direction: column; gap: .75rem; margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid rgba(255,255,255,.1); font-size: .85rem; }
.footer__bottom p { margin: 0; }

.whatsapp-float { position: fixed; z-index: 900; right: 1rem; bottom: 5.9rem; display: grid; place-items: center; width: 3.5rem; height: 3.5rem; color: #fff; background: var(--color-whatsapp); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 12px 28px rgba(13, 93, 43, .34); transition: transform var(--duration-fast); }
.whatsapp-float:hover { transform: translateY(-3px) scale(1.04); }
.whatsapp-float svg { width: 1.65rem; height: 1.65rem; }
.mobile-cta { position: fixed; z-index: 850; right: 0; bottom: 0; left: 0; padding: .65rem max(1rem, env(safe-area-inset-left)) max(.65rem, env(safe-area-inset-bottom)); background: rgba(255,255,255,.95); border-top: 1px solid var(--color-border); backdrop-filter: blur(12px); }
.mobile-cta .button { width: 100%; }

.legal-page { min-height: 100vh; background: var(--color-cream); }
.legal-header { padding: .8rem 0; background: #fff; border-bottom: 1px solid var(--color-border); }
.legal-header .container { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.legal-header .button { font-size: .85rem; }
.legal-content { max-width: 48rem; padding-block: var(--space-7); }
.legal-content h1 { font-size: var(--step-3); }
.legal-content h2 { margin-top: var(--space-5); font-size: var(--step-2); }
.legal-content p { color: var(--color-muted); }
.legal-content a { color: var(--color-primary); font-weight: 800; }

@media (min-width: 38rem) {
  .hero__actions { flex-direction: row; align-items: center; }
  .hero__benefits { grid-template-columns: repeat(3, 1fr); }
  .hero__benefits li { align-items: flex-start; }
  .services__grid { grid-template-columns: repeat(2, 1fr); }
  .section-cta { flex-direction: row; justify-content: space-between; text-align: left; }
  .region-form__row { grid-template-columns: minmax(0, 1fr) auto; }
  .footer__grid { grid-template-columns: repeat(2, 1fr); }
  .footer__bottom { flex-direction: row; justify-content: space-between; }
}

@media (min-width: 48rem) {
  .container { width: min(100% - 3rem, var(--container)); }
  .section { padding-block: var(--space-8); }
  .topbar__content { justify-content: space-between; }
  .topbar a { display: flex; }
  .trust-strip__grid { grid-template-columns: repeat(4, 1fr); }
  .trust-strip p { flex-direction: row; justify-content: center; min-height: 5rem; padding: 1rem; font-size: .9rem; }
  .trust-strip p:nth-child(n) { border-bottom: 0; border-right: 1px solid rgba(255,255,255,.12); }
  .trust-strip p:last-child { border-right: 0; }
  .services__grid { gap: var(--space-4); }
  .step-card { padding: var(--space-5); }
  .final-cta__shell { grid-template-columns: 1.15fr .85fr; }
  .final-cta__photo { min-height: 100%; }
  .final-cta__photo img { max-height: none; }
}

@media (min-width: 64rem) {
  .hero { min-height: calc(100dvh - 8rem); display: grid; align-items: center; padding-block: 4.8rem 5.5rem; }
  .hero__grid { grid-template-columns: minmax(0, 1.08fr) minmax(25rem, .92fr); gap: var(--space-7); }
  .hero__visual { min-height: 39rem; }
  .services__grid { grid-template-columns: repeat(3, 1fr); }
  .home-care__grid { grid-template-columns: minmax(22rem, .9fr) minmax(0, 1.1fr); gap: clamp(4rem, 8vw, 8rem); }
  .about__grid { grid-template-columns: .92fr 1.08fr; gap: clamp(4rem, 8vw, 8rem); }
  .about__photos { min-height: 38rem; }
  .section-heading--split { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; max-width: none; text-align: left; }
  .section-heading--split > p:last-child { margin: 0 0 .4rem auto; }
  .gallery__rail { grid-template: repeat(2, 16rem) / 1.15fr .85fr .85fr; overflow: visible; }
  .gallery-card { height: auto; }
  .gallery-card--tall { grid-row: 1 / 3; }
  .gallery-card--wide { grid-column: 2 / 4; }
  .gallery__hint { display: none; }
  .steps__grid { grid-template-columns: repeat(3, 1fr); }
  .steps__grid::before { position: absolute; z-index: 0; top: 3.55rem; left: 16%; width: 68%; height: 2px; content: ""; background: repeating-linear-gradient(90deg, var(--color-accent) 0 8px, transparent 8px 16px); opacity: .32; }
  .step-card { position: relative; z-index: 1; display: block; text-align: center; }
  .step-card__number { margin: 0 auto var(--space-4); }
  .faq__grid { grid-template-columns: .75fr 1.25fr; gap: clamp(4rem, 8vw, 8rem); }
  .faq__intro { position: sticky; top: 9rem; align-self: start; }
  .footer { padding-bottom: var(--space-5); }
  .footer__grid { grid-template-columns: 1.3fr .65fr 1.15fr .8fr; }
  .mobile-cta { display: none; }
  .whatsapp-float { right: 1.5rem; bottom: 1.5rem; }
}

@media (min-width: 76rem) {
  .header__content { min-height: 5.4rem; }
  .menu-toggle { display: none; }
  .brand { flex: 0 0 auto; }
  .nav { position: static; display: flex; flex: 1 1 auto; justify-content: center; align-items: center; gap: .1rem; min-width: 0; max-height: none; margin-inline: .4rem; padding: 0; overflow: visible; background: none; box-shadow: none; transform: none; visibility: visible; }
  .nav > a:not(.button) { display: inline-flex; align-items: center; min-height: 2.8rem; padding: .52rem .58rem; font-size: .84rem; }
  .nav__mobile-cta { display: none; }
  .header__cta { display: inline-flex; min-height: 2.75rem; padding: .58rem .82rem; font-size: .8rem; white-space: nowrap; }
}

@media (min-width: 84rem) {
  .nav { margin-inline: .8rem; }
  .nav > a:not(.button) { padding-inline: .75rem; font-size: .9rem; }
  .header__cta { padding-inline: 1rem; font-size: .86rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .gallery-card:hover img, .button:hover, .service-card:hover, .whatsapp-float:hover { transform: none; }
}
