:root{
  --blue:#0D2D5A;
  --teal:#1E6D6F;
  --offwhite:#F2F4F7;
  --gray:#6B7280;
  --charcoal:#1F2937;
  --max:1180px;
}

*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scrollbar-width:thin;
  scrollbar-color:var(--teal) var(--blue);
}
body{
  margin:0;
  min-height:100vh;
  font-family:'Montserrat',Arial,sans-serif;
  color:var(--offwhite);
  background:var(--blue);
  overflow-x:hidden;
  letter-spacing:.0325611em;
}
body::-webkit-scrollbar{width:10px}
body::-webkit-scrollbar-track{background:var(--blue)}
body::-webkit-scrollbar-thumb{
  background:var(--teal);
  border-radius:999px;
  border:2px solid var(--blue);
}
body::-webkit-scrollbar-thumb:hover{background:var(--gray)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

.site-header{
  position:fixed;
  top:18px;
  left:50%;
  transform:translateX(-50%);
  width:min(1180px,calc(100% - 32px));
  height:76px;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:10px 14px;
  border:1px solid rgba(242,244,247,.22);
  border-radius:999px;
  background:var(--blue);
  box-shadow:
    14px 14px 28px rgba(31,41,55,.78),
    -10px -10px 26px rgba(242,244,247,.16),
    inset 3px 3px 8px rgba(242,244,247,.12),
    inset -5px -5px 12px rgba(31,41,55,.72);
}
.brand,.main-nav,.menu-toggle{position:relative;z-index:1}
.brand{display:flex;align-items:center;min-width:0}
.brand-shell{
  display:flex;
  align-items:center;
  justify-content:center;
  height:54px;
  width:235px;
  padding:7px 14px;
  border-radius:999px;
  background:var(--offwhite);
  border:1px solid rgba(107,114,128,.48);
  box-shadow:
    8px 8px 16px rgba(31,41,55,.72),
    -5px -5px 14px rgba(242,244,247,.22),
    inset 3px 3px 7px rgba(242,244,247,.96),
    inset -4px -4px 9px rgba(107,114,128,.24);
  overflow:hidden;
}
.brand img{
  width:198px;
  height:auto;
  max-height:46px;
  object-fit:contain;
}
.main-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
}
.main-nav a{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 17px;
  border-radius:999px;
  color:var(--offwhite);
  font-size:15.9885px;
  font-weight:700;
  letter-spacing:.0325611em;
  transition:
    color .34s cubic-bezier(.22,1,.36,1),
    background .34s cubic-bezier(.22,1,.36,1),
    box-shadow .34s cubic-bezier(.22,1,.36,1),
    transform .34s cubic-bezier(.22,1,.36,1);
}
.main-nav a:hover,.main-nav a:focus-visible{
  color:var(--offwhite);
  background:var(--blue);
  box-shadow:
    7px 7px 14px rgba(31,41,55,.82),
    -5px -5px 12px rgba(242,244,247,.18),
    inset 1px 1px 2px rgba(242,244,247,.12);
  transform:translateY(-2px);
  outline:none;
}
.menu-toggle{
  display:none;
  width:46px;
  height:46px;
  border:1px solid rgba(242,244,247,.20);
  border-radius:999px;
  background:var(--blue);
  cursor:pointer;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  box-shadow:
    7px 7px 14px rgba(31,41,55,.78),
    -5px -5px 12px rgba(242,244,247,.17),
    inset 2px 2px 5px rgba(242,244,247,.12),
    inset -3px -3px 7px rgba(31,41,55,.70);
}
.menu-toggle span{
  width:20px;
  height:2px;
  border-radius:999px;
  background:var(--offwhite);
  transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .24s cubic-bezier(.22,1,.36,1);
}
.menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.is-open span:nth-child(2){opacity:0}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:center;
  overflow:hidden;
  padding:128px 0 54px;
  isolation:isolate;
  background:var(--blue);
}
.hero::before{
  content:"";
  position:absolute;
  inset:-6px;
  z-index:0;
  pointer-events:none;
  background:url('../images/bg-hero-v03.webp') center center / cover no-repeat;
  opacity:.40;
  filter:blur(2.4px) saturate(.72) contrast(.94);
  transform:scale(1.015);
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(13,45,90,.68) 0%,rgba(13,45,90,.56) 50%,rgba(13,45,90,.64) 100%);
}
.hero-inner{
  position:relative;
  z-index:2;
  width:min(var(--max),calc(100% - 56px));
  min-height:calc(100svh - 182px);
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,.96fr) minmax(430px,1.04fr);
  align-items:center;
  gap:clamp(0px,1.2vw,18px);
}
.hero-copy{
  position:relative;
  z-index:5;
  width:min(100%,650px);
  margin-left:clamp(0px,1.2vw,20px);
  padding:clamp(34px,3.1vw,48px) clamp(28px,3.25vw,50px) clamp(20px,2.2vw,34px);
  border:1px solid rgba(242,244,247,.11);
  border-radius:clamp(30px,3vw,42px);
  background:var(--blue);
  box-shadow:
    24px 24px 48px rgba(4,20,44,.88),
    -13px -13px 30px rgba(73,118,170,.26),
    inset 5px 5px 12px rgba(105,148,197,.17),
    inset -10px -10px 22px rgba(4,19,42,.86),
    0 0 0 1px rgba(30,109,111,.08);
  transform:translateZ(0);
}
.hero-copy::before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:calc(clamp(30px,3vw,42px) - 10px);
  pointer-events:none;
  box-shadow:
    inset 1px 1px 0 rgba(242,244,247,.08),
    inset -1px -1px 0 rgba(4,19,42,.54);
}
h1{
  margin:0 0 22px;
  max-width:650px;
  font-size:clamp(29px,4.69vw,62px);
  line-height:1.01;
  letter-spacing:-.01696464em;
  font-weight:800;
  text-wrap:balance;
  color:var(--offwhite);
  text-shadow:
    3px 3px 0 rgba(31,41,55,.88),
    -1px -1px 0 rgba(242,244,247,.20),
    10px 12px 24px rgba(31,41,55,.68);
}
.hero-subtitle{
  max-width:600px;
  margin:0 0 31px;
  color:var(--offwhite);
  font-size:clamp(16.79px,1.38vw,19px);
  line-height:1.7;
  font-weight:500;
  letter-spacing:.0325611em;
  text-shadow:2px 3px 8px rgba(31,41,55,.70);
}
.hero-visual{
  position:relative;
  align-self:end;
  display:flex;
  justify-content:center;
  align-items:flex-end;
  min-height:min(770px,calc(100svh - 128px));
  margin-left:clamp(-96px,-5.2vw,-34px);
  margin-right:clamp(-58px,-3vw,-8px);
  transform:translateX(-1%);
}
.portrait-shadow{
  position:absolute;
  left:14%;
  right:3%;
  bottom:3%;
  height:23%;
  border-radius:50%;
  background:rgba(31,41,55,.56);
  filter:blur(24px);
  z-index:1;
}
.hero-visual::before{display:none}
.hero-visual::after{
  content:"";
  position:absolute;
  left:-2%;
  right:-3%;
  bottom:-4%;
  height:33%;
  z-index:4;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(13,45,90,0) 0%,rgba(13,45,90,.42) 45%,rgba(13,45,90,.92) 82%,var(--blue) 100%);
}
.hero-visual img{
  position:relative;
  z-index:3;
  width:min(58vw,810px);
  min-width:550px;
  max-height:min(88svh,830px);
  height:auto;
  max-width:none;
  object-fit:contain;
  object-position:center bottom;
  margin-bottom:-18px;
  transform:scale(1.05);
  transform-origin:center bottom;
  filter:
    drop-shadow(26px 28px 26px rgba(31,41,55,.72))
    drop-shadow(-11px -8px 18px rgba(242,244,247,.14))
    drop-shadow(-12px 0 14px rgba(30,109,111,.18))
    saturate(.96) contrast(1.04) brightness(.94);
}
.hero-bottom-fade{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  z-index:6;
  height:112px;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(13,45,90,0),var(--blue));
}

