/* Identidade visual reconstruída a partir da versão pública. Altere as cores em :root. */
:root { --sage: #8fa39a; --sage-dark: #748a80; --sage-deep: #5f766b; --green: #34453f; --green-deep: #26322e; --bege: #f4efe8; --offwhite: #faf8f4; --brown: #75685e; --white: #ffffff; --font-title: "Cormorant Garamond", Georgia, serif; --font-body: "Montserrat", "Segoe UI", Arial, sans-serif; --section-y: clamp(5rem, 9vw, 8rem); --r-img: 28px; --r-card: 20px; --shadow-soft: 0 24px 60px -30px rgba(38, 50, 46, 0.28); --shadow-card: 0 12px 34px -22px rgba(38, 50, 46, 0.22); --shadow-btn: 0 10px 24px -12px rgba(52, 69, 63, 0.45); --t-fast: 0.2s ease; --t-med: 0.3s ease; --header-h: 84px; }
*, ::before, ::after { box-sizing: border-box; margin: 0px; padding: 0px; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); text-size-adjust: 100%; }
body { font-family: var(--font-body); font-size: 1rem; line-height: 1.7; color: var(--brown); background-color: var(--offwhite); -webkit-font-smoothing: antialiased; text-rendering: optimizelegibility; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: none; }
:focus-visible { outline: 2px solid var(--sage-deep); outline-offset: 3px; border-radius: 4px; }
.container { width: min(1240px, 100% - 3rem); margin-inline: auto; }
.skip-link { position: fixed; top: -100%; left: 1rem; z-index: 200; padding: 0.75rem 1.25rem; background: var(--green); color: var(--white); border-radius: 8px; font-weight: 600; transition: top var(--t-fast); }
.skip-link:focus-visible { top: 1rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px; }
.overline { font-family: var(--font-body); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: var(--sage-deep); }
h1, h2, h3 { font-family: var(--font-title); font-weight: 600; color: var(--green); line-height: 1.12; text-wrap: balance; }
.section-title { font-size: clamp(2.1rem, 4.2vw, 3rem); letter-spacing: -0.01em; }
.section-sub { max-width: 46rem; margin-top: 1.1rem; font-size: clamp(1rem, 1.4vw, 1.125rem); line-height: 1.75; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 52px; padding: 0.9rem 1.9rem; border-radius: 999px; font-family: var(--font-body); font-size: 0.95rem; font-weight: 600; letter-spacing: 0.02em; transition: background-color var(--t-med),
    color var(--t-med),
    border-color var(--t-med),
    transform var(--t-med),
    box-shadow var(--t-med); }
.btn-primary { background-color: var(--sage); color: var(--white); box-shadow: var(--shadow-btn); }
.btn-primary:hover { background-color: var(--green); transform: translateY(-2px); }
.btn-secondary { background-color: transparent; border: 1px solid var(--sage); color: var(--green); }
.btn-secondary:hover { border-color: var(--green); background-color: rgba(143, 163, 154, 0.08); transform: translateY(-2px); }
.header { position: fixed; top: 0px; left: 0px; right: 0px; z-index: 100; height: var(--header-h); background-color: var(--offwhite); transition: box-shadow var(--t-med),
    background-color var(--t-med),
    transform 0.32s ease; }
