:root {
  --navy: #12365b;
  --navy-deep: #0b2140;
  --navy-hover: #1c4976;
  --blue: #1d4b78;
  --gold: #d8a840;
  --gold-hover: #e8c050;
  --gold-ink: #85641f;
  --paper: #fcfcfa;
  --ivory: #f5f1e8;
  --pale: #edf2f7;
  --ink: #172b43;
  --muted: #526278;
  --on-navy: #dbe5ef;
  --line: #d5dee7;
  --line-dark: #46617c;
  --whatsapp: #25d366;
  --whatsapp-ink: #073b20;
  --body: 'Manrope', Arial, sans-serif;
  --ease: cubic-bezier(.16, 1, .3, 1);
  --fast: 180ms;
  --state: 240ms;
  --button-ease: cubic-bezier(.2,.8,.2,1);
  --button-shadow: 0 4px 20px #0b214024;
  --button-shadow-hover: 0 8px 30px #0b214038;
}
* { box-sizing: border-box; }
html { scroll-padding-top: 110px; scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.75 var(--body); }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
h1,h2,h3,p,figure { margin: 0; }
a:focus-visible,summary:focus-visible { outline: 3px solid var(--gold-ink); outline-offset: 5px; }
.header a:focus-visible,.section-dark a:focus-visible,.method a:focus-visible,.footer a:focus-visible { outline-color: var(--gold-hover); }
::selection { background: var(--gold); color: var(--navy-deep); }
.container { width: min(1200px, calc(100% - 96px)); margin: auto; }
h1,h2 { color: var(--navy); font-weight: 800; letter-spacing: -.035em; line-height: 1.16; text-wrap: balance; }
h2 { font-size: clamp(30px, 3.1vw, 44px); }
h2 em { font-style: normal; color: var(--blue); }
.accent { color: var(--blue); }
.gold { color: var(--gold-ink); }
.section-dark .gold { color: var(--gold); }
p+p { margin-top: 20px; }
.lead { font-size: 20px; line-height: 1.65; font-weight: 500; }
.skip { position: fixed; top: -100px; left: 20px; z-index: 50; background: var(--navy); color: white; padding: 12px 20px; }
.skip:focus { top: 10px; }
 .header-shell { height: 90px; position: relative; }