/* CTA original preservado: faixa de luz animada por requestAnimationFrame. */
.hero-btn-wrap{
  display:inline-block;
  margin:0 0 52px 0;
  -webkit-box-reflect:below 1px linear-gradient(transparent,rgba(31,41,55,.24));
}
.hero-btn{
  --btn-bgpos:0% 0%;
  position:relative;
  display:inline-block;
  width:300px;
  height:52px;
  line-height:50px;
  background:var(--blue);
  font-weight:700;
  font-size:16px;
  font-family:inherit;
  text-align:center;
  letter-spacing:.0325611em;
  text-decoration:none;
  border-radius:13px;
  box-shadow:
    12px 12px 20px rgba(31,41,55,.88),
    -9px -9px 18px rgba(242,244,247,.19),
    inset 3px 3px 7px rgba(242,244,247,.13),
    inset -5px -5px 10px rgba(31,41,55,.74);
  transition:transform .42s cubic-bezier(.22,1,.36,1),box-shadow .42s cubic-bezier(.22,1,.36,1);
}
.hero-btn span{
  position:absolute;
  display:block;
  top:3px;left:3px;right:3px;bottom:3px;
  text-align:center;
  white-space:nowrap;
  border-radius:10px;
  background:var(--blue);
  color:var(--offwhite);
  line-height:46px;
  text-shadow:2px 2px 4px rgba(31,41,55,.90),-1px -1px 2px rgba(242,244,247,.16);
  transition:color .34s cubic-bezier(.22,1,.36,1),transform .34s cubic-bezier(.22,1,.36,1);
  z-index:2;
}
.hero-btn:hover{
  transform:translateY(-3px);
  box-shadow:
    16px 16px 25px rgba(31,41,55,.90),
    -12px -12px 22px rgba(242,244,247,.22),
    inset 3px 3px 7px rgba(242,244,247,.14),
    inset -5px -5px 10px rgba(31,41,55,.76);
}
.hero-btn:hover span{color:var(--offwhite);transform:scale(.99)}
.hero-btn::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:13px;
  background:linear-gradient(45deg,var(--blue),var(--blue),var(--teal),var(--offwhite),var(--teal),var(--blue),var(--blue),var(--blue),var(--blue),var(--teal),var(--offwhite),var(--teal),var(--blue),var(--blue),var(--blue),var(--blue));
  background-size:200% 200%;
  background-position:var(--btn-bgpos);
  opacity:1;
}
.hero-btn::after{
  content:"";
  position:absolute;
  inset:-3px;
  border-radius:16px;
  background:linear-gradient(45deg,var(--blue),var(--blue),var(--teal),var(--offwhite),var(--teal),var(--blue),var(--blue),var(--blue),var(--blue),var(--teal),var(--offwhite),var(--teal),var(--blue),var(--blue),var(--blue),var(--blue));
  background-size:200% 200%;
  background-position:var(--btn-bgpos);
  opacity:.72;
  filter:blur(8px);
  z-index:-1;
}