.header.is-hidden { transform: translateY(-100%); }
.header.is-scrolled { background-color: rgba(250, 248, 244, 0.92); backdrop-filter: blur(12px); box-shadow: rgba(38, 50, 46, 0.4) 0px 8px 30px -22px; }
.header__inner { display: flex; align-items: center; justify-content: space-between; height: 100%; }
.logo { font-family: var(--font-title); font-size: 1.45rem; font-weight: 600; color: var(--green); letter-spacing: 0.01em; }
.logo span { color: var(--sage-deep); }
.nav { position: absolute; left: 50%; transform: translateX(-50%); display: flex; gap: 2.2rem; }
.nav a { position: relative; font-size: 0.92rem; font-weight: 500; color: var(--green); padding: 0.25rem 0px; transition: color var(--t-fast); }
.nav a:hover { color: var(--sage-deep); }
.nav-label { display: inline-block; white-space: nowrap; }
.nav a::after { content: ""; position: absolute; left: 0px; bottom: -2px; width: 0px; height: 2px; background-color: var(--sage); border-radius: 2px; transition: width var(--t-med); }
.nav a.is-active::after { width: 100%; }
.menu-toggle { display: none; flex-direction: column; gap: 5px; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 10px; }
.menu-toggle span { width: 24px; height: 2px; background-color: var(--green); border-radius: 2px; transition: transform var(--t-med), opacity var(--t-med); }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.hero { padding: calc(var(--header-h) + clamp(3rem, 6vw, 5rem)) 0 clamp(3rem, 6vw, 5rem); position: relative; }
.hero__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; grid-template-rows: auto auto minmax(auto, 1fr); align-items: center; gap: 0px clamp(2.5rem, 5vw, 5rem); }
.hero__content { grid-area: 1 / 1; }
.hero__cta { grid-area: 2 / 1; }
.hero__note { grid-area: 3 / 1; }
.hero__badge { display: inline-flex; align-items: center; gap: 0.6rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.3em; color: var(--sage-deep); text-transform: uppercase; margin-bottom: 1.6rem; }
.hero__badge::before { content: ""; width: 34px; height: 1px; background-color: var(--sage); }
.hero h1 { font-size: clamp(2.7rem, 5.4vw, 4.1rem); font-weight: 500; line-height: 1.08; color: var(--green); letter-spacing: -0.015em; }
.hero h1 em { font-style: italic; color: var(--sage-deep); }
.hero__lead { margin-top: 1.6rem; max-width: 34rem; font-size: clamp(1rem, 1.5vw, 1.125rem); line-height: 1.75; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.3rem; }
.hero__note { margin-top: 1.4rem; font-size: 0.82rem; color: var(--brown); opacity: 0.85; }
.hero__media { position: relative; place-self: center; width: min(100%, 580px); grid-area: 1 / 2 / span 3; }
.hero__media::before { content: ""; position: absolute; inset: -9% -6% auto auto; width: 72%; aspect-ratio: 1 / 1; background: radial-gradient(
    circle at 30% 30%,
    var(--bege),
    rgba(244, 239, 232, 0.4)
  ); border-radius: 48% 52% 44% 56% / 52% 44% 56% 48%; z-index: -1; animation: 14s ease-in-out 0s infinite normal none running blobFloat; }
.hero__media img { width: 100%; height: auto; object-fit: contain; mask-image: linear-gradient(rgb(0, 0, 0) 84%, transparent 100%); }
.hero__media::after { content: ""; position: absolute; bottom: -14px; right: -14px; width: 120px; height: 120px; border: 1px solid rgba(143, 163, 154, 0.45); border-radius: 50%; z-index: -1; }
@keyframes blobFloat { 
  0%, 100% { border-radius: 48% 52% 44% 56% / 52% 44% 56% 48%; }
  50% { border-radius: 56% 44% 58% 42% / 44% 58% 42% 56%; }
}
.about { background: linear-gradient(
      to bottom,
      var(--offwhite) 0%,
      var(--white) clamp(6rem, 14vw, 12rem)
    ),
    var(--white); padding-top: 0px; padding-bottom: var(--section-y); }
.about__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; align-items: center; gap: clamp(2.5rem, 5vw, 5rem); }
.about__media { position: relative; margin-left: calc(-1 * max(1.5rem, -620px + 50vw)); }
.about__media img { width: 100%; height: auto; mask-image: linear-gradient(rgb(0, 0, 0) 94%, transparent 100%); }
.about__body .overline { margin-bottom: 1.2rem; display: inline-block; }
.about__body h2 { font-size: clamp(2.2rem, 4.4vw, 3.2rem); font-weight: 500; margin-bottom: 1.4rem; }
.about__body h2 em { font-style: italic; color: var(--sage-deep); }
.about__body p + p { margin-top: 1rem; }
.about__body strong { color: var(--green); font-weight: 600; }
.about__body .btn { margin-top: 2rem; }
.moments { background: linear-gradient(
      to bottom,
      var(--white) 0%,
      var(--bege) clamp(4rem, 9vw, 7rem)
    ),
    var(--bege); padding-block: var(--section-y); }
