:root{
  /* =======================================================
     DESIGN TOKENS — alterar valores globais aqui
     ======================================================= */

  /* Cores principais */
  --navy-950:#06182f;
  --navy-900:#082444;
  --navy-800:#0c325d;
  --navy-heading:#08254d;
  --navy-hero:#06234a;
  --navy-deep:#061d3a;
  --navy-footer:#061a34;
  --ink:#07244a;
  --muted:#58718d;
  --blue-600:#0b63f6;
  --blue-500:#2e79ff;
  --blue-300:#88bfff;
  --blue-hover:#084fc7;
  --blue-active:#073f9f;
  --line:#dce7f2;
  --paper:#f5f9fe;
  --white:#fff;
  --green:#18c486;

  /* Layout global */
  --maxw:1600px;
  --content-max:1500px;
  --content-gutter:48px;
  --nav-max:1540px;
  --home-stats-height:76px;

  /* Border radius — todos os raios ficam centralizados aqui */
  --radius-0:0;
  --radius-8:8px;
  --radius-9:9px;
  --radius-10:10px;
  --radius-11:11px;
  --radius-12:12px;
  --radius-14:14px;
  --radius-15:15px;
  --radius-16:16px;
  --radius-18:18px;
  --radius-20:20px;
  --radius-22:22px;
  --radius-24:24px;
  --radius-28:28px;
  --radius-circle:50%;
  --radius-pill:999px;
  --radius-pill-bottom:0 0 999px 999px;

  /* Aliases mantidos para compatibilidade */
  --radius-md:var(--radius-14);
  --radius-lg:var(--radius-20);
  --radius-xl:var(--radius-28);

  /* Sombras */
  --shadow:0 30px 80px rgba(5,33,72,.14);
  --shadow-nav:0 8px 26px rgba(4,30,64,.09);

  /* Movimento / transições */
  --transition-fast:.18s ease;
  --transition-normal:.2s ease;
  --hero-fade-duration:1.8s;
}

/* =========================================================
   ESTRUTURA DO FICHEIRO
   ---------------------------------------------------------
   1. Design tokens: :root (acima)
   2. Estilos base e componentes
   3. Ajustes responsive (@media)
   4. Refinamentos/overrides históricos do layout atual

   IMPORTANTE:
   A ordem das regras abaixo foi preservada de propósito.
   O design atual depende da cascata existente; os valores
   repetidos de manutenção frequente foram convertidos para
   variáveis no :root sem alterar o resultado visual.
   ========================================================= */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--ink);
  background:#f2f6fb;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{color:inherit}

.site-shell{
  width:100%;
  
  margin:0;
  padding:0;
  background:var(--white);
  box-shadow:none;
  overflow:hidden;
  border-radius:var(--radius-0);
}

h1,h2,h3{margin:0;line-height:1.04;/*letter-spacing:-.04em*/}
p{margin:0}
.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}

