/* =========================================================
   fontes auto-hospedadas (SIL Open Font License 1.1)
   Outfit e Archivo — nenhuma requisição a servidor externo.
   ========================================================= */
@font-face{
  font-family:'Outfit'; font-style:normal; font-weight:500; font-display:swap;
  src:url('fonts/outfit-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Outfit'; font-style:normal; font-weight:500; font-display:swap;
  src:url('fonts/outfit-latin-ext-500-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Outfit'; font-style:normal; font-weight:600; font-display:swap;
  src:url('fonts/outfit-latin-600-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Outfit'; font-style:normal; font-weight:600; font-display:swap;
  src:url('fonts/outfit-latin-ext-600-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Outfit'; font-style:normal; font-weight:700; font-display:swap;
  src:url('fonts/outfit-latin-700-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Outfit'; font-style:normal; font-weight:700; font-display:swap;
  src:url('fonts/outfit-latin-ext-700-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Archivo'; font-style:normal; font-weight:400; font-display:swap;
  src:url('fonts/archivo-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Archivo'; font-style:normal; font-weight:400; font-display:swap;
  src:url('fonts/archivo-latin-ext-400-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Archivo'; font-style:normal; font-weight:500; font-display:swap;
  src:url('fonts/archivo-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Archivo'; font-style:normal; font-weight:500; font-display:swap;
  src:url('fonts/archivo-latin-ext-500-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Archivo'; font-style:normal; font-weight:600; font-display:swap;
  src:url('fonts/archivo-latin-600-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Archivo'; font-style:normal; font-weight:600; font-display:swap;
  src:url('fonts/archivo-latin-ext-600-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* =========================================================
   i9a3 Comunicação — sistema de design
   Paleta e direção visual conforme briefing da marca.
   Contrastes verificados contra WCAG 2.2 AA.
   ========================================================= */

:root{
  /* --- cores da marca --- */
  --navy:      #0B2948;
  --navy-soft: #123A5E;
  --navy-deep: #071B30;
  --orange:    #FF6B1A;
  --orange-ink:#C2410C;   /* laranja para texto pequeno — 4.56:1 sobre marfim */
  --teal:      #2698A6;
  --teal-ink:  #0F6E7A;   /* teal para texto pequeno — 5.24:1 sobre marfim */
  --ivory:     #F5F0E6;
  --ivory-2:   #EDE6D8;
  --ink:       #343A40;   /* texto — 10.13:1 sobre marfim */
  --ink-soft:  #5A636C;
  --white:     #FFFFFF;
  --line:      #E1D8C6;
  --line-dark: rgba(255,255,255,.16);
  --on-navy:   #F5F0E6;
  --on-navy-soft:#AFC2D4; /* 8.06:1 sobre navy */

  /* --- tipografia --- */
  --font-display:"Outfit","Segoe UI",system-ui,-apple-system,sans-serif;
  --font-text:"Archivo","Segoe UI",system-ui,-apple-system,sans-serif;

  --step--1: clamp(.82rem, .8rem + .1vw, .88rem);
  --step-0 : clamp(1rem, .97rem + .15vw, 1.075rem);
  --step-1 : clamp(1.15rem, 1.09rem + .3vw, 1.35rem);
  --step-2 : clamp(1.4rem, 1.28rem + .6vw, 1.8rem);
  --step-3 : clamp(1.75rem, 1.5rem + 1.2vw, 2.5rem);
  --step-4 : clamp(2.1rem, 1.6rem + 2.4vw, 3.6rem);

  /* --- espaço e forma --- */
  --wrap: 1160px;
  --gap: clamp(1rem, .6rem + 1.6vw, 1.75rem);
  --pad-section: clamp(3.5rem, 2rem + 6vw, 7rem);
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --shadow: 0 1px 2px rgba(11,41,72,.05), 0 12px 32px -18px rgba(11,41,72,.28);
  --leaf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M100,0 C100,55 55,100 0,100 C0,45 45,0 100,0 Z' fill='%23000'/%3E%3C/svg%3E");
}

/* =========================================================
   base
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--font-text);
  font-size:var(--step-0);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--navy);
  line-height:1.12;
  letter-spacing:-.02em;
  margin:0 0 .6em;
  font-weight:700;
  text-wrap:balance;
}
h1{ font-size:var(--step-4); }
h2{ font-size:var(--step-3); }
h3{ font-size:var(--step-2); }
h4{ font-size:var(--step-1); letter-spacing:-.01em; }

p{ margin:0 0 1.1em; max-width:68ch; }
p:last-child{ margin-bottom:0; }

a{ color:var(--teal-ink); text-underline-offset:.18em; text-decoration-thickness:.08em; }
a:hover{ color:var(--orange-ink); }

img,svg{ max-width:100%; height:auto; display:block; }
ul,ol{ margin:0 0 1.1em; padding-left:1.15em; }
li{ margin-bottom:.35em; }
strong{ color:var(--navy); font-weight:650; }
hr{ border:0; border-top:1px solid var(--line); margin:var(--gap) 0; }

:focus-visible{
  outline:3px solid var(--teal-ink);
  outline-offset:3px;
  border-radius:4px;
}
.on-dark :focus-visible, .site-header :focus-visible{ outline-color:var(--orange); }

::selection{ background:var(--orange); color:var(--navy); }

.skip-link{
  position:absolute; left:8px; top:-100px; z-index:999;
  background:var(--navy); color:var(--white);
  padding:.7rem 1.1rem; border-radius:var(--r-sm); font-weight:600;
  transition:top .15s;
}
.skip-link:focus{ top:8px; }

.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;
}

/* =========================================================
   layout
   ========================================================= */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(1.1rem,4vw,2rem); }
.section{ padding-block:var(--pad-section); }
.section--tight{ padding-block:clamp(2.5rem,1.5rem + 4vw,4.5rem); }

.section--navy{ background:var(--navy); color:var(--on-navy); position:relative; overflow:hidden; }
.section--navy h1,.section--navy h2,.section--navy h3,.section--navy h4{ color:var(--white); }
.section--navy strong{ color:var(--white); }
.section--navy a{ color:var(--orange); }
.section--navy a:hover{ color:var(--white); }

.section--alt{ background:var(--ivory-2); }

.lede{ font-size:var(--step-1); line-height:1.55; color:var(--ink-soft); max-width:60ch; }
.section--navy .lede{ color:var(--on-navy-soft); }

.eyebrow{
  display:inline-flex; align-items:center; gap:.55rem;
  font-family:var(--font-display);
  font-size:var(--step--1); font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--teal-ink); margin-bottom:1rem;
}
.eyebrow::before{
  content:""; width:1.6rem; height:2px; background:var(--orange); border-radius:2px;
}
.section--navy .eyebrow{ color:var(--orange); }
.section--navy .eyebrow::before{ background:var(--teal); }

.grid{ display:grid; gap:var(--gap); }
.grid-2{ grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); }
.grid-3{ grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); }
.grid-2--tight{ grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr)); }
.card .grid-2{ grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr)); }
.grid-4{ grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); }
.grid-4 .card h3{ font-size:var(--step-1); }
.split{ display:grid; gap:clamp(2rem,4vw,4rem); grid-template-columns:1fr; align-items:start; }
@media (min-width:900px){ .split{ grid-template-columns:1.05fr .95fr; } .split--narrow{ grid-template-columns:1fr 1fr; } }

.stack > * + *{ margin-top:var(--gap); }
.center{ text-align:center; }
.center p,.center .lede{ margin-inline:auto; }

/* =========================================================
   marca
   ========================================================= */
.brand{ display:inline-flex; align-items:center; gap:.62rem; text-decoration:none; color:var(--navy); }
.on-dark .brand{ color:var(--white); }
.brand__mark{ width:34px; height:34px; flex:none; }
.brand__type{ display:flex; flex-direction:column; line-height:1; }
.brand__name{
  font-family:var(--font-display); font-weight:700;
  font-size:1.32rem; letter-spacing:-.03em; color:var(--navy);
}
.brand__name i{ font-style:normal; color:var(--orange-ink); }
.brand__tag{
  font-family:var(--font-display);
  font-size:.535rem; font-weight:500; letter-spacing:.29em;
  text-transform:uppercase; color:var(--ink-soft); margin-top:.24rem;
}
.on-dark .brand__name{ color:var(--white); }
.on-dark .brand__name i{ color:var(--orange); }
.on-dark .brand__tag{ color:var(--on-navy-soft); }

/* =========================================================
   cabeçalho e navegação
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:80;
  background:rgba(245,240,230,.88);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
.site-header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; min-height:72px;
}
.nav{ display:flex; align-items:center; gap:.35rem; }
.nav a{
  font-family:var(--font-display);
  font-size:.94rem; font-weight:500; color:var(--navy);
  text-decoration:none; padding:.5rem .72rem; border-radius:var(--r-sm);
  white-space:nowrap;
}
.nav a:hover{ background:rgba(11,41,72,.07); color:var(--navy); }
.nav a[aria-current="page"]{ color:var(--orange-ink); font-weight:650; }
.nav__cta{ margin-left:.5rem; }

.nav-toggle{
  display:none; align-items:center; gap:.5rem;
  background:var(--navy); color:var(--white); border:0;
  font-family:var(--font-display); font-weight:600; font-size:.9rem;
  padding:.6rem .9rem; border-radius:var(--r-sm); cursor:pointer;
}
.nav-toggle svg{ width:18px; height:18px; }

@media (max-width:960px){
  .nav-toggle{ display:inline-flex; }
  .nav{
    position:fixed; inset:72px 0 auto 0;
    flex-direction:column; align-items:stretch; gap:.15rem;
    background:var(--ivory); border-bottom:1px solid var(--line);
    padding:1rem clamp(1.1rem,4vw,2rem) 1.6rem;
    box-shadow:0 18px 40px -24px rgba(11,41,72,.5);
    max-height:calc(100dvh - 72px); overflow-y:auto;
  }
  .nav[hidden]{ display:none; }
  .nav a{ padding:.85rem .6rem; font-size:1.05rem; border-bottom:1px solid var(--line); border-radius:0; }
  .nav a:last-of-type{ border-bottom:0; }
  .nav__cta{ margin:.8rem 0 0; justify-content:center; }
}

/* =========================================================
   botões
   ========================================================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--font-display); font-weight:650; font-size:.98rem;
  line-height:1.2; text-decoration:none; cursor:pointer;
  padding:.86rem 1.4rem; min-height:48px;
  border-radius:999px; border:2px solid transparent;
  transition:transform .16s ease, background-color .16s ease, border-color .16s ease, color .16s ease;
}
.btn svg{ width:1.05em; height:1.05em; flex:none; }
.btn:hover{ transform:translateY(-2px); }

/* laranja com texto navy = 5.17:1, aprovado em AA */
.btn--primary{ background:var(--orange); color:var(--navy); border-color:var(--orange); }
.btn--primary:hover{ background:#FF7F38; border-color:#FF7F38; color:var(--navy); }

.btn--dark{ background:var(--navy); color:var(--white); border-color:var(--navy); }
.btn--dark:hover{ background:var(--navy-soft); border-color:var(--navy-soft); color:var(--white); }

.btn--ghost{ background:transparent; color:var(--navy); border-color:rgba(11,41,72,.28); }
.btn--ghost:hover{ border-color:var(--navy); background:rgba(11,41,72,.05); color:var(--navy); }

.btn--onnavy{ background:transparent; color:var(--white); border-color:rgba(255,255,255,.42); }
.btn--onnavy:hover{ background:rgba(255,255,255,.1); border-color:var(--white); color:var(--white); }

.btn--sm{ padding:.6rem 1.05rem; min-height:42px; font-size:.9rem; }
.btn-row{ display:flex; flex-wrap:wrap; gap:.75rem; }

@media (prefers-reduced-motion: reduce){
  .btn,.card,.solution{ transition:none !important; }
  .btn:hover,.card:hover{ transform:none !important; }
}

/* =========================================================
   hero
   ========================================================= */
.hero{
  position:relative; background:var(--navy); color:var(--on-navy);
  padding-block:clamp(3.5rem,2rem + 8vw,7.5rem);
  overflow:hidden;
}
.hero__bg{
  position:absolute; inset:0; pointer-events:none;
  opacity:.5;
}
.hero__glow{
  position:absolute; border-radius:50%; filter:blur(90px); pointer-events:none;
}
.hero__glow--o{ width:min(46vw,520px); aspect-ratio:1; background:rgba(255,107,26,.30); top:-14%; right:-8%; }
.hero__glow--t{ width:min(40vw,460px); aspect-ratio:1; background:rgba(38,152,166,.30); bottom:-24%; left:-10%; }
.hero__inner{ position:relative; z-index:1; }
.hero h1{ max-width:19ch; margin-bottom:.5em; }
.hero h1 em{ font-style:normal; color:var(--orange); }
.hero .lede{ max-width:56ch; }
.hero__cta{ margin-top:2rem; }
.hero__facts{
  margin-top:clamp(2.5rem,5vw,4rem); padding-top:1.6rem;
  border-top:1px solid var(--line-dark);
  display:grid; gap:1.2rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));
}
.hero__fact b{
  display:block; font-family:var(--font-display); font-size:1.02rem;
  color:var(--white); font-weight:650; margin-bottom:.15rem;
}
.hero__fact span{ font-size:var(--step--1); color:var(--on-navy-soft); line-height:1.5; display:block; }

/* --- correções de contraste dentro do hero e de botões sobre fundo escuro --- */
.hero h1,.hero h2,.hero h3,.hero h4{ color:var(--white); }
.hero .lede{ color:var(--on-navy-soft); }
.hero .eyebrow{ color:var(--orange); }
.hero .eyebrow::before{ background:var(--teal); }
.hero a:not(.btn){ color:var(--orange); }
.hero .badge{ background:rgba(255,107,26,.16); border-color:rgba(255,107,26,.45); color:var(--orange); }
.hero .tick li{ color:var(--on-navy-soft); }
.hero .step p{ color:var(--on-navy-soft); }

/* a regra genérica `.section--navy a` tem prioridade sobre `.btn--*`;
   estas travam a cor correta de cada variante de botão. */
.section--navy a.btn--primary,.hero a.btn--primary{ color:var(--navy); }
.section--navy a.btn--primary:hover,.hero a.btn--primary:hover{ color:var(--navy); }
.section--navy a.btn--onnavy,.hero a.btn--onnavy,
.section--navy a.btn--dark,.hero a.btn--dark{ color:var(--white); }
.section--navy a.btn--ghost,.hero a.btn--ghost{
  color:var(--white); border-color:rgba(255,255,255,.42); background:transparent;
}
.section--navy a.btn--ghost:hover,.hero a.btn--ghost:hover{
  color:var(--white); border-color:var(--white); background:rgba(255,255,255,.1);
}
.card--navy a:not(.btn){ color:var(--orange); }

.hero__art{ display:none; }
@media (min-width:1040px){
  .hero__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:center; }
  .hero__art{ display:block; }
}

/* =========================================================
   cartões
   ========================================================= */
.card{
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:clamp(1.3rem,2.2vw,1.9rem);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  height:100%;
}
.card--link:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--teal); }
.card h3{ margin-bottom:.45em; }
.card h4{ margin-bottom:.4em; }
.card p{ color:var(--ink-soft); }
.card__icon{ width:44px; height:44px; margin-bottom:1.1rem; }
.card__foot{ margin-top:1.25rem; }