.moments__deck { margin-top: 3rem; }
.moments__marquee { overflow: hidden; padding: 0.5rem 0px 1.25rem; mask-image: linear-gradient(to right, transparent, rgb(0, 0, 0) 2%, rgb(0, 0, 0) 98%, transparent); }
.moments__track { display: flex; width: max-content; will-change: transform; animation: moments-marquee var(--moments-duration, 46s) linear infinite; }
.moments__track.is-paused { animation: auto ease 0s 1 normal none running none; }
.mcard { position: relative; flex: 0 0 auto; width: clamp(250px, 26vw, 340px); height: clamp(340px, 40vw, 400px); margin-right: clamp(1.2rem, 2.5vw, 2rem); border-radius: var(--r-card); overflow: hidden; background-color: var(--green); box-shadow: rgba(38, 50, 46, 0.55) 0px 28px 64px -30px; }
@keyframes moments-marquee { 
  0% { transform: translateX(0px); }
  100% { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .moments__track { animation: auto ease 0s 1 normal none running none; }
}
.mcard__media { position: absolute; inset: 0px; background-size: cover; background-position: center center; background-color: var(--sage); background-image: linear-gradient(155deg, var(--sage) 0%, var(--sage-dark) 48%, var(--green) 100%); }
.mcard__media::after { content: ""; position: absolute; inset: 0px; background: linear-gradient(to top, rgba(12, 22, 19, 0.85) 0%, rgba(12, 22, 19, 0.32) 42%, rgba(12, 22, 19, 0.08) 70%, transparent 100%); }
.mcard__badge { position: absolute; top: 1.1rem; right: 1.1rem; z-index: 2; padding: 0.42rem 0.95rem; border-radius: 999px; background: rgba(255, 255, 255, 0.94); backdrop-filter: blur(6px); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--green); }
.mcard__body { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.6rem; z-index: 2; color: var(--white); text-align: left; }
.mcard__title { font-size: 1.5rem; font-weight: 600; line-height: 1.16; color: var(--white); text-shadow: rgba(0, 0, 0, 0.35) 0px 2px 14px; }
.mcard__desc { margin-top: 0.5rem; font-size: 0.9rem; line-height: 1.6; font-style: italic; color: rgba(255, 255, 255, 0.8); }
.how { background: linear-gradient(
      to bottom,
      var(--bege) 0%,
      var(--white) clamp(5rem, 10vw, 9rem)
    ),
    var(--white); padding-block: var(--section-y); }
