:root {
  --moss: #084d33;
  --moss-deep: #063926;
  --forest: #032d20;
  --cream: #f5f5e7;
  --sand: #ecebd4;
  --sand-warm: #cba77f;
  --olive: #8d987f;
  --ink: #173c30;
  --white: #fff;
  --radius: 1.5rem;
  --container: 80rem;
  --cta-outline-space: 5px;
  --section-space: 4.5rem;
  --section-space-mobile: 1.75rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 100%; overflow-x: hidden; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--cream);
  color: var(--ink);
  font-family: "Livvic", Arial, sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img, video { display: block; max-width: 100%; }
a { color: inherit; }
button, summary, a { -webkit-tap-highlight-color: transparent; }
.container { width: min(100% - 3rem, var(--container)); margin-inline: auto; }

h1, h2, h3, p { overflow-wrap: break-word; }
h1, h2, h3 { margin-top: 0; }
h1, h2 { letter-spacing: -.035em; }
h2 { margin-bottom: 1.25rem; font-size: clamp(2.2rem, 4.1vw, 3.7rem); line-height: 1.04; }
h3 { line-height: 1.15; }
p { color: #315448; }

.cta {
  width: fit-content;
  min-height: 3.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: .8rem;
  padding: .7rem 1.6rem;
  border-radius: 999px;
  background: var(--moss);
  color: var(--cream);
  box-shadow: 0 0 0 5px rgba(8,77,51,.10);
  font-weight: 700;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}
.cta__icon {
  width: 2.35rem;
  height: 2.35rem;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: var(--sand-warm);
  color: var(--moss-deep);
  font-size: 1.25rem;
}
.cta__icon::before {
  content: "";
  width: 1.3rem;
  height: 1.3rem;
  background: currentColor;
  -webkit-mask: url("./nutri-re-aleixo-icone-whatsapp.svg") center / contain no-repeat;
  mask: url("./nutri-re-aleixo-icone-whatsapp.svg") center / contain no-repeat;
}
.cta > span { flex: 0 1 auto; }
.cta:hover { transform: translateY(-2px); box-shadow: 0 0 0 5px rgba(8,77,51,.14), 0 12px 28px rgba(6,57,38,.15); }
.cta:focus-visible, summary:focus-visible { outline: 3px solid var(--sand-warm); outline-offset: 4px; }
.cta--sand { background: var(--sand-warm); color: var(--moss-deep); box-shadow: 0 0 0 5px rgba(203,167,127,.2); }
.cta--sand .cta__icon { background: var(--moss-deep); color: var(--cream); }
.cta--full { width: 100%; }
.cta-note { margin: .9rem 0 0; color: var(--cream); font-size: .78rem; }

.hero {
  position: relative;
  min-height: 46rem;
  padding-top: var(--section-space);
  padding-bottom: var(--section-space);
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--moss-deep);
  color: var(--cream);
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(3,45,32,.2), transparent 68%);
  pointer-events: none;
}
.hero__background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero__content { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1fr) 24.5rem; align-items: center; gap: 3.5rem; }
.hero__copy { max-width: 49rem; padding-block: 0; }
.hero__logo { width: auto; height: 4.2rem; margin-bottom: 2rem; object-fit: contain; }
.hero h1 { margin-bottom: 1.4rem; max-width: 48rem; font-size: clamp(2.6rem, 4.15vw, 4.2rem); line-height: 1; }
.hero h1 em { display: inline; color: var(--sand-warm); font-style: normal; }
.hero__lead { max-width: 34rem; margin: 0 0 2rem; color: var(--cream); font-size: clamp(1.1rem, 1.6vw, 1.35rem); line-height: 1.4; }
.hero__location { margin: .9rem 0 0; display: flex; align-items: center; gap: .45rem; color: var(--cream); font-size: .9rem; font-weight: 600; }
.hero__location svg { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; color: var(--sand-warm); }
.hero__media { padding-block: 0; display: flex; justify-content: flex-end; }
.hero__video-wrap { position: relative; width: min(100%, 22.5rem); aspect-ratio: 1080 / 1902; }
.hero__video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border: 0;
  outline: 0;
  border-radius: 1.6rem;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
}
.hero__play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4.5rem;
  height: 4.5rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--sand-warm);
  color: var(--moss-deep);
  box-shadow: 0 0 0 8px rgba(203,167,127,.24);
  cursor: pointer;
  transform: translate(-50%,-50%);
  transition: opacity .2s ease, transform .2s ease;
}
.hero__play span { margin-left: .2rem; font-size: 1.4rem; }
.hero__play:hover { transform: translate(-50%,-50%) scale(1.06); }
.hero__play:focus-visible { outline: 3px solid var(--cream); outline-offset: 4px; }
.hero__play.is-hidden { opacity: 0; pointer-events: none; }

