/* Montserrat carregada via <link> no <head> de cada página (melhor performance que @import) */
:root{--blue:#203A72;--blue2:#03598C;--cyan:#2CACE2;--ink:#46536b;--soft:#6b7a93;--line:#e7edf5;}
*{box-sizing:border-box;}
body{margin:0;font-family:'Montserrat',system-ui,sans-serif;color:var(--ink);background:#eef3f8;}
a{text-decoration:none;color:inherit;}
.wrap{max-width:1040px;margin:0 auto;background:#fff;min-height:100vh;box-shadow:0 0 40px rgba(32,58,114,.08);}

/* top bar */
.topbar{position:sticky;top:0;z-index:30;background:rgba(32,58,114,.97);backdrop-filter:blur(6px);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:10px 22px;}
.topbar .lft{display:flex;align-items:center;gap:16px;}
.topbar img{width:96px;display:block;}
.topbar .logo{display:inline-flex;align-items:center;transition:opacity .2s,transform .2s;}
.topbar .logo:hover{opacity:.85;transform:scale(1.03);}
.topbar .back{font-size:11px;font-weight:700;color:#bfe3f5;cursor:pointer;transition:.2s;}
.topbar .back:hover{color:#fff;transform:translateX(-3px);}
.topbar .navlink{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:#bfe3f5;padding:6px 13px;border:1px solid rgba(255,255,255,.35);border-radius:5px;transition:.2s;}
.topbar .navlink:hover{background:rgba(255,255,255,.12);color:#fff;border-color:var(--cyan);}
.topbar .right{display:flex;align-items:center;gap:14px;}
.langpill{display:flex;border:1px solid rgba(255,255,255,.35);border-radius:20px;overflow:hidden;font-size:10px;font-weight:800;cursor:pointer;}
.langpill span{padding:4px 11px;color:#bfe3f5;transition:.2s;}
.langpill span.on{background:var(--cyan);color:#fff;}

/* hero (portfolio) */
.hero{position:relative;overflow:hidden;background:linear-gradient(125deg,#1b3266,#03598C);color:#fff;padding:42px 30px 46px;}
.hero .blob{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(44,172,226,.55),transparent 70%);animation:float 9s ease-in-out infinite;}
.hero .b1{width:280px;height:280px;right:-60px;top:-90px;}
.hero .b2{width:180px;height:180px;left:-50px;bottom:-70px;animation-delay:-4s;}
.hero h1{font-size:32px;font-weight:800;margin:0;line-height:1.08;max-width:620px;position:relative;}
.hero .acc{height:5px;width:64px;background:var(--cyan);border-radius:3px;margin:14px 0;position:relative;}
.hero p{font-size:13px;color:#dbeefb;max-width:560px;margin:0;line-height:1.55;position:relative;}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(16px)}}

/* groups */
.grp{padding:26px 30px 6px;}
.gh{display:flex;align-items:center;gap:11px;margin-bottom:16px;}
.gh .bar{width:6px;height:20px;background:var(--cyan);border-radius:3px;}
.gh h3{font-size:15px;font-weight:800;color:var(--blue);margin:0;text-transform:uppercase;letter-spacing:.6px;}
.gh .tag{font-size:9px;font-weight:800;color:#fff;background:var(--blue2);padding:3px 10px;border-radius:10px;}
.gh .tag.port{background:var(--cyan);}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}

/* normal card */
.card{position:relative;border:1px solid #d8e2ef;border-radius:12px;overflow:hidden;background:#fff;cursor:pointer;transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s,border-color .28s;opacity:0;transform:translateY(16px);box-shadow:0 3px 12px rgba(32,58,114,.07);}
.card.in{opacity:1;transform:translateY(0);}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--cyan),var(--blue2));transform:scaleX(0);transform-origin:left;transition:transform .3s;z-index:2;}
.card:hover{transform:translateY(-7px);box-shadow:0 16px 34px rgba(32,58,114,.20);border-color:#bcd4ec;}
.card:hover::before{transform:scaleX(1);}
.card .imgwrap{aspect-ratio:4/3;background:#fff;overflow:hidden;border-bottom:1px solid var(--line);}
.card .imgwrap img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .45s ease;}
.card:hover .imgwrap img{transform:scale(1.08);}
.card .body{padding:12px 14px 14px;}
.card .nm{font-size:13px;font-weight:800;color:var(--blue);line-height:1.18;}
.card .ds{font-size:10px;color:var(--soft);margin-top:5px;line-height:1.4;}
.card .more{margin-top:10px;font-size:10px;font-weight:800;color:var(--cyan);opacity:0;transform:translateX(-6px);transition:.3s;}
.card:hover .more{opacity:1;transform:translateX(0);}

/* FLAGSHIP / featured card */
.featured{grid-column:1 / -1;display:flex;gap:0;border-radius:16px;overflow:hidden;cursor:pointer;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;position:relative;box-shadow:0 14px 34px rgba(32,58,114,.28);transition:transform .3s,box-shadow .3s;opacity:0;transform:translateY(16px);}
.featured.in{opacity:1;transform:translateY(0);}
.featured:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(32,58,114,.36);}
.featured .fimg{width:300px;min-width:300px;background:#fff;overflow:hidden;}
.featured .fimg img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .5s;}
.featured:hover .fimg img{transform:scale(1.06);}
.featured .fbody{padding:26px 28px;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2;}
.featured .fblob{position:absolute;right:-40px;top:-50px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(44,172,226,.45),transparent 70%);}
.fbadge{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:var(--cyan);color:#fff;font-size:10px;font-weight:800;letter-spacing:1px;padding:5px 12px;border-radius:20px;margin-bottom:12px;box-shadow:0 4px 14px rgba(44,172,226,.5);}
.featured h3{font-size:24px;font-weight:800;margin:0;line-height:1.12;}
.featured .ftl{font-size:13px;color:#dbeefb;margin:10px 0 14px;max-width:520px;line-height:1.5;}
.featured .fchips span{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);font-size:10px;font-weight:700;padding:3px 10px;border-radius:8px;margin:0 6px 6px 0;}
.featured .fgo{margin-top:14px;font-size:12px;font-weight:800;color:#fff;}

/* ===== PRODUCT PAGE ===== */
.pwrap section{opacity:0;transform:translateY(16px);animation:rise .5s ease forwards;}
.pwrap section:nth-child(2){animation-delay:.06s;}
.pwrap section:nth-child(3){animation-delay:.12s;}
.pwrap section:nth-child(4){animation-delay:.18s;}
.pwrap section:nth-child(5){animation-delay:.24s;}
@keyframes rise{to{opacity:1;transform:translateY(0);}}

.phero{position:relative;display:flex;gap:30px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;padding:34px;overflow:hidden;}
.phero .blob{position:absolute;right:-50px;top:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(44,172,226,.5),transparent 70%);}
/* gallery */
.pgallery{position:relative;z-index:2;width:330px;min-width:330px;}
.pgallery .main{width:100%;aspect-ratio:4/3;background:#fff;border-radius:14px;overflow:hidden;}
.pgallery .main img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:opacity .25s;}
.pgallery .thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.pgallery .thumbs .t{width:60px;height:54px;background:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;border:2px solid transparent;opacity:.65;transition:.2s;}
.pgallery .thumbs .t img{width:100%;height:100%;object-fit:cover;display:block;}
.pgallery .thumbs .t:hover{opacity:1;}
.pgallery .thumbs .t.active{opacity:1;border-color:var(--cyan);box-shadow:0 4px 12px rgba(44,172,226,.4);}
.phero .info{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;flex:1;}
.phero .cat{font-size:10px;font-weight:800;letter-spacing:1px;color:var(--cyan);text-transform:uppercase;}
.phero h1{font-size:29px;font-weight:800;margin:6px 0 0;line-height:1.12;}
.phero .acc{height:4px;width:50px;background:var(--cyan);border-radius:2px;margin:14px 0;}
.phero .tl{font-size:14px;color:#dbeefb;line-height:1.5;max-width:430px;}
.phero .badges{margin-top:16px;}
.phero .badges span{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);font-size:10px;font-weight:700;padding:4px 11px;border-radius:9px;margin:0 6px 6px 0;}
.flagtag{display:inline-flex;align-self:flex-start;background:var(--cyan);color:#fff;font-size:9px;font-weight:800;letter-spacing:1px;padding:4px 11px;border-radius:18px;margin-bottom:10px;}

/* why / highlights band */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:24px 34px;background:#f6f9fc;border-bottom:1px solid var(--line);}
.htile{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;gap:12px;align-items:flex-start;transition:.25s;}
.htile:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(32,58,114,.14);border-color:#cfe3f3;}
.htile .ic{width:34px;height:34px;min-width:34px;border-radius:9px;background:linear-gradient(135deg,var(--cyan),var(--blue2));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:16px;}
.htile .tx{font-size:12px;font-weight:700;color:var(--blue);line-height:1.35;}

/* body */
.pbody{display:flex;gap:34px;padding:30px 34px;}
.pbody .col{flex:1;}
.pbody h4{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--cyan);font-weight:800;margin:0 0 10px;display:flex;align-items:center;gap:8px;}
.pbody h4::before{content:"";width:14px;height:3px;background:var(--cyan);border-radius:2px;}
.pbody p{font-size:13px;line-height:1.65;color:var(--ink);margin:0 0 20px;}
.chip{display:inline-block;background:#eaf6fc;color:var(--blue2);font-size:11px;font-weight:700;padding:5px 12px;border-radius:9px;margin:0 6px 6px 0;}
.pbox{background:#f4f9fd;border-left:4px solid var(--cyan);border-radius:0 10px 10px 0;padding:12px 16px;font-size:12px;color:var(--ink);line-height:1.55;margin-bottom:20px;}
.spectab{width:100%;border-collapse:collapse;margin-bottom:18px;}
.spectab td{font-size:12px;padding:9px 8px;border-bottom:1px solid var(--line);}
.spectab tr:hover td{background:#f4f9fd;}
.spectab td.k{color:var(--blue);font-weight:700;width:46%;}
.obadges span{display:inline-block;background:var(--blue);color:#fff;font-size:10px;font-weight:700;padding:5px 11px;border-radius:7px;margin:0 6px 6px 0;}
.obadges span.cy{background:var(--cyan);}

/* related */
.related{padding:8px 34px 30px;}
.related h4{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--cyan);font-weight:800;margin:0 0 14px;}
.rrow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.rcard{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;cursor:pointer;transition:.25s;}
.rcard:hover{transform:translateY(-5px);box-shadow:0 12px 26px rgba(32,58,114,.16);}
.rcard{box-shadow:0 2px 10px rgba(32,58,114,.06);}
.rcard .ri{height:74px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f7fafd,#eef4fa);}
.rcard .ri img{width:100%;height:100%;object-fit:cover;display:block;}
.rcard .rn{font-size:10px;font-weight:700;color:var(--blue);padding:8px 10px;line-height:1.25;}

.pfoot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:22px 34px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;flex-wrap:wrap;}
.pfoot .pc{font-size:14px;font-weight:800;}
.pfoot .pc small{display:block;font-weight:500;color:#bfe3f5;font-size:11px;margin-top:2px;}
.pfoot .acts{display:flex;gap:10px;flex-wrap:wrap;}
.btn{background:var(--cyan);color:#fff;border:none;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;padding:13px 24px;border-radius:5px;cursor:pointer;transition:.2s;box-shadow:0 6px 16px rgba(44,172,226,.4);}
.btn:hover{background:#1f97cc;transform:translateY(-2px);}
.btn.ghost{background:rgba(255,255,255,.12);color:#fff;box-shadow:none;border:1.5px solid rgba(255,255,255,.4);}
.btn.ghost:hover{background:rgba(255,255,255,.2);}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(30px);background:var(--blue);color:#fff;font-size:12px;font-weight:600;padding:11px 18px;border-radius:10px;opacity:0;transition:.3s;z-index:60;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

@media(max-width:760px){
  .phero{flex-direction:column;}.pgallery{width:100%;min-width:0;}
  .pbody{flex-direction:column;}.why{grid-template-columns:1fr;}
  .cards{grid-template-columns:repeat(2,1fr);}.rrow{grid-template-columns:repeat(2,1fr);}
  .featured{flex-direction:column;}.featured .fimg{width:100%;min-width:0;height:180px;}
}

/* ===== CONTATO / CTA (estilo rodapé AIX) ===== */
.contact{margin-top:26px;position:relative;overflow:hidden;background:#03598C;color:#fff;padding:42px 40px 32px;}
.contact .cta-blob{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(44,172,226,.45),transparent 70%);}
.contact .cb1{right:-70px;top:-80px;width:280px;height:280px;}
.contact .cb2{left:-60px;bottom:-80px;width:200px;height:200px;opacity:.6;}
.contact .cta-top{text-align:center;max-width:720px;margin:0 auto;position:relative;}
.cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px;}
.btn.big{font-size:13px;padding:14px 26px;}
.btn.ghost2{background:rgba(255,255,255,.12);color:#fff;border:1.5px solid rgba(255,255,255,.55);box-shadow:none;}
.btn.ghost2:hover{background:rgba(255,255,255,.22);}
.contact .divider{height:1px;background:rgba(255,255,255,.18);margin:32px 0 24px;position:relative;}
.contact .foot-row{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;position:relative;}
.contact .fcompany h3{font-size:18px;font-weight:800;margin:0 0 10px;letter-spacing:.3px;}
.contact .fcompany .line{display:block;font-size:12.5px;color:#cfe6f5;margin:6px 0;text-decoration:none;}
.contact .fcompany a.line:hover{color:#fff;}
.contact .follow{text-align:right;}
.contact .follow .lbl{font-size:13px;font-weight:700;margin-bottom:12px;}
.contact .socials{display:flex;gap:10px;justify-content:flex-end;}
.contact .socials a{width:38px;height:38px;border-radius:9px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;color:#fff;transition:.2s;}
.contact .socials a:hover{background:var(--cyan);transform:translateY(-2px);}
.contact .socials svg{width:18px;height:18px;}
@media(max-width:760px){.contact .foot-row{flex-direction:column;}.contact .follow{text-align:left;}.contact .socials{justify-content:flex-start;}}

/* acessibilidade & performance */
a:focus-visible,.btn:focus-visible,.langpill:focus-visible,.card:focus-visible,.featured:focus-visible,.rcard:focus-visible,.pgallery .t:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:8px;}
.langpill:focus-visible{outline-offset:2px;}
img{user-select:none;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
  .card,.featured,.pwrap section{opacity:1 !important;transform:none !important;}
}