.stack { position: relative; margin-top: clamp(3rem, 6vw, 4.5rem); display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); }
.stack::before { content: ""; position: absolute; top: 27px; left: 7%; right: 7%; height: 2px; border-radius: 999px; background: linear-gradient(90deg, transparent, var(--sage) 20%, var(--sage) 80%, transparent); }
.panel { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
.panel__inner { width: 100%; display: flex; flex-direction: column; align-items: center; }
.panel__num { position: relative; z-index: 1; width: 54px; height: 54px; border-radius: 50%; background: linear-gradient(135deg, var(--sage) 0%, var(--sage-deep) 100%); display: grid; place-items: center; margin-bottom: 1.5rem; font-family: var(--font-title); font-size: 1rem; font-weight: 700; color: var(--white); box-shadow: 0 4px 14px rgba(52, 69, 63, 0.25), 0 0 0 4px var(--white), 0 0 0 6px rgba(143, 163, 154, 0.3); }
.panel__body { max-width: 380px; }
.panel__title { font-size: clamp(1.25rem, 2vw, 1.6rem); margin-bottom: 0.75rem; color: var(--green); }
.panel__text { font-size: 0.98rem; line-height: 1.65; color: var(--brown); }
.panel:hover .panel__title, .panel:focus-within .panel__title { color: var(--sage-deep); }
@media (max-width: 1080px) {
  .stack { grid-template-columns: repeat(2, 1fr); gap: 2.5rem; }
  .stack::before { display: none; }
}
@media (max-width: 640px) {
  .stack { grid-template-columns: 1fr; gap: 3.5rem; }
  .stack::before { display: block; inset: 0px auto 0px 50%; width: 2px; height: auto; transform: translateX(-50%); background: linear-gradient(180deg, var(--sage) 0%, rgba(143, 163, 154, 0.3) 100%); }
  .panel:not(:last-child)::after { content: ""; position: absolute; left: 50%; bottom: -1.75rem; width: 10px; height: 10px; margin-left: -5px; border-radius: 50%; background: var(--sage); z-index: 0; box-shadow: 0 0 0 3px var(--white), 0 0 0 4px rgba(143, 163, 154, 0.2); }
}
.diff { background-color: var(--green); padding-block: var(--section-y); position: relative; overflow: hidden; color: rgba(255, 255, 255, 0.82); }
.diff::before { content: ""; position: absolute; top: -30%; right: -10%; width: 480px; height: 480px; border-radius: 50%; background: radial-gradient(circle, rgba(143, 163, 154, 0.35), transparent 68%); }
.diff__grid { position: relative; display: grid; grid-template-columns: 1.05fr 0.95fr; align-items: center; gap: clamp(2.5rem, 5vw, 5rem); }
.diff .overline { color: rgba(244, 239, 232, 0.75); margin-bottom: 1.2rem; display: inline-block; }
.diff h2 { color: var(--white); font-size: clamp(2.2rem, 4.2vw, 3.1rem); font-weight: 500; line-height: 1.14; }
.diff h2 em { font-style: italic; color: rgb(200, 212, 207); }
.diff__text { margin-top: 1.4rem; font-size: clamp(1rem, 1.4vw, 1.1rem); line-height: 1.75; }
.diff__list { margin-top: 1.8rem; display: grid; gap: 0.9rem; }
.diff__list li { list-style: none; display: flex; align-items: flex-start; gap: 0.8rem; font-size: 0.95rem; line-height: 1.6; }
.diff__list li::before { content: ""; flex: 0 0 auto; width: 8px; height: 8px; margin-top: 0.5rem; border-radius: 50%; background-color: var(--sage); }
.diff__media img { width: 100%; aspect-ratio: 5 / 6; object-fit: cover; border-radius: var(--r-img); box-shadow: rgba(0, 0, 0, 0.5) 0px 30px 60px -30px; }
.office { background-color: var(--offwhite); padding-block: var(--section-y); }
.office__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; align-items: center; gap: clamp(2.5rem, 5vw, 5rem); }
.office__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-img); box-shadow: var(--shadow-soft); }
.office__body .overline { margin-bottom: 1.2rem; display: inline-block; }
.office__body h2 { font-size: clamp(2.2rem, 4.4vw, 3.1rem); font-weight: 500; margin-bottom: 1.2rem; }
.office__points { margin-top: 1.6rem; display: grid; gap: 1rem; }
.office__points li { list-style: none; display: flex; align-items: flex-start; gap: 0.9rem; font-size: 0.96rem; line-height: 1.6; }
.office__points li::before { content: ""; flex: 0 0 auto; width: 22px; height: 22px; margin-top: 0.1rem; border-radius: 50%; background-color: var(--sage); opacity: 0.18; border: 5px solid var(--sage); background-clip: content-box; }
.office.diff-bg { background-color: var(--green); color: rgba(255, 255, 255, 0.82); position: relative; overflow: hidden; }
.office.diff-bg::before { content: ""; position: absolute; top: -30%; right: -10%; width: 480px; height: 480px; border-radius: 50%; background: radial-gradient(circle, rgba(143, 163, 154, 0.35), transparent 68%); pointer-events: none; }
.office.diff-bg .office__grid { position: relative; }
.office.diff-bg .office__body .overline { color: rgba(244, 239, 232, 0.75); }
.office.diff-bg .office__body h2 { color: var(--white); }
.office.diff-bg .office__body p, .office.diff-bg .office__points li { color: rgba(255, 255, 255, 0.82); }
.office.diff-bg .office__points li::before { opacity: 1; border-color: rgba(255, 255, 255, 0.5); }
.office.diff-bg .office__media, .office.diff-bg .office__body { transition: opacity 0.7s, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); will-change: opacity, transform; }
.office.diff-bg:not(.is-in) .office__media { opacity: 0; transform: translateX(-54px); }
.office.diff-bg:not(.is-in) .office__body { opacity: 0; transform: translateX(54px); }
.office.diff-bg.is-in .office__media, .office.diff-bg.is-in .office__body { opacity: 1; transform: translateX(0px); }
.office.diff-bg.is-in .office__body { transition-delay: 0.1s; }
.office.diff-bg .office__points li { position: relative; opacity: 0; padding: 0.6rem 1.1rem 0.6rem 2.7rem; border-radius: 999px; }
.office.diff-bg .office__points li::before { position: absolute; left: 1.1rem; top: 50%; width: 16px; height: 16px; margin-top: 0px; transform: translateY(-50%); border-width: 4px; }
.office.diff-bg.is-live .office__points li { background-color: rgba(244, 239, 232, 0.15); border: 1px solid rgba(244, 239, 232, 0.32); box-shadow: rgba(0, 0, 0, 0.5) 0px 12px 30px -14px; animation: 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0s 1 normal forwards running office-topic; }
.office.diff-bg.is-live .office__points li::before { background-color: var(--bege); border-color: rgba(244, 239, 232, 0.55); opacity: 1; }
.office.diff-bg.is-live .office__points li:nth-child(1) { animation-delay: 0.15s; }
.office.diff-bg.is-live .office__points li:nth-child(2) { animation-delay: 0.95s; }
.office.diff-bg.is-live .office__points li:nth-child(3) { animation-delay: 1.75s; }
@keyframes office-topic { 
  0% { opacity: 0; transform: translateX(36px); color: rgba(255, 255, 255, 0.85); }
  45% { opacity: 1; transform: translateX(0px); }
  62% { transform: translateX(0px) scale(1.035); color: rgb(255, 255, 255); text-shadow: rgba(244, 239, 232, 0.45) 0px 0px 18px; }
  100% { opacity: 1; transform: translateX(0px) scale(1); color: rgba(255, 255, 255, 0.95); }
}
.testimonials { background-color: var(--bege); padding-block: var(--section-y); overflow: hidden; }
.testimonials__head { text-align: center; max-width: 34rem; margin-inline: auto; }
.testimonials__badge { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.4rem 1.1rem; border: 1px solid rgba(143, 163, 154, 0.55); border-radius: 999px; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sage-deep); margin-bottom: 1.4rem; }
.testimonials__head .section-sub { margin-inline: auto; }
.testimonials__columns { position: relative; margin-top: 3.4rem; display: flex; justify-content: center; gap: 1.6rem; max-height: 720px; overflow: hidden; mask-image: linear-gradient(transparent, rgb(0, 0, 0) 18%, rgb(0, 0, 0) 82%, transparent); }
.testimonials__col { flex: 0 0 auto; width: min(100%, 380px); }
.testimonials__col--2, .testimonials__col--3 { display: none; }
.testimonials__marquee { display: flex; flex-direction: column; gap: 1.6rem; padding-bottom: 1.6rem; animation: testimonialsScroll var(--duration, 32s) linear infinite; will-change: transform; }
@keyframes testimonialsScroll { 
  100% { transform: translateY(-50%); }
}
.testimonial-card { background-color: var(--white); border-radius: 24px; border: 1px solid rgba(143, 163, 154, 0.2); box-shadow: rgba(52, 69, 63, 0.28) 0px 18px 44px -26px; padding: 2.2rem 2rem; display: flex; flex-direction: column; gap: 1.2rem; }
.testimonial-card blockquote { font-size: 0.98rem; line-height: 1.7; color: var(--brown); }
.testimonial-card__footer { display: flex; align-items: center; gap: 0.8rem; }
.testimonial-card__avatar { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, var(--sage), var(--sage-deep)); color: var(--white); font-family: var(--font-title); font-size: 1.15rem; font-weight: 600; }
.testimonial-card__meta { display: flex; flex-direction: column; }
.testimonial-card__name { font-size: 0.92rem; font-weight: 600; color: var(--green); }
.testimonial-card__role { font-size: 0.8rem; color: var(--brown); opacity: 0.7; }
.testimonials__note { margin-top: 2.2rem; text-align: center; font-size: 0.8rem; opacity: 0.75; }
.testimonials__marquee.is-paused { animation-play-state: paused; }
@media (min-width: 768px) {
  .testimonials__col--2 { display: block; }
}
@media (min-width: 1024px) {
  .testimonials__col--3 { display: block; }
}
.faq { background: linear-gradient(
      to bottom,
      var(--bege) 0%,
      var(--white) clamp(5rem, 10vw, 9rem)
    ),
    var(--white); padding-block: var(--section-y); }
