/* =====================================================================
   ERGOLIST — Ergonomia Corporativa e Saúde no Trabalho
   Design system • São Luís – MA
   Palette: deep blue (trust) · elegant gray (structure) · muted yellow (accent)
   Type: Lexend (display) + Source Sans 3 (body)
   ===================================================================== */

:root {
  /* ---- Brand ---- */
  --navy:        #15356b;   /* primary trust blue            */
  --navy-deep:   #0d2547;   /* darkest blue (gradients)      */
  --navy-mid:    #1d4a92;   /* mid blue                      */
  --blue:        #2f6cb0;   /* bright/sky accent             */
  --blue-soft:   #eaf2fb;   /* light blue wash               */

  --gold:        #e0b13c;   /* muted yellow accent           */
  --gold-deep:   #c2922a;   /* darker gold for AA text       */
  --gold-soft:   #f7edd1;   /* soft yellow wash              */

  /* ---- Neutrals ---- */
  --ink:         #16202e;   /* near-black headings           */
  --gray:        #44505f;   /* body text                     */
  --gray-light:  #6c7a8c;   /* muted/labels                  */
  --bg:          #ffffff;
  --off:         #f5f8fc;   /* off-white sections            */
  --soft:        #eef3f9;   /* soft light gray cards         */
  --border:      #dce5f0;

  /* ---- Functional ---- */
  --wa:          #25D366;
  --wa-dark:     #1aa850;
  --danger:      #c0392b;
  --ok:          #2d7a52;

  /* ---- Elevation ---- */
  --sh-sm: 0 2px 10px rgba(13,37,71,.07);
  --sh-md: 0 10px 34px rgba(13,37,71,.11);
  --sh-lg: 0 24px 60px rgba(13,37,71,.18);

  /* ---- Geometry ---- */
  --r:    14px;
  --r-lg: 22px;
  --r-pill: 100px;
  --ease: cubic-bezier(.4,0,.2,1);
  --t: .32s var(--ease);
  --maxw: 1240px;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; font-size:16px; -webkit-text-size-adjust:100%; }
body{
  font-family:'Source Sans 3',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ink); background:var(--bg); line-height:1.7;
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{ font-family:'Lexend',sans-serif; line-height:1.15; font-weight:600; letter-spacing:-.01em; color:var(--ink); }
a{ text-decoration:none; color:inherit; }
img,svg{ max-width:100%; display:block; }
ul{ list-style:none; }

::selection{ background:var(--gold); color:var(--navy-deep); }
:focus-visible{ outline:3px solid var(--blue); outline-offset:2px; border-radius:4px; }

/* ---- Layout helpers ---- */
.container{ max-width:var(--maxw); margin:0 auto; padding:0 2rem; }
section{ padding:5.5rem 0; }
.icon{ width:1.25em; height:1.25em; display:inline-block; vertical-align:middle; stroke:currentColor; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:'Lexend',sans-serif; font-size:.74rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:1rem;
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--gold); border-radius:2px; }
.sec-title{ font-size:clamp(1.9rem,3.6vw,2.7rem); color:var(--navy); margin-bottom:1.1rem; }
.sec-sub{ font-size:1.06rem; color:var(--gray); max-width:640px; line-height:1.75; }
.head{ margin-bottom:3.4rem; }
.head.center{ text-align:center; }
.head.center .sec-sub{ margin-inline:auto; }
.head.center .eyebrow{ justify-content:center; }

/* =========================  BUTTONS  ========================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:'Lexend',sans-serif; font-size:.95rem; font-weight:600;
  padding:.85rem 1.7rem; border-radius:11px; border:2px solid transparent;
  cursor:pointer; transition:var(--t); white-space:nowrap;
}
.btn .icon{ width:1.15em; height:1.15em; }
.btn-gold{ background:var(--gold); color:var(--navy-deep); border-color:var(--gold); }
.btn-gold:hover{ background:#eabf4f; border-color:#eabf4f; transform:translateY(-2px); box-shadow:0 10px 22px rgba(224,177,60,.34); }
.btn-navy{ background:var(--navy); color:#fff; border-color:var(--navy); }
.btn-navy:hover{ background:var(--navy-deep); border-color:var(--navy-deep); transform:translateY(-2px); box-shadow:var(--sh-md); }
.btn-ghost{ background:transparent; color:var(--navy); border-color:var(--border); }
.btn-ghost:hover{ border-color:var(--navy); background:var(--off); transform:translateY(-2px); }
.btn-outline-white{ background:transparent; color:#fff; border-color:rgba(255,255,255,.45); }
.btn-outline-white:hover{ background:rgba(255,255,255,.1); border-color:#fff; transform:translateY(-2px); }
.btn-wa{ background:var(--wa); color:#fff; border-color:var(--wa); }
.btn-wa:hover{ background:var(--wa-dark); border-color:var(--wa-dark); transform:translateY(-2px); box-shadow:0 10px 22px rgba(37,211,102,.32); }

/* =========================  TOP BAR  ========================= */
.topbar{ background:var(--navy-deep); color:rgba(255,255,255,.74); font-size:.82rem; }
.topbar-in{ max-width:var(--maxw); margin:0 auto; padding:.5rem 2rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.4rem .9rem; }
.topbar-l,.topbar-r{ display:flex; align-items:center; gap:1.3rem; flex-wrap:wrap; }
.topbar a,.topbar span{ display:inline-flex; align-items:center; gap:.4rem; color:rgba(255,255,255,.74); transition:var(--t); }
.topbar a:hover{ color:var(--gold); }
.topbar .icon{ color:var(--gold); width:.95rem; height:.95rem; }