.section { position: relative; padding-top: var(--section-space); padding-bottom: var(--section-space); }
.section > .container > :first-child { margin-top: 0; }
.section > .container > :last-child { margin-bottom: 0; }
.section-intro > :first-child { margin-top: 0; }
.section-intro > :last-child { margin-bottom: 0; }
.section-intro { max-width: 59rem; margin-bottom: 3rem; }
.section-intro > p { max-width: 52rem; margin: 0; font-size: 1.18rem; }
.section-intro--light { color: var(--cream); }
.section-intro--light p { color: var(--cream); }

.pain-section { padding-top: 4.5rem; padding-bottom: 4.5rem; background: var(--sand); }
.symptom-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.symptom-grid article {
  overflow: hidden;
  border: 0;
  border-radius: var(--radius);
  background: rgba(255,255,255,.46);
}
.symptom-grid article > img { width: 100%; height: 12rem; object-fit: cover; }
.symptom-grid article > div { padding: 1.5rem; }
.symptom-grid h3 { margin: 0 0 .8rem; font-size: 1.32rem; }
.symptom-grid p { margin: 0; font-size: 1.08rem; line-height: 1.45; }
.insight {
  margin-top: 1.3rem;
  padding: 1.55rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  border-radius: var(--radius);
  background: var(--moss-deep);
  color: var(--cream);
}
.insight p { margin: 0; color: var(--cream); font-size: 1.05rem; }
.insight strong { color: var(--sand-warm); font-size: 1.25rem; }

.method-section { overflow: hidden; background: var(--moss-deep); color: var(--cream); }
.method-section .section-intro { max-width: 72rem; }
.method-section .section-intro > p { max-width: 68rem; }
.method-section::before, .proof-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("./nutri-re-aleixo-textura-microbiota.webp") center / cover;
  opacity: .09;
  pointer-events: none;
}
.method-section .container, .proof-section .container { position: relative; z-index: 1; }
.four-p-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.audience-grid { grid-template-columns: 1fr; }
.four-p-grid article {
  display: block;
  padding: 1.5rem;
  border: 1px solid rgba(8,77,51,.1);
  border-radius: var(--radius);
  background: var(--cream);
  color: var(--ink);
}
.audience-grid article:last-child { grid-column: auto; }
.audience-grid article { position: relative; padding: 1.1rem 1.25rem; display: grid; grid-template-columns: 1fr; align-items: center; }
.audience-grid .four-p-card__head { display: contents; }
.audience-grid b { position: absolute; top: 1.1rem; right: 1.25rem; }
.audience-grid h3 { grid-column: 1; padding-right: 4.25rem; }
.audience-grid p { grid-column: 1 / -1; grid-row: 2; margin-top: .15rem; font-size: 1.3rem; }
.four-p-grid b {
  width: 3rem;
  height: 3rem;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: .9rem;
  background: var(--sand-warm);
  color: var(--moss-deep);
  font-size: .9rem;
  line-height: 1;
}
.four-p-card__head { display: flex; align-items: center; gap: 1rem; }
.four-p-grid h3 { margin: 0; color: var(--ink); font-size: 1.65rem; }
.four-p-grid p { margin: 1.2rem 0 0; color: #315448; font-size: 1.2rem; line-height: 1.5; }
.method-statement { margin: 2rem 0 0; color: var(--cream); font-size: 1.25rem; text-align: center; }
.method-statement strong { color: var(--sand-warm); }

.journey-section { background: var(--cream); }
.pdm-layout { display: grid; grid-template-columns: minmax(0,1fr) 14rem; align-items: start; gap: 1.25rem 2rem; }
.pdm-copy, .pdm-cards { display: contents; }
.journey-section .section-intro { max-width: 72rem; padding-right: 0; }
.journey-section .section-intro > p { max-width: 68rem; }
.pdm-copy .section-intro { grid-column: 1; grid-row: 1; margin-bottom: 0; }
.pdm-copy .section-intro > p { width: 92%; }
.pdm-section-logo { grid-column: 2; grid-row: 1; justify-self: end; width: 10.8rem; height: auto; margin: 0; }
.pdm-combines { grid-column: 1 / -1; grid-row: 2; margin: 0; font-size: 1.35rem; }
.pdm-copy .center-cta { grid-column: 1 / -1; grid-row: 4; margin-top: 1rem; justify-content: center; }
.journey-grid { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: 1fr; align-items: stretch; gap: 1.3rem; }
.journey-card { padding: 2.2rem; border-radius: 2rem; background: var(--moss); color: var(--cream); }
.journey-card p, .journey-card li { color: var(--cream); }
.journey-card p { font-size: 1.18rem; line-height: 1.5; }
.journey-card li { font-size: 1.18rem; line-height: 1.45; }
.journey-card ul { margin: 1.5rem 0 0; padding: 0; list-style: none; }
.journey-card li { margin-top: .65rem; padding-left: 1.35rem; position: relative; }
.journey-card li::before { content: "•"; position: absolute; left: 0; color: var(--sand-warm); }
.journey-steps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem; }
.journey-steps article { padding: 1.35rem 1.5rem; display: grid; grid-template-columns: 2.3rem minmax(0,1fr); align-items: center; gap: 1rem; border-radius: var(--radius); background: var(--sand); }
.journey-steps article > div { display: contents; }
.journey-steps span { width: 2.3rem; height: 2.3rem; display: grid; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--sand-warm); color: var(--moss-deep); font-weight: 800; }
.journey-icon::before { content: ""; width: 1.35rem; height: 1.35rem; background: currentColor; -webkit-mask: var(--journey-icon) center / contain no-repeat; mask: var(--journey-icon) center / contain no-repeat; }
.journey-icon--gut { --journey-icon: url("./nutri-re-aleixo-icone-intestino.svg?v=2"); }
.journey-icon--dna { --journey-icon: url("./nutri-re-aleixo-icone-dna.svg"); }
.journey-icon--strategy { --journey-icon: url("./nutri-re-aleixo-icone-estrategia.svg"); }
.journey-icon--followup { --journey-icon: url("./nutri-re-aleixo-icone-acompanhamento.svg"); }
.journey-steps h3 { grid-column: 2; margin: 0; font-size: 1.25rem; }
.journey-steps p { grid-column: 1 / -1; margin: .25rem 0 0; font-size: 1.15rem; }
.center-cta { margin-top: 2.5rem; padding-bottom: var(--cta-outline-space); display: flex; justify-content: center; }