.header-sentinel { position: absolute; bottom: 0; width: 1px; height: 1px; }
.header { position: fixed; z-index: 40; top: 0; left: 50%; transform: translateX(-50%); width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px max(48px, calc((100% - 1200px)/2)); background: var(--navy); color: white; transition: top 350ms var(--ease), width 350ms var(--ease), padding 350ms var(--ease), border-radius 350ms var(--ease), box-shadow 350ms; }
.header.is-compact { top: 12px; width: min(1200px, calc(100% - 48px)); padding: 10px 24px; border-radius: 12px; box-shadow: 0 8px 24px #0b214026; }
.brand { display: flex; align-items: center; gap: 13px; font-size: 20px; font-weight: 800; letter-spacing: .045em; line-height: 1.2; color: white; flex-shrink: 0; }
.brand .gold { color: var(--gold); }
.brand small { display: block; font-size: 11px; font-weight: 500; letter-spacing: .06em; margin-top: 7px; color: var(--on-navy); }
.brand-symbol { width: 51px; height: 54px; flex-shrink: 0; }
.brand-symbol img { width: 100%; height: 100%; object-fit: contain; }
nav { display: flex; gap: 30px; }
nav a { position: relative; display: flex; align-items: center; min-height: 44px; font-size: 13px; font-weight: 600; color: var(--on-navy); transition: color var(--fast); }
nav a::after { content: ''; position: absolute; bottom: 6px; inset-inline: 0; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform var(--state) var(--ease); }
nav a:hover,nav a:focus-visible { color: white; }
nav a:hover::after,nav a:focus-visible::after { transform: scaleX(1); }
.nav-cta { white-space: nowrap; display: inline-flex; align-items: center; gap: 16px; min-height: 46px; border: 1px solid var(--gold); border-radius: 6px; padding: 10px 18px; color: var(--gold-hover); font-size: 13px; font-weight: 700; box-shadow: var(--button-shadow); transition: background 300ms var(--button-ease),color 300ms var(--button-ease),transform 300ms var(--button-ease),box-shadow 300ms var(--button-ease); }
.nav-cta:hover,.nav-cta:focus-visible { background: var(--gold); color: var(--navy-deep); transform: translateY(-1px); box-shadow: var(--button-shadow-hover); }
.nav-cta-short,.mobile-menu { display: none; }
.mobile-menu { flex-shrink: 0; border: 0; }
.mobile-menu summary { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; color: white; border: 1px solid var(--line-dark); border-radius: 6px; }
.mobile-menu summary:focus-visible { outline-color: var(--gold-hover); }
.mobile-menu summary svg path { transform-box: fill-box; transform-origin: center; transition: transform 200ms var(--ease),opacity 150ms; }
.mobile-menu[open] summary svg path:first-child { transform: translateY(6px) rotate(45deg); }
.mobile-menu[open] summary svg path:nth-child(2) { opacity: 0; }
.mobile-menu[open] summary svg path:last-child { transform: translateY(-6px) rotate(-45deg); }
.mobile-navigation { position: absolute; top: calc(100% + 8px); left: 12px; right: 12px; display: flex; flex-direction: column; gap: 0; padding: 8px 20px; max-height: calc(100dvh - 100px - env(safe-area-inset-top)); overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--line-dark); border-radius: 12px; background: var(--navy-deep); box-shadow: 0 16px 32px #0b214033; }
.mobile-navigation a { min-height: 50px; font-size: 15px; }
.mobile-navigation a+a { border-top: 1px solid var(--line-dark); }
.mobile-navigation a::after { display: none; }
.hero { padding: 58px 0 70px; background: var(--paper); }
.hero-grid { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; column-gap: 86px; }
.hero-heading { grid-column: 1; grid-row: 1; align-self: end; }
.hero-copy { grid-column: 1; grid-row: 2; align-self: start; }
.hero-photo { grid-column: 2; grid-row: 1 / span 2; }
.professional-id { display: flex; align-items: center; gap: 12px; color: var(--navy); font-size: 13px; font-weight: 600; line-height: 1.65; margin-bottom: 22px; }
.short-line { flex-shrink: 0; width: 28px; height: 2px; background: var(--gold-ink); }
h1 { font-size: clamp(42px, 4.4vw, 64px); max-width: 650px; }
h1>span:not(.motion-word) { color: var(--blue); }
.hero-description { max-width: 460px; color: var(--muted); font-size: 16px; line-height: 1.8; margin: 25px 0 28px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 55px; padding: 15px 23px; border-radius: 6px; background: var(--navy); color: white; font-size: 14px; font-weight: 700; box-shadow: var(--button-shadow); transition: background 300ms var(--button-ease),transform 300ms var(--button-ease),box-shadow 300ms var(--button-ease); }
.button-label { min-width: 0; text-wrap: balance; }
.button:hover,.button:focus-visible { background: var(--navy); transform: translateY(-1px); box-shadow: var(--button-shadow-hover); }
.button:active,.nav-cta:active { transform: scale(.97); box-shadow: 0 2px 8px #0b214024; transition-duration: 120ms; }
.arrow-icon { flex-shrink: 0; color: var(--gold); transition: transform var(--state) var(--ease); }
.button:hover .arrow-icon,.button:focus-visible .arrow-icon,.nav-cta:hover .arrow-icon,.text-link:hover .arrow-icon { transform: translate(3px,-3px); }
.nav-cta .arrow-icon { color: currentColor; }
.contact-note { font-size: 12px; color: var(--muted); margin-top: 12px; }
.hero-location { margin-top: 18px; font-size: 13px; color: var(--muted); }
.hero-location span { padding: 0 7px; color: var(--navy); }
.hero-focus { display: flex; flex-wrap: wrap; gap: 12px 22px; border-top: 1px solid var(--line); margin-top: 32px; padding-top: 22px; font-size: 12px; color: var(--navy); font-weight: 600; }
.hero-focus span::before { content: ''; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--gold-ink); vertical-align: middle; margin-right: 7px; }
.hero-photo { position: relative; margin-right: 16px; isolation: isolate; }
.hero-photo .photo-window>img { width: 100%; height: 570px; object-fit: cover; object-position: 50% 57%; border-radius: 12px; }
.photo-border { position: absolute; inset: 16px -16px -16px 16px; border: 1px solid var(--gold-ink); border-radius: 12px; z-index: -1; }
.hero-photo figcaption { display: flex; align-items: center; gap: 14px; position: absolute; bottom: 22px; left: -22px; right: 30px; padding: 17px 20px; background: var(--navy); color: white; border-radius: 12px; }
.photo-mark { width: 29px; flex-shrink: 0; }
.hero-photo figcaption strong { display: block; font-size: 15px; }
.hero-photo figcaption div>span { display: block; font-size: 12px; color: var(--on-navy); margin-top: 3px; }
.section-light { background: var(--pale); }
.section-white,.about,.faq { background: var(--paper); }
.section-dark { background: var(--navy); color: white; }
.intro,.included,.method,.about,.investment { padding: 88px 0; }
.intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }
.intro-copy>p:not(.lead) { color: var(--muted); }
.simple-list { list-style: none; padding: 0; margin: 26px 0 0; border-top: 1px solid var(--line); }
.simple-list li { display: flex; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 16px; }
.check-icon { width: 17px; height: 24px; flex-shrink: 0; margin-top: 2px; color: var(--navy); }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 50px; margin-bottom: 48px; }
.section-heading>p { max-width: 330px; color: var(--muted); }
 .method { background: var(--paper); padding-bottom: 48px; }