.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .82s cubic-bezier(.16,1,.3,1),transform .82s cubic-bezier(.16,1,.3,1);
}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal-late{transition-delay:.12s}

@media (max-width:1080px){
  .hero-inner{grid-template-columns:1fr;gap:8px;text-align:center;min-height:auto;padding-top:22px}
  .hero-copy{margin-inline:auto;max-width:760px}
  .hero-visual{min-height:470px;margin:0;transform:none}
  .hero-visual img{width:min(540px,96vw);min-width:0;max-height:540px;margin-bottom:-8px}
  .hero-btn-wrap{display:block;text-align:center}
  .hero-btn{display:inline-block}
}

@media (max-width:760px){
  .contact-shell{grid-template-columns:1fr;grid-template-areas:"brand" "heading" "grid" "cta"}
  .site-header{
    top:12px;
    width:calc(100% - 24px);
    height:64px;
    padding:8px 9px 8px 10px;
    overflow:visible;
    box-shadow:
      9px 9px 18px rgba(31,41,55,.80),
      -6px -6px 15px rgba(242,244,247,.16),
      inset 2px 2px 6px rgba(242,244,247,.11),
      inset -4px -4px 9px rgba(31,41,55,.70);
  }
  .brand-shell{width:146px;height:50px;padding:6px 10px}
  .brand img{width:122px;max-height:40px}
  .menu-toggle{display:flex}
  .main-nav{
    position:absolute;
    top:76px;
    left:0;
    right:0;
    display:grid;
    justify-content:stretch;
    justify-items:center;
    align-content:start;
    gap:12px;
    padding:34px 18px 26px;
    border-radius:28px;
    background:var(--blue);
    border:1px solid rgba(242,244,247,.18);
    box-shadow:
      14px 14px 28px rgba(31,41,55,.88),
      -8px -8px 22px rgba(242,244,247,.16),
      inset 3px 3px 8px rgba(242,244,247,.10),
      inset -5px -5px 12px rgba(31,41,55,.72);
    opacity:0;
    pointer-events:none;
    transform:translateY(-10px);
    transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1);
  }
  .main-nav.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}
  .main-nav a{
    width:min(100%,320px);
    min-height:46px;
    justify-self:center;
    color:var(--offwhite);
    font-size:16.3438px;
    text-align:center;
    background:var(--blue);
    box-shadow:
      7px 7px 14px rgba(31,41,55,.78),
      -5px -5px 12px rgba(242,244,247,.15),
      inset 2px 2px 5px rgba(242,244,247,.08),
      inset -3px -3px 7px rgba(31,41,55,.62);
  }
  .hero{padding:104px 0 20px;align-items:flex-start;min-height:100svh}
  .hero::before{opacity:.30;filter:blur(2.8px) saturate(.68) contrast(.92)}
  .hero::after{background:rgba(13,45,90,.66)}
  .hero-inner{width:min(100% - 32px,var(--max));padding-top:16px;gap:12px;overflow:visible}
  .hero-copy{
    width:100%;
    max-width:100%;
    min-width:0;
    text-align:center;
    margin-inline:auto;
    padding:30px 22px 18px;
    border-radius:30px;
    box-shadow:
      16px 16px 30px rgba(4,20,44,.88),
      -9px -9px 22px rgba(73,118,170,.25),
      inset 4px 4px 10px rgba(105,148,197,.16),
      inset -8px -8px 18px rgba(4,19,42,.84),
      0 0 0 1px rgba(30,109,111,.08);
  }
  h1{
    max-width:100%;
    font-size:clamp(27px,8.4vw,41px);
    line-height:1.05;
    margin:12px 0 16px;
    letter-spacing:-.01465128em;
    text-shadow:2px 2px 0 rgba(31,41,55,.86),-1px -1px 0 rgba(242,244,247,.18),7px 9px 18px rgba(31,41,55,.62);
  }
  .hero-subtitle{max-width:100%;font-size:16.79px;line-height:1.62;margin-bottom:0}
  .hero .hero-btn-wrap{
    margin-top:28px;
    margin-bottom:72px;
    -webkit-box-reflect:below 1px linear-gradient(transparent,rgba(31,41,55,.24));
  }
  .hero-btn{width:min(300px,100%);height:52px}
  .hero-visual{width:100%;min-width:0;min-height:clamp(356px,57svh,510px);margin-top:18px;padding-top:10px;align-items:flex-end;justify-content:center}
  .hero-visual img{width:min(500px,96vw);max-width:100%;min-width:0;max-height:clamp(380px,62svh,520px);margin-bottom:-10px}
  .hero-visual::after{height:34%;bottom:-4%}
  .hero-bottom-fade{height:104px}
}

@media (max-width:420px){
  .hero{padding-top:94px}
  .hero-inner{width:min(100% - 28px,var(--max))}
  .hero-visual{min-height:338px;margin-top:22px;padding-top:8px}
  .hero-visual img{width:min(420px,94vw);max-width:100%;max-height:430px}
}

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

/* =========================================================
   NOVAS SEÇÕES V07 — S02 SERVIÇOS, S03 SOBRE, S04 CONTATO
   Estrutura baseada na referência NTW; acabamento Neomorphism.
   A HERO acima permanece integralmente preservada.
   ========================================================= */

.section-container{
  width:min(var(--max),calc(100% - 56px));
  margin-inline:auto;
}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
#home,#servicos,#sobre,#contato{scroll-margin-top:116px}