.eyebrow{
  display:block;
  margin-bottom:20px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.28em;
  color:var(--blue-600);
}
.eyebrow.muted{color:var(--blue-600)}
.eyebrow.muted span{color:#6e87a2}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 25px;
  border:0;
  border-radius:var(--radius-9);
  font-size:14px;
  font-weight:700;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.btn-primary{
  color:var(--white);
  background:linear-gradient(135deg,#075cf0,#0b6cff);
  box-shadow:0 12px 24px rgba(10,96,242,.22);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 17px 30px rgba(10,96,242,.28)}
.btn-ghost-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--blue-600);
  font-size:14px;
  font-weight:700;
}
.btn-ghost-link:hover{color:#004dcc}

header{
  position:fixed;
  z-index:50;
  top:18px;
  left:50%;
  width:min(calc(100% - 68px),1540px);
  transform:translateX(-50%);
}
.nav{
  height:68px;
  display:grid;
  grid-template-columns:260px 1fr auto;
  align-items:center;
  gap:26px;
  padding:0 28px;
  border:none !important;
  outline:none;
  border-radius:var(--radius-14);
  background:linear-gradient(90deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.92) 56%,rgba(12,49,92,.64) 100%);
  box-shadow:0 7px 24px rgba(6,31,65,.09);
  backdrop-filter:blur(16px) saturate(130%);
  -webkit-backdrop-filter:blur(16px) saturate(130%);
}
.nav-logo img{width:auto;height:48px}
.nav-links{display:flex;align-items:center;justify-content:center;gap:42px}
.nav-links a{font-size:14px;font-weight:600;white-space:nowrap;transition:color .2s ease}
.nav-links a:hover{color:var(--blue-600)}
.nav-cta{display:flex;align-items:center;gap:16px}
.nav-cta>.btn{min-height:48px;padding:0 24px;border-radius:var(--radius-8)}
.nav-burger{display:none;background:none;border:0;cursor:pointer;width:40px;height:40px;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.nav-burger span{width:21px;height:2px;background:var(--white);display:block}

.hero{
  position:relative;
  min-height:645px;
  overflow:hidden;
  background:
    linear-gradient(102deg,var(--white) 0%,var(--white) 31%,rgba(255,255,255,.93) 40%,rgba(214,233,255,.60) 52%,rgba(19,91,170,.10) 65%,rgba(6,27,54,.04) 100%),
    #eaf3ff;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 46% 20%,rgba(77,155,255,.34),transparent 26%),
    linear-gradient(128deg,transparent 0 48%,rgba(53,139,255,.18) 48.3%,transparent 49.1%),
    linear-gradient(128deg,transparent 0 54%,rgba(28,119,255,.25) 54.2%,transparent 55%);
  pointer-events:none;
}
.hero-glow{
  position:absolute;
  width:760px;height:760px;left:27%;top:-320px;border-radius:var(--radius-circle);
  background:radial-gradient(circle,rgba(84,164,255,.28),rgba(84,164,255,0) 67%);
  filter:blur(12px);
}
.hero-content{
  position:relative;
  z-index:2;
  min-height:645px;
  display:grid;
  grid-template-columns:44% 56%;
}
.hero-copy{
  align-self:center;
  padding:126px 40px 74px 46px;
  max-width:690px;
}
.hero h1{
  max-width:12.8ch;
  font-size:clamp(46px,4.25vw,72px);
  font-weight:800;
  color:var(--navy-hero);
}
.hero-accent{
  background:linear-gradient(135deg,#0d65ff,#4e97ff);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero .lede{
  margin-top:24px;
  max-width:48ch;
  font-size:17px;
  line-height:1.55;
  color:#526b87;
}
.hero-actions{margin-top:32px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.hero-visual-wrap{
  position:relative;
  min-width:0;
  overflow:hidden;
}
.hero-visual{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:58% 50%;
  transform:scale(1.045);
  filter:saturate(1.03) contrast(1.02);
}
.hero-visual-wrap::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0 auto 0 0;
  width:34%;
  background:linear-gradient(90deg,#f8fbff 0%,rgba(248,251,255,.82) 28%,rgba(248,251,255,0) 100%);
  pointer-events:none;
}

.stats{
  position:relative;
  z-index:4;
  background:rgba(255,255,255,.98);
  border-top:1px solid rgba(207,221,236,.8);
  border-bottom:1px solid var(--line);
}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);min-height:76px}
.stat{
  display:flex;
  align-items:center;
  gap:22px;
  padding:0 34px;
  position:relative;
}
.stat:not(:last-child)::after{content:"";position:absolute;right:0;width:1px;height:32px;background:#d8e3ee}
.stat .n{
  width:42px;height:42px;border-radius:var(--radius-circle);display:grid;place-items:center;flex:0 0 auto;
  background:#edf5ff;color:var(--blue-600);font-size:13px;font-weight:800;
}
.stat .t{font-size:14px;font-weight:700;color:#102f58}

.solutions{
  padding:54px 44px 58px;
  background:linear-gradient(180deg,var(--white),#fbfdff);
}
.solutions-grid{
  display:grid;
  grid-template-columns:44% 56%;
  border-top:1px solid #edf2f7;
  border-bottom:1px solid #edf2f7;
}
.solutions-intro{padding:36px 38px 36px 0;border-right:1px solid #e4edf6}
.solutions-intro h2{font-size:clamp(30px,2.7vw,46px);/*font-weight:800;*/color:var(--navy-heading)}
.solutions-intro .lede{margin-top:14px;max-width:52ch;font-size:15.5px;line-height:1.5;color:var(--muted)}
.solutions-intro .btn-ghost-link{margin-top:22px}
.solution-list{display:grid;grid-template-columns:repeat(3,1fr)}
.solution-item{
  min-width:0;
  padding:28px 28px 30px;
  display:flex;
  gap:18px;
  align-items:flex-start;
  transition:background .2s ease,transform .2s ease;
}
.solution-item:not(:last-child){border-right:1px solid #e4edf6}
.solution-item:hover{background:#f8fbff;transform:translateY(-2px)}
.solution-icon{
  width:50px;height:50px;border-radius:var(--radius-12);display:grid;place-items:center;flex:0 0 auto;
  background:linear-gradient(145deg,#f3f8ff,#e6f1ff);border:1px solid #d8e8fb;
}
.solution-icon svg{width:25px;height:25px;fill:none;stroke:var(--blue-600);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.solution-copy .n{font-size:11px;color:var(--muted);font-weight:700}
.solution-copy h3{margin-top:5px;font-size:18px;font-weight:800;/*letter-spacing:-.02em;*/color:var(--navy-heading)}
.solution-copy p{margin-top:12px;font-size:13.5px;line-height:1.5;color:#667d97}

.contact{padding:92px 54px 96px;background:var(--white)}
.contact-grid{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:54px;
  max-width:1420px;
  margin:0 auto;
  padding:26px;
  border:1px solid #e3edf7;
  border-radius:var(--radius-24);
  background:linear-gradient(145deg,var(--white),#f8fbff);
  box-shadow:0 24px 70px rgba(9,43,83,.08);
}
.contact-form-panel{padding:36px 16px 32px 26px}
.contact-form-panel h2{font-size:clamp(30px,3vw,48px);font-weight:800;color:var(--navy-heading)}
.contact-form-panel .lede{margin-top:15px;max-width:50ch;font-size:15.5px;line-height:1.55;color:#5f7690}
.contact-form{margin-top:30px;display:flex;flex-direction:column;gap:16px; font-size: 12.5px !important;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field label{display:block;margin-bottom:8px;font-size:12.5px;font-weight:700;color:#17385f}
.field input,.field textarea{
  width:100%;border:1px solid #d9e6f2;border-radius:var(--radius-11);background:#f8fbff;color:#0b2947;padding:13px 14px;outline:none;transition:border .2s ease,box-shadow .2s ease,background .2s ease;
}
.field input:focus,.field textarea:focus{background:var(--white);border-color:#8ebaff;box-shadow:0 0 0 4px rgba(26,105,247,.08)}
.field textarea{min-height:116px;resize:vertical}
.contact-form .btn{align-self:flex-start;margin-top:3px}
.contact-meta{margin-top:26px;display:flex;gap:22px;flex-wrap:wrap;font-size:12.5px;font-weight:600;color:#698099}
.contact-visual{min-height:540px;position:relative;overflow:hidden;border-radius:var(--radius-18);background:#0a284d}
.contact-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.contact-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,28,54,.04) 30%,rgba(6,27,53,.86) 100%)}
.quote{position:absolute;z-index:2;left:34px;right:34px;bottom:32px;color:var(--white)}
.quote p{font-size:20px;line-height:1.45;font-weight:600}
.quote span{display:block;margin-top:12px;font-size:12.5px;color:#c4d8ec;font-weight:600}

.cta-banner{padding:0 54px 88px;background:var(--white)}
.cta-inner{
  position:relative;
  overflow:hidden;
  padding:74px 44px;
  text-align:center;
  border-radius:var(--radius-24);
  background:linear-gradient(135deg,#eaf4ff 0%,#f7fbff 48%,#e9f3ff 100%);
  border:1px solid #d9e8f7;
}
.cta-inner::before,.cta-inner::after{content:"";position:absolute;border-radius:var(--radius-circle);filter:blur(2px);pointer-events:none}
.cta-inner::before{width:380px;height:380px;right:-120px;top:-250px;background:radial-gradient(circle,rgba(45,130,255,.25),transparent 65%)}
.cta-inner::after{width:320px;height:320px;left:-110px;bottom:-240px;background:radial-gradient(circle,rgba(92,162,255,.18),transparent 66%)}
.cta-inner>*{position:relative;z-index:1}
.cta-inner h2{font-size:clamp(34px,4vw,56px);font-weight:800;color:var(--navy-heading)}
.cta-inner .btn{margin-top:28px}

footer{padding:48px 54px 34px;background:var(--navy-footer);color:#9fb4ca}
.footer-grid{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.footer-logo img{height:34px;width:auto;filter:brightness(0) invert(1)}
.footer-links{display:flex;gap:28px;flex-wrap:wrap;font-size:13px;font-weight:600}
.footer-links a:hover{color:var(--white)}
.footer-bottom{margin-top:30px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:12px;color:#6f8aa4}
.footer-legal{display:flex;gap:20px}

@media (max-width:1180px){
  .nav{grid-template-columns:220px 1fr auto}.nav-links{gap:24px}
  .hero-content{grid-template-columns:48% 52%}.hero-copy{padding-left:38px}.hero h1{font-size:clamp(44px,5vw,62px)}
  .solution-item{padding-inline:18px}.solution-icon{width:44px;height:44px}.solution-copy p{font-size:13px}
}

@media (max-width:960px){
  .site-shell{width:100%;margin:0;box-shadow:none}
  header{top:0;width:100%;left:0;transform:none}.nav{border-radius:var(--radius-0);grid-template-columns:1fr auto;background:rgba(255,255,255,.96);height:72px;padding-inline:22px}.nav-logo img{height:44px}
  .nav-links{position:fixed;top:72px;left:0;right:0;display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:24px;background:var(--white);border-bottom:0;box-shadow:0 14px 30px rgba(4,35,72,.08);transform:translateY(-140%);transition:transform .25s ease;z-index:-1}.nav-links.open{transform:translateY(0)}
  .nav-cta>.btn{display:none}.nav-burger{display:flex}.nav-burger span{background:var(--ink)}
  .hero{min-height:auto}.hero-content{grid-template-columns:1fr}.hero-copy{padding:124px 26px 54px;max-width:none}.hero h1{max-width:14ch}.hero-visual-wrap{height:530px}.hero-visual-wrap::before{width:16%}
  .stats-grid{grid-template-columns:repeat(2,1fr)}.stat{min-height:74px}.stat:nth-child(2)::after{display:none}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .solutions{padding:48px 26px}.solutions-grid{grid-template-columns:1fr}.solutions-intro{padding:0 0 34px;border-right:0;border-bottom:1px solid #e4edf6}.solution-list{grid-template-columns:repeat(3,1fr)}
  .contact{padding:70px 26px}.contact-grid{grid-template-columns:1fr}.contact-form-panel{padding:26px 16px}.contact-visual{min-height:420px}
  .cta-banner{padding:0 26px 70px}footer{padding-inline:26px}
}

@media (max-width:680px){
  .hero-copy{padding-top:114px}.hero h1{font-size:clamp(40px,12vw,54px)}.hero .lede{font-size:15.5px}.hero-actions{gap:18px}.hero-actions .btn{width:100%}.hero-visual-wrap{height:380px}.hero-visual{object-position:62% 50%}.hero-visual-wrap::before{display:none}
  .stats-grid{grid-template-columns:1fr}.stat{padding:0 22px}.stat:not(:last-child){border-bottom:1px solid var(--line)}.stat::after{display:none!important}
  .solution-list{grid-template-columns:1fr}.solution-item:not(:last-child){border-right:0;border-bottom:1px solid #e4edf6}.solution-item{padding:24px 4px}
  .form-row{grid-template-columns:1fr}.contact{padding-inline:16px}.contact-grid{padding:12px;border-radius:var(--radius-18)}.contact-form-panel{padding:22px 10px}.contact-visual{min-height:340px}.quote{left:22px;right:22px;bottom:22px}.quote p{font-size:17px}
  .cta-banner{padding-inline:16px}.cta-inner{padding:58px 22px}
  .footer-grid{align-items:flex-start;flex-direction:column}.footer-links{gap:18px}.footer-bottom{flex-direction:column}.footer-legal{flex-wrap:wrap}
}

/* =========================================================
   V2 — aproximação fiel ao conceito aprovado (desktop)
   ========================================================= */
@media (min-width: 961px){
  .site-shell{
    width:calc(100% - 36px);
    
    margin:18px auto;
  }

  header{
    top:16px;
    width:calc(100% - 46px);
    
  }

  .nav{
    height:67px;
    grid-template-columns:245px 1fr auto;
    padding:0 28px;
    border-radius:var(--radius-15);
    border:none !important;
    outline:none !important;
    background:linear-gradient(90deg,
      rgba(255,255,255,.97) 0%,
      rgba(255,255,255,.94) 55%,
      rgba(103,154,211,.55) 73%,
      rgba(8,39,77,.72) 100%);
    box-shadow:0 8px 24px rgba(4,30,64,.10);
  }
  .nav-logo img{height:48px;}
  .nav-links{gap:42px;}
  .nav-links a{font-size:14px;}
  .nav-cta>.btn{height:49px; min-height:49px; padding-inline:27px; border-radius:var(--radius-9);}

  .hero{
    height:clamp(650px,39.6vw,742px);
    min-height:0;
    background:
      radial-gradient(circle at 46% 12%,rgba(121,184,255,.38) 0,rgba(121,184,255,.14) 21%,transparent 42%),
      linear-gradient(111deg,var(--white) 0%,var(--white) 29%,#f8fbff 39%,#dfeeff 49%,#a7cdf8 57%,#163f73 79%,#071c36 100%);
  }
  .hero::before{
    background:
      linear-gradient(128deg,transparent 0 42.6%,rgba(255,255,255,.86) 42.75%,rgba(255,255,255,.10) 43.12%,transparent 43.5%),
      linear-gradient(128deg,transparent 0 49.4%,rgba(45,135,255,.34) 49.55%,rgba(111,180,255,.10) 50.1%,transparent 50.5%);
    opacity:.9;
  }
  .hero-glow{display:none;}

  .hero-content{
    min-height:0;
    height:100%;
    display:block;
  }
  .hero-copy{
    position:absolute;
    z-index:5;
    left:3.05%;
    top:29.1%;
    width:44%;
    
    padding:0;
  }
  .hero .eyebrow{
    margin-bottom:25px;
    font-size:12px;
    letter-spacing:.28em;
  }
  .hero h1{
    max-width:15.7ch;
    font-size:clamp(58px,4.1vw,70px);
    line-height:1.02;
    /*letter-spacing:-.047em;*/
  }
  .hero .lede{
    margin-top:22px;
    max-width:46ch;
    font-size:17px;
    line-height:1.52;
  }
  .hero-actions{
    margin-top:32px;
    gap:30px;
  }
  .hero-actions .btn{
    min-height:56px;
    padding-inline:27px;
    border-radius:var(--radius-9);
  }
  .hero-actions .btn-ghost-link{font-size:14.5px;}

  .hero-visual-wrap{
    position:absolute;
    z-index:2;
    left:34.4%;
    top:0;
    width:65.6%;
    height:100%;
    overflow:hidden;
    pointer-events:none;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 9%,rgba(0,0,0,.45) 16%,#000 25%,#000 100%);
            mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 9%,rgba(0,0,0,.45) 16%,#000 25%,#000 100%);
  }
  .hero-visual{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    transform:none;
    filter:none;
  }
  .hero-visual-wrap::before{display:none;}

  .stats-grid{min-height:70px;}
  .stat{padding:0 42px; gap:24px;}
  .stat .n{width:42px;height:42px;font-size:13px;}
  .stat .t{font-size:14.5px;}
  .stat:not(:last-child)::after{height:30px;}

  .solutions{
    padding:34px 48px 54px;
    background:var(--white);
  }
  .solutions-grid{
    grid-template-columns:46% 54%;
    border-top:0;
    border-bottom:0;
    min-height:176px;
  }
  .solutions-intro{
    padding:0 46px 0 18px;
    border-right:1px solid #e6edf5;
  }
  .solutions-intro .eyebrow{
    margin-bottom:15px;
    font-size:11px;
    letter-spacing:.27em;
  }
  .solutions-intro h2{
    font-size:clamp(28px,2vw,34px);
    /*letter-spacing:-.04em;*/
  }
  .solutions-intro .lede{
    margin-top:8px;
    max-width:55ch;
    font-size:14px;
    line-height:1.45;
  }
  .solutions-intro .btn-ghost-link{margin-top:16px;font-size:13px;}
  .solution-list{height:100%;}
  .solution-item{
    padding:18px 26px 16px 22px;
    gap:18px;
    align-items:flex-start;
  }
  .solution-icon{
    width:51px;height:51px;border-radius:var(--radius-12);
  }
  .solution-copy .n{font-size:10px;}
  .solution-copy h3{font-size:17px;margin-top:4px;}
  .solution-copy p{font-size:12.8px;line-height:1.45;margin-top:11px;}
}

@media (min-width: 961px){
  header{width:calc(100% - 78px);}
  .hero-copy{left:3.05%; top:28.9%; width:46%;}
  .hero h1{font-size:clamp(56px,3.85vw,66px);}
  .hero-line{display:block;white-space:nowrap;}
  .stat{padding-inline:64px;}
  .solutions{padding-left:30px;padding-right:30px;}
  .solutions-intro{padding-left:18px;padding-right:38px;}
  .solutions-intro h2{font-size:clamp(28px,1.85vw,31px);white-space:nowrap;}
}

@media (max-width: 1180px) and (min-width: 961px){
  .hero-line{white-space:normal;}
  .solutions-intro h2{white-space:normal;}
  .stat{padding-inline:34px;}
}

/* =========================================================
   V3 — página sem moldura exterior + navegação acompanha scroll
   ========================================================= */
body{
  background:var(--white);
  overflow-x:hidden;
}

/* Remove o recuo/moldura exterior da página. */
.site-shell{
  width:100%;
  
  margin:0;
  border-radius:var(--radius-0);
  box-shadow:none;
  overflow:hidden;
}

/* Mantém TODO o menu (logo, nav-links e CTA) visível ao fazer scroll. */
header{
  position:fixed;
  top:16px;
  left:50%;
  width:calc(100% - 60px);
  max-width:var(--nav-max);
  transform:translateX(-50%);
  z-index:1000;
}

@media (max-width:960px){
  header{
    top:0;
    left:0;
    width:100%;
    
    transform:none;
  }
}

/* =========================================================
   FINAL — navegação sem qualquer borda; apenas sombra suave
   ========================================================= */
.nav{
  border:none !important;
  outline:none !important;
  box-shadow:0 8px 24px rgba(4,30,64,.10) !important;
}

/* A navegação continua fixa durante o scroll. */
header{
  position:fixed;
  z-index:1000;
}


/* =========================================================
   V7 — imagem do hero contínua até ao topo
   ========================================================= */
@media (min-width:961px){
  .hero-visual-wrap{
    top:0 !important;
    height:100% !important;
  }
  .hero-visual{
    object-fit:cover !important;
    object-position:center center !important;
  }
}

/* =========================================================
   V8 — navbar em vidro translúcido, adaptada ao fundo
   Em zonas claras parece quase branca; sobre o hero deixa
   passar os azuis por baixo. Sem border, apenas sombra suave.
   ========================================================= */
.nav{
  background:rgba(255,255,255,.72) !important;
  -webkit-backdrop-filter:blur(18px) saturate(145%) !important;
  backdrop-filter:blur(18px) saturate(145%) !important;
  border:none !important;
  outline:none !important;
  box-shadow:var(--shadow-nav) !important;
}

@media (max-width:960px){
  .nav{
    background:rgba(255,255,255,.86) !important;
    -webkit-backdrop-filter:blur(16px) saturate(140%) !important;
    backdrop-filter:blur(16px) saturate(140%) !important;
  }
}

/* =========================================================
   V9 — vidro mais transparente para aproveitar o fundo real
   Em branco continua visualmente branco; sobre azul/escuro
   deixa passar muito mais a cor e profundidade da secção.
   ========================================================= */
.nav{
  background:rgba(255,255,255,.34) !important;
  -webkit-backdrop-filter:blur(20px) saturate(135%) !important;
  backdrop-filter:blur(20px) saturate(135%) !important;
  border:none !important;
  outline:none !important;
  box-shadow:var(--shadow-nav) !important;
}

@media (max-width:960px){
  .nav{
    background:rgba(255,255,255,.52) !important;
    -webkit-backdrop-filter:blur(18px) saturate(135%) !important;
    backdrop-filter:blur(18px) saturate(135%) !important;
  }
}

/* =========================================================
   V10 — primeira dobra termina exatamente no fim de .stats
   Desktop: hero + stats = altura visível do browser.
   O header é fixed/overlay, por isso não entra neste cálculo.
   ========================================================= */
@media (min-width:961px){

.hero{
    height:calc(100vh - var(--home-stats-height)) !important;
    height:calc(100dvh - var(--home-stats-height)) !important;
    min-height:0 !important;
  }

  .stats{
    height:var(--home-stats-height);
    min-height:var(--home-stats-height);
  }

  .stats-grid{
    height:100%;
    min-height:0 !important;
  }

  .stat{
    height:100%;
  }
}

/* Em ecrãs desktop muito baixos, reduz ligeiramente o conteúdo do hero
   para manter tudo confortável sem empurrar a barra .stats para baixo. */
@media (min-width:961px) and (max-height:760px){
  .hero-copy{
    top:27%;
  }
  .hero h1{
    font-size:clamp(50px,3.55vw,61px);
  }
  .hero .lede{
    margin-top:17px;
    font-size:15.5px;
  }
  .hero-actions{
    margin-top:24px;
  }
  .hero-actions .btn{
    min-height:50px;
  }
}

/* =========================================================
   V11 — refinamento visual da barra .stats
   Mais premium, leve e consistente com o hero.
   ========================================================= */
.stats{
  background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(249,252,255,.985) 100%) !important;
  border-top:1px solid rgba(219,231,244,.88) !important;
  border-bottom:1px solid rgba(219,231,244,.88) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88), inset 0 -1px 0 rgba(236,243,250,.95);
}
.stats-grid{
  position:relative;
}
.stat{
  gap:18px !important;
  padding-inline:40px !important;
  transition:background .18s ease, transform .18s ease;
}
.stat:hover{
  background:linear-gradient(180deg,rgba(244,249,255,.88),rgba(255,255,255,0));
}
.stat:not(:last-child)::after{
  width:1px !important;
  height:28px !important;
  background:linear-gradient(180deg,transparent 0%,#dbe5ef 18%,#dbe5ef 82%,transparent 100%) !important;
}
.stat .n{
  width:46px !important;
  height:46px !important;
  border-radius:var(--radius-pill) !important;
  background:linear-gradient(145deg,#f7fbff,#eaf3ff) !important;
  color:var(--blue-600) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95), 0 8px 16px rgba(8,88,203,.08) !important;
  border:1px solid rgba(220,233,247,.9);
  font-size:13px !important;
  font-weight:800 !important;
}
.stat .t{
  font-size:15px !important;
  font-weight:700 !important;
  line-height:1.15;
  /*letter-spacing:-.015em;*/
  color:#0d2c56 !important;
}
@media (min-width:961px){
  .stat{padding-inline:54px !important;}
}
@media (max-width:1180px) and (min-width:961px){
  .stat{padding-inline:30px !important; gap:14px !important;}
  .stat .t{font-size:14px !important;}
}
@media (max-width:960px){
  .stats{
    background:var(--white) !important;
    box-shadow:none;
  }
  .stat{
    min-height:76px;
    padding-inline:22px !important;
  }
  .stat:hover{background:transparent;}
}

/* =========================================================
   V12 — secção .solutions mais sofisticada e moderna
   Mantém os textos, melhora apenas a linguagem visual.
   ========================================================= */
.solutions{
  position:relative;
  padding:44px 34px 78px !important;
  background:linear-gradient(180deg,#fbfdff 0%,#f7fbff 100%) !important;
  overflow:hidden;
}
.solutions::before,
.solutions::after{
  content:"";
  position:absolute;
  border-radius:var(--radius-circle);
  pointer-events:none;
  filter:blur(6px);
}
.solutions::before{
  width:420px;
  height:420px;
  left:-120px;
  top:10px;
  background:radial-gradient(circle,rgba(79,144,255,.14),rgba(79,144,255,0) 68%);
}
.solutions::after{
  width:340px;
  height:340px;
  right:-80px;
  bottom:-170px;
  background:radial-gradient(circle,rgba(55,126,255,.10),rgba(55,126,255,0) 70%);
}

.solutions-grid{
  position:relative;
  z-index:1;
  grid-template-columns:41% 59% !important;
  min-height:230px !important;
  border:1px solid #e3edf8 !important;
  border-radius:var(--radius-28);
  overflow:hidden;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(248,251,255,.98)) !important;
  box-shadow:0 26px 70px rgba(8,41,79,.07), inset 0 1px 0 rgba(255,255,255,.92);
}

.solutions-intro{
  position:relative;
  padding:44px 44px 40px 28px !important;
  border-right:1px solid #e6eef7 !important;
  background:linear-gradient(180deg,rgba(255,255,255,.80),rgba(246,250,255,.94));
}
.solutions-intro::after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 82% 18%,rgba(69,142,255,.14),transparent 28%);
  pointer-events:none;
}
.solutions-intro > *{
  position:relative;
  z-index:1;
}
.solutions-intro .eyebrow{
  margin-bottom:14px !important;
  font-size:11px !important;
  letter-spacing:.28em !important;
}
.solutions-intro h2{
  font-size:clamp(31px,2.15vw,38px) !important;
  line-height:1.06 !important;
  /*:-.045em !important;*/
  color:var(--navy-heading) !important;
}
.solutions-intro .lede{
  margin-top:14px !important;
  max-width:44ch !important;
  font-size:15px !important;
  line-height:1.58 !important;
  color:#607792 !important;
}
.solutions-intro .btn-ghost-link{
  margin-top:22px !important;
  font-size:14px !important;
}

.solution-list{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  align-items:stretch;
  background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(249,252,255,.92));
}
.solution-item{
  position:relative;
  min-height:230px;
  padding:30px 26px 28px !important;
  display:flex !important;
  flex-direction:column;
  align-items:flex-start !important;
  justify-content:flex-start;
  gap:18px !important;
  background:transparent;
  transition:transform .22s ease, background .22s ease, box-shadow .22s ease;
}
.solution-item:not(:last-child){
  border-right:1px solid #e6eef7 !important;
}
.solution-item::before{
  content:"";
  position:absolute;
  left:26px;
  right:26px;
  top:0;
  height:3px;
  border-radius:var(--radius-pill-bottom);
  background:linear-gradient(90deg,rgba(11,99,246,0),rgba(11,99,246,.34),rgba(11,99,246,0));
  opacity:0;
  transition:opacity .22s ease;
}
.solution-item:hover{
  transform:translateY(-3px);
  background:linear-gradient(180deg,rgba(246,250,255,.86),rgba(255,255,255,.45));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}
.solution-item:hover::before{
  opacity:1;
}

.solution-icon{
  width:64px !important;
  height:64px !important;
  border-radius:var(--radius-16) !important;
  background:linear-gradient(145deg,#f7fbff,#e7f1ff) !important;
  border:1px solid #d9e8fb !important;
  box-shadow:0 14px 30px rgba(10,91,210,.08), inset 0 1px 0 rgba(255,255,255,.95);
}
.solution-icon svg{
  width:28px !important;
  height:28px !important;
  stroke-width:1.9 !important;
}
.solution-copy{
  display:block;
}
.solution-copy .n{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:24px;
  padding:0 10px;
  border-radius:var(--radius-pill);
  background:#eff5ff;
  color:#5f7894 !important;
  font-size:11px !important;
  font-weight:800 !important;
  letter-spacing:.04em;
}
.solution-copy h3{
  margin-top:14px !important;
  font-size:18px !important;
  line-height:1.12;
  /*letter-spacing:-.025em;*/
  color:var(--navy-heading) !important;
}
.solution-copy p{
  margin-top:12px !important;
  max-width:18ch;
  font-size:14px !important;
  line-height:1.55 !important;
  color:#678099 !important;
}

@media (max-width:1180px) and (min-width:961px){
  .solutions{padding-inline:24px !important;}
  .solutions-grid{grid-template-columns:39% 61% !important;}
  .solutions-intro{padding:36px 30px 34px 22px !important;}
  .solutions-intro h2{font-size:clamp(28px,2vw,33px) !important;}
  .solution-item{padding:24px 18px 22px !important; min-height:214px;}
  .solution-icon{width:58px !important;height:58px !important;}
  .solution-copy p{max-width:100%; font-size:13.5px !important;}
}

@media (max-width:960px){
  .solutions{
    padding:40px 20px 62px !important;
  }
  .solutions-grid{
    grid-template-columns:1fr !important;
    border-radius:var(--radius-22);
  }
  .solutions-intro{
    padding:28px 22px 26px !important;
    border-right:0 !important;
    border-bottom:1px solid #e6eef7 !important;
  }
  .solutions-intro h2{
    font-size:clamp(28px,5.5vw,36px) !important;
  }
  .solution-list{
    grid-template-columns:1fr !important;
  }
  .solution-item{
    min-height:auto;
    padding:24px 22px !important;
    flex-direction:row;
    gap:16px !important;
  }
  .solution-item:not(:last-child){
    border-right:0 !important;
    border-bottom:1px solid #e6eef7 !important;
  }
  .solution-item::before{
    left:22px;
    right:22px;
  }
  .solution-icon{
    width:56px !important;
    height:56px !important;
    border-radius:var(--radius-14) !important;
    flex:0 0 auto;
  }
  .solution-copy p{
    
  }
}

/* =========================================================
   V13 — .solutions em azul escuro sofisticado
   Reinterpretação mais premium da ideia da secção escura.
   ========================================================= */
.solutions{
  position:relative;
  padding:46px 36px 76px !important;
  background:
    radial-gradient(circle at 12% 22%, rgba(17,94,214,.18), transparent 26%),
    radial-gradient(circle at 84% 82%, rgba(42,118,255,.12), transparent 28%),
    linear-gradient(180deg,#082346 0%,#061d3c 100%) !important;
  overflow:hidden;
}
.solutions::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg, transparent 0 59%, rgba(88,160,255,.08) 59.2%, transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));
  pointer-events:none;
}
.solutions::after{
  content:"";
  position:absolute;
  inset:auto -140px -220px auto;
  width:420px;
  height:420px;
  border-radius:var(--radius-circle);
  background:radial-gradient(circle, rgba(29,110,244,.18), rgba(29,110,244,0) 68%);
  filter:blur(10px);
  pointer-events:none;
}

.solutions-grid{
  position:relative;
  z-index:1;
  grid-template-columns:48% 52% !important;
  min-height:430px !important;
  border:1px solid rgba(147,184,231,.14) !important;
  border-radius:var(--radius-0) !important;
  overflow:hidden;
  background:transparent !important;
  box-shadow:none !important;
}

.solutions-intro{
  position:relative;
  padding:60px 60px 54px 10px !important;
  border-right:0 !important;
  background:transparent !important;
}
.solutions-intro::after{
  content:"";
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  width:1px;
  height:74%;
  background:linear-gradient(180deg, transparent 0%, rgba(147,184,231,.18) 12%, rgba(147,184,231,.22) 50%, rgba(147,184,231,.18) 88%, transparent 100%);
}
.solutions-intro .eyebrow{
  color:#42d9ff !important;
  margin-bottom:22px !important;
  font-size:11px !important;
  letter-spacing:.1em !important;
}
.solutions-intro h2{
  color:var(--white) !important;
  font-size:clamp(42px,3.7vw,58px) !important;
  line-height:1.03 !important;
  /*letter-spacing:-.05em !important;*/
  max-width:8.4ch;
  white-space:normal !important;
}
.solutions-intro .lede{
  margin-top:28px !important;
  max-width:25ch !important;
  font-size:18px !important;
  line-height:1.6 !important;
  color:#9fc0e2 !important;
}
.solutions-intro .btn-ghost-link{
  margin-top:50px !important;
  color:#42e2e8 !important;
  font-size:15px !important;
}
.solutions-intro .btn-ghost-link:hover{
  color:#7ceef1 !important;
}

.solution-list{
  display:flex !important;
  flex-direction:column !important;
  background:transparent !important;
}
.solution-item{
  position:relative;
  min-height:auto !important;
  padding:28px 0 28px 42px !important;
  display:grid !important;
  grid-template-columns:52px 1fr !important;
  align-items:start !important;
  gap:18px !important;
  border-right:0 !important;
  border-bottom:1px solid rgba(147,184,231,.16) !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
}
.solution-item:first-child{
  border-top:1px solid rgba(147,184,231,.16);
}
.solution-item:last-child{
  border-bottom:1px solid rgba(147,184,231,.16) !important;
}
.solution-item::before{display:none !important;}
.solution-item:hover{
  background:linear-gradient(90deg, rgba(255,255,255,.03), rgba(255,255,255,0)) !important;
  transform:none !important;
}

.solution-icon{
  width:42px !important;
  height:42px !important;
  border-radius:var(--radius-10) !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  place-items:start !important;
}
.solution-icon svg{
  width:26px !important;
  height:26px !important;
  stroke:#37e6eb !important;
}
.solution-copy .n{
  display:inline !important;
  min-width:0 !important;
  height:auto !important;
  padding:0 !important;
  border-radius:var(--radius-0) !important;
  background:transparent !important;
  color:#37e6eb !important;
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:0 !important;
}
.solution-copy h3{
  margin-top:8px !important;
  color:var(--white) !important;
  font-size:19px !important;
  line-height:1.14 !important;
}
.solution-copy p{
  margin-top:8px !important;
  max-width:none !important;
  color:#93b7dd !important;
  font-size:14px !important;
  line-height:1.55 !important;
}

@media (max-width:1180px) and (min-width:961px){
  .solutions{padding:40px 26px 62px !important;}
  .solutions-grid{grid-template-columns:45% 55% !important; min-height:400px !important;}
  .solutions-intro{padding:48px 38px 46px 4px !important;}
  .solutions-intro h2{font-size:clamp(36px,3.2vw,48px) !important;}
  .solutions-intro .lede{font-size:16px !important; max-width:26ch !important;}
  .solution-item{padding:24px 0 24px 28px !important;}
}

@media (max-width:960px){
  .solutions{
    padding:32px 0 56px !important;
  }
  .solutions-grid{
    grid-template-columns:1fr !important;
    min-height:auto !important;
    border-left:0 !important;
    border-right:0 !important;
    border-radius:var(--radius-0) !important;
  }
  .solutions-intro{
    padding:34px 24px 32px !important;
    border-bottom:1px solid rgba(147,184,231,.16) !important;
  }
  .solutions-intro::after{display:none;}
  .solutions-intro h2{
    font-size:clamp(34px,9vw,46px) !important;
    max-width:9ch;
  }
  .solutions-intro .lede{
    margin-top:18px !important;
    max-width:none !important;
    font-size:15.5px !important;
  }
  .solutions-intro .btn-ghost-link{margin-top:26px !important;}
  .solution-item{
    grid-template-columns:42px 1fr !important;
    padding:20px 24px !important;
    gap:14px !important;
  }
  .solution-item:not(:last-child){
    border-bottom:1px solid rgba(147,184,231,.16) !important;
  }
  .solution-item:first-child{border-top:0;}
  .solution-icon{width:34px !important;height:34px !important;}
  .solution-icon svg{width:22px !important;height:22px !important;}
}

/* =========================================================
   V14 — .solutions compacta, escura e alinhada com a paleta do hero
   Sem ícones; sem cianos/azuis claros novos; texto prioritariamente branco.
   ========================================================= */
.solutions{
  position:relative;
  padding:34px 42px 54px !important;
  background:
    radial-gradient(circle at 18% 16%, rgba(46,121,255,.10), transparent 28%),
    linear-gradient(180deg,#08264c 0%,var(--navy-deep) 100%) !important;
  overflow:hidden;
}
.solutions::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,transparent 0 61%,rgba(255,255,255,.025) 61.2%,transparent 62%);
  pointer-events:none;
}
.solutions::after{display:none !important;}

.solutions-grid{
  position:relative;
  z-index:1;
  display:grid !important;
  grid-template-columns:45% 55% !important;
  min-height:310px !important;
  border:0 !important;
  border-radius:var(--radius-0) !important;
  overflow:visible !important;
  background:transparent !important;
  box-shadow:none !important;
}

.solutions-intro{
  position:relative;
  padding:38px 56px 34px 4px !important;
  border-right:1px solid rgba(255,255,255,.10) !important;
  background:transparent !important;
}
.solutions-intro::after{display:none !important;}
.solutions-intro .eyebrow{
  margin-bottom:18px !important;
  color:var(--white) !important;
  font-size:11px !important;
  letter-spacing:.13em !important;
}
.solutions-intro h2{
  max-width:14.5ch !important;
  white-space:normal !important;
  color:var(--white) !important;
  font-size:clamp(34px,2.7vw,46px) !important;
  line-height:1.06 !important;
  /*letter-spacing:-.045em !important;*/
}
.solutions-intro .lede{
  margin-top:20px !important;
  max-width:43ch !important;
  color:rgba(255,255,255,.72) !important;
  font-size:15.5px !important;
  line-height:1.55 !important;
}
.solutions-intro .btn-ghost-link{
  margin-top:30px !important;
  color:var(--white) !important;
  font-size:14px !important;
  opacity:.94;
}
.solutions-intro .btn-ghost-link:hover{
  color:var(--white) !important;
  opacity:1;
}

.solution-list{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center;
  padding-left:54px;
  background:transparent !important;
}
.solution-item{
  position:relative;
  display:grid !important;
  grid-template-columns:54px 1fr !important;
  gap:18px !important;
  align-items:start !important;
  min-height:0 !important;
  padding:24px 0 !important;
  border-right:0 !important;
  border-bottom:1px solid rgba(255,255,255,.10) !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
}
.solution-item:first-child{
  border-top:1px solid rgba(255,255,255,.10) !important;
}
.solution-item::before{display:none !important;}
.solution-item:hover{
  background:transparent !important;
  transform:none !important;
}
.solution-icon{display:none !important;}
.solution-copy{
  display:grid;
  grid-template-columns:1fr;
  min-width:0;
}
.solution-copy .n{
  grid-column:1;
  display:block !important;
  min-width:0 !important;
  height:auto !important;
  padding:0 !important;
  border-radius:var(--radius-0) !important;
  background:transparent !important;
  color:var(--blue-500) !important;
  font-size:12px !important;
  font-weight:800 !important;
  letter-spacing:.02em !important;
}
.solution-copy h3{
  margin-top:5px !important;
  color:var(--white) !important;
  font-size:18px !important;
  line-height:1.2 !important;
  /*letter-spacing:-.02em !important;*/
}
.solution-copy p{
  margin-top:7px !important;
  max-width:none !important;
  color:rgba(255,255,255,.66) !important;
  font-size:14px !important;
  line-height:1.5 !important;
}

/* o primeiro eixo da grelha funciona apenas como respiro para o número */
.solution-item::after{
  content:"";
  grid-column:1;
  grid-row:1 / span 3;
}
.solution-copy{grid-column:2;}

@media (max-width:1180px) and (min-width:961px){
  .solutions{padding:30px 28px 48px !important;}
  .solutions-grid{grid-template-columns:43% 57% !important; min-height:290px !important;}
  .solutions-intro{padding:34px 38px 30px 2px !important;}
  .solutions-intro h2{font-size:clamp(31px,2.5vw,40px) !important; max-width:14ch !important;}
  .solutions-intro .lede{font-size:14.5px !important;}
  .solution-list{padding-left:34px;}
  .solution-item{padding:21px 0 !important; grid-template-columns:44px 1fr !important;}
}

@media (max-width:960px){
  .solutions{
    padding:28px 0 46px !important;
  }
  .solutions-grid{
    grid-template-columns:1fr !important;
    min-height:0 !important;
  }
  .solutions-intro{
    padding:30px 24px 28px !important;
    border-right:0 !important;
    border-bottom:1px solid rgba(255,255,255,.10) !important;
  }
  .solutions-intro h2{
    max-width:14ch !important;
    font-size:clamp(31px,8vw,42px) !important;
  }
  .solutions-intro .lede{
    max-width:none !important;
    font-size:15px !important;
  }
  .solutions-intro .btn-ghost-link{margin-top:24px !important;}
  .solution-list{padding:0 24px;}
  .solution-item{
    grid-template-columns:38px 1fr !important;
    padding:20px 0 !important;
  }
  .solution-item:first-child{border-top:0 !important;}
}

/* Ajuste final da grelha dos itens: número à esquerda, conteúdo à direita. */
.solution-item{
  display:block !important;
}
.solution-item::after{display:none !important;}
.solution-copy{
  display:grid !important;
  grid-template-columns:54px 1fr !important;
  column-gap:18px;
  row-gap:0;
  grid-column:auto !important;
  min-width:0;
}
.solution-copy .n{
  grid-column:1 !important;
  grid-row:1 / span 2 !important;
  padding-top:3px !important;
}
.solution-copy h3{
  grid-column:2 !important;
  grid-row:1 !important;
  margin-top:0 !important;
}
.solution-copy p{
  grid-column:2 !important;
  grid-row:2 !important;
}
@media (max-width:1180px) and (min-width:961px){
  .solution-copy{grid-template-columns:44px 1fr !important;column-gap:14px;}
}
@media (max-width:960px){
  .solution-copy{grid-template-columns:38px 1fr !important;column-gap:12px;}
}

/* =========================================================
   V15 — refinamento final da secção SOLUTIONS
   Título em três linhas, secção mais compacta, sem ícones e
   apenas com a paleta já usada no hero: azul-escuro + branco.
   ========================================================= */
.solutions{
  padding:32px 42px 48px !important;
  background:linear-gradient(135deg,var(--navy-hero) 0%,var(--navy-heading) 58%,var(--navy-deep) 100%) !important;
}
.solutions::before{
  background:
    radial-gradient(circle at 16% 10%,rgba(46,121,255,.10),transparent 32%),
    linear-gradient(120deg,transparent 0 62%,rgba(255,255,255,.022) 62.2%,transparent 63%) !important;
}
.solutions-grid{
  grid-template-columns:46% 54% !important;
  min-height:300px !important;
}
.solutions-intro{
  padding:34px 54px 32px 6px !important;
}
.solutions-intro .eyebrow{
  margin-bottom:18px !important;
  color:var(--white) !important;
  opacity:.82;
}
.solutions-intro h2{
  max-width:none !important;
  font-size:clamp(34px,2.75vw,46px) !important;
  line-height:1.06 !important;
  color:var(--white) !important;
}
.solutions-intro h2 span{
  display:block;
  white-space:nowrap;
}
.solutions-intro h2 span + span{
  margin-top:3px;
}
.solutions-intro .lede{
  margin-top:22px !important;
  max-width:46ch !important;
  color:rgba(255,255,255,.72) !important;
  font-size:15px !important;
  line-height:1.55 !important;
}
.solutions-intro .btn-ghost-link{
  margin-top:28px !important;
  color:var(--white) !important;
  opacity:.9;
}
.solutions-intro .btn-ghost-link:hover{opacity:1;}

.solution-list{
  padding-left:48px !important;
  justify-content:center !important;
}
.solution-item{
  padding:22px 0 !important;
  border-color:rgba(255,255,255,.11) !important;
}
.solution-item:first-child{border-top:1px solid rgba(255,255,255,.11) !important;}
.solution-copy{
  grid-template-columns:50px 1fr !important;
  column-gap:16px !important;
}
.solution-copy .n{
  color:rgba(255,255,255,.72) !important;
  font-size:12px !important;
  padding-top:2px !important;
}
.solution-copy h3{
  color:var(--white) !important;
  font-size:18px !important;
  font-weight:700 !important;
}
.solution-copy p{
  margin-top:7px !important;
  color:rgba(255,255,255,.66) !important;
  font-size:14px !important;
  line-height:1.48 !important;
}
.solution-icon{display:none !important;}

@media (max-width:1180px) and (min-width:961px){
  .solutions{padding:30px 28px 44px !important;}
  .solutions-grid{grid-template-columns:45% 55% !important;min-height:285px !important;}
  .solutions-intro{padding:32px 34px 30px 2px !important;}
  .solutions-intro h2{font-size:clamp(31px,2.6vw,40px) !important;}
  .solutions-intro .lede{font-size:14.5px !important;}
  .solution-list{padding-left:32px !important;}
  .solution-item{padding:20px 0 !important;}
  .solution-copy{grid-template-columns:42px 1fr !important;column-gap:13px !important;}
}

@media (max-width:960px){
  .solutions{padding:26px 0 42px !important;}
  .solutions-grid{min-height:0 !important;}
  .solutions-intro{padding:28px 24px 26px !important;}
  .solutions-intro h2{font-size:clamp(30px,8vw,40px) !important;}
  .solutions-intro h2 span{white-space:normal;}
  .solutions-intro .lede{margin-top:18px !important;}
  .solution-list{padding:0 24px !important;}
  .solution-item{padding:18px 0 !important;}
  .solution-copy{grid-template-columns:38px 1fr !important;column-gap:12px !important;}
}

/* =========================================================
   V16 — ajuste final SOLUTIONS
   Remove divisor vertical e devolve ao CTA o azul do hero.
   ========================================================= */
.solutions-intro{
  border-right:0 !important;
}
.solutions-intro::after{
  display:none !important;
}
.solutions-intro .btn-ghost-link{
  color:var(--blue-500) !important;
  opacity:1 !important;
}
.solutions-intro .btn-ghost-link:hover{
  color:#4e97ff !important;
}

/* =========================================================
   V17 — remove definitivamente a linha vertical à direita
   da grelha da secção SOLUTIONS.
   ========================================================= */
.solutions-grid{
  border-right:0 !important;
}

/* =========================================================
   V18 — remove a linha vertical residual dos itens SOLUTIONS
   A linha vinha de uma regra mais específica:
   .solution-item:not(:last-child) { border-right: ... !important; }
   ========================================================= */
.solution-item:not(:last-child){
  border-right:0 !important;
}

/* =========================================================
   V21 — CONTACT compacto, imagem à esquerda / formulário à direita
   Inspirado na composição anterior, mas mais limpo e moderno.
   ========================================================= */
.contact{
  position:relative;
  padding:72px 48px 84px !important;
  background:var(--white) !important;
}

.contact-grid{
  display:grid !important;
  grid-template-columns:minmax(0,48%) minmax(0,52%) !important;
  gap:64px !important;
  align-items:center !important;
  max-width:1500px !important;
  margin:0 auto !important;
  padding:0 !important;
  border:0 !important;
  border-radius:var(--radius-0) !important;
  background:transparent !important;
  box-shadow:none !important;
}

/* Reordenação visual: imagem primeiro, formulário depois */
.contact-visual{
  grid-column:1 !important;
  grid-row:1 !important;
  position:relative !important;
  min-height:560px !important;
  height:100% !important;
  overflow:hidden !important;
  border-radius:var(--radius-10) !important;
  background:var(--navy-heading) !important;
  box-shadow:0 24px 60px rgba(8,37,77,.10) !important;
}
.contact-form-panel{
  grid-column:2 !important;
  grid-row:1 !important;
  padding:24px 24px 20px 0 !important;
  background:transparent !important;
}

.contact-form-panel .eyebrow{
  margin-bottom:18px !important;
  font-size:11px !important;
  letter-spacing:.28em !important;
  color:var(--blue-600) !important;
}
.contact-form-panel h2{
  max-width:15ch !important;
  font-size:clamp(38px,3vw,52px) !important;
  line-height:1.04 !important;
  /*letter-spacing:-.045em !important;*/
  color:var(--navy-heading) !important;
}
.contact-form-panel .lede{
  margin-top:16px !important;
  max-width:46ch !important;
  font-size:15.5px !important;
  line-height:1.58 !important;
  color:#607792 !important;
}

.contact-form{
  margin-top:28px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
}
.form-row{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:14px !important;
}
.field label{
  display:block !important;
  margin-bottom:7px !important;
  font-size:12.5px !important;
  font-weight:700 !important;
  color:#17385f !important;
}
.field input,
.field textarea{
  width:100% !important;
  border:1px solid #dbe6f1 !important;
  border-radius:var(--radius-10) !important;
  background:#f9fbfe !important;
  color:#0b2947 !important;
  padding:12px 14px !important;
  outline:none !important;
  box-shadow:none !important;
  transition:border-color .18s ease, background .18s ease, box-shadow .18s ease !important;
}
.field input{
  height:48px !important;
}
.field textarea{
  min-height:112px !important;
  resize:vertical;
}
.field input::placeholder,
.field textarea::placeholder{
  color:#8da1b6;
}
.field input:focus,
.field textarea:focus{
  background:var(--white) !important;
  border-color:#8eb8ff !important;
  box-shadow:0 0 0 4px rgba(11,99,246,.07) !important;
}
.contact-form .btn{
  align-self:flex-start !important;
  margin-top:5px !important;
  min-height:50px !important;
  padding-inline:26px !important;
  border-radius:var(--radius-9) !important;
}
.contact-meta{
  margin-top:22px !important;
  padding-top:18px !important;
  border-top:1px solid #e8eef5;
  display:flex !important;
  gap:10px 22px !important;
  flex-wrap:wrap !important;
  font-size:12.5px !important;
  font-weight:600 !important;
  color:#71869c !important;
}

.contact-visual img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  filter:saturate(.96) contrast(1.01) !important;
}
.contact-visual::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:linear-gradient(180deg,rgba(7,28,54,0) 47%,rgba(7,28,54,.15) 67%,rgba(7,28,54,.78) 100%) !important;
}
.quote{
  position:absolute !important;
  z-index:2 !important;
  left:30px !important;
  right:30px !important;
  bottom:28px !important;
  padding:0 !important;
  color:var(--white) !important;
  background:transparent !important;
  border:0 !important;
  border-radius:var(--radius-0) !important;
  box-shadow:none !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
.quote p{
  max-width:34ch !important;
  font-size:19px !important;
  line-height:1.42 !important;
  font-weight:700 !important;
  color:var(--white) !important;
}
.quote span{
  display:block !important;
  margin-top:9px !important;
  font-size:12px !important;
  color:rgba(255,255,255,.76) !important;
  font-weight:600 !important;
}

@media (max-width:1180px) and (min-width:961px){
  .contact{
    padding:62px 34px 72px !important;
  }
  .contact-grid{
    grid-template-columns:minmax(0,46%) minmax(0,54%) !important;
    gap:42px !important;
  }
  .contact-visual{
    min-height:520px !important;
  }
  .contact-form-panel h2{
    font-size:clamp(34px,3vw,44px) !important;
  }
}

@media (max-width:960px){
  .contact{
    padding:54px 22px 66px !important;
  }
  .contact-grid{
    grid-template-columns:1fr !important;
    gap:30px !important;
  }
  .contact-visual{
    grid-column:1 !important;
    grid-row:1 !important;
    min-height:420px !important;
    border-radius:var(--radius-16) !important;
  }
  .contact-form-panel{
    grid-column:1 !important;
    grid-row:2 !important;
    padding:0 !important;
  }
  .contact-form-panel h2{
    max-width:13ch !important;
    font-size:clamp(34px,8vw,46px) !important;
  }
  .form-row{
    grid-template-columns:1fr !important;
  }
  .contact-form .btn{
    width:100%;
  }
  .quote{
    left:22px !important;
    right:22px !important;
    bottom:22px !important;
  }
  .quote p{
    font-size:17px !important;
  }
}


/* =========================================================
   V22 — CTA mais compacto e alinhado com a secção Contact
   ========================================================= */

/* Reduz o espaço branco que fica entre Contact e CTA. */
@media (min-width:961px){
  .contact{
    padding-bottom:48px !important;
  }

  .cta-banner{
    padding:0 48px 48px !important;
    background:var(--white) !important;
  }

  /* Usa exatamente a mesma largura máxima/alinhamento do .contact-grid.
     Assim a margem esquerda/direita do CTA acompanha a imagem do Contact. */
  .cta-inner{
    width:100%;
    max-width:1500px;
    margin:0 auto;
    padding:48px 44px !important;
    border-radius:var(--radius-22);
  }

  .cta-inner .eyebrow{
    margin-bottom:16px;
  }

  .cta-inner h2{
    font-size:clamp(34px,3.6vw,52px);
  }

  .cta-inner .btn{
    margin-top:22px;
  }
}

@media (max-width:960px){
  .contact{
    padding-bottom:38px !important;
  }

  .cta-banner{
    padding:0 22px 42px !important;
  }

  .cta-inner{
    padding:42px 24px !important;
    border-radius:var(--radius-18);
  }

  .cta-inner .btn{
    margin-top:20px;
  }
}

@media (max-width:680px){
  .cta-banner{
    padding-inline:16px !important;
    padding-bottom:34px !important;
  }

  .cta-inner{
    padding:36px 20px !important;
  }
}


/* =========================================================
   V23 — footer mais sofisticado e alinhado com o resto do site
   Sem alterar textos nem estrutura HTML.
   ========================================================= */

footer{
  position:relative;
  padding:38px 48px 26px !important;
  background:
    radial-gradient(circle at 14% 0%, rgba(31,102,205,.10), transparent 26%),
    linear-gradient(180deg,#071f3f 0%,var(--navy-footer) 100%) !important;
  color:#9fb4ca;
  overflow:hidden;
}

/* detalhe muito discreto no topo */
footer::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:linear-gradient(90deg,
    rgba(255,255,255,0),
    rgba(89,151,255,.34) 22%,
    rgba(255,255,255,.15) 50%,
    rgba(89,151,255,.34) 78%,
    rgba(255,255,255,0)
  );
}

.footer-grid{
  width:100%;
  max-width:1500px;
  margin:0 auto;
  padding:8px 0 30px;
  display:grid !important;
  grid-template-columns:minmax(220px,1fr) auto;
  align-items:center !important;
  gap:48px !important;
}

/* Logo com mais presença, mas sem ficar grande */
.footer-logo{
  display:flex;
  align-items:center;
  min-width:0;
}

.footer-logo img{
  height:39px !important;
  width:auto;
  opacity:.98;
  filter:brightness(0) invert(1) !important;
}

/* Navegação mais limpa e premium */
.footer-links{
  display:flex !important;
  align-items:center;
  justify-content:flex-end;
  gap:36px !important;
  flex-wrap:wrap;
  font-size:13.5px !important;
  font-weight:600 !important;
}

.footer-links a{
  position:relative;
  color:rgba(219,232,246,.72);
  transition:color var(--transition-fast), transform .18s ease;
}

.footer-links a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:1px;
  background:var(--blue-500);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .18s ease;
  opacity:.85;
}

.footer-links a:hover{
  color:var(--white) !important;
  transform:translateY(-1px);
}

.footer-links a:hover::after{
  transform:scaleX(1);
}

/* Mantém o rodapé inferior alinhado com a grelha superior */
.footer-bottom{
  width:100%;
  max-width:1500px;
  margin:0 auto !important;
  padding-top:21px !important;
  border-top:1px solid rgba(255,255,255,.09) !important;
  display:flex !important;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  font-size:12px !important;
  color:#718aa4 !important;
}

.footer-bottom a{
  transition:color var(--transition-fast);
}

.footer-bottom a:hover{
  color:#dbe8f5;
}

.footer-legal{
  display:flex !important;
  align-items:center;
  gap:24px !important;
}

@media (max-width:960px){
  footer{
    padding:34px 24px 24px !important;
  }

  .footer-grid{
    grid-template-columns:1fr;
    gap:26px !important;
    padding-bottom:26px;
  }

  .footer-links{
    justify-content:flex-start;
    gap:24px !important;
  }
}

@media (max-width:680px){
  footer{
    padding-inline:20px !important;
  }

  .footer-grid{
    align-items:flex-start !important;
  }

  .footer-logo img{
    height:36px !important;
  }

  .footer-links{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    gap:16px 24px !important;
  }

  .footer-links a::after{
    display:none;
  }

  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
  }

  .footer-legal{
    flex-wrap:wrap;
    gap:16px !important;
  }
}


/* =========================================================
   V24 — alinhamento vertical exato da imagem no Contact
   Topo da imagem = topo de "FALE CONNOSCO"
   Fundo da imagem = fundo da linha dos contactos.
   ========================================================= */
@media (min-width:961px){
  .contact-grid{
    align-items:stretch !important;
  }

  .contact-form-panel{
    /* mantém os 24px/20px que definem o início/fim real do conteúdo */
    padding:24px 24px 20px 0 !important;
  }

  .contact-visual{
    align-self:stretch !important;
    height:auto !important;
    min-height:0 !important;

    /* O painel do formulário tem 24px acima do eyebrow e 20px
       abaixo da linha de contactos. Repetimos exatamente esses
       offsets na imagem. */
    margin-top:24px !important;
    margin-bottom:20px !important;
  }
}

@media (max-width:960px){
  .contact-visual{
    margin-top:0 !important;
    margin-bottom:0 !important;
    min-height:420px !important;
  }
}

/* =========================================================
   V25 — botão da nav mais próximo da direita
   ========================================================= */
.nav{
  padding:0 10px 0 28px !important;
}

@media (max-width:960px){
  .nav{
    padding-inline:18px 10px !important;
  }
}


/* =========================================================
   V26 — largura máxima consistente do conteúdo
   Os fundos continuam full-width; apenas o conteúdo interno
   de HERO / STATS / SOLUTIONS passa a respeitar a mesma
   largura máxima usada no CONTACT.
   ========================================================= */

/* HERO: fundo continua de ponta a ponta; conteúdo fica centrado */
.hero-content{
  width:100%;
  max-width:var(--content-max);
  margin-inline:auto;
}

/* STATS: fundo full-width, itens limitados à largura de conteúdo */
.stats-grid{
  width:100%;
  max-width:var(--content-max);
  margin-inline:auto;
}

/* SOLUTIONS: fundo azul continua full-width; conteúdo fica centrado */
.solutions-grid{
  width:100%;
  max-width:var(--content-max);
  margin-inline:auto;
}

/* Mantém CONTACT e CTA na mesma referência de largura */
.contact-grid,
.cta-inner,
.footer-grid,
.footer-bottom{
  max-width:var(--content-max) !important;
}

/* Em desktop médio, garante algum respiro lateral sem quebrar o max-width */
@media (min-width:961px) and (max-width:1560px){
  .hero-content,
  .stats-grid,
  .solutions-grid{
    width:calc(100% - 64px);
  }
}

/* Tablet/mobile: volta a ocupar a largura disponível normalmente */
@media (max-width:960px){
  .hero-content,
  .stats-grid,
  .solutions-grid{
    width:100%;
    
  }
}


/* =========================================================
   V27 — alinhamento real do conteúdo + HERO full-bleed
   ---------------------------------------------------------
   - Fundos e imagens continuam de ponta a ponta.
   - Apenas TEXTO/conteúdo respeita a largura máxima.
   - HERO visual deixa de estar limitado aos 1500px.
   - STATS começa/termina nas mesmas linhas do CONTACT.
   - SOLUTIONS usa a mesma grelha de conteúdo.
   ========================================================= */

@media (max-width:1180px) and (min-width:961px){
  :root{
    --content-gutter:34px;
  }
}

/* ---------- HERO ---------- */
/* O contentor do hero volta a ser full-width.
   Isto é essencial para a hero-visual.png chegar novamente
   até ao lado direito do ecrã como estava antes. */
.hero-content{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}

/* Só o bloco de texto respeita a grelha de conteúdo.
   A fórmula coincide com a margem real do .contact-grid:
   - mínimo = gutter da secção Contact
   - em ecrãs largos = (viewport - 1500px) / 2 */
@media (min-width:961px){
  .hero-copy{
    left:max(
      var(--content-gutter),
      calc((100% - var(--content-max)) / 2)
    ) !important;
  }

  /* A imagem continua absolutamente livre/full-bleed. */
  .hero-visual-wrap{
    left:34.4% !important;
    right:0 !important;
    width:auto !important;
    max-width:none !important;
  }

  .hero-visual{
    width:100% !important;
    max-width:none !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
}

/* ---------- STATS ---------- */
/* O fundo da section continua full-width.
   Só a grelha interna é limitada e alinhada com o Contact. */
.stats-grid{
  width:min(
    var(--content-max),
    calc(100% - var(--content-gutter) - var(--content-gutter))
  ) !important;
  max-width:none !important;
  margin-inline:auto !important;
}

/* O primeiro item começa exatamente na linha vertical esquerda
   e o último termina exatamente na linha vertical direita. */
@media (min-width:961px){
  .stat{
    padding-inline:28px !important;
  }

  .stat:first-child{
    justify-content:flex-start;
    padding-left:0 !important;
  }

  .stat:nth-child(2),
  .stat:nth-child(3){
    justify-content:center;
  }

  .stat:last-child{
    justify-content:flex-end;
    padding-right:0 !important;
  }
}

/* ---------- SOLUTIONS ---------- */
/* Azul de fundo continua full-width. Retiramos apenas o padding
   horizontal da section e aplicamo-lo através da grelha centrada. */
@media (min-width:961px){
  .solutions{
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .solutions-grid{
    width:min(
      var(--content-max),
      calc(100% - var(--content-gutter) - var(--content-gutter))
    ) !important;
    max-width:none !important;
    margin-inline:auto !important;
  }

  /* Faz o eyebrow/título arrancarem exatamente na mesma linha. */
  .solutions-intro{
    padding-left:0 !important;
  }
}

/* Mobile/tablet mantém o comportamento responsivo existente. */
@media (max-width:960px){
  .hero-content,
  .stats-grid,
  .solutions-grid{
    width:100% !important;
    max-width:none !important;
  }
}


/* =========================================================
   V28 — CTA com fundo de ponta a ponta
   O fundo azul claro pertence agora à section inteira.
   O conteúdo continua limitado à grelha máxima do site.
   ========================================================= */

.cta-banner{
  position:relative;
  padding:46px 48px 48px !important;
  background:
    radial-gradient(circle at 88% 8%, rgba(64,139,255,.18), transparent 28%),
    radial-gradient(circle at 10% 100%, rgba(92,162,255,.12), transparent 30%),
    linear-gradient(135deg,#eaf4ff 0%,#f7fbff 48%,#e9f3ff 100%) !important;
  overflow:hidden;
}

.cta-inner{
  width:100%;
  max-width:var(--content-max,1500px) !important;
  margin:0 auto !important;
  padding:38px 44px !important;
  text-align:center;
  border:0 !important;
  border-radius:var(--radius-0) !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
}

.cta-inner::before,
.cta-inner::after{
  display:none !important;
}

.cta-inner .eyebrow{
  margin-bottom:16px !important;
}

.cta-inner h2{
  font-size:clamp(34px,3.6vw,52px) !important;
}

.cta-inner .btn{
  margin-top:22px !important;
}

@media (max-width:960px){
  .cta-banner{
    padding:38px 22px 40px !important;
  }

  .cta-inner{
    padding:30px 20px !important;
  }
}

@media (max-width:680px){
  .cta-banner{
    padding:32px 16px 34px !important;
  }

  .cta-inner{
    padding:24px 8px !important;
  }
}


/* =========================================================
   V29 — botões sem sombras
   Hover feito apenas por alteração de fundo/cor.
   ========================================================= */

.btn{
  box-shadow:none !important;
  transform:none !important;
}

.btn-primary{
  box-shadow:none !important;
  background:var(--blue-600) !important;
  transition:background-color var(--transition-fast), color var(--transition-fast) !important;
}

.btn-primary:hover{
  background:var(--blue-hover) !important;
  box-shadow:none !important;
  transform:none !important;
}

.btn-primary:active{
  background:var(--blue-active) !important;
  box-shadow:none !important;
  transform:none !important;
}

/* Links/botões secundários sem efeito de elevação */
.btn-ghost-link{
  box-shadow:none !important;
  transform:none !important;
  transition:color var(--transition-fast) !important;
}

.btn-ghost-link:hover{
  transform:none !important;
}


/* =========================================================
   V30 — botão "Enviar" alinhado à direita no formulário
   ========================================================= */

@media (min-width:961px){
  .contact-form .btn{
    align-self:flex-end !important;
  }
}


/* =========================================================
   V31 — hero visual automático
   Duas imagens, troca a cada 10s, crossfade super suave.
   ========================================================= */

.hero-visual-wrap{
  background:#081f40;
}

.hero-slide{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;

  opacity:0;
  visibility:hidden;

  transition:
    opacity var(--hero-fade-duration) cubic-bezier(.4,0,.2,1),
    visibility 0s linear var(--hero-fade-duration) !important;

  will-change:opacity;
}

.hero-slide.is-active{
  opacity:1;
  visibility:visible;

  transition:
    opacity var(--hero-fade-duration) cubic-bezier(.4,0,.2,1),
    visibility 0s linear 0s !important;
}

/* Evita qualquer flash branco entre imagens. */
.hero-visual-wrap .hero-slide{
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

/* Acessibilidade: se o utilizador pedir menos animação,
   permanece apenas a primeira imagem. */
@media (prefers-reduced-motion: reduce){
  .hero-slide{
    transition:none !important;
  }

  .hero-slide:not(.is-active){
    display:none !important;
  }
}


/* =========================================================
   V32 — refinamento SOLUTIONS
   - mesma cor do link em eyebrow e números
   - números maiores e centrados verticalmente entre título/texto
   - título esquerdo em duas linhas:
     "Menos tarefas. Mais controlo."
     "Melhor gestão."
   ========================================================= */

@media (min-width:961px){
  .solutions-grid{
    grid-template-columns:50% 50% !important;
  }

  .solutions-intro{
    padding-right:56px !important;
  }

  .solutions-intro .eyebrow{
    color:var(--blue-500) !important;
    opacity:1 !important;
  }

  .solutions-intro h2{
    font-size:clamp(34px,2.5vw,44px) !important;
    line-height:1.07 !important;
    max-width:none !important;
  }

  .solutions-intro h2 span{
    display:block !important;
  }

  .solutions-intro h2 span:first-child{
    white-space:nowrap !important;
  }

  .solutions-intro h2 span + span{
    margin-top:4px !important;
  }

  .solution-list{
    padding-left:46px !important;
  }

  .solution-copy{
    display:grid !important;
    grid-template-columns:62px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;
    column-gap:18px !important;
    row-gap:6px !important;
    align-items:center !important;
  }

  .solution-copy .n{
    grid-column:1 !important;
    grid-row:1 / 3 !important;
    align-self:center !important;
    justify-self:start !important;
    padding:0 !important;
    color:var(--blue-500) !important;
    opacity:1 !important;
    font-size:15px !important;
    line-height:1 !important;
    font-weight:800 !important;
  }

  .solution-copy h3{
    grid-column:2 !important;
    grid-row:1 !important;
    margin:0 !important;
    align-self:end !important;
  }

  .solution-copy p{
    grid-column:2 !important;
    grid-row:2 !important;
    margin:0 !important;
    align-self:start !important;
  }
}

@media (max-width:1180px) and (min-width:961px){
  .solutions-grid{
    grid-template-columns:48% 52% !important;
  }

  .solutions-intro{
    padding-right:36px !important;
  }

  .solutions-intro h2{
    font-size:clamp(31px,2.6vw,39px) !important;
  }

  .solutions-intro h2 span:first-child{
    white-space:normal !important;
  }

  .solution-list{
    padding-left:28px !important;
  }

  .solution-copy{
    grid-template-columns:52px minmax(0,1fr) !important;
    column-gap:14px !important;
  }

  .solution-copy .n{
    font-size:14px !important;
  }
}

@media (max-width:960px){
  .solutions-intro .eyebrow,
  .solution-copy .n{
    color:var(--blue-500) !important;
    opacity:1 !important;
  }

  .solutions-intro h2 span{
    display:block !important;
    white-space:normal !important;
  }

  .solution-copy{
    display:grid !important;
    grid-template-columns:44px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;
    column-gap:12px !important;
    row-gap:5px !important;
    align-items:center !important;
  }

  .solution-copy .n{
    grid-column:1 !important;
    grid-row:1 / 3 !important;
    align-self:center !important;
    padding:0 !important;
    font-size:14px !important;
  }

  .solution-copy h3{
    grid-column:2 !important;
    grid-row:1 !important;
    margin:0 !important;
  }

  .solution-copy p{
    grid-column:2 !important;
    grid-row:2 !important;
    margin:0 !important;
  }
}


/* =========================================================
   V33 — CONTACT mais compacto e horizontal
   - título numa única linha
   - descrição numa única linha
   - imagem acompanha automaticamente a nova altura do formulário
   - topo/base da imagem continuam alinhados com eyebrow/contact-meta
   ========================================================= */

@media (min-width:1181px){
  .contact-grid{
    /* dá um pouco mais de largura ao formulário para as duas
       frases ficarem numa linha sem reduzir demasiado o texto */
    grid-template-columns:minmax(0,44%) minmax(0,56%) !important;
    gap:56px !important;
    align-items:stretch !important;
  }

  .contact-form-panel{
    padding:24px 0 20px 0 !important;
    min-width:0;
  }

  .contact-form-panel h2{
    max-width:none !important;
    width:100%;
    white-space:nowrap !important;
    font-size:clamp(35px,2.35vw,42px) !important;
    line-height:1.06 !important;
    /*letter-spacing:-.045em !important;*/
  }

  .contact-form-panel .lede{
    max-width:none !important;
    width:100%;
    white-space:nowrap !important;
    font-size:15.5px !important;
    line-height:1.5 !important;
    margin-top:14px !important;
  }

  /* ligeiramente mais compacto para a imagem também baixar de altura */
  .contact-form{
    margin-top:25px !important;
    gap:13px !important;
  }

  .field textarea{
    min-height:100px !important;
  }

  .contact-meta{
    margin-top:19px !important;
    padding-top:16px !important;
  }

  /* A altura deixa de ser imposta: acompanha exatamente a altura
     útil do conteúdo do lado direito. */
  .contact-visual{
    height:auto !important;
    min-height:0 !important;
    align-self:stretch !important;
    margin-top:24px !important;
    margin-bottom:20px !important;
  }
}

/* Desktop intermédio: mantém uma só linha sempre que houver espaço,
   mas reduz de forma controlada antes de entrar no layout tablet. */
@media (max-width:1180px) and (min-width:961px){
  .contact-grid{
    grid-template-columns:minmax(0,42%) minmax(0,58%) !important;
    gap:34px !important;
    align-items:stretch !important;
  }

  .contact-form-panel{
    padding:24px 0 20px 0 !important;
  }

  .contact-form-panel h2{
    max-width:none !important;
    width:100%;
    white-space:nowrap !important;
    font-size:clamp(30px,2.8vw,36px) !important;
  }

  .contact-form-panel .lede{
    max-width:none !important;
    width:100%;
    white-space:nowrap !important;
    font-size:14px !important;
  }

  .field textarea{
    min-height:96px !important;
  }

  .contact-visual{
    height:auto !important;
    min-height:0 !important;
    align-self:stretch !important;
    margin-top:24px !important;
    margin-bottom:20px !important;
  }
}

/* Em mobile volta ao comportamento natural para evitar overflow. */
@media (max-width:960px){
  .contact-form-panel h2,
  .contact-form-panel .lede{
    white-space:normal !important;
  }
}


/* =========================================================
   V34 — CONTACT como "viewport section" ao navegar por âncora
   O espaço branco superior/inferior é estrutural, não feito com <br>.
   ========================================================= */

@media (min-width:961px){
  .contact{
    min-height:100vh !important;
    min-height:100dvh !important;
    padding:0 var(--content-gutter,48px) !important;
    display:flex !important;
    align-items:center !important;
    background:var(--white) !important;
  }

  .contact-grid{
    width:100% !important;
    flex:0 0 auto;
  }
}


/* =========================================================
   V35 — âncora da secção SOLUÇÕES
   Ao clicar no menu "Soluções", a secção começa logo abaixo
   da navbar fixa, com um pequeno respiro visual.
   ========================================================= */

@media (min-width:961px){
  #solucoes{
    scroll-margin-top:105px;
  }
}

@media (max-width:960px){
  #solucoes{
    scroll-margin-top:78px;
  }
}


/* =========================================================
   FORMULÁRIO DE CONTACTO — feedback AJAX
   Não altera o design base; só apresenta o estado do envio.
   ========================================================= */
.form-status{
  min-height:0;
  margin:0;
  align-self:flex-end;
  font-size:12.5px;
  font-weight:600;
  line-height:1.45;
  text-align:right;
}
.form-status:empty{display:none}
.form-status.is-success{color:#18a874}
.form-status.is-error{color:#c63d4b}
.contact-form .btn:disabled{opacity:.72;cursor:wait}


/* =========================================================
   CONTACT — feedback do envio na mesma linha do botão
   Mantém o layout atual e melhora apenas a mensagem AJAX.
   ========================================================= */

.form-submit-row{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  margin-top:3px;
}

.form-submit-row .btn{
  flex:0 0 auto;
  margin-top:0 !important;
}

.form-status{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:42px;
  max-width:560px;
  margin:0;
  padding:9px 13px;
  border:1px solid transparent;
  border-radius:10px;
  font-size:12.5px;
  font-weight:650;
  line-height:1.35;
  text-align:left;
  opacity:0;
  transform:translateY(3px);
  transition:
    opacity .22s ease,
    transform .22s ease,
    background-color .22s ease,
    border-color .22s ease;
}

.form-status:empty{
  display:none;
}

.form-status:not(:empty){
  opacity:1;
  transform:translateY(0);
}

.form-status::before{
  content:"";
  width:22px;
  height:22px;
  flex:0 0 22px;
  display:grid;
  place-items:center;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
  line-height:1;
}

.form-status.is-success{
  color:#0b5f47;
  background:linear-gradient(180deg,#f6fcf9 0%,#eefaf5 100%);
  border-color:rgba(24,196,134,.22);
}

.form-status.is-success::before{
  content:"✓";
  color:#fff;
  background:#18b77d;
}

.form-status.is-error{
  color:#8d3440;
  background:linear-gradient(180deg,#fff9fa 0%,#fff3f5 100%);
  border-color:rgba(198,61,75,.18);
}

.form-status.is-error::before{
  content:"!";
  color:#fff;
  background:#c63d4b;
}

.contact-form .btn:disabled{
  opacity:.72;
  cursor:wait;
}

@media (max-width:680px){
  .form-submit-row{
    align-items:stretch;
    flex-direction:column-reverse;
    gap:10px;
  }

  .form-submit-row .btn{
    width:100%;
  }

  .form-status{
    max-width:none;
    width:100%;
  }
}


/* =========================================================
   CONTACT — refinamento final do feedback de sucesso
   ========================================================= */

.form-submit-row{
  width:100%;
  align-items:stretch !important;
}

.form-submit-row .form-status{
  flex:1 1 auto !important;
  width:auto !important;
  max-width:none !important;
  min-height:52px !important;
  height:52px !important;
  padding:0 16px !important;
  justify-content:flex-start !important;
}

.form-submit-row .btn{
  min-height:52px !important;
  height:52px !important;
  flex:0 0 auto !important;
}

/* Mantém apenas o visto circular à esquerda.
   O texto já não contém o carácter ✓. */
.form-status.is-success::before{
  content:"✓" !important;
}

/* Mobile continua empilhado de forma limpa. */
@media (max-width:680px){
  .form-submit-row .form-status{
    width:100% !important;
    height:auto !important;
    min-height:52px !important;
  }
}


/* =========================================================
   CONTACT META — barra de contactos simples, moderna e clean
   Apenas apresentação; HTML e restante layout ficam inalterados.
   ========================================================= */

.contact-meta{
  width:100% !important;
  min-height:54px !important;
  margin-top:19px !important;
  padding:0 !important;

  display:grid !important;
  grid-template-columns:minmax(0,1.55fr) minmax(0,.82fr) minmax(0,.88fr) !important;
  gap:0 !important;
  flex-wrap:nowrap !important;

  overflow:hidden;
  border:1px solid #e2ebf5 !important;
  border-radius:var(--radius-12) !important;
  background:linear-gradient(180deg,#fbfdff 0%,#f7faff 100%) !important;

  font-size:12px !important;
  font-weight:650 !important;
  color:#607891 !important;
}

.contact-meta > span{
  position:relative;
  min-width:0;
  display:flex;
  align-items:center;
  padding:0 18px;
  line-height:1.35;
  white-space:nowrap;
}

.contact-meta > span:nth-child(2),
.contact-meta > span:nth-child(3){
  justify-content:center;
}

.contact-meta > span:not(:last-child)::after{
  content:"";
  position:absolute;
  top:12px;
  right:0;
  bottom:12px;
  width:1px;
  background:#e2ebf5;
}

/* Pequeno detalhe azul, sem adicionar ícones nem alterar o HTML */
.contact-meta > span::before{
  content:"";
  width:5px;
  height:5px;
  flex:0 0 5px;
  margin-right:9px;
  border-radius:var(--radius-circle);
  background:var(--blue-600);
  opacity:.72;
}

/* Tablet/mobile: mantém leitura confortável sem overflow */
@media (max-width:960px){
  .contact-meta{
    grid-template-columns:1fr !important;
  }

  .contact-meta > span{
    min-height:46px;
    justify-content:flex-start !important;
    padding:0 14px;
  }

  .contact-meta > span:not(:last-child)::after{
    top:auto;
    left:14px;
    right:14px;
    bottom:0;
    width:auto;
    height:1px;
  }
}


/* =========================================================
   FOOTER — navegação + redes sociais
   Mantém o layout atual e acrescenta apenas os links sociais.
   ========================================================= */

.footer-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:30px;
  flex-wrap:wrap;
}

.footer-socials{
  display:flex;
  align-items:center;
  gap:9px;
}

.footer-social-link{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  flex:0 0 38px;

  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-10);
  background:rgba(255,255,255,.035);
  color:#9fb4ca;

  transition:
    color var(--transition-fast),
    background-color var(--transition-fast),
    border-color var(--transition-fast);
}

.footer-social-link svg{
  width:17px;
  height:17px;
  display:block;
  fill:currentColor;
}

.footer-social-link svg rect,
.footer-social-link svg circle,
.footer-social-link svg path{
  vector-effect:non-scaling-stroke;
}

/* Instagram é outline; restantes usam preenchimento. */
.footer-social-link[aria-label="Instagram"] svg{
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
}

/* Mantém o triângulo do YouTube recortado em azul-marinho. */
.footer-social-link[aria-label="YouTube"] .youtube-play{
  fill:var(--navy-footer);
  stroke:none;
}

.footer-social-link:hover{
  color:var(--white);
  background:var(--blue-600);
  border-color:var(--blue-600);
}

.footer-social-link[aria-label="YouTube"]:hover .youtube-play{
  fill:var(--blue-600);
}

/* Melhor distribuição do footer em desktop */
@media (min-width:961px){
  .footer-grid{
    flex-wrap:nowrap;
  }

  .footer-actions{
    margin-left:auto;
  }
}

/* Tablet/mobile */
@media (max-width:960px){
  .footer-actions{
    width:100%;
    justify-content:space-between;
  }
}

@media (max-width:680px){
  .footer-actions{
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
  }
}



/* =========================================================
   FORMULÁRIO DE CONTACTO — validação moderna dos campos
   Obrigatórios: Nome, Email e Mensagem.
   ========================================================= */

.field{
  position:relative;
}

.field-error{
  display:none;
  margin:7px 2px 0;
  align-items:center;
  gap:7px;
  color:#a53b48;
  font-size:11.5px;
  font-weight:650;
  line-height:1.35;
}

.field-error::before{
  content:"!";
  width:17px;
  height:17px;
  flex:0 0 17px;
  display:inline-grid;
  place-items:center;
  border-radius:var(--radius-circle);
  background:#d64a59;
  color:var(--white);
  font-size:10px;
  font-weight:800;
  line-height:1;
}

.field.is-invalid .field-error{
  display:flex;
  animation:fieldErrorIn .18s ease both;
}

.field.is-invalid input,
.field.is-invalid textarea{
  border-color:#e2a8af !important;
  background:#fffafb !important;
  box-shadow:0 0 0 4px rgba(198,61,75,.06) !important;
}

.field.is-invalid input:focus,
.field.is-invalid textarea:focus{
  border-color:#d87581 !important;
  background:var(--white) !important;
  box-shadow:0 0 0 4px rgba(198,61,75,.09) !important;
}

@keyframes fieldErrorIn{
  from{opacity:0;transform:translateY(-3px)}
  to{opacity:1;transform:translateY(0)}
}

@media (prefers-reduced-motion:reduce){
  .field.is-invalid .field-error{animation:none}
}


/* =========================================================
   FOOTER — linha de contactos
   Replica a solução visual aprovada sem alterar o resto.
   ========================================================= */

.footer-contact-meta{
  width:100%;
  max-width:var(--content-max);
  margin:0 auto;
  padding:18px 0;
  display:grid;
  grid-template-columns:1.18fr .82fr .90fr;
  align-items:center;
  border-top:1px solid rgba(255,255,255,.10);
  color:rgba(226,236,247,.92);
}

.footer-contact-item{
  min-width:0;
  min-height:44px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:0 28px;
  font-size:13px;
  font-weight:600;
  line-height:1.35;
  white-space:nowrap;
}

.footer-contact-item:first-child{
  padding-left:0;
}

.footer-contact-item:not(:first-child){
  border-left:1px solid rgba(255,255,255,.12);
}

.footer-contact-icon{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(124,171,226,.18);
  border-radius:var(--radius-circle);
  background:rgba(255,255,255,.035);
  color:#a8c8f6;
}

.footer-contact-icon svg{
  width:19px;
  height:19px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.footer-contact-item a{
  color:inherit;
  transition:color var(--transition-fast);
}

.footer-contact-item a:hover{
  color:var(--white);
}

/* A linha inferior já pertence ao .footer-bottom existente. */
.footer-contact-meta + .footer-bottom{
  margin-top:0 !important;
}

@media (max-width:960px){
  .footer-contact-meta{
    grid-template-columns:1fr;
    padding:8px 0 4px;
  }

  .footer-contact-item,
  .footer-contact-item:first-child{
    min-height:54px;
    padding:8px 0;
  }

  .footer-contact-item:not(:first-child){
    border-left:0;
    border-top:1px solid rgba(255,255,255,.08);
  }
}

@media (max-width:680px){
  .footer-contact-item{
    font-size:12.5px;
    white-space:normal;
  }

  .footer-contact-icon{
    width:36px;
    height:36px;
    flex-basis:36px;
  }
}


/* =========================================================
   FOOTER — versão final fiel ao mockup aprovado
   Alteração exclusivamente visual do footer.
   ========================================================= */

/* Footer mais compacto verticalmente, como no mockup */
footer{
  padding:26px 48px 20px !important;
}

/* Linha principal:
   logo | morada | telefone | email | redes sociais */
.footer-grid{
  width:100% !important;
  max-width:var(--content-max) !important;
  margin:0 auto !important;
  padding:0 0 18px !important;

  display:grid !important;
  grid-template-columns:20.7% 28.3% 15.1% 15.8% 20.1% !important;
  align-items:center !important;
  gap:0 !important;
}

/* O wrapper deixa de criar uma coluna própria;
   os 3 contactos passam a participar diretamente na grelha. */
.footer-contact-meta{
  display:contents !important;
}

/* Logo */
.footer-logo{
  min-width:0;
  min-height:52px;
  display:flex !important;
  align-items:center !important;
  padding-right:30px;
  border-right:1px solid rgba(255,255,255,.12);
}

.footer-logo img{
  height:42px !important;
  width:auto !important;
  opacity:.98;
}

/* Contactos — sem ícones */
.footer-contact-meta > span,
.footer-contact-meta > a{
  position:relative;
  min-width:0;
  min-height:52px;

  display:flex;
  align-items:center;

  white-space:nowrap;
  font-size:12px !important;
  font-weight:500 !important;
  line-height:1.35;
  color:rgba(226,236,247,.86) !important;
}

/* Morada */
.footer-contact-meta > span{
  justify-content:center;
  padding:0 26px;
}

/* Telefone */
.footer-contact-meta > a:nth-of-type(1){
  justify-content:center;
  padding:0 18px;
}

/* Email */
.footer-contact-meta > a:nth-of-type(2){
  justify-content:center;
  padding:0 22px;
}

/* Separadores curtos em torno do telefone */
.footer-contact-meta > a:nth-of-type(1)::before,
.footer-contact-meta > a:nth-of-type(1)::after{
  content:"";
  position:absolute;
  top:14px;
  bottom:14px;
  width:1px;
  background:rgba(255,255,255,.14);
}

.footer-contact-meta > a:nth-of-type(1)::before{
  left:0;
}

.footer-contact-meta > a:nth-of-type(1)::after{
  right:0;
}


.footer-contact-meta > a{
  transition:color var(--transition-fast);
}

.footer-contact-meta > a:hover{
  color:var(--white) !important;
}

/* Redes sociais no extremo direito */
.footer-socials{
  min-height:52px;
  padding-left:28px;
  border-left:1px solid rgba(255,255,255,.12);

  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:9px !important;
  flex-wrap:nowrap !important;
}

/* Mantém os botões sociais já existentes, apenas com escala do mockup */
.footer-social-link{
  width:38px !important;
  height:38px !important;
  flex:0 0 38px !important;
  border-radius:var(--radius-10) !important;
}

/* Linha inferior */
.footer-bottom{
  width:100% !important;
  max-width:var(--content-max) !important;
  margin:0 auto !important;
  padding-top:17px !important;
  border-top:1px solid rgba(255,255,255,.09) !important;
  font-size:12px !important;
}

/* Desktop intermédio */
@media (max-width:1180px) and (min-width:961px){
  footer{
    padding-inline:34px !important;
  }

  .footer-grid{
    grid-template-columns:20% 29% 15% 16% 20% !important;
  }

  .footer-logo{
    padding-right:22px;
  }

  .footer-logo img{
    height:40px !important;
  }

  .footer-contact-meta > span{
    padding-inline:18px;
  }

  .footer-contact-meta > span,
  .footer-contact-meta > a{
    font-size:11.5px !important;
  }

  .footer-socials{
    padding-left:20px;
  }
}

/* Tablet/mobile */
@media (max-width:960px){
  footer{
    padding:30px 24px 22px !important;
  }

  .footer-grid{
    grid-template-columns:1fr !important;
    gap:18px !important;
    padding-bottom:20px !important;
  }

  .footer-logo{
    min-height:0;
    padding-right:0;
    border-right:0;
  }

  .footer-contact-meta{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:0 !important;
  }

  .footer-contact-meta > span,
  .footer-contact-meta > a{
    min-height:38px;
    justify-content:flex-start !important;
    padding:0 !important;
    border:0 !important;
    white-space:normal;
  }

  .footer-socials{
    min-height:0;
    padding-left:0;
    border-left:0;
    justify-content:flex-start !important;
  }

  .footer-bottom{
    padding-top:18px !important;
  }
}