.method .accent { color: var(--gold-ink); }
.steps { display: grid; gap: 24px; isolation: isolate; }
.step { position: sticky; top: 110px; }
.step-panel { min-height: clamp(440px, 65svh, 620px); padding: clamp(36px,5vw,72px); display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: center; border-radius: 12px; transform-origin: bottom left; }
.step-navy .step-panel { background: var(--navy); color: white; }
.step-ivory .step-panel { background: var(--ivory); color: var(--navy-deep); }
.step-gold .step-panel { background: var(--gold); color: var(--navy-deep); }
.step-deep .step-panel { background: var(--navy-deep); color: white; }
.step-number { display: block; font-size: 18px; font-weight: 700; margin-bottom: 38px; font-variant-numeric: tabular-nums; }
.step-number span { font-size: 13px; margin-left: 12px; font-weight: 500; }
.step-navy .step-number,.step-deep .step-number { color: var(--gold-hover); }
.step h3 { font-size: clamp(42px,5.4vw,78px); letter-spacing: -.04em; line-height: 1.12; font-weight: 800; overflow-wrap: anywhere; }
.step-copy { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding-top: 54px; }
.step-copy p { font-size: clamp(18px,1.7vw,24px); line-height: 1.65; }
.step-navy .step-copy p,.step-deep .step-copy p { color: var(--on-navy); }
.step-delivery { display: block; margin-top: 36px; padding-top: 24px; border-top: 1px solid currentColor; font-size: 15px; line-height: 1.65; font-weight: 700; }
.included { background: var(--ivory); padding: 72px 0; }
.deliveries { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.deliveries article { border-top: 1px solid var(--gold-ink); padding: 22px 0; }
.deliveries h3 { color: var(--navy); font-size: 19px; font-weight: 700; margin-bottom: 12px; }
.deliveries p { color: var(--muted); }
.about-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: center; }
.portrait { position: relative; width: min(100%,380px); justify-self: end; }
.portrait .photo-window { border-radius: 12px 12px 0 0; }
.portrait img { width: 100%; height: 520px; object-fit: cover; object-position: 50% 20%; border-radius: 0; }
.portrait figcaption { background: var(--navy); border-radius: 0 0 12px 12px; padding: 16px 20px; color: white; font-size: 13px; font-weight: 700; }
.portrait figcaption span { display: block; font-size: 12px; font-weight: 500; color: var(--on-navy); margin-top: 3px; }
.about-copy h2 { margin-bottom: 26px; }
.about-copy .lead { font-size: 18px; }
.consultorio-address { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); font-style: normal; font-size: 14px; line-height: 1.8; color: var(--muted); }
.consultorio-address strong { display: block; margin-bottom: 8px; color: var(--navy); font-weight: 700; }
.about-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 26px; }
.about-links .text-link { margin-top: 18px; }
.text-link { display: inline-flex; align-items: center; gap: 25px; color: var(--navy); font-weight: 700; font-size: 13px; margin-top: 26px; border-bottom: 1px solid var(--navy); min-height: 44px; padding-bottom: 8px; transition: color var(--fast),border-color var(--fast); }
.text-link:hover { color: var(--gold-ink); border-color: var(--gold-ink); }
.text-link .arrow-icon { color: var(--gold-ink); }
.investment { background: var(--ivory); }
.results-note { font-size: 14px; }
.offer-perspective { perspective: 1000px; }
.offer { transform-origin: center center; backface-visibility: hidden; box-shadow: 0 24px 40px -20px #0b21404d; border-radius: 12px; background: var(--navy); color: white; padding: 40px; border-top: 3px solid var(--gold); }
.offer-name { color: var(--gold-hover); font-size: 13px; font-weight: 700; letter-spacing: .06em; margin-bottom: 20px; }
.offer h3 { font-size: 25px; font-weight: 600; line-height: 1.4; }
.offer-rule { height: 1px; background: var(--gold); margin: 25px 0; }
.offer .button,.closing .button { background: var(--gold); color: var(--navy-deep); }
.offer .button:hover,.closing .button:hover,.offer .button:focus-visible,.closing .button:focus-visible { background: var(--gold); }
.offer .arrow-icon,.closing .arrow-icon { color: var(--navy-deep); }
.offer .button { width: 100%; margin-top: 26px; }
.offer-note { font-size: 12px; display: block; text-align: center; margin-top: 12px; color: var(--on-navy); }

/* Os três planos compartilham a leitura: duração e conteúdo. */
.plans-intro { max-width: 820px; }
.plans-intro h2 { margin-bottom: 20px; }
.plans-intro>p { max-width: 760px; color: var(--muted); }
.plans-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; align-items: start; margin-top: 36px; }
.plans-grid>* { min-width: 0; }
.plans-grid .plan-card { position: relative; isolation: isolate; padding: 28px; scroll-margin-top: 16px; }
.plan-card::before,.plan-card::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: inherit; }
.plan-card::after { background: linear-gradient(115deg,transparent 20%,#fcfcfa00 35%,#fcfcfa26 48%,#fcfcfa00 61%,transparent 75%); clip-path: inset(0 round 12px); opacity: 0; background-size: 240% 100%; background-position: 100% 0; transition: background-position 700ms var(--ease),opacity 300ms var(--ease); }
.plan-card:focus-within::after { opacity: 1; background-position: 0 0; }
.plan-heading { display: grid; grid-template-columns: minmax(0,1fr) 56px; grid-template-rows: auto auto; align-items: center; gap: 8px 12px; min-height: 82px; padding-bottom: 18px; border-bottom: 1px solid var(--line-dark); }
.plan-card h3 { align-self: end; font-size: 28px; font-weight: 800; line-height: 1.25; letter-spacing: -.025em; }
.plan-duration { color: var(--gold-hover); font-size: 14px; font-weight: 700; }
.plan-emblem { grid-column: 2; grid-row: 1 / span 2; align-self: start; width: 56px; height: 56px; color: var(--gold-hover); }
.plan-emblem svg,.plan-emblem img { display: block; width: 100%; height: 100%; object-fit: contain; }
.plan-card .plan-description { color: var(--on-navy); font-size: 14px; line-height: 1.65; margin-top: 16px; min-height: 4.95em; }
.plan-consult-note { display: grid; align-content: center; min-height: 108px; margin-top: 20px; padding: 16px 18px; border: 1px solid #ffffff30; border-radius: 8px; color: var(--on-navy); font-size: 14px; line-height: 1.55; }
.plan-consult-note strong { display: block; margin-bottom: 6px; color: var(--gold-hover); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.plan-highlights { margin: 20px 0 0; padding: 16px 0 0 18px; border-top: 1px solid var(--line-dark); min-height: 124px; font-size: 14px; line-height: 1.6; }
.plan-highlights li+li { margin-top: 8px; }
.plan-highlights li::marker,.plan-benefits li::marker { color: var(--gold-hover); }
.plans-grid .plan-card .button { margin-top: 20px; min-height: 54px; padding: 14px 16px; font-size: 13px; gap: 12px; }
.plan-card a:focus-visible,.plan-details summary:focus-visible { outline-color: var(--gold-hover); }
.plan-details { margin-top: 20px; border-top: 1px solid var(--line-dark); border-bottom: 0; }
.plan-details summary { color: var(--on-navy); font-size: 13px; font-weight: 700; min-height: 52px; padding: 16px 0; gap: 12px; }
.plan-details summary:hover { color: var(--gold-hover); }
.plan-details .faq-icon { width: 18px; height: 18px; }
.plan-detail-body { display: flow-root; padding: 8px 0; }
.plan-benefits { margin: 0; padding-left: 18px; font-size: 14px; line-height: 1.7; color: var(--on-navy); }
.plan-benefits li+li { margin-top: 10px; }
.plan-detail-body h4 { margin: 24px 0 12px; color: var(--gold-hover); font-size: 15px; font-weight: 800; }
.plan-details .plan-fit { margin-top: 20px; padding: 0; color: var(--muted); font-size: 14px; }
.plan-black { background: var(--navy-deep); }
.plan-black::before { inset: 0 0 auto auto; width: 176px; height: 220px; background: url('/assets/teamnogs-mark.svg') center / 176px auto no-repeat; opacity: .045; }
.plan-black .plan-emblem { padding: 3px; }
.plan-gold { background: var(--gold); color: var(--navy-deep); border-top-color: var(--gold-ink); }
.plan-gold::before { background: linear-gradient(135deg,var(--gold-hover),var(--gold) 44%,var(--gold-hover) 100%); }
.plan-gold .plan-duration,.plan-gold .plan-emblem { color: var(--navy-deep); }
.plan-gold .plan-description,.plan-gold .plan-consult-note,.plan-gold .plan-benefits,.plan-gold .plan-details .plan-fit { color: var(--navy-deep); }
.plan-gold .plan-consult-note { border-color: #0b214040; background: #ffffff26; }
.plan-gold .plan-consult-note strong { color: var(--navy-deep); }
.plan-gold .plan-heading,.plan-gold .plan-highlights,.plan-gold .plan-details { border-color: #0b214040; }
.plan-gold li::marker { color: var(--navy-deep); }
.plans-grid .plan-gold .button { background: var(--navy); color: white; }
.plans-grid .plan-gold .button::before { background: var(--navy-hover); }
.plans-grid .plan-gold .arrow-icon { color: var(--gold); }
.plan-gold .plan-details summary { color: var(--navy); }
.plan-gold a:focus-visible,.plan-gold summary:focus-visible { outline-color: var(--navy-deep); }
.plan-diamond { border-top-color: var(--on-navy); }
.plan-diamond::before { inset: 0 0 auto auto; width: 210px; height: 240px; background: var(--on-navy); opacity: .045; clip-path: polygon(28% 0,100% 0,100% 72%,66% 100%,0 24%); }
.plan-diamond .plan-emblem,.plan-diamond .plan-duration,.plan-diamond li::marker,.plan-diamond .plan-detail-body h4 { color: var(--on-navy); }
.plan-diamond .gem-spark { color: var(--gold-hover); }
.plans-grid .plan-diamond .button { background: var(--pale); color: var(--navy-deep); }
.plans-grid .plan-diamond .button::before { background: var(--on-navy); }
.plan-diamond a:focus-visible,.plan-diamond summary:focus-visible { outline-color: var(--on-navy); }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .plan-card:hover::after { opacity: 1; background-position: 0 0; }
}
@media(prefers-reduced-motion:reduce) {
  .plan-card::after { display: none; }
}
.plans-contact { margin-top: 32px; max-width: 880px; color: var(--muted); font-size: 14px; }
.investment .results-note { margin-top: 12px; color: var(--muted); }
.plan-jump { display: none; }
.faq { padding: 88px 0; }
.faq-grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 90px; }
.faq-list { border-top: 1px solid var(--line); }
details { border-bottom: 1px solid var(--line); }
summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; color: var(--navy); font-size: 16px; font-weight: 600; list-style: none; transition: color var(--fast); }
summary::-webkit-details-marker { display: none; }
summary:hover { color: var(--blue); }
.faq-icon { width: 20px; height: 20px; flex-shrink: 0; transition: transform var(--state) var(--ease); }
details[open] .faq-icon { transform: rotate(45deg); }
details:has(summary[aria-expanded='false']) .faq-icon { transform: none; }
details p { color: var(--muted); padding: 0 25px 23px 0; }
 .closing { padding: 110px 0; border-top: 2px solid var(--gold); }
.closing-grid { display: grid; grid-template-columns: 1.5fr 1fr; align-items: center; gap: 80px; }
.closing h2 { font-size: clamp(38px,4.8vw,68px); color: white; margin-bottom: 28px; }
.closing-copy>p { color: var(--on-navy); }
.closing-action { justify-self: end; }
.closing-mark { margin-bottom: 32px; }
.closing .contact-note { color: var(--on-navy); margin-top: 14px; }
.footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; background: var(--navy-deep); color: white; padding: 28px max(48px, calc((100% - 1200px)/2)); }
.footer-description { min-width: 0; max-width: 420px; font-size: 14px; color: var(--on-navy); }
.footer-address { margin-top: 10px; font-style: normal; line-height: 1.7; }
.footer-address strong { color: white; font-weight: 600; }
.footer-social { display: flex; gap: 24px; font-size: 12px; }
.footer>div a { display: inline-flex; align-items: center; gap: 5px; min-height: 44px; transition: color var(--fast); }
.footer>div a:hover { color: var(--gold-hover); }
.footer .arrow-icon { width: 15px; height: 15px; }
.whatsapp-float { position: fixed; z-index: 30; right: max(24px,env(safe-area-inset-right)); bottom: calc(24px + env(safe-area-inset-bottom)); width: 58px; height: 58px; display: grid; place-items: center; background: var(--whatsapp); color: var(--whatsapp-ink); border-radius: 50%; box-shadow: 0 6px 20px #0b214033; transition: background var(--fast),transform var(--fast) var(--ease); }
.whatsapp-float>svg { width: 31px; height: 31px; }
.whatsapp-float:hover { background: #45e27e; transform: translateY(-3px); }
.whatsapp-float:active { transform: scale(.96); }
.whatsapp-tip { position: absolute; right: 70px; white-space: nowrap; background: var(--navy-deep); color: white; border-radius: 6px; padding: 7px 12px; font-size: 12px; opacity: 0; transform: translateX(5px); pointer-events: none; transition: opacity var(--fast),transform var(--fast) var(--ease); }
.whatsapp-float:hover .whatsapp-tip,.whatsapp-float:focus-visible .whatsapp-tip { opacity: 1; transform: none; }
.hero-grid>*,.intro-grid>*,.about-grid>*,.faq-grid>* { min-width: 0; }

@media(max-width:1050px) {
  .container { width: calc(100% - 64px); }
  .header,.footer { padding-inline: 32px; }
  nav { gap: 20px; }
  .hero-grid { column-gap: 45px; }
  h1 { font-size: clamp(38px,5vw,46px); }
  .hero-photo .photo-window>img { height: 520px; }
  .intro-grid,.about-grid,.faq-grid { gap: 45px; }
  .step-panel { gap: 28px; padding: 40px; }
  .step h3 { font-size: 48px; }
  .closing-grid { gap: 36px; }
  .deliveries { gap: 16px; }
  .offer { padding: 30px; }
  .footer { flex-wrap: wrap; padding-right: 100px; }
}
@media(max-width:1000px) {
  .header>nav { display: none; }
  .mobile-menu { display: block; }
  .nav-cta { margin-left: auto; }
  .plans-grid { grid-template-columns: 1fr; max-width: 540px; margin-inline: auto; margin-top: 24px; }
  .plan-jump { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; max-width: 540px; margin: 28px auto 0; border-bottom: 1px solid var(--line); }
  .plan-jump a { flex-direction: column; justify-content: center; gap: 2px; min-height: 60px; padding: 8px 4px; color: var(--navy); font-size: 14px; }
  .plan-jump a span { color: var(--muted); font-size: 12px; font-weight: 500; }
  .plan-jump a::after { bottom: 0; }
  .plan-jump a:hover,.plan-jump a:focus-visible { color: var(--gold-ink); }
  .plan-card .plan-description { min-height: 0; }
  .plan-highlights { min-height: 0; padding-bottom: 4px; }
}
@media(max-width:700px) {
  html { scroll-padding-top: calc(84px + env(safe-area-inset-top)); }
  body { line-height: 1.7; }
  h2 { font-size: clamp(28px,7.8vw,34px); }
  p+p { margin-top: 16px; }
  .container { width: calc(100% - 40px - env(safe-area-inset-left) - env(safe-area-inset-right)); }
  .header,.header.is-compact { top: 0; width: 100%; padding: calc(10px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left)); border-radius: 0; gap: 8px; }
  .brand { font-size: 15px; gap: 7px; }
  .brand-symbol { width: 32px; height: 36px; }
  .brand small { display: none; }
  .nav-cta { font-size: 12px; min-height: 44px; padding: 9px 10px; gap: 8px; }
  .nav-cta-long { display: none; }
  .nav-cta-short { display: inline; }
  .nav-cta .arrow-icon { width: 16px; height: 16px; }
  .hero { padding: 28px 0 48px; }
  .hero-grid { grid-template-columns: 1fr; gap: 20px; }
  .hero-heading,.hero-copy,.hero-photo { grid-column: auto; grid-row: auto; align-self: auto; }
  .professional-id { font-size: 12px; margin-bottom: 14px; gap: 9px; }
  .short-line { width: 17px; }
  h1 { font-size: clamp(32px,8.6vw,40px); }
  .hero-description { margin: 0 0 18px; line-height: 1.65; }
  .button { font-size: 14px; min-height: 56px; padding: 14px 18px; gap: 16px; }
  .hero-copy .button { width: 100%; }
  .button:active,.nav-cta:active { transform: scale(.985); }
  .hero-location { font-size: 12px; }
  .hero-focus { margin-top: 22px; padding-top: 16px; gap: 8px 14px; }
  .hero-photo { margin: 0; }
  .hero-photo .photo-window>img { height: clamp(260px,76vw,320px); object-position: 50% 22%; }
  .hero-photo figcaption { left: 12px; right: 12px; bottom: 12px; padding: 12px; gap: 10px; }
  .hero-photo figcaption strong { font-size: 13px; }
  .hero-photo figcaption div>span { font-size: 12px; }
  .photo-mark { width: 25px; }
  .photo-border { inset: 8px -8px -8px 8px; }
  .intro,.included,.method,.about,.investment,.faq { padding: 56px 0; }
  .intro-grid,.about-grid,.faq-grid { grid-template-columns: 1fr; gap: 32px; }
  .intro-copy .lead { font-size: 18px; }
  .section-heading { display: block; margin-bottom: 24px; }
  .section-heading>p { margin-top: 20px; }
  .header-shell { height: calc(64px + env(safe-area-inset-top)); }
  .steps { gap: 16px; }
  .step { position: relative; top: auto; }
  .step-panel { min-height: 0; grid-template-columns: 1fr; gap: 22px; padding: 28px 24px; }
  .step h3 { font-size: clamp(30px,9.2vw,40px); overflow-wrap: normal; }
  .step-number { margin-bottom: 16px; font-size: 16px; }
  .step-copy { padding: 0; }
  .step-copy p { font-size: 16px; line-height: 1.7; }
  .step-delivery { margin-top: 22px; padding-top: 16px; font-size: 14px; }
  .deliveries { grid-template-columns: 1fr; gap: 14px; }
  .portrait { justify-self: center; }
  .portrait img { height: 450px; }
  .about-grid { gap: 35px; }
  .about-copy .lead { font-size: 17px; }
  .offer { padding: 28px 22px; }
  .plans-grid .plan-card { padding: 24px; }
  .plan-heading { grid-template-columns: minmax(0,1fr) 48px; }
  .plan-card h3 { font-size: 26px; }
  .plan-emblem { width: 48px; height: 48px; }
  .plans-intro h2 { margin-bottom: 16px; }
  .plans-contact { margin-top: 24px; }
  .faq-list summary { font-size: 16px; line-height: 1.6; padding: 18px 0; min-height: 56px; }
  .faq-list details p { padding: 0 0 20px; }
  .closing { padding: 56px 0; }
  .closing h2 { font-size: clamp(32px,8.6vw,40px); margin-bottom: 20px; }
  .closing-grid { grid-template-columns: 1fr; gap: 32px; }
  .closing-action { justify-self: start; width: 100%; }
  .closing .button { width: 100%; }
  .closing-mark { width: 42px; height: 46px; margin-bottom: 20px; }
  .footer { display: grid; grid-template-columns: 1fr; gap: 20px; padding: 28px max(20px,env(safe-area-inset-right)) calc(80px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); }
  .footer-description { width: 100%; font-size: 14px; }
  .whatsapp-float { right: max(16px,env(safe-area-inset-right)); bottom: calc(16px + env(safe-area-inset-bottom)); width: 52px; height: 52px; transition: opacity 180ms,visibility 180ms,transform 180ms var(--ease); }
  .whatsapp-float.is-obscured { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(8px); }
}
@media(max-width:360px) {
  .brand { font-size: 14px; }
  .brand-symbol { width: 30px; }
  .nav-cta { font-size: 11px; }
  .button,.offer .button { font-size: 13px; gap: 10px; padding-inline: 12px; }
  .offer h3 { font-size: 22px; }
  .plan-heading { grid-template-columns: minmax(0,1fr) 40px; gap: 8px; }
  .plan-card h3 { font-size: 24px; }
  .plan-emblem { width: 40px; height: 40px; }
  .hero-photo figcaption div>span { font-size: 11px; }
}
@media(min-width:701px) and (max-height:650px) {
  .step { position: relative; top: auto; }
  .step-panel { min-height: 400px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .button,.arrow-icon,.nav-cta,nav a,nav a::after,.text-link,.faq-icon,.header,.whatsapp-float,.whatsapp-tip,.footer a { transition: none; }
  .button:hover,.button:focus-visible,.nav-cta:hover,.nav-cta:focus-visible,.button:active,.nav-cta:active,.button:hover .arrow-icon,.button:focus-visible .arrow-icon,.nav-cta:hover .arrow-icon,.text-link:hover .arrow-icon,.whatsapp-float:hover,.whatsapp-float:active { transform: none; }
  .step { position: relative; top: auto; }
  .step-panel,.offer { transform: none !important; }
}

/* Depoimentos: nota acima, seleção explícita e um comentário por vez com JS. */
button { font: inherit; }
button:focus-visible,.review-panel:focus-visible { outline: 3px solid var(--gold-ink); outline-offset: 5px; }
.reviews { padding: 88px 0; background: var(--ivory); }
.review-overall { display: flex; align-items: center; gap: 28px; padding: 26px 0 30px; margin-bottom: 28px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.review-score { display: flex; align-items: baseline; gap: 10px; color: var(--navy); }
.review-score strong { font-size: 60px; line-height: 1; letter-spacing: -.03em; }
.review-score>span { font-size: 14px; }
.review-stars { display: inline-flex; gap: 5px; color: var(--gold-ink); }
.review-overall p { font-size: 14px; margin-top: 7px; }
.review-overall .text-link { margin: 0 0 0 auto; font-size: 14px; }
.review-panel { background: var(--navy); color: white; padding: 48px 56px; border-radius: 12px; min-height: 328px; margin-bottom: 16px; }
.review-panel[hidden] { display: none; }
.review-panel .review-stars { color: var(--gold-hover); }
blockquote { margin: 26px 0 32px; }
.review-panel blockquote p { font-size: clamp(23px,2.5vw,34px); line-height: 1.55; letter-spacing: -.02em; max-width: 54ch; text-wrap: pretty; }
.review-author { display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 14px; }
.review-author a { color: var(--gold-hover); display: inline-flex; align-items: center; gap: 12px; min-height: 44px; }
.review-author a:focus-visible { outline-color: var(--gold-hover); }
.review-source { color: var(--muted); font-size: 12px; margin-top: 18px; }
.photo-window { overflow: hidden; border-radius: 12px; }
.motion-word { display: inline-block; white-space: nowrap; }
.motion-letter { display: inline-block; }
.method .accent { position: relative; display: inline-block; }
.method .accent::after { content: ''; position: absolute; bottom: -8px; height: 2px; inset-inline: 0; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform 700ms var(--ease); }
.method[data-arrived] .accent::after { transform: scaleX(1); }
.button { position: relative; overflow: hidden; isolation: isolate; }
.button::before { content: ''; position: absolute; inset: 0; background: var(--navy-hover); transform: translateX(-102%); transition: transform 350ms var(--button-ease); z-index: -1; }
.offer .button::before,.closing .button::before { background: var(--gold-hover); }
.button:hover::before,.button:focus-visible::before { transform: translateX(0); }
@media(max-width:700px) {
  .reviews { padding: 58px 0; }
  .review-overall { display: grid; grid-template-columns: auto 1fr; gap: 16px; padding: 22px 0; }
  .review-score strong { font-size: 48px; }
  .review-overall .text-link { grid-column: 1 / -1; margin: 0; justify-self: start; min-height: 44px; }
  .review-panel { padding: 24px 20px; min-height: 340px; }
  .review-panel blockquote { margin: 20px 0 24px; }
  .review-panel blockquote p { font-size: clamp(20px,5.65vw,23px); line-height: 1.5; letter-spacing: -.015em; }
  .review-stars { gap: 4px; }
  .review-overall .review-stars svg { width: 20px; height: 20px; }
  .review-author { align-items: flex-start; flex-direction: column; gap: 8px; }
  .review-source { font-size: 12px; }
}
@media(prefers-reduced-motion:reduce) {
  .button::before,.method .accent::after { transition: none; }
  .method .accent::after { transform: none; }
}
.reviews[data-enhanced] .review-panels { display: grid; }
.reviews[data-enhanced] .review-panel { grid-area: 1 / 1; margin-bottom: 0; }
.reviews[data-enhanced] .review-panel[hidden] { display: block; visibility: hidden; pointer-events: none; }

/* O dourado marca as frases principais; o azul marinho mantém a estrutura. */
h1>span:not(.motion-word),.accent,h2 em { color: var(--gold-ink); }
h1>span:not(.motion-word),h2 .accent,h2 em,.closing h2 .gold {
  background-image: linear-gradient(var(--gold),var(--gold));
  background-repeat: no-repeat;
  background-position: left bottom;
  background-size: 0% 2px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
h1[data-writing]>span:not(.motion-word),[data-arrived] h2 .accent,[data-arrived] h2 em,.closing[data-arrived] h2 .gold {
  animation: highlight-line 800ms var(--ease) 300ms forwards;
}
.method .accent::after { display: none; }
@keyframes highlight-line { to { background-size: 100% 2px; } }
.motion-word,.motion-letter { vertical-align: baseline; }
.rating-number { display: inline-block; min-width: 2.9ch; font-variant-numeric: tabular-nums; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* A linha acompanha a leitura das quatro etapas, dentro da própria seção. */
.method-journey { position: sticky; top: 88px; z-index: 6; display: grid; grid-template-columns: repeat(4,1fr); padding: 16px 0 14px; margin-bottom: 22px; background: var(--paper); border-bottom: 1px solid var(--line); }
.journey-line { position: absolute; height: 2px; top: 30px; left: 12.5%; right: 12.5%; background: var(--line); }
.journey-fill { display: block; width: 100%; height: 100%; background: var(--gold); transform: scaleX(0); transform-origin: left; }
.journey-stop { position: relative; display: flex; flex-direction: column; align-items: center; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 600; }
.journey-dot { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: var(--navy); background: var(--paper); border: 1px solid var(--line); font-size: 10px; font-variant-numeric: tabular-nums; transition: background 250ms,color 250ms,border-color 250ms; }
.journey-stop[data-reached="true"] .journey-dot { background: var(--gold); color: var(--navy-deep); border-color: var(--gold); }
.journey-stop[data-current="true"] { color: var(--navy); }
.journey-stop[data-current="true"] .journey-dot { outline: 3px solid #d8a84033; outline-offset: 3px; }
.step { top: 182px; }
.steps[data-stack="true"] .step { position: sticky; top: var(--method-card-top,182px); }
.steps[data-stack="false"] .step { position: relative; top: auto; }
.steps[data-stack] .step-panel { transform-origin: center top; }

/* O comentário acompanha o gesto; os controles permanecem no lugar. */
.reviews[data-enhanced] .review-panels { overflow: hidden; border-radius: 12px; touch-action: pan-y pinch-zoom; cursor: grab; }
.reviews[data-enhanced] .review-panel { min-height: 350px; display: flex; flex-direction: column; border-top: 2px solid var(--gold); }
.reviews[data-enhanced] .review-panel[hidden] { display: flex; }
.review-panel .review-stars { align-self: flex-start; }
.review-panel .review-author { margin-top: auto; }
.review-panels[data-dragging] { cursor: grabbing; user-select: none; }
.review-panels a { cursor: pointer; }
.review-controls { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 20px; }
.review-controls[hidden] { display: none; }
.review-hint { color: var(--muted); font-size: 13px; }
.review-hint>span { display: inline-block; margin-left: 8px; color: var(--gold-ink); font-size: 20px; }
.review-navigation { display: flex; align-items: center; gap: 20px; }
.review-arrow { position: relative; display: grid; place-items: center; flex-shrink: 0; width: 52px; height: 52px; border: 1px solid var(--navy); border-radius: 50%; color: var(--navy); background: transparent; cursor: pointer; transition: color 220ms,background 220ms,border-color 220ms,transform 180ms; }
.review-arrow:hover,.review-arrow:focus-visible { color: var(--navy-deep); background: var(--gold); border-color: var(--gold); }
.review-arrow:active { transform: scale(.94); }
.review-arrow svg { transition: transform 250ms var(--ease); }
.review-arrow[data-review-direction="1"]:hover svg { transform: translateX(3px); }
.review-arrow[data-review-direction="-1"]:hover svg { transform: translateX(-3px); }
.review-position { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.review-current { color: var(--navy); font-weight: 800; }
.review-position-line { width: 28px; height: 1px; background: var(--gold-ink); }
.review-panel .review-stars svg { transform-origin: center; }

/* Instagram recebe um botão próprio e a mesma linguagem dos demais controles. */
.footer .footer-social { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; }
.footer .instagram-button { display: inline-flex; align-items: center; gap: 14px; padding: 12px 18px; min-height: 64px; border: 1px solid var(--gold); border-radius: 6px; color: var(--gold-hover); background: transparent; transition: background 280ms,color 280ms,border-color 280ms; }
.instagram-button>span { font-size: 14px; font-weight: 700; line-height: 1.4; }
.instagram-button small { display: block; font-size: 11px; font-weight: 500; margin-top: 2px; }
.footer .instagram-button:hover,.footer .instagram-button:focus-visible { color: var(--navy-deep); background: var(--gold); border-color: var(--gold); }
.instagram-icon { flex-shrink: 0; transition: transform 350ms var(--ease); }
.instagram-button:hover .instagram-icon,.instagram-button:focus-visible .instagram-icon { transform: rotate(-7deg); }
.button::before { transform: translateX(-102%) skewX(-12deg); inset: 0 -12%; transition-duration: 420ms; }
.button:hover::before,.button:focus-visible::before { transform: translateX(0) skewX(-12deg); }
.button:active .arrow-icon { transform: translate(1px,-1px); }

@media(max-width:700px) {
  .method-journey { top: calc(68px + env(safe-area-inset-top)); padding-top: 12px; margin-bottom: 20px; }
  .journey-line { top: 26px; }
  .journey-stop { font-size: 11px; gap: 6px; }
  .step { position: relative; top: auto; }
  .reviews[data-enhanced] .review-panel { min-height: 340px; }
  .review-controls { display: grid; grid-template-columns: 1fr auto; gap: 12px; }
  .review-navigation { gap: 12px; }
  .review-hint { line-height: 1.4; font-size: 12px; }
  .review-hint>span { display: none; }
  .review-arrow { width: 48px; height: 48px; }
  .review-position { gap: 7px; }
  .review-position-line { width: 18px; }
  .footer .footer-social { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .footer .instagram-button { width: 100%; }
  .footer .instagram-button>.arrow-icon { margin-left: auto; }
  h1[data-writing]>span:not(.motion-word),[data-arrived] h2 .accent,[data-arrived] h2 em,.closing[data-arrived] h2 .gold { animation-duration: 500ms; animation-delay: 180ms; }
}
@media(max-width:1000px) and (min-width:701px) and (max-height:520px) {
  html { scroll-padding-top: calc(84px + env(safe-area-inset-top)); }
  .header,.header.is-compact { top: 0; width: 100%; padding: calc(8px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 8px max(24px,env(safe-area-inset-left)); border-radius: 0; }
  .header-shell { height: calc(64px + env(safe-area-inset-top)); }
  .brand-symbol { width: 36px; height: 40px; }
  .brand small { display: none; }
  .hero { padding-top: 28px; }
  h1 { font-size: 38px; }
  .hero-grid { column-gap: 32px; }
  .hero-photo .photo-window>img { height: 350px; }
  .hero-photo figcaption { left: 12px; right: 12px; bottom: 12px; padding: 12px; }
}
@media(hover:none) {
  .button:hover,.nav-cta:hover,.whatsapp-float:hover,.button:hover .arrow-icon,.nav-cta:hover .arrow-icon,.text-link:hover .arrow-icon,.review-arrow:hover svg,.instagram-button:hover .instagram-icon { transform: none; }
  .button:active,.nav-cta:active { transform: scale(.985); }
  .review-arrow:active,.whatsapp-float:active { transform: scale(.97); }
  .whatsapp-tip { display: none; }
}
@media(max-height:650px) and (min-width:701px) {
  .method-journey { position: relative; top: auto; }
  .step { position: relative; top: auto; }
}
@media(prefers-reduced-motion:reduce) {
  h1>span:not(.motion-word),h2 .accent,h2 em,.closing h2 .gold { animation: none !important; background-size: 100% 2px; }
  .method-journey { position: relative; top: auto; }
  .step { position: relative; top: auto; }
  .journey-dot,.review-arrow,.review-arrow svg,.footer .instagram-button,.instagram-icon,.mobile-menu summary svg path,.whatsapp-float { transition: none; }
  .steps[data-stack] .step { position: relative; top: auto; }
  .button:active,.nav-cta:active,.whatsapp-float:active,.whatsapp-float.is-obscured { transform: none; }
  .review-arrow:active,.review-arrow:hover svg,.instagram-button:hover .instagram-icon,.instagram-button:focus-visible .instagram-icon { transform: none; }
}
@media(forced-colors:active) {
  .journey-fill,.journey-dot,.review-arrow { border: 1px solid ButtonText; }
  .journey-stop[data-current="true"] .journey-dot { outline-color: Highlight; }
}