.authority-section { background: var(--sand); }
.authority-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: stretch; gap: 4rem; }
.authority-photo { position: relative; min-height: 0; overflow: hidden; border-radius: 2rem; }
.authority-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; border-radius: 2rem; }
.authority-copy { display: flex; flex-direction: column; }
.authority-copy h2 { margin-bottom: 1rem; }
.authority-copy > p { max-width: 40rem; margin: 0 0 .9rem; font-size: 1.2rem; line-height: 1.45; }
.authority-copy > p:last-of-type { margin-bottom: 0; }
.professional-registration { display: flex; align-items: center; gap: .42rem; font-weight: 600; letter-spacing: .025em; }
.authority-copy > .professional-registration--authority { width: fit-content; margin-top: .15rem; color: var(--moss); font-size: .86rem; line-height: 1.3; }
.professional-registration--authority strong { color: var(--moss-deep); font-size: inherit; }
.authority-points { margin-top: 1.8rem; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.authority-points span { padding: .85rem 1rem; border-radius: .9rem; background: rgba(255,255,255,.5); color: var(--moss); font-size: .9rem; font-weight: 700; }
.authority-cta { margin-top: 1.5rem; padding-top: 0; padding-bottom: var(--cta-outline-space); }

.proof-section { overflow: hidden; background: var(--moss); color: var(--cream); }
.proof-section .section-intro { max-width: 65rem; }
.testimonial-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.2rem; }
blockquote { position: relative; overflow: hidden; margin: 0; padding: 2rem; display: flex; flex-direction: column; border-radius: var(--radius); background: var(--cream); }
blockquote::before { content: "“"; position: absolute; top: .35rem; left: 1.15rem; color: var(--sand-warm); font-family: Georgia,serif; font-size: 10rem; line-height: .8; opacity: .18; pointer-events: none; }
blockquote p { position: relative; z-index: 1; flex: 1; margin: 0 0 1.5rem; color: var(--ink); font-size: 1.22rem; line-height: 1.55; }
blockquote footer { position: relative; z-index: 1; color: var(--moss); font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ethics-note { max-width: 62rem; margin: 1.4rem 0 0; color: var(--cream); font-size: .76rem; }

.final-section { background: var(--forest); color: var(--cream); }
.final-title__accent { color: var(--sand-warm); }
.final-layout { display: grid; grid-template-columns: 1fr; align-items: start; gap: 2.5rem; }
.final-layout > * { min-width: 0; }
.final-copy { max-width: 58rem; margin-inline: auto; display: flex; flex-direction: column; align-items: center; text-align: center; }
.final-copy p { max-width: 36rem; margin: 0 auto; color: var(--cream); font-size: 1.18rem; }
.final-cta { justify-self: center; }
.faq-list { border-top: 1px solid rgba(245,245,231,.18); }
.faq-list details { border-bottom: 1px solid rgba(245,245,231,.18); }
.faq-list summary { padding: 1.2rem 2rem 1.2rem 0; position: relative; color: var(--cream); cursor: pointer; font-weight: 700; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: .2rem; color: var(--sand-warm); font-size: 1.35rem; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { margin: 0; padding: 0 2rem 1.25rem 0; color: var(--cream); }
.final-card { padding: 2.25rem; border-radius: 2rem; background: var(--sand); color: var(--moss-deep); }
.final-card h2 { font-size: clamp(2rem,3vw,2.8rem); }
.final-card p { margin-bottom: 2rem; }
.final-card small { display: block; margin-top: 1rem; color: var(--moss); text-align: center; }
.final-card small strong { padding: .12rem .35rem; border-radius: .35rem; background: var(--sand-warm); color: var(--moss-deep); }
.location-block { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(8,77,51,.16); }
.location-block h3 { margin: 0 0 .65rem; font-size: 1.25rem; }
.location-block a { color: var(--moss); line-height: 1.45; }
.final-card--map { width: 100%; height: 22rem; min-height: 0; padding: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; }
.location-map { width: 100%; height: 100%; min-height: 0; display: block; border: 0; }
.location-picture { width: 100%; height: 100%; display: block; }
.location-image { width: 100%; height: 100%; display: block; object-fit: cover; }

.footer { padding-block: 1.5rem; background: #021f17; color: var(--cream); }
.footer__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.footer img { width: auto; height: 2.5rem; }
.footer__legal { display: grid; justify-items: end; gap: .35rem; }
.footer p { margin: 0; color: var(--cream); font-size: .76rem; text-align: right; }
.footer .professional-registration--footer { color: var(--sand-warm); font-size: .72rem; }
.footer .professional-registration--footer strong { color: inherit; font-size: inherit; }

@media (min-width: 701px) {
  .cta {
    min-height: 3.9rem;
    padding: .8rem 1.75rem;
    font-size: 1.08rem;
  }
  .cta__icon { width: 2.5rem; height: 2.5rem; }
}

@media (max-width: 1023px) {
  .hero__content { grid-template-columns: 1fr 20rem; gap: 2rem; }
  .hero h1 { font-size: clamp(2.35rem,4.7vw,3.3rem); }
  .hero__video-wrap { width: 18.5rem; }
  .symptom-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .authority-grid { gap: 2.5rem; }
  .final-layout { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .cta__desktop-word { display: none; }
  .container { width: min(100% - 2rem,var(--container)); }
  .section { padding-top: var(--section-space-mobile); padding-bottom: var(--section-space-mobile); }
  .pain-section { padding-top: var(--section-space-mobile); padding-bottom: var(--section-space-mobile); }
  .journey-section { padding-top: calc(var(--section-space-mobile) - .5rem); }
  h2 { font-size: clamp(1.9rem,8.5vw,2.65rem); }
  .section-intro { margin-bottom: 2rem; }
  .section-intro > p { font-size: 1.05rem; }
  .cta {
    width: 100%;
    min-height: 3.5rem;
    gap: .4rem;
    padding-right: 1rem;
    padding-left: .8rem;
    font-size: clamp(.98rem, 4vw, 1.08rem);
    line-height: 1.15;
    letter-spacing: -.01em;
    white-space: normal;
  }
  .cta > span { min-width: 0; overflow-wrap: anywhere; }
  .cta__icon { width: 2.25rem; height: 2.25rem; }

  .hero { min-height: 46rem; padding-top: 1.75rem; padding-bottom: 1.75rem; }
  .hero::after { background: rgba(3,45,32,.2); }
  .hero__content { grid-template-columns: 1fr; gap: 0; text-align: center; }
  .hero__copy { display: contents; }
  .hero__logo { order: 1; height: 3rem; margin: 0 auto 1.7rem; }
  .hero h1 { order: 2; overflow-wrap: anywhere; font-size: clamp(2.15rem,10.5vw,3rem); }
  .hero__lead { order: 3; margin-inline: auto; font-size: 1.05rem; }
  .hero__media { order: 4; padding: 0 0 1.25rem; justify-content: center; }
  .hero .cta { order: 5; width: calc(100% - 1rem); justify-self: center; }
  .hero .cta-note, .hero__location { order: 6; margin: .8rem 0 0; justify-content: center; }
  .hero__video-wrap { width: min(calc(100% - 1rem),20.5rem); }
  .hero__video { border-radius: 1.25rem; }

  .symptom-grid, .four-p-grid, .testimonial-grid, .authority-points { grid-template-columns: 1fr; }
  .audience-grid article:last-child { grid-column: auto; }
  .audience-grid h3 { font-size: 1.5rem; }
  .symptom-grid article > img { height: 13rem; }
  .insight { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .method-statement { text-align: left; }

  .pdm-layout, .journey-grid, .authority-grid { grid-template-columns: 1fr; }
  .pdm-copy .section-intro { grid-column: 1; grid-row: 1; }
  .pdm-copy .section-intro > p { width: 100%; }
  .journey-section .section-intro { padding-right: 0; }
  .pdm-section-logo { grid-column: 1; grid-row: 2; justify-self: start; width: 9rem; margin: 0; }
  .pdm-combines { grid-column: 1; grid-row: 3; }
  .journey-grid { grid-column: 1; grid-row: 4; }
  .journey-steps { grid-template-columns: 1fr; }
  .pdm-copy .center-cta { grid-column: 1; grid-row: 5; justify-content: stretch; }
  .journey-card { padding: 1.6rem; }
  .journey-steps article {
    display: grid;
    grid-template-columns: 2.3rem minmax(0, 1fr);
    align-items: center;
    column-gap: 1rem;
    row-gap: .5rem;
  }
  .journey-steps article > div { display: contents; }
  .journey-steps h3 { grid-column: 2; margin: 0; }
  .journey-steps p { grid-column: 1 / -1; margin-top: 0; }
  .center-cta { margin-top: var(--section-space-mobile); justify-content: stretch; }
  .authority-grid { gap: 0; }
  .authority-copy { display: contents; }
  .authority-copy h2 { order: 1; margin-bottom: .75rem; }
  .authority-copy > p { order: 2; margin: 0 0 .75rem; font-size: 1.1rem; line-height: 1.38; }
  .authority-copy > p:last-of-type { margin-bottom: 2.5rem; font-size: 1.02rem; }
  .authority-points { order: 3; margin-top: 1rem; }
  .authority-grid > .authority-photo { order: 4; margin-top: 0; }
  .authority-photo > img { position: static; height: auto; aspect-ratio: 4 / 5; }
  .authority-cta { order: 5; margin-top: 1.5rem; padding-top: 0; padding-bottom: var(--cta-outline-space); }

  .final-card { padding: 1.5rem; }
  .final-copy { align-items: flex-start; text-align: left; }
  .final-copy p { margin-inline: 0; }
  .final-card--map {
    height: 36rem;
    aspect-ratio: auto;
    padding: 0;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(2,minmax(0,1fr));
  }
  .location-map { display: block; }
  .final-section { overflow: hidden; }
  .final-section > .container {
    width: calc(100% - 2rem);
    max-width: var(--container);
    margin-inline: auto;
  }
  .final-layout, .faq-column, .faq-list { width: 100%; max-width: 100%; min-width: 0; }
  .faq-column, .final-card { box-sizing: border-box; }
  .faq-column h2 { max-width: 100%; }
  .faq-list summary { padding-right: 2.75rem; }
  .faq-list summary::after { right: .75rem; }
  .final-card { overflow: hidden; }
  .final-card .cta { font-size: clamp(.98rem, 4vw, 1.08rem); }
  .footer__inner { flex-direction: column; align-items: flex-start; }
  .footer__legal { justify-items: start; }
  .footer p { text-align: left; }
  .professional-registration--authority {
    flex-direction: column;
    align-items: flex-start;
    gap: .15rem;
    white-space: nowrap;
  }
  .professional-registration--authority > span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cta { transition: none; }
}
