/* 1. Foundations and shared components */
:root {
  --navy:#102b50;
  --navy-deep:#0b2140;
  --navy-soft:#28476a;
  --gold:#c89435;
  --gold-light:#e4c47f;
  --cream:#f7f5ef;
  --paper:#fffefa;
  --ink:#1d2b3b;
  --muted:#647181;
  --line:#e3e0d8;
  --serif:Georgia,'Times New Roman',serif;
  --sans:'DM Sans',Arial,sans-serif;
  --display:'Manrope','DM Sans',sans-serif;
  --container:1180px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:96px;
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

a {
  color:inherit;
  text-decoration:none;
}

button {
  font:inherit;
}

img,video {
  max-width:100%;
}

.container {
  width:min(var(--container),calc(100% - 56px));
  margin-inline:auto;
}

.section-pad {
  padding:108px 0;
}

.skip-link {
  position:absolute;
  z-index:1000;
  left:16px;
  top:-80px;
  padding:12px 16px;
  background:white;
  color:var(--navy);
}

.skip-link:focus {
  top:16px;
}

/* 2. Header and navigation */
.site-header {
  position:sticky;
  z-index:50;
  top:0;
  background:rgba(255,254,250,.9);
  border-bottom:1px solid transparent;
  transition:background .3s,border-color .3s,box-shadow .3s,backdrop-filter .3s;
}

.site-header.is-scrolled {
  background:rgba(255,254,250,.96);
  border-color:rgba(16,43,80,.08);
  box-shadow:0 6px 24px rgba(16,43,80,.06);
  backdrop-filter:blur(14px);
}

.header-inner {
  height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:0;
  color:var(--navy);
}

.brand-name {
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  font:400 36px/.82 'Parisienne',cursive;
  letter-spacing:-.035em;
}

.brand-name small {
  display:block;
  margin-top:4px;
  font:600 8px/1 var(--sans);
  letter-spacing:4px;
  color:var(--gold);
}

.brand-footer .brand-name small { color:var(--gold-light); }

.main-nav {
  display:flex;
  align-items:center;
  gap:21px;
  padding:0;
  background:transparent;
}

.main-nav>a:not(.button) {
  position:relative;
  padding:11px 0;
  color:#465466;
  font-size:14px;
  font-weight:600;
  transition:color .2s;
}

.main-nav>a:not(.button):hover {
  color:var(--navy);
}

.main-nav>a:not(.button)::after {
  position:absolute;
  right:0;
  bottom:4px;
  left:0;
  height:1px;
  background:var(--gold);
  content:"";
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s ease;
}

.main-nav>a:not(.button):hover::after,
.main-nav>a:not(.button):focus-visible::after {
  transform:scaleX(1);
}

.menu-toggle {
  display:none;
}

.button {
  display:inline-flex;
  min-height:50px;
  padding:0 22px;
  align-items:center;
  justify-content:center;
  gap:12px;
  border:1px solid transparent;
  border-radius:3px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.01em;
  transition:transform .2s,background .2s,color .2s,border-color .2s,box-shadow .2s;
}

.button:hover {
  transform:translateY(-2px);
}

.button:focus-visible,.text-link:focus-visible,.main-nav a:focus-visible,button:focus-visible {
  outline:3px solid rgba(200,148,53,.55);
  outline-offset:3px;
}

.button-small {
  min-height:40px;
  padding:0 16px;
  font-size:11px;
}

.button-navy {
  background:var(--navy);
  color:white;
}

.button-navy:hover {
  background:var(--navy-soft);
}

.button-gold {
  background:var(--gold);
  color:#fff;
}

.button-gold:hover {
  background:#b78129;
  box-shadow:0 7px 20px rgba(200,148,53,.18);
}

.button-light {
  background:#fff;
  color:var(--navy);
}

.button-light:hover {
  background:var(--cream);
}

.button-outline {
  border-color:#d8d8d2;
  color:var(--navy);
  background:transparent;
}

.button-outline:hover {
  border-color:var(--gold);
  color:#9b6c21;
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--navy);
  font-size:13px;
  font-weight:700;
}

.text-link span {
  color:var(--gold);
  transition:transform .2s;
}

.text-link:hover span {
  transform:translateX(4px);
}

.main-nav .nav-cta {
  margin-left:2px;
  border-radius:4px;
  background:var(--navy);
  color:#fff;
}
.main-nav .nav-cta:hover {
  background:var(--navy-soft);
}

/* 3. Hero */
.hero {
  padding:76px 0 34px;
  overflow:hidden;
}

.hero-grid {
  display:grid;
  grid-template-columns:.94fr 1.06fr;
  gap:70px;
  align-items:center;
}

.hero-copy {
  padding:6px 0 26px;
}