.card--navy{ background:var(--navy); border-color:var(--navy); color:var(--on-navy); }
.card--navy h3,.card--navy h4{ color:var(--white); }
.card--navy p,.card--navy li,.card--navy .tick li{ color:var(--on-navy-soft); }
.card--navy .tick li::before{ background:var(--orange); }

.card--outline{ background:transparent; border-style:dashed; border-color:var(--line); }
.section--navy .card--outline{ border-color:var(--line-dark); }
.section--navy .card--outline p{ color:var(--on-navy-soft); }

.tick{ list-style:none; padding:0; margin:0; }
.tick li{
  position:relative; padding-left:1.6rem; margin-bottom:.5rem;
  color:var(--ink-soft); font-size:.97rem;
}
.tick li::before{
  content:""; position:absolute; left:0; top:.55em;
  width:9px; height:9px; border-radius:2px 6px 2px 6px; background:var(--teal);
}
.section--navy .tick li{ color:var(--on-navy-soft); }
.section--navy .tick li::before{ background:var(--orange); }
.tick--orange li::before{ background:var(--orange); }

/* grupos de solução */
.solution{
  display:flex; flex-direction:column; height:100%;
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--r-lg); overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease;
}
.solution:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.solution__top{ padding:1.5rem clamp(1.3rem,2.2vw,1.8rem) 0; }
.solution__body{ padding:0 clamp(1.3rem,2.2vw,1.8rem) 1.6rem; display:flex; flex-direction:column; flex:1; }
.solution__body .btn{ margin-top:auto; align-self:flex-start; }
.solution__bar{ height:6px; }
.solution__bar--o{ background:var(--orange); }
.solution__bar--t{ background:var(--teal); }
.solution__bar--n{ background:var(--navy); }