/* =========================  HEADER / NAV  ========================= */
.header{ position:sticky; top:0; z-index:1000; background:rgba(255,255,255,.96); backdrop-filter:blur(12px); border-bottom:1px solid var(--border); box-shadow:var(--sh-sm); }
.header-in{ max-width:var(--maxw); margin:0 auto; padding:0 2rem; height:74px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand-logo{ height:46px; width:auto; display:block; }
.brand-mark{ width:42px; height:42px; flex-shrink:0; }
.brand-txt{ line-height:1.05; }
.brand-name{ font-family:'Lexend',sans-serif; font-size:1.28rem; font-weight:700; color:var(--navy); display:block; letter-spacing:.02em; }
.brand-tag{ font-size:.66rem; color:var(--gray-light); letter-spacing:.1em; text-transform:uppercase; display:block; }
nav.main{ display:flex; align-items:center; gap:.2rem; }
nav.main a{ position:relative; padding:.5rem .95rem; font-family:'Lexend',sans-serif; font-size:.92rem; font-weight:500; color:var(--gray); border-radius:8px; transition:var(--t); }
nav.main a::after{ content:""; position:absolute; left:50%; bottom:6px; transform:translateX(-50%); width:0; height:2px; background:var(--gold); border-radius:2px; transition:var(--t); }
nav.main a:hover{ color:var(--navy); background:var(--off); }
nav.main a:hover::after,nav.main a.active::after{ width:55%; }
nav.main a.active{ color:var(--navy); font-weight:600; }
nav.main a.nav-cta{ background:var(--navy); color:#fff; padding:.6rem 1.3rem; margin-left:.4rem; border-radius:9px; font-weight:600; border:2px solid var(--navy); }
nav.main a.nav-cta:hover{ background:transparent; color:var(--navy); }
nav.main a.nav-cta::after{ display:none; }

.burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:.5rem; }
.burger span{ width:24px; height:2px; background:var(--navy); border-radius:2px; transition:var(--t); }
.mobile-nav{ display:none; flex-direction:column; gap:.2rem; padding:1rem 2rem 1.5rem; background:#fff; border-top:1px solid var(--border); }
.mobile-nav.open{ display:flex; }
.mobile-nav a{ padding:.8rem 1rem; font-family:'Lexend',sans-serif; font-weight:500; color:var(--gray); border-radius:8px; border-bottom:1px solid var(--border); }
.mobile-nav a:last-child{ border-bottom:none; color:var(--gold-deep); font-weight:700; }
.mobile-nav a:hover{ background:var(--off); color:var(--navy); }

/* =========================  HERO (home)  ========================= */
.hero{ position:relative; overflow:hidden; background:var(--navy-deep); }
.hero-bg{ position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 55% at 75% 30%, rgba(47,108,176,.28) 0%, transparent 60%),
    radial-gradient(ellipse 60% 70% at 12% 88%, rgba(224,177,60,.12) 0%, transparent 55%),
    linear-gradient(150deg, #0d2547 0%, #15356b 52%, #102d57 100%);
}
.hero-grid{ position:absolute; inset:0; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:62px 62px; mask-image:radial-gradient(ellipse 90% 80% at 50% 30%,#000,transparent 80%); }
.hero-in{ position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:5.5rem 2rem 5rem; display:grid; grid-template-columns:1.05fr .95fr; gap:3.5rem; align-items:center; }
.hero-badge{ display:inline-flex; align-items:center; gap:.5rem; background:rgba(224,177,60,.13); border:1px solid rgba(224,177,60,.34); color:var(--gold); font-family:'Lexend',sans-serif; font-size:.74rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:.45rem 1rem; border-radius:var(--r-pill); margin-bottom:1.5rem; }
.hero-badge .icon{ width:.9rem; height:.9rem; }
.hero h1{ font-size:clamp(2.2rem,4.6vw,3.5rem); font-weight:700; color:#fff; line-height:1.1; margin-bottom:1.3rem; }
.hero h1 em{ font-style:normal; color:var(--gold); }
.hero-sub{ font-size:1.1rem; color:rgba(255,255,255,.74); line-height:1.7; margin-bottom:1.4rem; max-width:540px; }
.hero-cities{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2.2rem; }
.chip{ display:inline-flex; align-items:center; gap:.35rem; font-size:.8rem; color:rgba(255,255,255,.7); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); padding:.32rem .8rem; border-radius:var(--r-pill); }
.chip .icon{ color:var(--gold); width:.85rem; height:.85rem; }
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; }
.hero-trust{ display:flex; align-items:center; gap:1.4rem; margin-top:2.2rem; flex-wrap:wrap; }
.hero-trust-item{ display:flex; align-items:center; gap:.55rem; font-size:.84rem; color:rgba(255,255,255,.62); }
.hero-trust-item .icon{ color:var(--gold); width:1.15rem; height:1.15rem; }

/* hero visual — layered card cluster */
.hero-visual{ position:relative; }
.hero-photo{ width:100%; height:430px; object-fit:cover; border-radius:var(--r-lg); box-shadow:var(--sh-lg); border:1px solid rgba(255,255,255,.1); }
.hero-fcard{ position:absolute; background:rgba(255,255,255,.95); backdrop-filter:blur(8px); border-radius:var(--r); padding:1rem 1.2rem; box-shadow:var(--sh-md); display:flex; align-items:center; gap:.85rem; }
.hero-fcard .ico{ width:42px; height:42px; flex-shrink:0; background:var(--navy); color:var(--gold); border-radius:11px; display:flex; align-items:center; justify-content:center; }
.hero-fcard strong{ display:block; font-family:'Lexend',sans-serif; font-size:.95rem; color:var(--navy); }
.hero-fcard span{ font-size:.78rem; color:var(--gray); }
.hero-fcard.tl{ top:1.2rem; left:-1.4rem; }
.hero-fcard.br{ bottom:1.4rem; right:-1.2rem; }

/* =========================  STATS STRIP  ========================= */
.stats{ background:linear-gradient(120deg,#15356b 0%,#1d4a92 55%,#12305c 100%); position:relative; overflow:hidden; }
.stats::before{ content:""; position:absolute; inset:0; background:
  radial-gradient(ellipse 40% 120% at 12% 50%, rgba(224,177,60,.10), transparent 60%),
  radial-gradient(ellipse 40% 120% at 88% 50%, rgba(47,108,176,.20), transparent 60%); }
.stats-in{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; padding:2.6rem 0; }
.stat{ text-align:center; padding:.6rem 1rem; border-right:1px solid rgba(255,255,255,.1); border-radius:16px; transition:transform .4s var(--ease), background .4s var(--ease); }
.stat:last-child{ border-right:none; }
.stats .stat:hover{ background:rgba(255,255,255,.05); transform:translateY(-5px); }
.stat-ico{ width:56px; height:56px; margin:0 auto .85rem; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(224,177,60,.14); border:1px solid rgba(224,177,60,.3); color:var(--gold);
  transition:transform .45s var(--ease), background .45s var(--ease), box-shadow .45s var(--ease); }
.stat:hover .stat-ico{ background:var(--gold); color:var(--navy-deep); transform:scale(1.12) rotate(-4deg); box-shadow:0 10px 24px rgba(224,177,60,.35); }
.stat-ico .icon{ width:1.6rem; height:1.6rem; transition:transform .45s var(--ease); }
.stat:hover .stat-ico .icon{ transform:scale(1.05); }
.stat strong{ display:block; font-family:'Lexend',sans-serif; font-size:1.15rem; color:#fff; font-weight:600; letter-spacing:.01em; }
.stat span{ font-size:.82rem; color:rgba(255,255,255,.62); }
/* staggered entrance */
.stats-in .stat.reveal{ transition:opacity .6s var(--ease), transform .55s var(--ease), background .4s var(--ease); }
.stats-in .stat.reveal:nth-child(1){ transition-delay:.05s; }
.stats-in .stat.reveal:nth-child(2){ transition-delay:.15s; }
.stats-in .stat.reveal:nth-child(3){ transition-delay:.25s; }
.stats-in .stat.reveal:nth-child(4){ transition-delay:.35s; }

/* =========================  INTRO / INSTITUCIONAL  ========================= */
.intro{ background:var(--off); }
.intro-in{ display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:center; }
.intro-figure{ position:relative; }
.intro-figure img{ width:100%; height:100%; max-height:460px; object-fit:cover; border-radius:var(--r-lg); box-shadow:var(--sh-md); }
.intro-figure .quote-badge{ position:absolute; bottom:-1.5rem; left:-1.5rem; background:var(--navy); color:#fff; border-radius:var(--r); padding:1.2rem 1.4rem; max-width:260px; box-shadow:var(--sh-lg); }
.intro-figure .quote-badge .icon{ color:var(--gold); width:1.5rem; height:1.5rem; margin-bottom:.4rem; }
.intro-figure .quote-badge p{ font-size:.86rem; color:rgba(255,255,255,.85); line-height:1.5; }
.intro p+p{ margin-top:1rem; }
.intro .sec-sub strong{ color:var(--navy); }
.intro-actions{ margin-top:2rem; display:flex; gap:1rem; flex-wrap:wrap; }

/* =========================  BENTO — POR QUE INVESTIR  ========================= */
.bento{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:3.2rem; }
.b-card{ background:var(--off); border:1px solid var(--border); border-radius:var(--r-lg); padding:2rem; transition:var(--t); position:relative; overflow:hidden; }
.b-card::before{ content:""; position:absolute; top:0; left:0; width:100%; height:3px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.b-card:hover{ border-color:var(--blue); box-shadow:var(--sh-md); transform:translateY(-4px); }
.b-card:hover::before{ transform:scaleX(1); }
.b-ico{ width:54px; height:54px; border-radius:15px; background:var(--blue-soft); color:var(--navy); display:flex; align-items:center; justify-content:center; margin-bottom:1.25rem; transition:var(--t); }
.b-card:hover .b-ico{ background:var(--navy); color:var(--gold); }
.b-ico .icon{ width:1.5rem; height:1.5rem; }
.b-card h3{ font-size:1.12rem; color:var(--navy); margin-bottom:.55rem; }
.b-card p{ font-size:.92rem; color:var(--gray); line-height:1.65; }
.b-card.wide{ grid-column:span 2; background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%); border-color:var(--navy); color:#fff; display:flex; flex-direction:column; justify-content:center; }
.b-card.wide h3{ color:#fff; font-size:1.4rem; }
.b-card.wide p{ color:rgba(255,255,255,.78); font-size:1rem; }
.b-card.wide .b-ico{ background:rgba(224,177,60,.16); color:var(--gold); }
.b-card.wide:hover .b-ico{ background:var(--gold); color:var(--navy); }

/* =========================  SERVICES (home + overview)  ========================= */
.svcs{ background:linear-gradient(155deg,#0d2547 0%,#15356b 55%,#102c56 100%); }
.svcs .sec-title{ color:#fff; }
.svcs .sec-sub{ color:rgba(255,255,255,.66); }
.svcs-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:3.2rem; }
.svc-card{ background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.11); border-radius:var(--r-lg); padding:2rem; transition:var(--t); display:flex; flex-direction:column; }
.svc-card:hover{ background:rgba(255,255,255,.08); border-color:rgba(224,177,60,.5); transform:translateY(-5px); }
.svc-ico{ width:56px; height:56px; border-radius:15px; background:rgba(224,177,60,.13); color:var(--gold); display:flex; align-items:center; justify-content:center; margin-bottom:1.2rem; transition:var(--t); }
.svc-card:hover .svc-ico{ background:var(--gold); color:var(--navy-deep); }
.svc-ico .icon{ width:1.55rem; height:1.55rem; }
.svc-tag{ font-family:'Lexend',sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-bottom:.45rem; }
.svc-card h3{ font-size:1.18rem; color:#fff; margin-bottom:.55rem; }
.svc-card p{ font-size:.9rem; color:rgba(255,255,255,.62); line-height:1.6; flex:1; }
.svc-link{ display:inline-flex; align-items:center; gap:.4rem; font-family:'Lexend',sans-serif; font-size:.84rem; font-weight:600; color:var(--gold); margin-top:1.3rem; transition:var(--t); }
.svc-link .icon{ width:1rem; height:1rem; }
.svc-card:hover .svc-link{ gap:.7rem; }
.svc-card.feature{ background:rgba(224,177,60,.07); border-color:rgba(224,177,60,.32); }
.svc-card.feature .svc-tag{ display:inline-flex; align-items:center; gap:.35rem; }
.svc-feature-badge{ background:var(--gold); color:var(--navy-deep); font-size:.6rem; padding:.12rem .45rem; border-radius:5px; }

/* overview (servicos page) light variant */
.svcs-light{ background:var(--bg); }
.svcs-light .sec-title{ color:var(--navy); }
.ov-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem; margin-top:3rem; }
.ov-card{ border:1px solid var(--border); border-radius:var(--r-lg); padding:2.1rem; transition:var(--t); display:flex; gap:1.3rem; background:#fff; }
.ov-card:hover{ border-color:var(--navy); box-shadow:var(--sh-md); transform:translateY(-3px); }
.ov-card.feature{ border-color:var(--gold); background:linear-gradient(180deg,#fffdf6,#fff); }
.ov-ico{ width:54px; height:54px; flex-shrink:0; border-radius:14px; background:var(--navy); color:var(--gold); display:flex; align-items:center; justify-content:center; }
.ov-ico .icon{ width:1.5rem; height:1.5rem; }
.ov-tag{ font-family:'Lexend',sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:.3rem; display:inline-flex; gap:.4rem; align-items:center; }
.ov-card h3{ font-size:1.18rem; color:var(--navy); margin-bottom:.5rem; }
.ov-card p{ font-size:.92rem; color:var(--gray); line-height:1.6; margin-bottom:1rem; }
.ov-link{ display:inline-flex; align-items:center; gap:.4rem; font-family:'Lexend',sans-serif; font-size:.84rem; font-weight:600; color:var(--navy); border:1.6px solid var(--navy); padding:.5rem 1.05rem; border-radius:9px; transition:var(--t); }
.ov-link .icon{ width:1rem; height:1rem; }
.ov-link:hover{ background:var(--navy); color:#fff; }

/* =========================  DIFERENCIAIS  ========================= */
.diff-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.3rem; margin-top:3.2rem; }
.diff-card{ text-align:left; padding:1.9rem; border-radius:var(--r-lg); background:var(--off); border:1px solid var(--border); transition:var(--t); }
.diff-card:hover{ background:#fff; border-color:var(--gold); box-shadow:var(--sh-sm); transform:translateY(-3px); }
.diff-ico{ width:48px; height:48px; border-radius:13px; background:var(--navy); color:var(--gold); display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem; }
.diff-ico .icon{ width:1.4rem; height:1.4rem; }
.diff-card h3{ font-size:1.05rem; color:var(--navy); margin-bottom:.45rem; }
.diff-card p{ font-size:.88rem; color:var(--gray); line-height:1.6; }

/* =========================  PROCESS TIMELINE  ========================= */
.process{ background:var(--off); }
.timeline{ display:grid; grid-template-columns:repeat(5,1fr); gap:1.2rem; margin-top:3.4rem; position:relative; }
.timeline::before{ content:""; position:absolute; top:34px; left:8%; right:8%; height:2px; background:linear-gradient(90deg,var(--gold),var(--blue)); opacity:.4; }
.step{ position:relative; text-align:center; }
.step-num{ width:68px; height:68px; margin:0 auto 1.2rem; border-radius:50%; background:#fff; border:2px solid var(--border); display:flex; align-items:center; justify-content:center; font-family:'Lexend',sans-serif; font-size:1.4rem; font-weight:700; color:var(--navy); box-shadow:var(--sh-sm); position:relative; z-index:1; transition:var(--t); }
.step:hover .step-num{ background:var(--navy); color:var(--gold); border-color:var(--navy); transform:translateY(-4px); }
.step h3{ font-size:1rem; color:var(--navy); margin-bottom:.4rem; }
.step p{ font-size:.85rem; color:var(--gray); line-height:1.55; }

/* =========================  REGIONAL  ========================= */
.regional-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1.1rem; margin-top:3rem; }
.reg-card{ border:1px solid var(--border); border-radius:var(--r-lg); padding:1.8rem 1.3rem; text-align:center; transition:var(--t); background:#fff; }
.reg-card:hover{ border-color:var(--navy); box-shadow:var(--sh-md); transform:translateY(-3px); }
.reg-card.featured{ background:var(--navy); border-color:var(--navy); position:relative; }
.reg-ico{ color:var(--gold); margin:0 auto .8rem; }
.reg-ico .icon{ width:1.7rem; height:1.7rem; }
.reg-card h3{ font-size:1.05rem; color:var(--navy); margin-bottom:.25rem; }
.reg-card.featured h3{ color:#fff; }
.reg-card p{ font-size:.78rem; color:var(--gray-light); }
.reg-card.featured p{ color:rgba(255,255,255,.6); }
.reg-badge{ position:absolute; top:.8rem; right:.8rem; background:var(--gold); color:var(--navy-deep); font-family:'Lexend',sans-serif; font-size:.58rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; padding:.18rem .5rem; border-radius:var(--r-pill); }

/* =========================  QUOTE  ========================= */
.quote{ background:linear-gradient(135deg,#0d2547 0%,#1d4a92 100%); position:relative; overflow:hidden; }
.quote::before{ content:"“"; position:absolute; top:-3rem; left:2rem; font-family:'Lexend',sans-serif; font-size:18rem; color:rgba(224,177,60,.1); line-height:1; }
.quote-in{ max-width:820px; margin:0 auto; text-align:center; position:relative; z-index:1; }
.quote blockquote{ font-family:'Lexend',sans-serif; font-size:clamp(1.4rem,3vw,2rem); font-weight:300; font-style:italic; color:#fff; line-height:1.5; margin-bottom:1.8rem; }
.quote cite{ font-style:normal; color:var(--gold); font-size:.95rem; font-weight:600; }
.quote cite span{ display:block; color:rgba(255,255,255,.55); font-weight:400; font-size:.85rem; margin-top:.2rem; }

/* =========================  FAQ  ========================= */
.faq{ background:var(--off); }
.faq-list{ max-width:820px; margin:3.2rem auto 0; }
.faq-item{ background:#fff; border:1px solid var(--border); border-radius:var(--r); margin-bottom:.8rem; overflow:hidden; transition:var(--t); }
.faq-item.open{ border-color:var(--navy); box-shadow:var(--sh-sm); }
.faq-q{ width:100%; text-align:left; background:none; border:none; padding:1.25rem 1.5rem; font-family:'Lexend',sans-serif; font-size:1rem; font-weight:500; color:var(--navy); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq-q .icon{ color:var(--gold-deep); flex-shrink:0; transition:var(--t); }
.faq-item.open .faq-q .icon{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.faq-item.open .faq-a{ max-height:420px; }
.faq-a p{ padding:0 1.5rem 1.4rem; font-size:.95rem; color:var(--gray); line-height:1.75; }

/* =========================  CTA FINAL  ========================= */
.cta{ background:linear-gradient(135deg,var(--gold) 0%,#ecc463 100%); }
.cta-in{ text-align:center; max-width:720px; margin:0 auto; }
.cta h2{ font-size:clamp(1.9rem,4vw,2.8rem); color:var(--navy-deep); margin-bottom:1rem; }
.cta p{ font-size:1.08rem; color:rgba(13,37,71,.78); margin-bottom:2.3rem; }
.cta-actions{ display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }

/* =========================  FOOTER  ========================= */
footer{ background:linear-gradient(155deg,#0d2547 0%,#15356b 100%); color:rgba(255,255,255,.62); padding:4.2rem 0 2rem; }
.footer-grid{ display:grid; grid-template-columns:2.2fr 1fr 1.2fr 1.5fr; gap:3rem; margin-bottom:3rem; }
.footer-brand{ display:flex; align-items:center; gap:.7rem; margin-bottom:1.2rem; }
.footer-brand .brand-name{ color:#fff; }
.footer-brand .brand-tag{ color:rgba(255,255,255,.5); }
.footer-logo{ display:inline-block; background:#fff; border-radius:16px; padding:1rem 1.3rem; margin-bottom:1.3rem; box-shadow:var(--sh-md); }
.footer-logo img{ width:158px; height:auto; display:block; }
.footer-col h4{ font-family:'Lexend',sans-serif; font-size:.8rem; font-weight:600; color:#fff; margin-bottom:1.2rem; text-transform:uppercase; letter-spacing:.1em; }
.footer-col p{ font-size:.88rem; line-height:1.75; }
.footer-col li{ margin-bottom:.6rem; }
.footer-col li a{ font-size:.88rem; color:rgba(255,255,255,.62); transition:var(--t); }
.footer-col li a:hover{ color:var(--gold); padding-left:.25rem; }
.foot-info{ display:flex; align-items:flex-start; gap:.65rem; margin-bottom:.8rem; font-size:.88rem; }
.foot-info .icon{ color:var(--gold); margin-top:.15rem; flex-shrink:0; width:1.05rem; height:1.05rem; }
.foot-info a,.foot-info span{ color:rgba(255,255,255,.62); word-break:break-word; overflow-wrap:anywhere; transition:var(--t); }
.foot-info a:hover{ color:var(--gold); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.09); padding-top:2rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; font-size:.8rem; }

/* =========================  FLOATING WHATSAPP  ========================= */
.float-wa{ position:fixed; bottom:1.6rem; right:1.6rem; z-index:9999; }
.float-wa a{ width:56px; height:56px; background:var(--wa); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 20px rgba(37,211,102,.4); transition:var(--t); }
.float-wa a:hover{ transform:scale(1.07); background:var(--wa-dark); box-shadow:0 8px 26px rgba(37,211,102,.5); }
.float-wa .icon{ width:1.7rem; height:1.7rem; stroke-width:0; fill:currentColor; }

/* =========================  PAGE HERO (inner)  ========================= */
.page-hero{ background:linear-gradient(155deg,#0d2547 0%,#15356b 55%,#102c56 100%); position:relative; overflow:hidden; padding:4.5rem 0 4rem; }
.page-hero::after{ content:""; position:absolute; top:-120px; right:-120px; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle,rgba(47,108,176,.25),transparent 70%); }
.page-hero-in{ position:relative; z-index:1; max-width:var(--maxw); margin:0 auto; padding:0 2rem; }
.crumb{ display:flex; align-items:center; gap:.5rem; font-size:.82rem; color:rgba(255,255,255,.5); margin-bottom:1.3rem; }
.crumb a{ transition:var(--t); }
.crumb a:hover{ color:var(--gold); }
.crumb .icon{ width:.8rem; height:.8rem; }
.page-hero h1{ font-size:clamp(2rem,4.6vw,3.3rem); color:#fff; margin-bottom:1rem; max-width:780px; }
.page-hero p{ font-size:1.08rem; color:rgba(255,255,255,.7); max-width:640px; line-height:1.7; }

/* =========================  SERVICE SUBPAGE  ========================= */
.svc-hero{ background:linear-gradient(155deg,#0d2547 0%,#15356b 55%,#102c56 100%); position:relative; overflow:hidden; padding:4rem 0; }
.svc-hero-in{ position:relative; z-index:1; max-width:var(--maxw); margin:0 auto; padding:0 2rem; display:grid; grid-template-columns:1.1fr .9fr; gap:3.5rem; align-items:center; }
.svc-hero-badge{ display:inline-flex; align-items:center; gap:.5rem; background:rgba(224,177,60,.13); border:1px solid rgba(224,177,60,.34); color:var(--gold); font-family:'Lexend',sans-serif; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:.4rem .9rem; border-radius:var(--r-pill); margin-bottom:1.2rem; }
.svc-hero h1{ font-size:clamp(1.9rem,4.2vw,3rem); color:#fff; margin-bottom:1rem; }
.svc-hero .lead{ font-size:1.08rem; color:rgba(255,255,255,.72); line-height:1.7; margin-bottom:1.5rem; max-width:520px; }
.svc-hero-img img{ width:100%; height:340px; object-fit:cover; border-radius:var(--r-lg); box-shadow:var(--sh-lg); border:1px solid rgba(255,255,255,.1); }

.svc-sec{ padding:4rem 0; }
.svc-sec:nth-of-type(even){ background:var(--off); }
.svc-in{ max-width:880px; margin:0 auto; padding:0 2rem; }
.svc-in h2{ font-size:clamp(1.55rem,3vw,2.1rem); color:var(--navy); margin-bottom:1.3rem; }
.svc-in p{ font-size:1.02rem; color:var(--gray); line-height:1.85; margin-bottom:1.1rem; }
.svc-list{ margin-top:1rem; }
.svc-list li{ display:flex; align-items:flex-start; gap:.85rem; padding:.8rem 0; border-bottom:1px solid var(--border); font-size:.97rem; color:var(--gray); line-height:1.6; }
.svc-list li:last-child{ border-bottom:none; }
.svc-list li .icon{ color:var(--gold-deep); margin-top:.2rem; flex-shrink:0; width:1.15rem; height:1.15rem; }
.svc-deliver{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin-top:1.2rem; }
.del{ background:#fff; border:1px solid var(--border); border-left:4px solid var(--gold); border-radius:0 var(--r) var(--r) 0; padding:1.1rem 1.25rem; transition:var(--t); }
.svc-sec:nth-of-type(even) .del{ background:#fff; }
.del:hover{ box-shadow:var(--sh-sm); transform:translateX(3px); }
.del strong{ display:block; font-family:'Lexend',sans-serif; font-size:.95rem; color:var(--navy); margin-bottom:.2rem; }
.del span{ font-size:.86rem; color:var(--gray); }
.svc-tags{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.2rem; }
.svc-pill{ display:inline-flex; align-items:center; gap:.4rem; background:var(--blue-soft); color:var(--navy); border:1px solid var(--border); font-size:.86rem; font-weight:500; padding:.45rem .95rem; border-radius:var(--r-pill); }
.svc-pill .icon{ width:1rem; height:1rem; color:var(--gold-deep); }
.svc-cta{ background:var(--navy); }
.svc-cta-in{ text-align:center; max-width:680px; margin:0 auto; }
.svc-cta-in h2{ font-size:clamp(1.7rem,3vw,2.3rem); color:#fff; margin-bottom:.8rem; }
.svc-cta-in p{ color:rgba(255,255,255,.66); margin-bottom:2rem; font-size:1.02rem; }
.svc-cta-actions{ display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }
.svc-related{ display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; margin-top:1.4rem; }
.svc-related a{ font-size:.86rem; color:rgba(255,255,255,.8); border:1px solid rgba(255,255,255,.2); padding:.45rem 1rem; border-radius:var(--r-pill); transition:var(--t); }
.svc-related a:hover{ border-color:var(--gold); color:var(--gold); }

/* =========================  SOBRE  ========================= */
.sobre{ padding:5rem 0; }
.sobre-in{ display:grid; grid-template-columns:.85fr 1.15fr; gap:4rem; align-items:start; }
.sobre-profile{ position:sticky; top:100px; }
.sobre-photo{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:var(--r-lg); box-shadow:var(--sh-md); margin-bottom:1.4rem; }
.sobre-name-card{ background:var(--navy); border-radius:var(--r-lg); padding:1.8rem; color:#fff; text-align:center; margin-bottom:1.4rem; }
.sobre-name-card h3{ font-size:1.4rem; color:#fff; margin-bottom:.2rem; }
.sobre-name-card span{ font-size:.85rem; color:var(--gold); }
.cred{ background:var(--off); border:1px solid var(--border); border-radius:var(--r); padding:1.6rem; }
.cred h4{ font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gray-light); margin-bottom:1rem; }
.cred-item{ display:flex; gap:.75rem; padding:.65rem 0; border-bottom:1px solid var(--border); }
.cred-item:last-child{ border-bottom:none; }
.cred-item .icon{ color:var(--gold-deep); flex-shrink:0; margin-top:.15rem; width:1.1rem; height:1.1rem; }
.cred-item span{ font-size:.88rem; color:var(--gray); line-height:1.45; }
.cred-item span strong{ display:block; color:var(--navy); }
.sobre-body h2{ font-size:clamp(1.6rem,3vw,2.2rem); color:var(--navy); margin-bottom:1.2rem; }
.sobre-body h2:not(:first-child){ margin-top:2.5rem; }
.sobre-body p{ font-size:1.02rem; color:var(--gray); line-height:1.85; margin-bottom:1.1rem; }
.values{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:2rem 0; }
.val{ background:var(--off); border:1px solid var(--border); border-radius:var(--r); padding:1.3rem; transition:var(--t); }
.val:hover{ border-color:var(--gold); box-shadow:var(--sh-sm); }
.val .icon{ color:var(--gold-deep); width:1.35rem; height:1.35rem; margin-bottom:.5rem; }
.val strong{ display:block; font-family:'Lexend',sans-serif; font-size:.95rem; color:var(--navy); margin-bottom:.2rem; }
.val span{ font-size:.85rem; color:var(--gray); }
.mission{ background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%); border-radius:var(--r-lg); padding:2.4rem; margin:2.5rem 0; }
.mission h3{ font-size:1.4rem; color:var(--gold); margin-bottom:.9rem; }
.mission p{ font-size:1.02rem; color:rgba(255,255,255,.82); line-height:1.8; margin:0; }

/* =========================  CONTATO  ========================= */
.contato{ padding:5rem 0; background:var(--bg); }
.contato-in{ display:grid; grid-template-columns:1.15fr 1fr; gap:4rem; align-items:start; }
.form-card{ background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); padding:2.4rem; box-shadow:var(--sh-sm); }
.form-card h3{ font-size:1.3rem; color:var(--navy); margin-bottom:1.5rem; }
.fgrid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field{ display:flex; flex-direction:column; gap:.35rem; margin-bottom:1rem; }
.field.full{ grid-column:1/-1; }
.field label{ font-family:'Lexend',sans-serif; font-size:.82rem; font-weight:500; color:var(--navy); }
.field label .req{ color:var(--danger); }
.field input,.field select,.field textarea{ font-family:'Source Sans 3',sans-serif; font-size:.95rem; color:var(--ink); background:var(--off); border:1.5px solid var(--border); border-radius:10px; padding:.78rem 1rem; outline:none; transition:var(--t); width:100%; box-sizing:border-box; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--navy); background:#fff; box-shadow:0 0 0 3px rgba(21,53,107,.08); }
.field textarea{ min-height:130px; }
.form-note{ font-size:.8rem; color:var(--gray-light); margin-top:.3rem; }
.form-note strong{ color:var(--navy); }
.form-actions{ display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin-top:.4rem; }
.form-btn{ width:100%; }
@media (max-width:480px){ .form-actions{ grid-template-columns:1fr; } }
.form-success{ display:none; background:#e8f8ee; border:1.5px solid #4caf82; border-radius:var(--r); padding:1.1rem 1.25rem; font-size:.92rem; color:var(--ok); margin-top:1rem; align-items:center; gap:.7rem; }
.form-success.show{ display:flex; }
.form-success .icon{ flex-shrink:0; }

.ci-box{ background:var(--navy); border-radius:var(--r-lg); padding:2.2rem; color:#fff; margin-bottom:1.4rem; }
.ci-box h3{ font-size:1.25rem; color:#fff; margin-bottom:1.4rem; }
.ci-item{ display:flex; align-items:flex-start; gap:1rem; padding:.95rem 0; border-bottom:1px solid rgba(255,255,255,.09); }
.ci-item:last-child{ border-bottom:none; padding-bottom:0; }
.ci-ico{ width:42px; height:42px; flex-shrink:0; background:rgba(224,177,60,.15); border-radius:11px; color:var(--gold); display:flex; align-items:center; justify-content:center; }
.ci-ico .icon{ width:1.25rem; height:1.25rem; }
.ci-item strong{ display:block; font-size:.78rem; color:rgba(255,255,255,.5); font-weight:400; margin-bottom:.15rem; }
.ci-item a,.ci-item .v{ font-family:'Lexend',sans-serif; font-size:.96rem; color:#fff; font-weight:500; word-break:break-word; overflow-wrap:anywhere; }
.ci-item a:hover{ color:var(--gold); }
.ci-cities{ background:var(--off); border:1px solid var(--border); border-radius:var(--r-lg); padding:1.8rem; }
.ci-cities h4{ font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gray-light); margin-bottom:1rem; }
.ci-tags{ display:flex; flex-wrap:wrap; gap:.5rem; }
.ci-tag{ display:inline-flex; align-items:center; gap:.35rem; background:#fff; border:1px solid var(--border); color:var(--navy); font-size:.82rem; font-weight:500; padding:.4rem .85rem; border-radius:var(--r-pill); transition:var(--t); }
.ci-tag:hover{ background:var(--navy); color:#fff; border-color:var(--navy); }
.ci-tag .icon{ width:.85rem; height:.85rem; color:var(--gold-deep); }
.ci-tag:hover .icon{ color:var(--gold); }

/* =========================  SCROLL REVEAL  ========================= */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .6s var(--ease),transform .6s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }

@keyframes floatUp{ from{opacity:0;transform:translateY(28px);} to{opacity:1;transform:translateY(0);} }

/* =========================  RESPONSIVE  ========================= */
@media (max-width:1024px){
  .hero-in{ grid-template-columns:1fr; gap:2.8rem; }
  .hero-visual{ max-width:520px; }
  .hero-fcard.tl{ left:0; }
  .hero-fcard.br{ right:0; }
  .intro-in{ grid-template-columns:1fr; gap:3.5rem; }
  .intro-figure .quote-badge{ left:1rem; bottom:1rem; }
  .bento{ grid-template-columns:repeat(2,1fr); }
  .b-card.wide{ grid-column:span 2; }
  .svcs-grid{ grid-template-columns:repeat(2,1fr); }
  .ov-grid{ grid-template-columns:1fr; }
  .diff-grid{ grid-template-columns:repeat(2,1fr); }
  .timeline{ grid-template-columns:repeat(3,1fr); gap:2rem 1.2rem; }
  .timeline::before{ display:none; }
  .regional-grid{ grid-template-columns:repeat(3,1fr); }
  .stats-in{ grid-template-columns:repeat(2,1fr); gap:1.5rem 0; }
  .stat:nth-child(2){ border-right:none; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:2.2rem; }
  .svc-hero-in{ grid-template-columns:1fr; gap:2.5rem; }
  .svc-hero-img{ order:-1; }
  .sobre-in{ grid-template-columns:1fr; gap:2.5rem; }
  .sobre-profile{ position:static; max-width:420px; }
  .contato-in{ grid-template-columns:1fr; gap:2.5rem; }
}
@media (max-width:768px){
  section{ padding:3.6rem 0; }
  .container{ padding:0 1.3rem; }
  .topbar{ display:none; }
  nav.main{ display:none; }
  .burger{ display:flex; }
  .brand-logo{ height:38px; }
  .stats-in{ grid-template-columns:repeat(2,1fr); }
  /* mobile: full image with a slim translucent quote bar overlapping only the bottom */
  .intro-figure img{ height:auto; max-height:none; }
  .intro-figure .quote-badge{ position:absolute; left:.7rem; right:.7rem; bottom:.7rem; margin-top:0; max-width:none;
    padding:.8rem 1rem; background:rgba(13,37,71,.82); backdrop-filter:blur(6px); box-shadow:var(--sh-md); }
  .intro-figure .quote-badge .icon{ width:1.2rem; height:1.2rem; margin-bottom:.25rem; }
  .intro-figure .quote-badge p{ font-size:.8rem; line-height:1.4; }
  .hero-in{ padding:3.5rem 1.3rem; }
  .hero-visual{ display:none; }
  .bento{ grid-template-columns:1fr; }
  .b-card.wide{ grid-column:span 1; }
  .svcs-grid{ grid-template-columns:1fr; }
  .diff-grid{ grid-template-columns:1fr; }
  .timeline{ grid-template-columns:1fr; gap:1.5rem; }
  .step{ display:flex; align-items:flex-start; gap:1.1rem; text-align:left; }
  .step-num{ margin:0; width:54px; height:54px; font-size:1.15rem; flex-shrink:0; }
  .regional-grid{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr; gap:2rem; }
  .footer-bottom{ flex-direction:column; text-align:center; }
  .fgrid{ grid-template-columns:1fr; gap:0; }
  .values{ grid-template-columns:1fr; }
  .svc-deliver{ grid-template-columns:1fr; }
  .form-card,.ci-box,.ci-cities{ padding:1.5rem; }
  .page-hero{ padding:3rem 0 2.6rem; }
  .sec-title{ font-size:1.65rem; }
  .btn{ padding:.8rem 1.3rem; font-size:.9rem; }
}
@media (max-width:480px){
  .container,.page-hero-in,.svc-in,.svc-hero-in{ padding-left:1.2rem; padding-right:1.2rem; }
  .regional-grid{ grid-template-columns:1fr; }
  .hero-actions,.cta-actions,.svc-cta-actions{ flex-direction:column; }
  .hero-actions .btn,.cta-actions .btn,.svc-cta-actions .btn{ width:100%; }
  .hero-trust{ gap:.8rem 1.2rem; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}