.eyebrow {
  margin:0 0 20px;
  color:var(--gold);
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.eyebrow-line {
  display:inline-block;
  width:27px;
  height:1px;
  margin:0 9px 3px 0;
  background:var(--gold);
}

h1,h2,h3,p {
  margin-top:0;
}

.hero h1 {
  max-width:610px;
  margin-bottom:23px;
  color:var(--navy);
  font:600 clamp(42px,5vw,66px)/1.08 var(--display);
  letter-spacing:-.055em;
}

.hero h1 em,h2 em {
  font-family:var(--serif);
  font-weight:400;
  color:var(--gold);
  letter-spacing:-.035em;
}

.hero-lede {
  max-width:460px;
  margin-bottom:31px;
  color:#586675;
  font-size:16px;
  line-height:1.8;
}

.hero-actions {
  display:flex;
  align-items:center;
  gap:25px;
  flex-wrap:wrap;
}

.hero-note {
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:38px;
  color:#76808c;
  font-size:11px;
}

.note-icon {
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border:1px solid #ddc99f;
  border-radius:50%;
  color:var(--gold);
  font-size:15px;
}

.hero-visual {
  position:relative;
  padding:0 0 12px 12px;
}

.hero-video-frame {
  position:relative;
  z-index:1;
  min-height:460px;
  aspect-ratio:1/1.05;
  overflow:hidden;
  background:#e8e3d6;
  border-radius:47% 47% 4px 4px / 38% 38% 4px 4px;
}

.hero-video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .6s;
}

.hero-video.is-ready {
  opacity:1;
}

.hero-fallback {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:var(--navy);
  background:linear-gradient(155deg,#eee8dc,#d9e0e3 60%,#bfccd1);
  font:600 13px var(--display);
  letter-spacing:.04em;
}

.hero-fallback small {
  color:#627181;
  font:11px var(--sans);
  letter-spacing:0;
}

.placeholder-icon {
  font-size:31px;
  color:var(--gold);
}

.visual-caption {
  position:absolute;
  z-index:2;
  left:20px;
  bottom:20px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:12px 15px;
  background:rgba(255,254,250,.92);
  color:var(--navy);
  font-size:10px;
}

.caption-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--gold);
}

.hero-visual-ornament {
  position:absolute;
  right:-40px;
  top:-37px;
  width:58%;
  height:47%;
  border:1px solid #d9bd7c;
  border-radius:48% 4px 4px 4px;
  opacity:.65;
}

.hero-trust {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:23px;
  margin-top:56px;
  color:#82909b;
  font-size:10px;
  letter-spacing:.04em;
}

.hero-trust i {
  width:4px;
  height:4px;
  background:var(--gold);
  border-radius:50%;
}

/* 4. About */
.about {
  background:var(--cream);
}

.about-grid {
  display:grid;
  grid-template-columns:.93fr 1fr;
  gap:105px;
  align-items:center;
}