.faq__grid { margin-top: 3rem; display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(2rem, 4vw, 4rem); align-items: start; }
.faq__side .section-sub { margin-bottom: 1.6rem; }
.faq-item { border-bottom: 1px solid rgba(143, 163, 154, 0.28); }
.faq-item__btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.3rem 0.2rem; text-align: left; font-family: var(--font-title); font-size: 1.35rem; font-weight: 600; color: var(--green); transition: color var(--t-fast); }
.faq-item__btn:hover { color: var(--sage-deep); }
.faq-item__icon { flex: 0 0 auto; width: 26px; height: 26px; position: relative; }
.faq-item__icon::before, .faq-item__icon::after { content: ""; position: absolute; top: 50%; left: 50%; background-color: var(--sage-deep); border-radius: 2px; transition: transform var(--t-med); }
.faq-item__icon::before { width: 14px; height: 2px; transform: translate(-50%, -50%); }
.faq-item__icon::after { width: 2px; height: 14px; transform: translate(-50%, -50%); }
.faq-item[data-open="true"] .faq-item__icon::after { transform: translate(-50%, -50%) scaleY(0); }
.faq-item__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--t-med); }
.faq-item[data-open="true"] .faq-item__panel { grid-template-rows: 1fr; }
.faq-item__panel-inner { overflow: hidden; }
.faq-item__panel-inner p { padding: 0px 2.4rem 1.4rem 0.2rem; font-size: 0.96rem; line-height: 1.7; }
.final-cta { background-color: var(--bege); padding-block: var(--section-y); text-align: center; position: relative; overflow: hidden; }
.final-cta::before, .final-cta::after { content: ""; position: absolute; border-radius: 50%; border: 1px solid rgba(143, 163, 154, 0.3); pointer-events: none; }
.final-cta::before { width: 260px; height: 260px; bottom: -120px; left: -80px; }
.final-cta::after { width: 200px; height: 200px; top: -90px; right: -60px; }
.final-cta h2 { font-size: clamp(2.3rem, 4.6vw, 3.4rem); font-weight: 500; max-width: 30rem; margin-inline: auto; line-height: 1.14; }
.final-cta h2 em { font-style: italic; color: var(--sage-deep); }
.final-cta p { max-width: 36rem; margin: 1.4rem auto 0px; font-size: clamp(1rem, 1.4vw, 1.125rem); }
.final-cta .btn { margin-top: 2.2rem; }
.final-cta__response { margin-top: 1.1rem; font-size: 0.85rem; opacity: 0.8; display: flex; align-items: center; justify-content: center; gap: 0.5rem; }
.wa-float { position: fixed; bottom: 24px; right: 24px; z-index: 90; }
.wa-float__link { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background-color: var(--green); color: var(--white); box-shadow: rgba(38, 50, 46, 0.55) 0px 14px 30px -12px; transition: transform var(--t-med), background-color var(--t-med); animation: 4s ease-in-out 0s infinite normal none running waPulse; }
.wa-float__link:hover { background-color: var(--sage-deep); transform: scale(1.06); }
.wa-float__link svg { width: 26px; height: 26px; }
.wa-float__tip { position: absolute; right: 70px; top: 50%; transform: translateY(-50%); white-space: nowrap; background-color: var(--green); color: var(--white); font-size: 0.82rem; font-weight: 500; padding: 0.5rem 0.9rem; border-radius: 8px; opacity: 0; pointer-events: none; transition: opacity var(--t-med); }
.wa-float__link:hover + .wa-float__tip, .wa-float__tip:hover { opacity: 1; }
@keyframes waPulse { 
  0%, 100% { box-shadow: rgba(38, 50, 46, 0.55) 0px 14px 30px -12px; }
  50% { box-shadow: rgba(52, 69, 63, 0.75) 0px 14px 30px -8px; }
}
.footer { background-color: var(--green); color: rgba(255, 255, 255, 0.78); padding-block: 4.5rem 2rem; }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 2.5rem; }
.footer h4 { font-family: var(--font-body); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(244, 239, 232, 0.85); margin-bottom: 1.2rem; }
.footer__brand .logo { color: var(--white); font-size: 1.7rem; }
.footer__brand p { margin-top: 0.9rem; font-size: 0.9rem; line-height: 1.7; max-width: 24rem; }
.footer__col ul { list-style: none; display: grid; gap: 0.7rem; }
.footer__col a { font-size: 0.92rem; transition: color var(--t-fast); }
.footer__col a:hover { color: var(--white); }
.footer__col li { font-size: 0.92rem; line-height: 1.6; }
.footer__social { display: flex; gap: 0.9rem; margin-top: 1.2rem; }
.footer__social a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.25); transition: background-color var(--t-med), border-color var(--t-med); }
.footer__social a:hover { background-color: var(--sage); border-color: var(--sage); }
.footer__social svg { width: 18px; height: 18px; fill: var(--white); }
.footer__bottom { margin-top: 3.5rem; padding-top: 1.6rem; border-top: 1px solid rgba(255, 255, 255, 0.14); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; font-size: 0.8rem; color: rgba(255, 255, 255, 0.6); }
.footer__bottom-links { display: flex; gap: 1.4rem; }
.footer__bottom-links a:hover { color: var(--white); }
[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity 0.7s, transform 0.7s; will-change: opacity, transform; }
[data-reveal].is-visible { opacity: 1; transform: none; }
[data-reveal-delay="1"] { transition-delay: 0.12s; }
[data-reveal-delay="2"] { transition-delay: 0.24s; }
[data-reveal-delay="3"] { transition-delay: 0.36s; }
@media (max-width: 1024px) {
  .testimonials__col { width: 360px; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  :root { --header-h: 72px; }
  .header__inner { position: relative; }
  .menu-toggle { display: flex; }
  .nav { position: fixed; top: var(--header-h); left: 0px; right: 0px; flex-direction: column; gap: 0px; background-color: var(--offwhite); padding: 0px 1.5rem 1.8rem; box-shadow: rgba(38, 50, 46, 0.35) 0px 30px 40px -30px; transform: translateY(-12px); opacity: 0; pointer-events: none; transition: opacity var(--t-med), transform var(--t-med); max-height: calc(100dvh - var(--header-h)); overflow-y: auto; }
  .nav.is-open { opacity: 1; transform: none; pointer-events: auto; }
  .nav a { padding: 1rem 0px; font-size: 1.05rem; border-bottom: 1px solid rgba(143, 163, 154, 0.2); }
  .nav a::after { display: none; }
  .hero__grid, .about__grid, .diff__grid, .office__grid { grid-template-columns: 1fr; }
  .hero { padding-top: calc(var(--header-h) + 2.5rem); overflow-x: clip; }
  .hero__content, .hero__media, .hero__cta, .hero__note { grid-area: auto; }
  .hero__content { order: 1; display: flex; flex-direction: column; will-change: auto; }
  .hero__content h1 { order: 1; z-index: 3; }
  .hero__badge { order: 2; margin: 1.2rem 0px 0px; z-index: 3; }
  .hero__media { order: 2; z-index: auto; width: min(100%, 420px); justify-self: center; margin: 1.2rem auto 0px; transform: none; transform-style: flat; }
  .hero__media::before { inset: 8% auto auto 50%; transform: translateX(-50%); }
  .hero__media img { filter: none; }
  .hero__media[data-reveal], .hero__media[data-reveal].is-visible { transform: none; }
  .hero__cta { order: 3; margin-top: 2rem; }
  .hero__note { order: 4; }
  .office__media { display: none; }
  .diff__media { order: 1; }
  .faq__grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .hero__media { width: min(100%, 380px); }
  .hero__cta .btn { width: 100%; }
  .btn { width: auto; }
  .container { width: min(100% - 2.2rem, 1240px); }
  .footer__grid { grid-template-columns: 1fr; }
  .wa-float { bottom: 18px; right: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, ::before, ::after { animation-duration: 0.001s !important; animation-iteration-count: 1 !important; transition-duration: 0.001s !important; }
  [data-reveal] { opacity: 1; transform: none; }
  .office.diff-bg .office__media, .office.diff-bg .office__body, .office.diff-bg .office__points li { opacity: 1 !important; transform: none !important; }
  .wa-float__link { animation: auto ease 0s 1 normal none running none; }
}

/* Ajustes de estabilidade e uso por toque. */
[data-edit-text], [data-edit-html] { overflow-wrap: anywhere; }
.moments__marquee, .testimonials__columns { touch-action: pan-x pan-y; }
.moments__track.is-paused { animation-play-state: paused; }
@media (max-width: 767px) {
  .moments__marquee { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
  .moments__track { animation: none !important; width: max-content; }
  .mcard { scroll-snap-align: center; }
  .moments__track [aria-hidden="true"] { display: none; }
  .testimonials__columns { justify-content: flex-start; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; max-height: none; mask-image: none; -webkit-overflow-scrolling: touch; }
  .testimonials__col, .testimonials__col--2, .testimonials__col--3 { display: block; width: min(82vw, 340px); scroll-snap-align: center; }
  .testimonials__marquee { animation: none !important; }
  .testimonial-card[aria-hidden="true"] { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