/* ─── S02 | Serviços ─── */
.services-section{
  position:relative;
  padding:clamp(52px,6vw,84px) 0 clamp(68px,7vw,104px);
  overflow:visible;
  isolation:isolate;
  background:
    radial-gradient(circle at 14% 8%,rgba(30,109,111,.22),transparent 29rem),
    radial-gradient(circle at 88% 24%,rgba(13,45,90,.62),transparent 36rem),
    linear-gradient(180deg,#0D2D5A 0%,#102F58 45%,#0D2D5A 100%);
}
.services-bg{
  position:absolute;
  inset:-72px 0 0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(13,45,90,0) 0%,rgba(13,45,90,.92) 11%,rgba(18,53,92,.88) 52%,rgba(13,45,90,.98) 100%);
  mask-image:linear-gradient(180deg,transparent 0%,#000 8%,#000 95%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 8%,#000 95%,transparent 100%);
}
.services-bg::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.12;
  background-image:
    linear-gradient(rgba(242,244,247,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,109,111,.12) 1px,transparent 1px);
  background-size:76px 76px;
  mask-image:radial-gradient(circle at 54% 35%,#000 0%,transparent 70%);
  -webkit-mask-image:radial-gradient(circle at 54% 35%,#000 0%,transparent 70%);
}
.services-section::before{
  content:"";
  position:absolute;
  left:50%;
  top:-82px;
  z-index:0;
  width:min(1120px,90vw);
  height:250px;
  transform:translateX(-50%);
  background:radial-gradient(ellipse at center,rgba(30,109,111,.23),rgba(73,118,170,.11) 38%,transparent 72%);
  filter:blur(14px);
  pointer-events:none;
}
.services-layout{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(360px,.43fr) minmax(0,1fr);
  gap:clamp(30px,4vw,58px);
  align-items:start;
}
.services-side{
  position:sticky;
  top:118px;
  align-self:start;
}
.services-sticky{
  position:relative;
  padding:clamp(30px,3.4vw,42px);
  border-radius:36px;
  background:linear-gradient(145deg,#113665,#0B274F);
  border:1px solid rgba(242,244,247,.10);
  box-shadow:
    20px 20px 42px rgba(4,20,44,.76),
    -12px -12px 30px rgba(73,118,170,.24),
    inset 4px 4px 10px rgba(105,148,197,.13),
    inset -8px -8px 18px rgba(4,19,42,.66);
  overflow:hidden;
}
.services-sticky::before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:27px;
  pointer-events:none;
  box-shadow:
    inset 1px 1px 0 rgba(242,244,247,.07),
    inset -1px -1px 0 rgba(4,19,42,.52);
}
.services-eyebrow,
.about-eyebrow,
.contact-eyebrow{
  position:relative;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:13px;
  color:#7EC4C5;
  text-transform:uppercase;
  letter-spacing:.0325611em;
  font-size:18.6px;
  font-weight:800;
  line-height:1.2;
  text-shadow:0 0 20px rgba(30,109,111,.25);
}
.services-eyebrow::after,
.about-eyebrow::after,
.contact-eyebrow::after{
  content:"";
  width:76px;
  height:1px;
  background:linear-gradient(90deg,#7EC4C5,rgba(126,196,197,0));
}
.services-sticky h2{
  position:relative;
  z-index:2;
  font-size:clamp(31px,3.35vw,48px);
  line-height:1.08;
  letter-spacing:-.01696464em;
  margin:18px 0 0;
  color:var(--offwhite);
  text-wrap:balance;
  text-shadow:2px 3px 8px rgba(31,41,55,.70);
}
.services-cta-out{
  display:block;
  margin:34px 0 44px;
  text-align:center;
}
.services-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(280px,1fr));
  gap:24px;
  min-width:0;
}
.service-card{
  position:relative;
  border-radius:32px;
  background:linear-gradient(145deg,#113766,#0F325F);
  border:1px solid rgba(255,255,255,.04);
  box-shadow:
    -14px -14px 26px rgba(212,229,255,.14),
    -4px -4px 10px rgba(255,255,255,.05),
    18px 18px 34px rgba(4,18,42,.56),
    8px 8px 16px rgba(4,18,42,.38),
    inset 1px 1px 0 rgba(255,255,255,.04),
    inset -1px -1px 0 rgba(5,18,41,.20);
  overflow:hidden;
  transition:
    transform .42s cubic-bezier(.16,1,.3,1),
    box-shadow .42s cubic-bezier(.16,1,.3,1),
    border-color .42s cubic-bezier(.16,1,.3,1),
    filter .42s cubic-bezier(.16,1,.3,1);
  display:flex;
  flex-direction:column;
  min-width:0;
  isolation:isolate;
}
.service-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(135deg, rgba(255,255,255,.07), rgba(255,255,255,0) 34%, rgba(0,0,0,.08) 100%);
  opacity:.92;
}
.service-card::after{
  content:"";
  position:absolute;
  inset:10px;
  z-index:1;
  border-radius:24px;
  pointer-events:none;
  box-shadow:
    inset 1px 1px 0 rgba(255,255,255,.06),
    inset -1px -1px 0 rgba(5,18,41,.28);
}
.service-card:hover,
.service-card:focus-within{
  transform:translateY(-8px);
  border-color:rgba(178,223,232,.24);
  box-shadow:
    -16px -16px 30px rgba(220,234,255,.17),
    -5px -5px 12px rgba(255,255,255,.06),
    20px 20px 40px rgba(4,18,42,.62),
    10px 10px 18px rgba(4,18,42,.42),
    inset 1px 1px 0 rgba(255,255,255,.05),
    inset -1px -1px 0 rgba(5,18,41,.22);
  filter:saturate(1.03);
}
.service-card img{
  position:relative;
  z-index:2;
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1/1;
  object-fit:contain;
  background:linear-gradient(145deg,#103461,#0D2D5A);
  border-bottom:1px solid rgba(255,255,255,.04);
}
.service-copy{
  position:relative;
  z-index:2;
  padding:23px 24px 26px;
  background:linear-gradient(180deg,#103461,#0F315D);
}
.service-copy p{
  margin:0;
  color:rgba(242,244,247,.88);
  font-size:15.8px;
  line-height:1.7;
  font-weight:500;
  letter-spacing:.0325611em;
}
.reveal-in,
.about-reveal,
.contact-reveal{
  opacity:0;
  transform:translateY(34px);
  transition:
    opacity .82s cubic-bezier(.16,1,.3,1),
    transform .82s cubic-bezier(.16,1,.3,1);
}
.reveal-in.is-visible,
.about-reveal.is-visible,
.contact-reveal.is-visible{opacity:1;transform:translateY(0)}

/* ─── S03 | Sobre ─── */
.about-section{
  position:relative;
  padding:clamp(64px,7vw,102px) 0 clamp(68px,7vw,104px);
  isolation:isolate;
  overflow:hidden;
  background:#0D2D5A;
}
.about-bg{
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:
    radial-gradient(circle at 12% 14%,rgba(30,109,111,.22),transparent 28rem),
    radial-gradient(circle at 88% 18%,rgba(73,118,170,.28),transparent 34rem),
    radial-gradient(circle at 48% 96%,rgba(30,109,111,.12),transparent 30rem),
    linear-gradient(180deg,#0D2D5A 0%,#102F58 52%,#0D2D5A 100%);
}
.about-bg::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.10;
  background-image:
    linear-gradient(rgba(242,244,247,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,109,111,.10) 1px,transparent 1px);
  background-size:76px 76px;
  mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 88%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 88%,transparent 100%);
}
.about-bg::after{
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(13,45,90,.96),rgba(13,45,90,0) 16%,rgba(13,45,90,0) 84%,rgba(13,45,90,.96)),
    radial-gradient(ellipse at 50% 0%,rgba(30,109,111,.16),transparent 62%);
}
.about-inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(330px,.95fr) minmax(360px,1.05fr);
  gap:clamp(34px,5vw,66px);
  align-items:center;
}
.about-portrait{
  --btn-bgpos:0% 50%;
  position:relative;
  border-radius:38px;
  padding:12px;
  overflow:hidden;
  isolation:isolate;
  background:linear-gradient(145deg,#113665,#0B274F);
  border:1px solid rgba(126,196,197,.30);
  box-shadow:
    22px 22px 46px rgba(4,20,44,.76),
    -12px -12px 30px rgba(73,118,170,.23),
    inset 4px 4px 10px rgba(105,148,197,.13),
    inset -8px -8px 18px rgba(4,19,42,.66);
  transition:transform .48s cubic-bezier(.16,1,.3,1);
}
.about-portrait::before,
.about-portrait::after{
  content:"";
  position:absolute;
  pointer-events:none;
  background-image:linear-gradient(90deg,transparent 0%,#0D2D5A 16%,#1E6D6F 32%,#7EC4C5 50%,#1E6D6F 68%,#0D2D5A 84%,transparent 100%);
  background-size:260% 100%;
  background-position:var(--btn-bgpos);
}
.about-portrait::before{
  inset:0;
  z-index:0;
  border-radius:inherit;
  filter:blur(14px);
  opacity:.78;
}
.about-portrait::after{
  inset:0;
  z-index:4;
  border-radius:inherit;
  padding:2px;
  opacity:.95;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
}
.about-portrait-fade{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  height:18%;
  z-index:3;
  pointer-events:none;
  border-radius:0 0 27px 27px;
  background:linear-gradient(180deg,rgba(13,45,90,0),rgba(13,45,90,.20) 45%,rgba(13,45,90,.70) 100%);
}
.about-portrait img{
  position:relative;
  z-index:2;
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:527/497;
  object-fit:cover;
  object-position:center center;
  border-radius:28px;
  filter:saturate(.98) contrast(1.02) brightness(.96);
  box-shadow:0 20px 46px rgba(4,20,44,.44);
}
.about-copy{
  position:relative;
  padding:clamp(30px,4.2vw,48px);
  border-radius:38px;
  background:linear-gradient(145deg,#113665,#0B274F);
  border:1px solid rgba(242,244,247,.10);
  box-shadow:
    22px 22px 46px rgba(4,20,44,.76),
    -12px -12px 30px rgba(73,118,170,.23),
    inset 4px 4px 10px rgba(105,148,197,.13),
    inset -8px -8px 18px rgba(4,19,42,.66);
  overflow:hidden;
}
.about-copy::before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:28px;
  pointer-events:none;
  box-shadow:
    inset 1px 1px 0 rgba(242,244,247,.08),
    inset -1px -1px 0 rgba(4,19,42,.52);
}
.about-copy h2{
  position:relative;
  z-index:2;
  font-size:clamp(34px,4.1vw,56px);
  line-height:1.04;
  margin:18px 0 22px;
  letter-spacing:-.01696464em;
  color:var(--offwhite);
  text-wrap:balance;
  text-shadow:2px 3px 8px rgba(31,41,55,.70);
}
.about-copy p{
  position:relative;
  z-index:2;
  font-size:16.5px;
  line-height:1.72;
  color:rgba(242,244,247,.84);
  margin:0 0 15px;
  font-weight:500;
  letter-spacing:.0325611em;
}
.about-copy .about-lead{
  font-size:18px;
  color:rgba(242,244,247,.96);
  font-weight:700;
}
.about-cta-wrap{
  position:relative;
  z-index:2;
  display:block;
  margin:28px 0 40px;
}
.about-reveal-delay{transition-delay:.12s}

/* ─── S04 | Contato ─── */
.contact-section{
  position:relative;
  padding:clamp(64px,7vw,102px) 0 clamp(82px,8vw,122px);
  isolation:isolate;
  overflow:hidden;
  background:#0D2D5A;
}
.contact-bg{
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 10%,rgba(30,109,111,.22),transparent 30rem),
    radial-gradient(circle at 86% 20%,rgba(73,118,170,.30),transparent 35rem),
    radial-gradient(circle at 52% 102%,rgba(30,109,111,.13),transparent 30rem),
    linear-gradient(180deg,#0D2D5A 0%,#102F58 50%,#0D2D5A 100%);
}
.contact-bg::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.10;
  background-image:
    linear-gradient(rgba(242,244,247,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,109,111,.10) 1px,transparent 1px);
  background-size:76px 76px;
  mask-image:linear-gradient(180deg,transparent 0%,#000 10%,#000 90%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 10%,#000 90%,transparent 100%);
}
.contact-bg::after{
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(13,45,90,.96),rgba(13,45,90,0) 18%,rgba(13,45,90,0) 80%,rgba(13,45,90,.96)),
    radial-gradient(ellipse at 50% 0%,rgba(30,109,111,.16),transparent 62%);
}
.contact-shell{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-areas:
    "heading heading brand"
    "grid grid grid"
    "cta cta cta";
  align-items:start;
  column-gap:20px;
  row-gap:0;
  border:1px solid rgba(242,244,247,.10);
  border-radius:40px;
  padding:clamp(30px,5vw,52px);
  background:linear-gradient(145deg,#113665,#0B274F);
  box-shadow:
    24px 24px 50px rgba(4,20,44,.78),
    -14px -14px 34px rgba(73,118,170,.25),
    inset 4px 4px 10px rgba(105,148,197,.13),
    inset -8px -8px 18px rgba(4,19,42,.68);
  overflow:hidden;
}
.contact-shell::before{
  content:"";
  position:absolute;
  inset:11px;
  border-radius:29px;
  pointer-events:none;
  box-shadow:
    inset 1px 1px 0 rgba(242,244,247,.08),
    inset -1px -1px 0 rgba(4,19,42,.52);
}
.contact-brand{
  grid-area:brand;
  position:relative;
  top:auto;
  right:auto;
  z-index:3;
  justify-self:end;
  align-self:start;
  width:min(100%,320px);
  margin:0;
  padding:20px;
  border-radius:28px;
  background:#F2F4F7;
  box-shadow:
    12px 12px 24px rgba(4,20,44,.58),
    -7px -7px 18px rgba(105,148,197,.22),
    inset 3px 3px 7px rgba(255,255,255,.95),
    inset -5px -5px 12px rgba(107,114,128,.24);
  pointer-events:none;
}
.contact-brand img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.contact-heading,.contact-grid,.contact-main-cta{position:relative;z-index:2}
.contact-heading{grid-area:heading}
.contact-grid{grid-area:grid}
.contact-main-cta{grid-area:cta}
.contact-heading{
  max-width:none;
  margin-bottom:36px;
}
.contact-heading h2{
  font-size:clamp(34px,4.1vw,56px);
  line-height:1.04;
  margin:18px 0 0;
  letter-spacing:-.01696464em;
  color:var(--offwhite);
  text-wrap:balance;
  text-shadow:2px 3px 8px rgba(31,41,55,.70);
}
.contact-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  margin-top:28px;
}
.contact-card{
  min-height:210px;
  padding:26px;
  border-radius:28px;
  border:1px solid rgba(242,244,247,.08);
  background:linear-gradient(145deg,#113665,#0B274F);
  box-shadow:
    14px 14px 30px rgba(4,20,44,.72),
    -8px -8px 20px rgba(73,118,170,.20),
    inset 3px 3px 8px rgba(105,148,197,.11),
    inset -6px -6px 14px rgba(4,19,42,.60);
  transition:
    transform .38s cubic-bezier(.16,1,.3,1),
    box-shadow .38s cubic-bezier(.16,1,.3,1),
    border-color .38s cubic-bezier(.16,1,.3,1);
  overflow:hidden;
  word-break:break-word;
  color:var(--offwhite);
  text-align:left;
}
.contact-card:hover,
.contact-card:focus-visible{
  transform:translateY(-7px);
  border-color:rgba(126,196,197,.28);
  box-shadow:
    21px 21px 42px rgba(4,20,44,.82),
    -11px -11px 26px rgba(73,118,170,.27),
    inset 3px 3px 8px rgba(105,148,197,.13),
    inset -6px -6px 14px rgba(4,19,42,.64),
    0 0 30px rgba(30,109,111,.10);
  outline:none;
}
.contact-card strong{
  display:block;
  font-size:19.8px;
  letter-spacing:.0325611em;
  text-transform:uppercase;
  margin-bottom:12px;
  color:var(--offwhite);
}
.contact-card em{
  font-style:normal;
  color:rgba(242,244,247,.88);
  font-size:19.8px;
  line-height:1.45;
  font-weight:700;
  letter-spacing:.0325611em;
}
.contact-main-cta{
  display:flex;
  justify-content:center;
  margin-top:44px;
  padding-bottom:36px;
}
.contact-cta-wrap{display:inline-block;margin:0 0 10px}
.contact-card-animated{overflow:visible}
.contact-card-animated .contact-icon-animated{
  width:auto;
  height:auto;
  display:block;
  margin-bottom:12px;
  padding:0;
  background:none;
  border:0;
  box-shadow:none;
  overflow:visible;
}
.contact-card-animated .contact-anim-item{
  position:relative;
  display:inline-block;
  width:64px;
  height:88px;
  color:#7EC4C5;
}
.contact-card-animated .contact-anim-svg{
  transition:
    transform .36s cubic-bezier(.16,1,.3,1),
    border-radius .36s cubic-bezier(.16,1,.3,1),
    box-shadow .36s cubic-bezier(.16,1,.3,1);
  padding:.72rem;
  height:64px;
  width:64px;
  border-radius:50%;
  color:inherit;
  fill:currentColor;
  background:linear-gradient(145deg,#123A6A,#0A274F);
  box-shadow:
    8px 8px 16px rgba(4,20,44,.70),
    -5px -5px 12px rgba(73,118,170,.20),
    inset 2px 2px 5px rgba(105,148,197,.12),
    inset -4px -4px 9px rgba(4,19,42,.62);
}
.contact-card-instagram .contact-anim-svg{padding:.60rem}
.contact-card-animated .contact-anim-text{
  opacity:0;
  border-radius:8px;
  padding:6px 9px;
  transition:
    opacity .34s cubic-bezier(.16,1,.3,1),
    transform .34s cubic-bezier(.16,1,.3,1);
  color:#0D2D5A;
  background:#F2F4F7;
  position:absolute;
  z-index:5;
  left:0;
  top:70px;
  white-space:nowrap;
  pointer-events:none;
  font-size:19.8px;
  font-weight:800;
  letter-spacing:.0325611em;
  box-shadow:6px 6px 12px rgba(4,20,44,.42),-4px -4px 10px rgba(242,244,247,.12);
}
.contact-card-animated .contact-anim-layer{
  opacity:0;
  position:absolute;
  left:0;
  top:0;
  height:64px;
  width:64px;
  border-radius:50%;
  border:1px solid currentColor;
  background:rgba(30,109,111,.05);
  box-shadow:inset 2px 2px 6px rgba(126,196,197,.12),inset -3px -3px 7px rgba(4,19,42,.42);
  transition:
    opacity .36s cubic-bezier(.16,1,.3,1),
    transform .36s cubic-bezier(.16,1,.3,1);
  pointer-events:none;
}
.contact-card-animated:hover .contact-anim-svg,
.contact-card-animated:focus-visible .contact-anim-svg{
  transform:translate(15px,-15px);
  border-radius:50%;
  box-shadow:
    12px 12px 22px rgba(4,20,44,.76),
    -7px -7px 16px rgba(73,118,170,.26),
    inset 2px 2px 5px rgba(105,148,197,.13),
    inset -4px -4px 9px rgba(4,19,42,.64);
}
.contact-card-animated:hover .contact-anim-text,
.contact-card-animated:focus-visible .contact-anim-text{
  opacity:1;
  transform:translate(25px,-2px) skew(-5deg);
}
.contact-card-animated:hover .contact-anim-layer,
.contact-card-animated:focus-visible .contact-anim-layer{opacity:1}
.contact-card-animated:hover .contact-anim-layer:nth-child(1),
.contact-card-animated:focus-visible .contact-anim-layer:nth-child(1){opacity:.2}
.contact-card-animated:hover .contact-anim-layer:nth-child(2),
.contact-card-animated:focus-visible .contact-anim-layer:nth-child(2){opacity:.4;transform:translate(5px,-5px)}
.contact-card-animated:hover .contact-anim-layer:nth-child(3),
.contact-card-animated:focus-visible .contact-anim-layer:nth-child(3){opacity:.6;transform:translate(10px,-10px)}

/* ─── Rodapé ─── */
.site-footer{
  position:relative;
  z-index:1;
  padding:18px 0 50px;
  color:rgba(242,244,247,.76);
  background:
    radial-gradient(circle at 50% 0%,rgba(30,109,111,.18),transparent 42%),
    #0D2D5A;
}
.site-footer-shell{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 22px;
  border-radius:999px;
  background:linear-gradient(145deg,#113665,#0B274F);
  border:1px solid rgba(242,244,247,.09);
  box-shadow:
    12px 12px 24px rgba(4,20,44,.68),
    -7px -7px 18px rgba(73,118,170,.20),
    inset 3px 3px 7px rgba(105,148,197,.11),
    inset -5px -5px 12px rgba(4,19,42,.58);
  position:relative;
  overflow:hidden;
}
.site-footer-shell::before{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:inherit;
  pointer-events:none;
  box-shadow:inset 1px 1px 0 rgba(242,244,247,.07),inset -1px -1px 0 rgba(4,19,42,.50);
}
.site-footer small{
  position:relative;
  z-index:1;
  font-size:13px;
  font-weight:600;
  letter-spacing:.0325611em;
}
.site-footer a,
.site-footer a:hover,
.site-footer a:focus-visible,
.site-footer a:active,
.site-footer a:visited{
  color:#D6B25E;
  text-decoration:none;
  font-weight:900;
  letter-spacing:.0325611em;
  outline:none;
}
.site-footer a:focus-visible{text-shadow:0 0 18px rgba(214,178,94,.32)}

/* ─── Responsividade das novas seções ─── */
@media (max-width:1180px){
  .services-layout{grid-template-columns:minmax(340px,.40fr) minmax(0,1fr);gap:30px}
  .services-side{top:112px}
  .services-grid{grid-template-columns:repeat(2,minmax(230px,1fr));gap:22px}
  .contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contact-card:last-child{grid-column:1/-1}
}

@media (max-width:980px){
  .contact-shell{grid-template-columns:1fr;grid-template-areas:"brand" "heading" "grid" "cta";row-gap:0}
  .services-layout{grid-template-columns:1fr;gap:30px}
  .services-side{position:relative;top:auto;max-width:860px;margin-inline:auto}
  .services-sticky{text-align:center}
  .services-eyebrow{justify-content:center}
  .services-grid{grid-template-columns:repeat(2,minmax(280px,1fr));max-width:960px;width:100%;margin-inline:auto}
  .services-cta-out{display:block;margin:30px auto 38px;text-align:center}

  .about-inner{grid-template-columns:1fr;gap:32px}
  .about-portrait{max-width:720px;margin-inline:auto;order:1}
  .about-copy{order:2;text-align:left;margin-inline:auto}
  .about-cta-wrap{text-align:center}

  .contact-brand{
    position:relative;
    top:auto;
    right:auto;
    justify-self:end;
    width:min(280px,54vw);
    margin:0 0 28px auto;
  }
  .contact-heading{max-width:100%}
  .contact-grid{grid-template-columns:1fr}
  .contact-card:last-child{grid-column:auto}
}

@media (max-width:760px){
  .contact-shell{grid-template-columns:1fr;grid-template-areas:"brand" "heading" "grid" "cta"}
  #home,#servicos,#sobre,#contato{scroll-margin-top:96px}
  .section-container{width:min(100% - 32px,var(--max))}

  .services-section{padding:44px 0 58px}
  .services-side{display:contents}
  .services-sticky{
    order:1;
    width:100%;
    max-width:450px;
    margin-inline:auto;
    padding:30px 22px;
    border-radius:28px;
    text-align:left;
  }
  .services-sticky::before{inset:8px;border-radius:20px}
  .services-eyebrow,
  .about-eyebrow,
  .contact-eyebrow{
    justify-content:flex-start;
    font-size:18.6px;
    letter-spacing:.0325611em;
    gap:9px;
  }
  .services-eyebrow::after,
  .about-eyebrow::after,
  .contact-eyebrow::after{width:44px}
  .services-sticky h2{
    font-size:clamp(29px,7.4vw,38px);
    line-height:1.08;
    letter-spacing:-.01465128em;
  }
  .services-grid{order:2;grid-template-columns:1fr;gap:22px;max-width:450px}
  .services-cta-out{order:3;width:100%;max-width:450px;margin:38px auto 48px;text-align:center}
  .service-card{border-radius:28px}
  .service-card::before{inset:8px;border-radius:20px}
  .service-copy{padding:22px}
  .service-copy p{font-size:17.2px;line-height:1.68}

  .about-section{padding:56px 0 66px}
  .about-inner{gap:28px}
  .about-portrait[data-depth]{transform:none!important}
  .about-portrait{order:1;border-radius:30px;padding:9px;max-width:450px}
  .about-portrait::before{inset:8px;border-radius:21px}
  .about-portrait-fade{left:9px;right:9px;bottom:9px;border-radius:0 0 21px 21px;height:20%}
  .about-portrait img{border-radius:22px}
  .about-copy{order:2;padding:30px 22px;border-radius:30px}
  .about-copy::before{inset:8px;border-radius:21px}
  .about-copy h2{
    font-size:clamp(31px,8vw,40px);
    letter-spacing:-.01465128em;
  }
  .about-copy p{font-size:17.25px;line-height:1.72}
  .about-copy .about-lead{font-size:18.4px}
  .about-cta-wrap{margin:30px 0 44px;text-align:center}

  .contact-section{padding:58px 0 78px}
  .contact-shell{border-radius:30px;padding:30px 20px}
  .contact-shell::before{inset:8px;border-radius:21px}
  .contact-brand{width:min(250px,76vw);margin:0 auto 28px;padding:14px;border-radius:24px}
  .contact-heading{text-align:left}
  .contact-heading h2{
    font-size:clamp(31px,8vw,40px);
    letter-spacing:-.01465128em;
  }
  .contact-card{padding:22px;min-height:auto;border-radius:24px}
  .contact-card strong,
  .contact-card em,
  .contact-card-animated .contact-anim-text{font-size:20.24px}
  .contact-main-cta{margin-top:40px;padding-bottom:20px}
  .contact-cta-wrap{
    display:block;
    width:100%;
    margin:0 auto;
    text-align:center;
    -webkit-box-reflect:unset;
  }
  .contact-main-cta .hero-btn{
    display:inline-block;
    width:min(300px,100%);
  }

  .site-footer{padding:10px 0 38px}
  .site-footer-shell{border-radius:28px;align-items:flex-start;padding:18px 20px}
  .site-footer small{font-size:12.5px;line-height:1.45}

  .reveal-in,
  .about-reveal,
  .contact-reveal{opacity:1;transform:none;transition:none}
}

@media (max-width:420px){
  .section-container{width:min(100% - 28px,var(--max))}
  .service-copy p{font-size:16.8px}
  .contact-card strong,
  .contact-card em{font-size:20.24px}
}

@media (prefers-reduced-motion:reduce){
  .reveal-in,
  .about-reveal,
  .contact-reveal{opacity:1!important;transform:none!important}
}
