:root {
  --forest: #263b34;
  --forest-deep: #172822;
  --sage: #839487;
  --clay: #ad6c50;
  --sand: #e2d5c3;
  --cream: #f7f3ec;
  --white: #fffdf9;
  --ink: #202723;
  --muted: #66716b;
  --line: rgba(38, 59, 52, 0.2);
  --max: 1420px;
  --header: 88px;
}

* { box-sizing: border-box; }
html { width: 100%; max-width: 100%; overflow-x: clip; scroll-behavior: smooth; }
section[id] { scroll-margin-top: var(--header); }
body { width: 100%; max-width: 100%; margin: 0; overflow-x: clip; color: var(--ink); background: var(--cream); font-family: "Manrope", Arial, sans-serif; font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.menu-open, body.viewer-open { overflow: hidden; }
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
address { font-style: normal; }

.skip-link { position: fixed; z-index: 1000; top: -80px; left: 18px; padding: 12px 16px; background: var(--white); color: var(--forest); }
.skip-link:focus { top: 18px; }
:focus-visible { outline: 3px solid #e6a16f; outline-offset: 4px; }

.eyebrow { margin: 0; color: var(--clay); font-size: 13px; font-weight: 700; letter-spacing: 0.13em; line-height: 1.5; text-transform: uppercase; }
h1, h2 { font-family: "Prata", Georgia, serif; font-weight: 400; letter-spacing: -0.045em; }

.site-header { position: sticky; z-index: 100; top: 0; min-height: var(--header); display: grid; grid-template-columns: 1fr auto 1fr; gap: 38px; align-items: center; padding: 14px max(28px, calc((100vw - var(--max)) / 2)); border-bottom: 1px solid var(--line); background: rgba(247, 243, 236, 0.97); }
.brand { display: grid; width: max-content; line-height: 1; }
.brand strong { font-family: "Prata", Georgia, serif; font-size: 23px; font-weight: 400; letter-spacing: -0.04em; }
.brand span { margin-top: 7px; color: var(--forest); font-size: 13px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.main-nav { display: flex; gap: 26px; align-items: center; }
.main-nav a { position: relative; padding: 9px 0; font-size: 13px; font-weight: 700; }
.main-nav a::after { content: ""; position: absolute; right: 0; bottom: 4px; left: 0; height: 1px; background: var(--clay); transform: scaleX(0); transform-origin: right; transition: transform 180ms ease; }
.main-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.header-actions { justify-self: end; display: flex; gap: 14px; align-items: center; }
.instagram-link { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; }
.instagram-link svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.header-cta { display: flex; gap: 28px; align-items: center; min-height: 48px; padding: 0 18px; background: var(--forest); color: white; font-size: 13px; font-weight: 700; }
.menu-toggle { display: none; }

.hero { min-height: calc(100svh - var(--header)); display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(400px, 0.88fr); background: var(--cream); }
.hero-copy { min-width: 0; display: flex; flex-direction: column; justify-content: center; padding: clamp(34px, 5vh, 58px) clamp(42px, 5vw, 78px) clamp(34px, 5vh, 58px) max(28px, calc((100vw - var(--max)) / 2)); }
.hero h1 { max-width: 820px; margin: 24px 0 22px; font-size: clamp(52px, 4.9vw, 76px); line-height: 1.01; overflow-wrap: break-word; }
.hero-lead { max-width: 700px; margin: 0; color: #4c5852; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.65; }
.hero-actions { display: flex; gap: 28px; align-items: center; margin-top: 27px; }
.primary-button { min-height: 58px; display: inline-flex; justify-content: space-between; align-items: center; gap: 35px; padding: 0 22px; background: var(--forest); color: white; font-size: 14px; font-weight: 700; }
.primary-button span, .header-cta span { transition: transform 180ms ease; }
.primary-button:hover span, .header-cta:hover span { transform: translate(3px, -3px); }
.secondary-link { padding-bottom: 4px; border-bottom: 1px solid var(--clay); color: var(--forest); font-size: 14px; font-weight: 700; }
.hero-proof { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 680px; margin-top: 38px; padding-top: 18px; border-top: 1px solid var(--line); }
.hero-proof p { display: grid; margin: 0; }
.hero-proof strong { color: var(--forest); font-size: 14px; }
.hero-proof span { margin-top: 4px; color: var(--muted); font-size: 13px; }
.hero-media { position: relative; min-height: calc(100svh - var(--header)); overflow: hidden; background: var(--forest); }
.hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 32%; filter: saturate(0.82) contrast(1.02); }
.hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(23,40,34,0.56), transparent 45%); pointer-events: none; }
.hero-location { position: absolute; z-index: 2; right: 28px; bottom: 27px; left: 28px; display: flex; justify-content: space-between; gap: 20px; align-items: baseline; padding-top: 15px; border-top: 1px solid rgba(255,255,255,0.58); color: white; }
.hero-location span { font-size: 13px; }
.hero-location strong { font-family: "Prata", Georgia, serif; font-size: 23px; font-weight: 400; }

.local-strip { display: flex; justify-content: center; gap: clamp(18px, 3vw, 48px); align-items: center; padding: 25px max(28px, calc((100vw - var(--max)) / 2)); background: var(--forest); color: white; }
.local-strip p { margin: 0; font-size: clamp(14px, 1.3vw, 18px); font-weight: 600; }
.local-strip > span { color: var(--clay); }

.services { padding: clamp(100px, 11vw, 165px) max(28px, calc((100vw - var(--max)) / 2)); background: var(--white); }
.section-intro { display: grid; grid-template-columns: 0.7fr 1.45fr 0.75fr; gap: clamp(35px, 6vw, 95px); align-items: end; margin-bottom: 72px; }
.section-intro h2, .results-heading h2, .body-care h2, .about h2, .process h2, .faq h2, .location h2, .final-cta h2 { margin: 0; font-size: clamp(45px, 5.5vw, 79px); line-height: 1.06; }
.section-intro > p:last-child, .results-heading > p:last-child { margin: 0; color: var(--muted); font-size: 15px; }
.service-groups { border-top: 1px solid var(--forest); }
.service-group { display: grid; grid-template-columns: 90px 1fr; gap: 28px; padding: 38px 0 42px; border-bottom: 1px solid var(--line); }
.service-number { color: var(--clay); font-family: "Prata", Georgia, serif; font-size: 22px; }
.service-group > div { display: grid; grid-template-columns: 0.82fr 1.18fr; gap: clamp(40px, 7vw, 110px); }
.service-group h3 { margin: 0; color: var(--forest); font-family: "Prata", Georgia, serif; font-size: clamp(28px, 3vw, 42px); font-weight: 400; line-height: 1.16; letter-spacing: -0.035em; }
.service-group p { max-width: 500px; margin: 16px 0 0; color: var(--muted); font-size: 14px; }
.service-group ul { columns: 2; column-gap: 35px; margin: 0; padding: 0; list-style: none; }
.service-group li { break-inside: avoid; padding: 10px 0 10px 20px; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 600; }
.service-group li::before { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 14px 2px -20px; border-radius: 50%; background: var(--clay); }
.services-cta { display: flex; justify-content: space-between; gap: 40px; align-items: center; margin-top: 42px; padding: 26px 30px; background: var(--sand); }
.services-cta p { max-width: 730px; margin: 0; font-size: 15px; }
.services-cta a, .text-link { display: inline-flex; gap: 30px; padding-bottom: 5px; border-bottom: 1px solid var(--forest); color: var(--forest); font-size: 14px; font-weight: 700; }

.body-care { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(470px, 1.1fr); min-height: 760px; background: var(--forest-deep); color: white; }
.body-care-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(75px, 9vw, 135px) clamp(48px, 8vw, 125px) clamp(75px, 9vw, 135px) max(28px, calc((100vw - var(--max)) / 2)); }
.body-care h2 { margin: 28px 0 30px; }
.body-care-copy > p:not(.eyebrow,.disclaimer) { max-width: 650px; margin: 0; color: rgba(255,255,255,0.74); font-size: 17px; }
.equipment-list { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 38px; }
.equipment-list span { padding: 9px 12px; border: 1px solid rgba(255,255,255,0.28); color: var(--sand); font-size: 13px; font-weight: 600; }
.disclaimer { margin: 38px 0 0; color: rgba(255,255,255,0.54); font-size: 13px; line-height: 1.6; }
.image-button { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; border: 0; background: var(--forest); cursor: zoom-in; }
.body-care-image { min-height: 760px; }
.body-care-image img { width: 100%; height: 100%; object-fit: contain; background: #ddd8d0; }
.image-button > span { position: absolute; z-index: 2; right: 16px; bottom: 16px; padding: 9px 12px; background: rgba(255,253,249,0.94); color: var(--forest); font-size: 13px; font-weight: 700; opacity: 0; transform: translateY(6px); transition: opacity 180ms ease, transform 180ms ease; }
.image-button:hover > span, .image-button:focus-visible > span { opacity: 1; transform: none; }

.results { padding: clamp(100px, 11vw, 165px) max(28px, calc((100vw - var(--max)) / 2)); background: var(--cream); }
.results-heading { display: grid; grid-template-columns: 0.65fr 1.45fr 0.7fr; gap: clamp(35px, 6vw, 90px); align-items: end; margin-bottom: 65px; }
.results-grid { columns: 2; column-gap: 28px; }
.result-card { break-inside: avoid; margin: 0 0 28px; background: var(--white); }
.result-card img { width: 100%; height: auto; object-fit: contain; }
.result-card figcaption { display: flex; justify-content: space-between; gap: 22px; padding: 18px 20px 20px; border-top: 1px solid var(--line); }
.result-card figcaption strong { color: var(--forest); font-size: 14px; }
.result-card figcaption span { color: var(--muted); font-size: 13px; }

.about { display: grid; grid-template-columns: minmax(400px, 0.8fr) minmax(0, 1.2fr); gap: clamp(60px, 9vw, 145px); align-items: center; padding: clamp(100px, 11vw, 160px) max(28px, calc((100vw - var(--max)) / 2)); background: var(--sand); }
.about-media { background: var(--forest-deep); }
.about-media video { width: 100%; height: 680px; object-fit: contain; background: var(--forest-deep); }
.about-media p { margin: 0; padding: 13px 16px; color: var(--sand); font-size: 13px; }
.about h2 { margin: 28px 0 30px; color: var(--forest); }
.about-lead { margin: 0 0 26px; color: var(--forest); font-size: clamp(20px, 2vw, 29px); font-weight: 500; line-height: 1.5; }
.about-copy > p:not(.eyebrow,.about-lead) { max-width: 720px; color: #49554f; font-size: 15px; }
.text-link { margin-top: 25px; }

.process { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(70px, 11vw, 180px); padding: clamp(100px, 11vw, 160px) max(28px, calc((100vw - var(--max)) / 2)); background: var(--white); }
.process h2 { margin-top: 27px; }
.process ol { margin: 0; padding: 0; border-top: 1px solid var(--forest); list-style: none; }
.process li { display: grid; grid-template-columns: 50px 1fr; gap: 22px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.process li > span { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--clay); border-radius: 50%; color: var(--clay); font-size: 13px; font-weight: 700; }
.process h3 { margin: 0; color: var(--forest); font-size: 18px; }
.process li p { margin: 6px 0 0; color: var(--muted); font-size: 14px; }

.faq { display: grid; grid-template-columns: 0.75fr 1.25fr; gap: clamp(70px, 11vw, 170px); padding: clamp(100px, 11vw, 160px) max(28px, calc((100vw - var(--max)) / 2)); background: var(--cream); }
.faq-heading { align-self: start; position: sticky; top: 120px; }
.faq h2 { margin: 25px 0 22px; }
.faq-heading > p:last-child { color: var(--muted); }
.faq-list { border-top: 1px solid var(--forest); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { display: flex; justify-content: space-between; gap: 24px; padding: 25px 0; list-style: none; cursor: pointer; color: var(--forest); font-size: clamp(17px, 1.7vw, 22px); font-weight: 600; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary span { color: var(--clay); font-size: 25px; font-weight: 400; transition: transform 180ms ease; }
.faq details[open] summary span { transform: rotate(45deg); }
.faq details p { max-width: 720px; margin: -2px 0 25px; color: var(--muted); font-size: 15px; }

.location { display: grid; grid-template-columns: minmax(390px, 0.72fr) minmax(0, 1.28fr); min-height: 690px; background: var(--forest); color: white; }
.location-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(70px, 9vw, 125px) clamp(45px, 7vw, 105px) clamp(70px, 9vw, 125px) max(28px, calc((100vw - var(--max)) / 2)); }
.location h2 { margin: 27px 0 38px; }
.location address { color: var(--sand); font-size: 17px; line-height: 1.8; }
.location-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; margin-top: 42px; }
.location .primary-button { background: var(--white); color: var(--forest); }
.location .secondary-link { color: white; }
.map-wrap { min-height: 690px; }
.map-wrap iframe { width: 100%; height: 100%; min-height: 690px; border: 0; filter: saturate(0.7) contrast(1.05); }

.final-cta { display: grid; justify-items: center; padding: clamp(110px, 13vw, 190px) 28px; background: var(--clay); color: white; text-align: center; }
.final-cta .eyebrow { color: var(--forest-deep); }
.final-cta h2 { max-width: 1000px; margin: 27px auto 42px; }
.final-cta > a { min-width: 310px; display: inline-flex; justify-content: space-between; gap: 55px; padding: 18px 22px; background: var(--forest); color: white; font-size: 14px; font-weight: 700; }
.final-cta > p:last-child { margin: 22px 0 0; font-size: 13px; }

footer { display: grid; grid-template-columns: 1fr 1fr auto; gap: 45px; align-items: end; padding: 58px max(28px, calc((100vw - var(--max)) / 2)); background: var(--forest-deep); color: white; }
.footer-brand { display: grid; }
.footer-brand strong { font-family: "Prata", Georgia, serif; font-size: 27px; font-weight: 400; }
.footer-brand span { margin-top: 5px; color: var(--sand); font-size: 13px; }
footer > p { margin: 0; color: var(--sand); font-size: 13px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 22px; font-size: 13px; font-weight: 700; }
footer small { grid-column: 1 / -1; padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.16); color: rgba(255,255,255,0.55); font-size: 13px; }

.floating-whatsapp { position: fixed; z-index: 90; right: 22px; bottom: 22px; min-height: 56px; display: flex; gap: 10px; align-items: center; padding: 0 18px; border: 2px solid white; background: #1ba85a; color: white; box-shadow: 0 12px 34px rgba(0,0,0,0.2); font-size: 13px; font-weight: 700; }
.floating-whatsapp svg { width: 24px; fill: currentColor; }

.image-viewer { position: fixed; z-index: 300; inset: 0; width: 100%; max-width: 100%; display: grid; grid-template-columns: minmax(54px,1fr) minmax(0,1100px) minmax(54px,1fr); grid-template-rows: 1fr auto; place-items: center; gap: 18px; padding: 72px 28px 24px; overflow: hidden; background: rgba(15,26,22,0.97); color: white; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 180ms ease, visibility 180ms ease; }
.image-viewer.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.image-viewer figure { grid-column: 2; grid-row: 1; display: grid; justify-items: center; max-width: 100%; max-height: calc(100vh - 130px); margin: 0; }
.image-viewer figure img { max-width: 100%; max-height: calc(100vh - 175px); width: auto; height: auto; object-fit: contain; }
.image-viewer figcaption { margin-top: 13px; color: var(--sand); font-size: 14px; text-align: center; }
.viewer-close { position: absolute; top: 22px; right: 26px; display: flex; gap: 12px; align-items: center; padding: 7px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,0.48); background: transparent; color: white; cursor: pointer; font-size: 14px; font-weight: 600; }
.viewer-close span { font-size: 25px; line-height: 1; }
.viewer-nav { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(255,255,255,0.36); background: transparent; color: white; cursor: pointer; font-size: 23px; }
.viewer-prev { grid-column: 1; grid-row: 1; justify-self: end; }
.viewer-next { grid-column: 3; grid-row: 1; justify-self: start; }
.viewer-counter { grid-column: 2; grid-row: 2; margin: 0; color: var(--sand); font-size: 13px; }

@media (max-width: 1120px) {
  .site-header { gap: 20px; }
  .main-nav { gap: 18px; }
  .header-cta { display: none; }
  .hero { grid-template-columns: 1fr 0.75fr; }
  .hero-copy { padding-right: 55px; }
  .section-intro, .results-heading { grid-template-columns: 0.55fr 1.45fr; }
  .section-intro > p:last-child, .results-heading > p:last-child { grid-column: 2; }
  .service-group > div { gap: 45px; }
}

@media (max-width: 820px) {
  :root { --header: 76px; }
  .site-header { grid-template-columns: 1fr auto; gap: 12px; min-height: var(--header); padding: 10px 16px; }
  .brand strong { font-size: 20px; }
  .brand span { font-size: 13px; letter-spacing: 0.04em; }
  .header-cta { display: none; }
  .instagram-link { width: 40px; height: 40px; }
  .menu-toggle { position: relative; z-index: 102; width: 40px; height: 40px; display: grid; place-content: center; gap: 6px; padding: 0; border: 1px solid var(--line); background: transparent; }
  .menu-toggle span { display: block; width: 18px; height: 1px; background: var(--forest); transition: transform 180ms ease, background 180ms ease; }
  .menu-toggle[aria-expanded="true"] { border-color: rgba(255,255,255,0.35); }
  .menu-toggle[aria-expanded="true"] span { background: white; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .main-nav { position: fixed; z-index: 101; inset: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 22px; padding: 90px 24px; background: var(--forest-deep); color: white; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-12px); transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease; }
  .main-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .main-nav a { font-family: "Prata", Georgia, serif; font-size: 30px; font-weight: 400; }

  .hero { display: flex; flex-direction: column; min-height: 0; }
  .hero-copy { order: 1; padding: 64px 22px 55px; }
  .hero h1 { margin: 25px 0; font-size: clamp(46px, 12.4vw, 61px); line-height: 1.03; }
  .hero-lead { font-size: 17px; }
  .hero-actions { flex-direction: column; align-items: stretch; gap: 17px; }
  .primary-button { width: 100%; min-width: 0; }
  .secondary-link { align-self: flex-start; }
  .hero-proof { grid-template-columns: 1fr; gap: 14px; margin-top: 48px; }
  .hero-proof p { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
  .hero-media { order: 2; min-height: 620px; }
  .local-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 0; width: 100%; max-width: 100vw; padding: 8px 22px; }
  .local-strip p { padding: 11px 12px 11px 0; border-bottom: 1px solid rgba(255,255,255,0.16); font-size: 13px; }
  .local-strip > span { display: none; }

  .services, .results, .about, .process, .faq { padding: 90px 20px; }
  .section-intro, .results-heading { display: block; margin-bottom: 45px; }
  .section-intro h2, .results-heading h2, .body-care h2, .about h2, .process h2, .faq h2, .location h2, .final-cta h2 { margin: 22px 0 27px; font-size: clamp(42px, 11.7vw, 58px); }
  .service-group { grid-template-columns: 46px 1fr; gap: 12px; padding: 30px 0 35px; }
  .service-number { font-size: 18px; }
  .service-group > div { display: block; }
  .service-group h3 { font-size: 30px; }
  .service-group ul { columns: 1; margin-top: 24px; }
  .services-cta { display: block; padding: 24px; }
  .services-cta a { margin-top: 24px; }

  .body-care { display: flex; flex-direction: column; min-height: 0; }
  .body-care-copy { padding: 86px 22px 60px; }
  .body-care-image { min-height: 0; }
  .body-care-image img { height: auto; object-fit: contain; }
  .image-button > span { opacity: 1; transform: none; }

  .results-grid { display: block; columns: 1; }
  .result-card { margin-bottom: 22px; }
  .result-card figcaption { display: grid; gap: 5px; }

  .about { display: flex; flex-direction: column; gap: 55px; }
  .about-media { width: 100%; }
  .about-media video { height: 590px; }

  .process, .faq { display: block; }
  .process-heading, .faq-heading { position: static; margin-bottom: 48px; }
  .process h2 { margin-bottom: 0; }
  .faq summary { font-size: 18px; }

  .location { display: block; min-height: 0; }
  .location-copy { padding: 90px 22px; }
  .map-wrap, .map-wrap iframe { min-height: 520px; }

  .final-cta { padding: 105px 20px; }
  .final-cta > a { width: 100%; min-width: 0; }
  footer { grid-template-columns: 1fr; gap: 25px; padding: 55px 20px 90px; }

  .floating-whatsapp { right: 14px; bottom: 14px; width: 58px; height: 58px; min-height: 58px; justify-content: center; padding: 0; border-radius: 50%; }
  .floating-whatsapp span { display: none; }

  .image-viewer { grid-template-columns: 1fr 1fr; grid-template-rows: minmax(0,1fr) auto auto; gap: 12px; padding: 68px 14px 20px; }
  .image-viewer figure { grid-column: 1 / -1; grid-row: 1; max-height: calc(100vh - 155px); }
  .image-viewer figure img { max-height: calc(100vh - 205px); }
  .image-viewer figcaption { font-size: 13px; }
  .viewer-close { top: 17px; right: 18px; }
  .viewer-prev { grid-column: 1; grid-row: 2; justify-self: end; }
  .viewer-next { grid-column: 2; grid-row: 2; justify-self: start; }
  .viewer-counter { grid-column: 1 / -1; grid-row: 3; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