/* etapas numeradas */
.steps{ counter-reset:step; list-style:none; padding:0; margin:0; display:grid; gap:var(--gap); }
.steps--4{ grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); }
.step{ counter-increment:step; position:relative; padding-top:2.9rem; }
.step::before{
  content:counter(step,decimal-leading-zero);
  position:absolute; top:0; left:0;
  font-family:var(--font-display); font-size:1.5rem; font-weight:700;
  color:var(--orange); letter-spacing:-.03em;
}
.step::after{
  content:""; position:absolute; top:2.05rem; left:0; width:2.2rem; height:2px;
  background:var(--teal); border-radius:2px;
}
.step h3,.step h4{ margin-bottom:.35em; }
.step p{ color:var(--ink-soft); font-size:.97rem; }
.section--navy .step p{ color:var(--on-navy-soft); }

/* destaque / faixa */
.badge{
  display:inline-flex; align-items:center; gap:.6rem;
  background:rgba(38,152,166,.12); color:var(--teal-ink);
  border:1px solid rgba(38,152,166,.35);
  font-family:var(--font-display); font-weight:650; font-size:.9rem;
  padding:.5rem 1rem; border-radius:999px;
}
.section--navy .badge{ background:rgba(255,107,26,.16); border-color:rgba(255,107,26,.45); color:var(--orange); }