.placeholder-panel {
  position:relative;
  display:flex;
  min-height:400px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  overflow:hidden;
  background:linear-gradient(145deg,#e4e2da,#ccd7d9);
  color:var(--navy);
  font:600 13px var(--display);
  letter-spacing:.04em;
}

.placeholder-panel:before {
  content:"";
  position:absolute;
  inset:24px;
  border:1px solid rgba(255,255,255,.65);
}

.placeholder-panel small {
  font:11px var(--sans);
  color:#536476;
}

.photo-index {
  position:absolute;
  right:24px;
  bottom:22px;
  color:#fff;
  font-size:9px;
  letter-spacing:.15em;
}

.about-copy {
  max-width:475px;
}

.about h2,.section-heading h2,.du-copy h2,.consultant h2,.faq-heading h2,.map-copy h2 {
  margin-bottom:20px;
  color:var(--navy);
  font:600 clamp(34px,4vw,48px)/1.17 var(--display);
  letter-spacing:-.05em;
}

.about-copy>p:not(.eyebrow) {
  color:#606d79;
  font-size:14px;
  line-height:1.9;
}

.about-signature {
  padding-left:16px;
  border-left:1px solid var(--gold);
  font-family:var(--serif);
  font-style:italic;
  color:var(--navy)!important;
}

.about-copy .text-link {
  margin-top:10px;
}

/* 5. Differentials */
.differentials {
  background:var(--paper);
}

.section-heading {
  max-width:690px;
  margin-bottom:48px;
}

.section-heading.centered {
  text-align:center;
  margin-inline:auto;
}

.section-heading>p:not(.eyebrow) {
  max-width:570px;
  color:var(--muted);
  font-size:14px;
}

.section-heading.centered>p:not(.eyebrow) {
  margin-inline:auto;
}

 .differential-layout {
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:58px;
  align-items:center;
}

.differential-intro {
  max-width:none;
  margin:0;
}

.differential-intro h2 {
  max-width:420px;
  margin-bottom:18px;
}

.differential-intro>p:not(.eyebrow) {
  max-width:420px;
  margin-bottom:22px;
  color:var(--muted);
  font-size:14px;
  line-height:1.8;
}

.differential-points {
  display:grid;
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
}

.differential-points li {
  display:flex;
  align-items:center;
  gap:11px;
  color:var(--navy);
  font-size:12px;
  line-height:1.5;
}

.differential-points li span {
  display:grid;
  flex:none;
  width:22px;
  height:22px;
  place-items:center;
  border-radius:50%;
  background:#edf0df;
  color:#617344;
  font-size:12px;
}

.differential-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.differential {
  min-height:190px;
  padding:23px;
  border:1px solid #e9e5dc;
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 25px rgba(16,43,80,.045);
  transition:transform .25s ease,box-shadow .25s ease;
}

.differential:hover {
  transform:translateY(-3px);
  box-shadow:0 15px 30px rgba(16,43,80,.09);
}

.differential-featured {
  border-color:var(--navy);
  background:var(--navy);
  color:#fff;
}

.line-icon {
  display:grid;
  width:43px;
  height:43px;
  place-items:center;
  margin-bottom:16px;
  border-radius:12px;
  background:#f4f1e7;
  color:var(--gold);
  font:22px var(--serif);
}

.differential-featured .line-icon {
  background:#fff;
  color:var(--navy);
}

.differential h3 {
  margin-bottom:7px;
  color:var(--navy);
  font:700 15px/1.35 var(--display);
}

.differential-featured h3 { color:#fff; }

.differential p {
  max-width:270px;
  margin-bottom:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.7;
}

.differential-featured p { color:#dce5ef; }

/* 6. Plans and promotion */
.plans {
  background:#f7f6f1;
}

.plans-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:40px;
  max-width:none;
}

.plans-heading h2 {
  max-width:650px;
  margin-bottom:0;
}

.plans-heading>p {
  max-width:330px;
  margin:0 0 5px;
  font-size:13px!important;
}

.plan-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:12px;
  align-items:stretch;
}

.plan-card {
  position:relative;
  display:flex;
  min-height:331px;
  flex-direction:column;
  padding:26px 18px 18px;
  border:1px solid #e2e0d8;
  background:var(--paper);
  transition:transform .25s,border-color .25s,box-shadow .25s;
}

.plan-card:hover {
  transform:translateY(-5px);
  border-color:#d7bc7f;
  box-shadow:0 15px 35px rgba(26,43,65,.08);
}

.plan-number {
  position:absolute;
  right:17px;
  top:15px;
  color:#c4c6c4;
  font:12px var(--serif);
}

.plan-kicker {
  margin:3px 0 7px;
  color:#9a7b43;
  font-size:9px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.plan-card h3 {
  margin-bottom:17px;
  color:var(--navy);
  font:700 20px var(--display);
  letter-spacing:-.04em;
}

.plan-price {
  margin-bottom:14px;
  color:var(--navy);
  font:800 23px var(--display);
  letter-spacing:-.05em;
  white-space:nowrap;
}

.plan-price small {
  font:400 10px var(--sans);
  color:#84909a;
  letter-spacing:0;
}

.plan-lives {
  min-height:38px;
  margin:0 0 15px;
  padding-top:11px;
  border-top:1px solid #e9e7e1;
  color:#65717f;
  font-size:11px;
}

.plan-lives strong {
  color:var(--navy);
}

.plan-more {
  display:flex;
  width:100%;
  align-items:center;
  justify-content:space-between;
  margin:auto 0 11px;
  padding:5px 0;
  border:0;
  background:none;
  color:#596779;
  text-align:left;
  font-size:10px;
  cursor:pointer;
}

.plan-more span {
  color:var(--gold);
  font-size:17px;
}

.plan-extra {
  padding:0 0 9px;
  color:#66717d;
  font-size:10px;
  line-height:1.6;
}

.plan-extra p {
  margin:0;
}

.plan-card .button {
  min-height:41px;
  width:100%;
  padding-inline:8px;
  font-size:10px;
}

.plan-featured {
  border-color:var(--gold);
  background:var(--navy);
  color:white;
}

.plan-featured h3,.plan-featured .plan-price,.plan-featured .plan-lives strong {
  color:white;
}

.plan-featured .plan-kicker {
  color:var(--gold-light);
}

.plan-featured .plan-lives {
  border-color:rgba(255,255,255,.19);
  color:#d1dae4;
}

.plan-featured .plan-more {
  color:#e4e8ec;
}

.featured-label {
  position:absolute;
  right:0;
  top:0;
  padding:6px 10px;
  background:var(--gold);
  color:white;
  font-size:8px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.plan-featured .plan-number {
  color:#d7bf83;
}

.plan-featured .plan-extra {
  color:#d2dae3;
}

.plan-footnote {
  margin:23px 0 0;
  color:#71808d;
  text-align:center;
  font-size:11px;
  line-height:1.9;
}

.plan-footnote a {
  color:var(--navy);
  text-decoration:underline;
  text-decoration-color:#c8a455;
  text-underline-offset:3px;
}

.promo-section {
  padding:40px 0;
  background:var(--navy);
}

.promo-wrap {
  display:flex;
  align-items:center;
  gap:29px;
  color:white;
}

.promo-symbol {
  display:grid;
  flex:none;
  place-items:center;
  width:68px;
  height:68px;
  border:1px solid rgba(228,196,127,.65);
  border-radius:50%;
  color:var(--gold-light);
  font:36px var(--serif);
}

.promo-copy {
  flex:1;
}

.promo-copy .eyebrow {
  margin-bottom:8px;
  color:var(--gold-light);
}

.promo-copy h2 {
  margin:0 0 5px;
  font:600 clamp(22px,3vw,31px) var(--display);
  letter-spacing:-.04em;
}

.promo-copy h2 span {
  color:var(--gold-light);
}

.promo-copy h2 small {
  font:400 14px var(--sans);
  letter-spacing:0;
}

.promo-copy>p:last-child {
  margin:0;
  color:#c6d1dc;
  font-size:11px;
}

/* 7. How it works */
.how {
  background:var(--paper);
}

.steps-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:25px;
}

.step {
  position:relative;
  padding:23px 18px 0 0;
  border-top:1px solid #dcd9d0;
}

.step>span {
  position:absolute;
  top:-14px;
  right:0;
  padding-left:10px;
  background:var(--paper);
  color:var(--gold);
  font:italic 19px var(--serif);
}

.step h3 {
  margin:8px 0;
  color:var(--navy);
  font:700 14px var(--display);
}

.step p {
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.75;
}

/* 8. Cartao DU */
.du-section {
  background:var(--cream);
}

.du-grid {
  display:grid;
  grid-template-columns:1fr .76fr;
  gap:85px;
  align-items:center;
}

.du-copy {
  position:relative;
}

.du-copy>p:not(.eyebrow) {
  max-width:475px;
  color:var(--muted);
  font-size:14px;
  line-height:1.85;
}

.du-copy .button {
  margin-top:8px;
}

.du-card-placeholder {
  position:relative;
  display:flex;
  width:min(365px,100%);
  height:160px;
  flex-direction:column;
  justify-content:space-between;
  margin-top:38px;
  padding:23px 25px;
  overflow:hidden;
  background:var(--navy);
  color:white;
  box-shadow:0 15px 30px rgba(16,43,80,.13);
}

.du-card-placeholder:after {
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-64px;
  top:-110px;
  border:1px solid rgba(228,196,127,.42);
  border-radius:50%;
}

.card-chip {
  color:var(--gold-light);
  font-size:21px;
}

.du-wordmark {
  font:500 21px var(--display);
  letter-spacing:.1em;
}

.du-wordmark strong {
  color:var(--gold-light);
}

.du-card-placeholder small {
  color:#c3cbd3;
  font-size:9px;
}

/* Cartao DU app button */
.button-app {
  min-height:54px;
  padding:0 15px;
  gap:11px;
  border:1px solid var(--navy);
  border-radius:5px;
  background:var(--navy);
  color:#fff;
  box-shadow:0 7px 18px rgba(16,43,80,.12);
}
.button-app:hover {
  border-color:var(--navy-soft);
  background:var(--navy-soft);
  box-shadow:0 10px 22px rgba(16,43,80,.17);
}
.play-mark {
  display:grid;
  width:29px;
  height:29px;
  place-items:center;
  border:1px solid rgba(255,255,255,.3);
  border-radius:50%;
  color:var(--gold-light);
  font-size:9px;
}
.button-app > span:nth-child(2) {
  display:flex;
  flex-direction:column;
  color:#cbd5df;
  font-size:8px;
  line-height:1.2;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.button-app strong {
  color:#fff;
  font:700 12px var(--display);
  letter-spacing:0;
  text-transform:none;
}
.app-arrow {
  color:var(--gold-light);
  font-size:12px;
}

/* Cartao DU decorative benefit constellation; CSS illustration, no stock imagery */
.du-visual {
  position: relative;
  display: grid;
  min-height: 385px;
  place-items: center;
  overflow: hidden;
}

.du-visual::before {
  position: absolute;
  width: 315px;
  height: 315px;
  border: 1px solid rgba(200,148,53,.28);
  border-radius: 50%;
  content: "";
}

.du-visual::after {
  position: absolute;
  width: 235px;
  height: 235px;
  border: 1px dashed rgba(16,43,80,.17);
  border-radius: 50%;
  content: "";
}

.du-orbit-item {
  position: absolute;
  z-index: 2;
  display: grid;
  min-width: 96px;
  min-height: 38px;
  place-items: center;
  padding: 7px 11px;
  border: 1px solid #e3ddcf;
  border-radius: 999px;
  background: rgba(255,254,250,.96);
  color: #526173;
  font-size: 10px;
  box-shadow: 0 5px 14px rgba(16,43,80,.05);
}

.du-orbit-item:nth-child(1) {
  top: 11%;
  left: 17%;
}

.du-orbit-item:nth-child(2) {
  top: 20%;
  right: 9%;
}

.du-orbit-item:nth-child(3) {
  top: 47%;
  right: 1%;
}

.du-orbit-item:nth-child(4) {
  bottom: 17%;
  right: 15%;
}

.du-orbit-item:nth-child(5) {
  bottom: 12%;
  left: 11%;
}

.du-orbit-item:nth-child(6) {
  top: 43%;
  left: 1%;
}

.du-visual-center {
  position: relative;
  z-index: 3;
  display: grid;
  width: 122px;
  height: 122px;
  place-items: center;
  border: 1px solid rgba(228,196,127,.75);
  border-radius: 50%;
  background: var(--navy);
  color: white;
  box-shadow: 0 14px 35px rgba(16,43,80,.19);
  font: 500 30px var(--display);
  letter-spacing: .08em;
}

.du-visual-center::after {
  position: absolute;
  top: 22px;
  right: 21px;
  color: var(--gold-light);
  content: "?";
  font: 13px var(--sans);
}

.du-visual-note {
  position: absolute;
  z-index: 2;
  bottom: 4px;
  color: #7a8590;
  font: italic 14px var(--serif);
}

.du-visual-note i {
  padding: 0 5px;
  color: var(--gold);
  font-style: normal;
}

.du-actions {
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.du-copy .du-actions .button {
  margin-top:8px;
}

/* 9. Benefits */
.benefits {
  background:var(--paper);
}

.benefits-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:40px;
  max-width:none;
}

.benefits-heading h2 {
  max-width:600px;
  margin-bottom:0;
}

.benefits-heading>p {
  max-width:340px;
  margin-bottom:6px;
  font-size:13px!important;
}

.benefit-bottom {
  display:flex;
  align-items:center;
  gap:20px;
  margin-top:30px;
  padding-top:20px;
  border-top:1px solid var(--line);
}

.benefit-bottom>span {
  color:var(--gold);
  font-size:10px;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.benefit-bottom p {
  margin:0 auto 0 0;
  color:var(--navy);
  font:italic 17px var(--serif);
}

.benefit-bottom .text-link {
  font-size:11px;
}

/* Cartao DU category image carousel */
.benefits-carousel { margin-top:30px; }
.benefits-viewport {
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  overscroll-behavior-inline:contain;
  outline-offset:5px;
}
.benefits-viewport::-webkit-scrollbar { display:none; }
.benefits-track { display:flex; gap:16px; }
.benefit-card {
  flex:0 0 calc((100% - 48px) / 4);
  min-width:0;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--paper);
  scroll-snap-align:start;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.benefit-card:hover {
  transform:translateY(-4px);
  border-color:#d5bd87;
  box-shadow:0 12px 28px rgba(16,43,80,.08);
}
.benefit-card-image {
  position:relative;
  aspect-ratio:1.28 / 1;
  overflow:hidden;
  background:linear-gradient(145deg,#e8e3d8,#d6dfdf);
}
.benefit-card:nth-child(3n + 2) .benefit-card-image { background:linear-gradient(145deg,#e6e2d8,#d9dfe4); }
.benefit-card:nth-child(3n) .benefit-card-image { background:linear-gradient(145deg,#e9e3d7,#d5dfd8); }
.benefit-card-image img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.benefit-image-placeholder {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:var(--navy);
  font:600 10px var(--display);
  letter-spacing:.12em;
}
.benefit-image-placeholder[hidden] { display:none; }
.benefit-image-placeholder small {
  color:#697785;
  font:11px var(--sans);
  letter-spacing:0;
}
.benefit-card-caption { min-height:80px; padding:14px 16px 16px; }
.benefit-card-caption span {
  display:block;
  margin-bottom:5px;
  color:var(--gold);
  font-size:8px;
  font-weight:700;
  letter-spacing:.13em;
}
.benefit-card-caption h3 {
  margin:0;
  color:var(--navy);
  font:600 15px/1.35 var(--display);
}
.benefits-carousel-controls {
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:18px;
}
.benefits-arrow {
  display:grid;
  flex:none;
  width:38px;
  height:38px;
  place-items:center;
  border:1px solid #d9d5ca;
  border-radius:50%;
  background:transparent;
  color:var(--navy);
  cursor:pointer;
  transition:background .2s,color .2s,border-color .2s,opacity .2s;
}
.benefits-arrow:hover:not(:disabled) { border-color:var(--navy); background:var(--navy); color:white; }
.benefits-arrow:disabled { opacity:.38; cursor:default; }
.benefits-progress { height:2px; flex:1; overflow:hidden; background:#e6e3db; }
.benefits-progress span {
  display:block;
  width:0;
  height:100%;
  background:var(--gold);
  transition:width .25s ease;
}
.benefits-counter {
  min-width:70px;
  color:#657282;
  text-align:center;
  font-size:9px;
  font-variant-numeric:tabular-nums;
  letter-spacing:.08em;
}
@media (max-width:1050px) {
  .benefit-card { flex-basis:calc((100% - 32px) / 3); }
}
@media (max-width:760px) {
  .benefits-carousel { margin-top:24px; }
  .benefits-track { gap:12px; }
  .benefit-card { flex-basis:calc((100% - 12px) / 2); }
  .benefit-card-caption { min-height:74px; padding:12px; }
  .benefit-card-caption h3 { font-size:13px; }
}
@media (max-width:480px) {
  .benefit-card { flex-basis:86%; }
  .benefit-card-image { aspect-ratio:1.35 / 1; }
}
@media (prefers-reduced-motion:reduce) {
  .benefit-card,.benefits-arrow,.benefits-progress span { transition:none; }
}

/* 10. Consultant and FAQ */
.consultant {
  background:#f3f1eb;
}

.consultant-grid {
  display:grid;
  grid-template-columns:.72fr 1fr;
  gap:90px;
  align-items:center;
}

.consultant-photo {
  min-height:385px;
}

.consultant-copy {
  max-width:510px;
}

.consultant-copy>p:not(.eyebrow) {
  color:var(--muted);
  font-size:13px;
  line-height:1.8;
}

.consultant-name {
  display:flex;
  flex-direction:column;
  margin:25px 0 20px;
  padding-left:16px;
  border-left:1px solid var(--gold);
}

.consultant-name strong {
  color:var(--navy);
  font:700 17px var(--display);
}

.consultant-name span {
  color:#75808b;
  font-size:11px;
}

.wa-icon {
  font-size:17px;
}

.phone-number {
  margin:9px 0 0;
  color:#77818a;
  font-size:11px;
}

.faq {
  background:var(--paper);
}

.faq-grid {
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:95px;
  align-items:start;
}

.faq-heading {
  position:sticky;
  top:125px;
}

.faq-heading h2 {
  font-size:40px;
}

.faq-heading>p:not(.eyebrow) {
  max-width:310px;
  margin-bottom:22px;
  color:var(--muted);
  font-size:13px;
}

.accordion {
  border-top:1px solid var(--line);
}

.faq-item {
  border-bottom:1px solid var(--line);
}

.faq-item h3 {
  margin:0;
}

.faq-question {
  display:flex;
  width:100%;
  min-height:67px;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:13px 2px;
  border:0;
  background:none;
  color:var(--navy);
  text-align:left;
  font:600 14px var(--display);
  cursor:pointer;
}

.faq-question span {
  color:var(--gold);
  font-size:21px;
  transition:transform .25s;
}

.faq-question[aria-expanded="true"] span {
  transform:rotate(45deg);
}

.faq-answer {
  display:block;
  max-height:1000px;
  overflow:hidden;
  transition:max-height .32s ease,opacity .25s ease;
  opacity:1;
}

.faq-answer[hidden] {
  display:block;
  max-height:0;
  opacity:0;
}

.faq-answer p {
  overflow:visible;
  max-width:620px;
  margin:0;
  padding:0 32px 20px 2px;
  color:#697582;
  font-size:12px;
  line-height:1.8;
}

/* 11. Closing CTA and footer */
.final-cta {
  padding:83px 0;
  background:var(--navy-deep);
  text-align:center;
  color:#fff;
}

.final-cta-inner {
  max-width:690px;
}

.final-cta .eyebrow {
  color:var(--gold-light);
}

.final-cta h2 {
  margin-bottom:14px;
  font:600 clamp(35px,5vw,50px)/1.15 var(--display);
  letter-spacing:-.05em;
}

.final-cta h2 em {
  color:var(--gold-light);
}

.final-cta p:not(.eyebrow) {
  max-width:500px;
  margin:0 auto 25px;
  color:#ccd5de;
  font-size:13px;
}

.site-footer {
  padding:53px 0 20px;
  background:#081b34;
  color:white;
}

.footer-main {
  display:grid;
  grid-template-columns:1.3fr .7fr 1.3fr .7fr;
  gap:40px;
  padding-bottom:42px;
}

.brand-footer {
  color:white;
}

.footer-brand-col>p {
  max-width:220px;
  margin:18px 0 0;
  color:#aebac8;
  font-size:11px;
}

.footer-links {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}

.footer-links h2 {
  margin:3px 0 8px;
  color:#e1c47f;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.footer-links a,.footer-links span {
  color:#bac4ce;
  font-size:10px;
  line-height:1.7;
}

.footer-links a:hover {
  color:white;
}

.footer-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:17px;
  border-top:1px solid rgba(255,255,255,.14);
  color:#92a0ae;
  font-size:9px;
}

.footer-bottom a {
  color:#d1d8df;
}

.footer-map-row {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:30px;
  align-items:center;
  padding:22px 0 28px;
  border-top:1px solid rgba(255,255,255,.14);
}

.footer-map-copy h2 {
  margin:0 0 5px;
  color:white;
  font:600 17px var(--display);
}

.footer-map-copy span {
  color:#aebac8;
  font-size:10px;
}

.footer-map-placeholder>span {
  font-size:23px;
}

.footer-map-placeholder strong {
  font:600 9px var(--display);
  letter-spacing:.13em;
}

.footer-map-placeholder iframe {
  display:block;
  width:100%;
  height:180px;
  border:0;
  filter:saturate(.75);
}

.footer-links span {
  max-width:250px;
}

.footer-map-placeholder {
  display:flex;
  min-height:88px;
  align-items:center;
  justify-content:center;
  gap:12px;
  border:1px solid rgba(228,196,127,.36);
  background:rgba(255,255,255,.04);
  color:#d7c18e;
}

/* 12. Motion and reveal states */
[data-reveal] {
  opacity:0;
  transform:translateY(14px);
  transition:opacity .65s ease,transform .65s ease;
}

[data-reveal].is-visible {
  opacity:1;
  transform:translateY(0);
}

.differential:nth-child(2),.plan-card:nth-child(2),.step:nth-child(2) {
  transition-delay:.04s;
}

.differential:nth-child(3),.plan-card:nth-child(3),.step:nth-child(3) {
  transition-delay:.08s;
}

.differential:nth-child(4),.plan-card:nth-child(4),.step:nth-child(4) {
  transition-delay:.12s;
}

.plan-card:nth-child(5) {
  transition-delay:.16s;
}

/* 13. Responsive layouts */
@media(max-width:1050px) {
  .container {
    width:min(var(--container),calc(100% - 42px));
  }

  .main-nav {
    gap:15px;
  }

  .main-nav>a:not(.button) {
    font-size:13px;
  }

  .hero-grid {
    gap:42px;
  }

  .hero-video-frame {
    min-height:400px;
  }

  .plan-grid {
    grid-template-columns:repeat(3,1fr);
  }

  .plan-card {
    min-height:320px;
  }
.du-grid {
    gap:45px;
  }

  .about-grid {
    gap:65px;
  }

  .footer-main {
    gap:25px;
  }

}

@media(max-width:760px) {
  html {
    scroll-padding-top:78px;
  }

  .container {
    width:calc(100% - 38px);
  }

  .section-pad {
    padding:76px 0;
  }

  .header-inner {
    height:72px;
  }

  .menu-toggle {
    display:flex;
    width:42px;
    height:42px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid #e0ded7;
    background:transparent;
    cursor:pointer;
  }

  .menu-toggle span {
    display:block;
    width:17px;
    height:1px;
    background:var(--navy);
    transition:transform .2s;
  }

  .menu-toggle[aria-expanded="true"] span:first-child {
    transform:translateY(3.5px) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] span:last-child {
    transform:translateY(-3.5px) rotate(-45deg);
  }

  .main-nav {
    position:absolute;
    top:71px;
    left:0;
    right:0;
    display:none;
    align-items:stretch;
    gap:0;
    padding:12px 19px 20px;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 25px rgba(16,43,80,.08);
  }

  .main-nav.is-open {
    display:flex;
    flex-direction:column;
  }

  .main-nav>a:not(.button) {
    padding:12px 4px;
    border-bottom:1px solid #eeece6;
    font-size:15px;
  }

  .main-nav .nav-cta {
    min-height:46px;
    margin-top:14px;
  }

  .hero {
    padding:52px 0 28px;
  }

  .hero-grid {
    grid-template-columns:1fr;
    gap:30px;
  }

  .hero-copy {
    padding:0;
  }

  .hero h1 {
    max-width:550px;
    font-size:clamp(39px,11vw,57px);
  }

  .hero-lede {
    max-width:520px;
    font-size:14px;
  }

  .hero-actions {
    gap:17px;
  }

  .hero-note {
    margin-top:27px;
  }

  .hero-visual {
    width:min(100%,520px);
    margin:auto;
    padding-left:7px;
  }

  .hero-video-frame {
    min-height:0;
    aspect-ratio:1.15/1;
    border-radius:47% 47% 3px 3px / 34% 34% 3px 3px;
  }

  .hero-trust {
    flex-wrap:wrap;
    gap:10px 14px;
    margin-top:29px;
    font-size:9px;
  }

  .hero-trust span:last-child {
    width:100%;
    text-align:center;
  }

  .hero-trust i:nth-of-type(2) {
    display:none;
  }

  .about-grid,.consultant-grid {
    grid-template-columns:1fr;
    gap:34px;
  }

  .about-photo {
    min-height:300px;
  }

  .about-copy {
    max-width:none;
  }

  .about h2,.section-heading h2,.du-copy h2,.consultant h2,.map-copy h2 {
    font-size:37px;
  }

  .section-heading {
    margin-bottom:34px;
  }

  .section-heading.centered {
    text-align:left;
  }

  .section-heading.centered>p:not(.eyebrow) {
    margin-left:0;
  }

  .differential-layout {
    grid-template-columns:1fr;
    gap:32px;
  }

  .differential-intro h2,
  .differential-intro>p:not(.eyebrow) { max-width:620px; }

  .differential-grid { gap:12px; }

  .differential {
    min-height:175px;
    padding:21px;
  }

  .plans-heading,.benefits-heading {
    display:block;
  }

  .plans-heading>p,.benefits-heading>p {
    margin-top:17px!important;
  }

  .plan-grid {
    grid-template-columns:repeat(2,1fr);
    gap:10px;
  }

  .plan-card {
    min-height:305px;
    padding:22px 15px 15px;
  }

  .plan-card h3 {
    font-size:18px;
  }

  .plan-price {
    font-size:21px;
  }

  .plan-featured {
    grid-column:span 2;
  }

  .plan-footnote {
    text-align:left;
  }

  .promo-wrap {
    flex-wrap:wrap;
    gap:17px;
  }

  .promo-symbol {
    width:54px;
    height:54px;
    font-size:29px;
  }

  .promo-copy {
    min-width:calc(100% - 80px);
  }

  .promo-copy h2 {
    font-size:23px;
  }

  .promo-copy h2 small {
    display:block;
    margin-top:3px;
  }

  .promo-wrap>.button {
    margin-left:71px;
  }

  .steps-grid {
    grid-template-columns:repeat(2,1fr);
    gap:30px 20px;
  }

  .du-grid {
    grid-template-columns:1fr;
    gap:38px;
  }

  .du-card-placeholder {
    margin-top:28px;
  }
  .benefit-bottom {
    flex-wrap:wrap;
    gap:10px 15px;
  }

  .benefit-bottom p {
    flex-basis:calc(100% - 100px);
    font-size:15px;
  }

  .benefit-bottom .text-link {
    margin-left:auto;
  }

  .consultant-photo {
    min-height:310px;
  }

  .faq-grid {
    grid-template-columns:1fr;
    gap:30px;
  }

  .faq-heading {
    position:static;
  }

  .faq-heading h2 {
    max-width:540px;
    font-size:37px;
  }

  .map-grid {
    grid-template-columns:1fr;
    gap:27px;
  }

  .map-placeholder {
    min-height:240px;
  }

  .final-cta {
    padding:69px 0;
  }

  .footer-main {
    grid-template-columns:repeat(2,1fr);
    gap:32px 24px;
  }

  .footer-bottom {
    gap:13px;
    flex-wrap:wrap;
  }

  .footer-bottom>* {
    flex:1 1 30%;
  }

  .footer-bottom>a {
    text-align:right;
  }

}

@media(max-width:420px) {
  .container {
    width:calc(100% - 32px);
  }

  .hero h1 {
    font-size:39px;
  }

  .hero-actions {
    align-items:flex-start;
    flex-direction:column;
    gap:15px;
  }

  .hero-actions .button {
    width:100%;
  }

  .hero-video-frame {
    aspect-ratio:1/1.02;
  }

  .differential {
    min-height:165px;
    padding:17px 15px;
  }

  .differential h3 {
    font-size:13px;
  }

  .differential p {
    font-size:11px;
  }

  .plan-grid {
    grid-template-columns:1fr;
  }

  .plan-card {
    min-height:0;
    padding:24px 20px 17px;
  }

  .plan-card h3 {
    font-size:20px;
  }

  .plan-featured {
    grid-column:auto;
  }

  .plan-price {
    font-size:24px;
  }

  .plan-lives {
    min-height:0;
  }

  .plan-card .button {
    margin-top:8px;
  }

  .steps-grid {
    gap:26px 15px;
  }

  .step {
    padding-right:8px;
  }
.faq-question {
    font-size:12px;
  }

  .footer-main {
    grid-template-columns:1fr 1fr;
    gap:28px 18px;
  }

  .footer-brand-col {
    grid-column:span 2;
  }

}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }

  [data-reveal] {
    opacity:1;
    transform:none;
  }

}

@media(max-width:760px) {
  .du-actions {
    align-items:flex-start;
    flex-direction:column;
  }

  .footer-map-row {
    grid-template-columns:1fr;
    gap:15px;
  }

  .footer-map-placeholder {
    min-height:115px;
  }

}

.footer-map-placeholder {
  overflow:hidden;
  padding:0;
}

/* 14. Tablet and mobile refinements */
@media (max-width: 1050px) {
.main-nav > a:not(.button) {
    padding-inline: 0;
    font-size: 13px;
  }

}

@media (max-width: 760px) {
.main-nav > a:not(.button) {
    padding: 12px 4px;
    border-bottom: 1px solid #eeece6;
    border-radius: 0;
    color: #465466;
    font-size: 15px;
  }

.main-nav .nav-cta {
    margin: 14px 0 0;
  }

  .du-visual {
    min-height: 330px;
  }

  .du-visual::before {
    width: 275px;
    height: 275px;
  }

  .du-visual::after {
    width: 205px;
    height: 205px;
  }

  .du-orbit-item:nth-child(1) {
    left: 8%;
  }

  .du-orbit-item:nth-child(2) {
    right: 3%;
  }

  .du-orbit-item:nth-child(3) {
    right: -1%;
  }

  .du-orbit-item:nth-child(4) {
    right: 5%;
  }

  .du-orbit-item:nth-child(5) {
    left: 4%;
  }

  .du-orbit-item:nth-child(6) {
    left: -2%;
  }

}

@media (max-width: 420px) {
  .du-visual {
    min-height: 300px;
  }

  .du-visual::before {
    width: 245px;
    height: 245px;
  }

  .du-visual::after {
    width: 180px;
    height: 180px;
  }

  .du-visual-center {
    width: 105px;
    height: 105px;
    font-size: 26px;
  }

  .du-orbit-item {
    min-width: 82px;
    min-height: 33px;
    padding: 5px 8px;
    font-size: 9px;
  }

}

@media (max-width:420px) {
  .differential-grid { grid-template-columns:1fr; }
}

/* Fotos reais fornecidas para as seções institucionais e de atendimento. */
.about-photo > img,
.consultant-photo > img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.about-photo > img { object-position:center 42%; }
.consultant-photo > img { object-position:center 35%; }
.photo-index { z-index:2; }

.hero-fallback { overflow:hidden; }
.hero-fallback-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.hero-fallback-label {
  position:absolute;
  left:20px;
  bottom:20px;
  padding:8px 12px;
  border-radius:30px;
  color:#fff;
  background:rgba(18,37,62,.68);
  font:500 12px var(--sans);
  letter-spacing:.02em;
}
/* Enquadramento da foto vertical fornecida da consultora. */
.consultant-photo {
  width:100%;
  max-width:360px;
  min-height:0;
  aspect-ratio:2 / 3;
}
.consultant-photo > img { object-position:center 25%; }


.footer-map-address {
  margin:10px 0 0;
  color:#aebac8;
  font-size:12px;
  font-style:normal;
  line-height:1.75;
}
.footer-map-directions {
  display:inline-flex;
  margin-top:12px;
  color:#f1ddb0;
  font-size:11px;
  font-weight:600;
  text-decoration:none;
}
.footer-map-directions:hover,
.footer-map-directions:focus-visible { text-decoration:underline; }
/* Imagem oficial do Cartão DU no espaço que antes era um placeholder ilustrado. */
.du-card-image {
  width:100%;
  max-width:300px;
  min-height:0;
  aspect-ratio:1 / 1;
  margin-inline:auto;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.du-card-image::before,
.du-card-image::after { display:none; content:none; }
.du-card-image > img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
/* Cartão DU centralizado abaixo dos botões, com cantos arredondados. */
.du-card-image {
  margin:28px auto 0;
  border-radius:22px;
}
.du-card-image > img { border-radius:inherit; }
.du-supporting-copy {
  max-width:430px;
  margin:22px 0 0;
  padding-left:15px;
  border-left:2px solid var(--gold);
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
}