.callout{
  position:relative; background:var(--ivory-2); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:clamp(1.4rem,2.6vw,2rem);
  padding-top:clamp(2.4rem,3.6vw,3rem);
}
.callout::before{                       /* pétala do símbolo, no lugar da barra lateral */
  content:""; position:absolute; top:clamp(1.1rem,2vw,1.5rem); left:clamp(1.4rem,2.6vw,2rem);
  width:22px; height:22px; background:var(--orange);
  -webkit-mask:var(--leaf) center/contain no-repeat; mask:var(--leaf) center/contain no-repeat;
}
.section--navy .callout{ background:rgba(255,255,255,.06); border-color:var(--line-dark); }
.hero .callout{ background:rgba(255,255,255,.06); border-color:var(--line-dark); }

/* produto */
.product{ scroll-margin-top:90px; }
.product + .product{ margin-top:clamp(3rem,6vw,5.5rem); padding-top:clamp(3rem,6vw,5.5rem); border-top:1px solid var(--line); }
.product__art{
  background:var(--navy); border-radius:var(--r-lg);
  aspect-ratio:4/3; display:grid; place-items:center; overflow:hidden; position:relative;
}
.product__art svg{ width:72%; height:auto; }

/* =========================================================
   formulário
   ========================================================= */
.form{ display:grid; gap:1.15rem; }
.field{ display:grid; gap:.4rem; }
.field label{
  font-family:var(--font-display); font-weight:600; font-size:.92rem; color:var(--navy);
}
.field .hint{ font-size:.85rem; color:var(--ink-soft); }
.req{ color:var(--orange-ink); }
.field input,.field select,.field textarea{
  font-family:var(--font-text); font-size:1rem; color:var(--ink);
  background:var(--white); border:1.5px solid var(--line);
  border-radius:var(--r-sm); padding:.8rem .9rem; width:100%; min-height:48px;
}
.field textarea{ min-height:140px; resize:vertical; }
.field input:hover,.field select:hover,.field textarea:hover{ border-color:var(--teal); }
.field input:invalid:not(:placeholder-shown),
.field textarea:invalid:not(:placeholder-shown){ border-color:var(--orange-ink); }
.field-row{ display:grid; gap:1.15rem; grid-template-columns:1fr; }
@media (min-width:680px){ .field-row{ grid-template-columns:1fr 1fr; } }
.consent{ display:flex; gap:.7rem; align-items:flex-start; font-size:.92rem; color:var(--ink-soft); }
.consent input{ width:20px; height:20px; min-height:0; margin-top:.15rem; flex:none; accent-color:var(--teal-ink); }
.hp{ position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden; }

/* =========================================================
   rodapé
   ========================================================= */
.site-footer{ background:var(--navy-deep); color:var(--on-navy); padding-block:clamp(3rem,5vw,4.5rem) 2rem; }
.site-footer h2,.site-footer h3{ color:var(--white); }
.footer__grid{ display:grid; gap:2.2rem 1.8rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,178px),1fr)); }
.footer__about{ min-width:min(100%,230px); }
.footer__title{
  font-family:var(--font-display); font-size:.8rem; font-weight:650;
  letter-spacing:.15em; text-transform:uppercase; color:var(--orange);
  margin:0 0 .9rem;
}
.dt{ display:block; font-family:var(--font-display); font-size:.78rem; font-weight:650;
  letter-spacing:.14em; text-transform:uppercase; color:var(--teal-ink); margin:0 0 .25rem; }
.on-dark .dt,.section--navy .dt,.card--navy .dt{ color:var(--orange); }
.footer__list{ list-style:none; padding:0; margin:0; }
.footer__list li{ margin-bottom:.5rem; }
.footer__list a{ color:var(--on-navy-soft); text-decoration:none; font-size:.95rem; }
.footer__list a:hover{ color:var(--white); text-decoration:underline; }
.footer__about p{ color:var(--on-navy-soft); font-size:.95rem; }
.footer__bottom{
  margin-top:2.6rem; padding-top:1.4rem; border-top:1px solid var(--line-dark);
  display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; justify-content:space-between;
  font-size:.85rem; color:var(--on-navy-soft);
}
.footer__bottom a{ color:var(--on-navy-soft); }

/* faixa de padrão modular */
.pattern-strip{ height:12px; display:flex; }
.pattern-strip span{ flex:1; }

/* =========================================================
   utilidades
   ========================================================= */
.muted{ color:var(--ink-soft); }
.small{ font-size:var(--step--1); }
.mt-0{ margin-top:0; } .mb-0{ margin-bottom:0; }
.maxw{ max-width:62ch; }
.nowrap{ white-space:nowrap; }
