/* Solgap — estilos do site. Tokens e regras em docs/DESIGN.md */
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/manrope-latin.woff2) format('woff2')}

:root{
  --escuro:#08252D;--petroleo:#15758F;--petroleo-2:#0E4C5C;--agua:#7FD3E6;--laranja:#F2A51F;
  --nevoa:#EEF6F8;--suave:#4A6168;--linha:#D5E5E9;--claro-txt:#CFE6EC;
  --curva:cubic-bezier(.2,.7,.2,1);--margem:clamp(16px,4vw,56px);--largura:1320px;
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{font:400 17px/1.55 'Manrope',system-ui,sans-serif;color:var(--escuro);background:#fff;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--laranja);outline-offset:3px}
h1,h2,h3{font-weight:800;letter-spacing:-.035em;line-height:1.04;text-wrap:balance}
h1{font-size:clamp(40px,5.4vw,82px)}
h2{font-size:clamp(32px,4.6vw,60px);margin-bottom:clamp(28px,4vw,44px)}
h3{font-size:21px;letter-spacing:-.02em;margin:6px 0}
p{text-wrap:pretty}
.salta{position:absolute;left:var(--margem);top:-60px;z-index:60;background:var(--laranja);color:var(--escuro);padding:10px 16px;font-weight:700;text-decoration:none}
.salta:focus{top:12px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.secao{padding:clamp(72px,10vw,140px) var(--margem)}
.secao>*{max-width:var(--largura);margin-left:auto;margin-right:auto}
.escuro{background:var(--escuro);color:#fff}
.maiusc{text-transform:uppercase;letter-spacing:-.02em}
.eyebrow{font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:var(--petroleo);font-weight:700;margin-bottom:20px}
:is(.escuro,.inicio,.produto) .eyebrow{color:#B0E7F1}
.cabecalho .eyebrow{color:var(--claro-txt)}

/* Botões e ligações */
.cta{display:inline-block;background:var(--laranja);color:var(--escuro);padding:12px 20px;text-decoration:none;font-weight:700;font-size:15px;border-radius:4px;transition:transform .25s var(--curva),box-shadow .25s;white-space:nowrap}
.cta:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(242,165,31,.7)}
.cta.grande{padding:17px 28px;font-size:17px}
.link{font-weight:700;text-underline-offset:5px}
.link:hover{text-decoration-thickness:2px}

/* Barra de topo: sem fundo, só desfoque; cor conforme a zona por trás (data-tema) */
.topo{position:fixed;inset:0 0 auto;z-index:40;display:flex;align-items:center;gap:26px;padding:18px var(--margem);color:#fff;transition:color .4s,padding .4s}
.topo::before{content:'';position:absolute;inset:0;z-index:-1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.topo.aberto::before{display:none}
.topo .marca img{height:30px;width:auto;filter:brightness(0) invert(1);transition:filter .4s}
.topo.claro{color:var(--escuro)}
.topo.claro .marca img{filter:none}
.topo.recolhido{padding-top:10px;padding-bottom:10px}
.menu{display:flex;align-items:center;gap:24px;margin-left:auto}
.menu a{text-decoration:none;font-weight:600;font-size:15px;position:relative}
.menu a:not(.cta)::after{content:'';position:absolute;left:0;right:100%;bottom:-4px;height:2px;background:currentColor;transition:right .35s var(--curva)}
.menu a:not(.cta):hover::after,.menu a[aria-current=page]::after{right:0}
.lingua{display:flex;gap:2px;font-size:13px;font-weight:700}
.lingua a{display:inline-grid;place-items:center;min-width:32px;min-height:32px;padding:4px 7px;text-decoration:none;opacity:.8;border-radius:3px}
.lingua a[aria-current=true]{opacity:1;box-shadow:inset 0 0 0 1.5px currentColor}
.menu .lingua a::after{display:none}
.abre-menu{display:none;margin-right:-10px;background:none;border:0;color:inherit;width:44px;height:44px;padding:10px;cursor:pointer}
.abre-menu span{display:block;height:2px;background:currentColor;margin:6px 0;transition:transform .3s var(--curva),opacity .2s}
.topo.aberto .abre-menu span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.topo.aberto .abre-menu span:nth-child(2){opacity:0}
.topo.aberto .abre-menu span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* Início */
.inicio{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;min-height:100vh;min-height:100svh;padding:130px var(--margem) 80px;overflow:hidden;color:#fff;
  background:radial-gradient(110% 90% at 78% 35%,#1C8AA6 0%,var(--petroleo-2) 45%,var(--escuro) 100%)}
.inicio .lead{font-size:19px;max-width:34em;margin:24px 0 34px;color:var(--claro-txt)}
.acoes{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.palco{position:relative;height:min(78vh,680px);min-width:0}
.mancha{position:absolute;inset:8% 0 12% 6%;border-radius:46% 54% 42% 58%/52% 44% 56% 48%;background:radial-gradient(circle at 40% 40%,rgba(127,211,230,.55),rgba(21,117,143,.15) 60%,transparent 72%);filter:blur(6px);animation:respira 10s ease-in-out infinite}
@keyframes respira{50%{border-radius:58% 42% 55% 45%/45% 55% 45% 55%;transform:scale(1.04)}}
.palco img{position:absolute;filter:drop-shadow(0 30px 40px rgba(0,0,0,.45));translate:0 var(--py,0)}
.p-bebe{width:38%;left:10%;top:2%;z-index:2}
.p-adulto{width:42%;right:2%;top:16%}
.p-seringa{width:88%;left:4%;bottom:4%;z-index:3;rotate:-8deg}

/* Títulos que entram linha a linha */
.linhas>span{display:block;overflow:hidden;padding-bottom:.06em}
.linhas>span>span{display:block;translate:0 105%;transition:translate 1s var(--curva) var(--d,0s)}
.linhas.in>span>span{translate:0 0}
.linhas>span:nth-child(2)>span{--d:.08s}.linhas>span:nth-child(3)>span{--d:.16s}.linhas>span:nth-child(4)>span{--d:.24s}
:is(.inicio,.cabecalho,.produto) .linhas>span>span{translate:0 0;animation:linha 1s var(--curva) var(--d,0s) backwards}
@keyframes linha{from{translate:0 105%}}
:is(.inicio,.cabecalho,.produto) [data-reveal]{opacity:1;translate:0 0;animation:entra .9s var(--curva) var(--d,0s) backwards}
@keyframes entra{from{opacity:0;translate:0 30px}}

/* Faixa de registos */
.selos{overflow:hidden;background:var(--laranja);color:var(--escuro);padding:18px 0}
.faixa{display:flex;gap:56px;width:max-content;animation:corre 40s linear infinite;list-style:none;padding:0}
.faixa li{white-space:nowrap;font-weight:700}
.faixa li::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--escuro);margin-right:14px;vertical-align:middle}
.selos{position:relative}
.selos:hover .faixa,.selos:focus-within .faixa,.selos.parada .faixa{animation-play-state:paused}
.pausa{position:absolute;right:8px;top:50%;translate:0 -50%;z-index:1;width:36px;height:36px;border-radius:50%;border:0;background:var(--escuro);color:#fff;cursor:pointer;display:grid;place-items:center}
.pausa::before{content:'';width:10px;height:12px;border-inline:3px solid #fff}
.selos.parada .pausa::before{width:0;height:0;border:0;border-left:11px solid #fff;border-block:7px solid transparent;margin-left:3px}
@keyframes corre{to{transform:translateX(-50%)}}

/* Cartões de produto */
.grelha{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--linha);border-radius:6px;padding:18px;transition:transform .4s var(--curva),box-shadow .4s,border-color .4s}
.card:hover{box-shadow:0 30px 50px -28px rgba(8,37,45,.35);border-color:transparent}
.card h3 a{text-decoration:none}
.card h3 a::after{content:'';position:absolute;inset:0}
.card h3 a:focus-visible{outline:none}
.card:has(h3 a:focus-visible){outline:3px solid var(--laranja);outline-offset:3px}
.foto{position:relative;aspect-ratio:4/5;border-radius:4px;overflow:hidden;background:linear-gradient(165deg,var(--nevoa),#fff 75%);display:grid;place-items:center;margin-bottom:18px}
.foto::before{content:'';position:absolute;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(127,211,230,.45),transparent 70%);transition:transform .8s var(--curva)}
.card:hover .foto::before{transform:scale(1.25)}
.foto img{position:relative;max-height:86%;max-width:86%;width:auto;filter:drop-shadow(0 16px 18px rgba(8,37,45,.22));transition:transform .7s var(--curva)}
.card:hover .foto img{transform:translateY(-8px) scale(1.04)}
.tag{font-size:13px;color:var(--petroleo);font-weight:700;letter-spacing:.02em}
.card p:not(.tag):not(.min){color:var(--suave)}
.min{margin-top:auto;padding-top:14px;font-size:14px;font-weight:700;display:flex;justify-content:space-between;gap:12px}
.min::before{content:'';position:absolute;left:18px;right:18px;margin-top:-14px;border-top:1px solid var(--linha)}
.min span{color:var(--suave);font-weight:600}

/* Seringa que atravessa com o scroll */
.travessia{position:relative;height:clamp(140px,22vw,300px);overflow:hidden;background:var(--nevoa)}
.travessia img{position:absolute;top:50%;left:0;width:min(1100px,90vw);translate:var(--tx,-60%) -50%;filter:drop-shadow(0 20px 26px rgba(8,37,45,.25))}
.travessia p{position:absolute;right:var(--margem);bottom:18px;font-weight:700;color:var(--petroleo);font-size:14px}

/* Condições */
.numeros{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px;border-top:1px solid rgba(255,255,255,.25);padding-top:30px;list-style:none;padding-left:0}
.numeros b{display:block;font-weight:800;font-size:clamp(52px,7vw,104px);line-height:1;letter-spacing:-.05em;color:var(--agua)}
.numeros p{margin-top:12px;max-width:14em;color:var(--claro-txt)}

/* Passos */
.passos ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-bottom:44px;position:relative;isolation:isolate}
.passos ol::before{content:'';z-index:-1;position:absolute;left:23px;right:23px;top:23px;height:2px;background:var(--linha)}
.passos ol::after{content:'';z-index:-1;position:absolute;left:23px;top:23px;height:2px;width:calc((100% - 46px)*var(--prog,0));background:var(--petroleo)}
.passos li{position:relative}
.passos li b{position:relative;z-index:1;display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--escuro);color:#fff;margin-bottom:14px}
.passos li p{color:var(--suave)}

/* Cabeçalho das páginas interiores */
.cabecalho{padding:clamp(110px,28vw,150px) var(--margem) clamp(64px,8vw,110px);color:#fff;background:radial-gradient(90% 120% at 85% 0%,#146A80 0%,var(--petroleo-2) 40%,var(--escuro) 100%)}
.cabecalho-txt{max-width:var(--largura);margin:0 auto}
.cabecalho h1{font-size:clamp(40px,5vw,76px);max-width:14em}
.cabecalho .lead{font-size:19px;max-width:38em;margin-top:22px;color:var(--claro-txt)}

/* Lista de produtos */
.familia+.familia{margin-top:clamp(56px,7vw,96px)}
.grelha-3{grid-template-columns:repeat(3,1fr)}

/* Faixa de acesso */
.acesso{padding-top:clamp(56px,7vw,90px);padding-bottom:clamp(56px,7vw,90px)}
.acesso-caixa{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.acesso h2{font-size:clamp(28px,3.4vw,44px);margin-bottom:10px}
.acesso p{color:var(--claro-txt);max-width:34em}
.acesso .link{color:#fff}

/* Ficha de produto */
.produto{padding:120px var(--margem) clamp(56px,7vw,96px);color:#fff;overflow:hidden;background:radial-gradient(100% 90% at 25% 40%,#1C8AA6 0%,var(--petroleo-2) 45%,var(--escuro) 100%)}
.produto-grelha{max-width:var(--largura);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.produto-foto{order:-1;position:relative;display:grid;place-items:center;min-height:min(62vh,560px)}
.produto-foto .mancha{inset:4%}
.produto-foto img{position:relative;max-height:min(58vh,520px);width:auto;filter:drop-shadow(0 30px 40px rgba(0,0,0,.45))}
.produto h1{font-size:clamp(36px,4.4vw,64px)}
.produto .lead{font-size:19px;margin:20px 0 26px;color:var(--claro-txt);max-width:32em}
.migalhas ol{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:14px;color:var(--claro-txt);margin-bottom:28px}
.migalhas li+li::before{content:'/' / '';margin-right:6px;opacity:.6}
.migalhas a{text-underline-offset:3px}
.minimo{display:inline-flex;gap:14px;align-items:baseline;border:1px solid rgba(255,255,255,.25);border-radius:4px;padding:12px 16px;margin-bottom:28px}
.minimo dt{font-size:14px;color:var(--claro-txt)}
.minimo dd{font-weight:800;font-size:22px;color:var(--agua)}
.produto .link{color:#fff}
.detalhe-grelha{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(24px,3vw,48px)}
.bloco h2{font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--petroleo);margin-bottom:18px}
.tabela div{display:grid;grid-template-columns:minmax(110px,40%) 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--linha)}
.tabela div:last-child{border-bottom:1px solid var(--linha)}
.tabela dt{color:var(--suave);font-size:15px}
.tabela dd{font-weight:600}
.lista-pontos{list-style:none;padding:0;display:grid;gap:10px}
.lista-pontos li{position:relative;padding-left:22px}
.lista-pontos li::before{content:'';position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--agua);box-shadow:0 0 0 3px rgba(127,211,230,.3)}
.nota{margin-top:clamp(32px,4vw,48px);padding:18px 22px;background:var(--nevoa);border-left:3px solid var(--petroleo);font-weight:600}
.fonte{margin-top:18px;font-size:14px;color:var(--suave)}
.outros{background:var(--nevoa)}

/* Contactos */
.contactos-grelha{max-width:var(--largura);margin:0 auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,5vw,80px);align-items:start}
.diretos h2,.formulario h2{font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--petroleo);margin-bottom:18px}
.diretos a{font-weight:700;text-underline-offset:4px}
.caixa-acesso{margin-top:36px;padding:24px;background:var(--nevoa);border-radius:6px}
.caixa-acesso h3{margin-top:0}
.caixa-acesso p{color:var(--suave);margin-bottom:18px}
.campos-2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.campo{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.campo label{font-weight:700;font-size:15px}
.obr{color:#B3261E;margin-left:3px}
.campo input,.campo select,.campo textarea{font:inherit;color:var(--escuro);background:#fff;border:1px solid #8FA3A9;border-radius:4px;padding:12px 14px;min-height:48px;width:100%}
.campo textarea{resize:vertical;min-height:140px}
.campo :is(input,select,textarea):focus{outline:3px solid var(--laranja);outline-offset:1px;border-color:var(--escuro)}
.campo [aria-invalid=true]{border-color:#B3261E;box-shadow:0 0 0 1px #B3261E}
.robo{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.erro:empty{display:none}
.aviso-priv{font-size:15px;color:var(--suave);margin:4px 0 18px}
.aviso-priv a{font-weight:700;color:var(--escuro);text-underline-offset:3px}
.erro{background:#FCEDEC;color:#8C1D18;border-left:3px solid #B3261E;padding:12px 16px;margin-bottom:18px;font-weight:600}
.ok{padding:28px;background:var(--nevoa);border-left:3px solid var(--petroleo)}
.ok h3{margin-top:0}
.formulario .cta{border:0;cursor:pointer;font-family:inherit}
.formulario .cta:disabled{opacity:.6;cursor:wait;transform:none}

/* Texto legal */
.legal{max-width:760px}
.legal section+section{margin-top:40px}
.legal h2{font-size:24px;letter-spacing:-.02em;margin-bottom:14px}
.legal p+p,.legal p+ul,.legal ul+p{margin-top:12px}
.legal p{color:#2A3F45}

/* Rodapé */
.rodape{background:var(--escuro);color:#9FB9C0;padding:64px var(--margem) 28px;font-size:15px}
.rodape-grelha{max-width:var(--largura);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.rodape img{height:28px;width:auto;filter:brightness(0) invert(1);margin-bottom:18px}
.rodape h2{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:14px}
.rodape ul{list-style:none;padding:0;display:grid;gap:8px}
.rodape a{text-decoration:none}
.rodape a:hover{color:#fff;text-decoration:underline}
.rodape-base{max-width:var(--largura);margin:48px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:14px}
.rodape .lingua a{opacity:.8}

/* Entradas */
[data-reveal]{opacity:0;translate:0 30px;transition:opacity .9s var(--curva) var(--d,0s),translate .9s var(--curva) var(--d,0s)}
[data-reveal].in{opacity:1;translate:0 0}
.d1{--d:.08s}.d2{--d:.16s}.d3{--d:.24s}.d4{--d:.35s}.d5{--d:.45s}
.sem-js [data-reveal]{opacity:1;translate:none}
.sem-js .linhas>span>span{translate:none}

@media (max-width:1100px){.menu{gap:16px}.menu .entrar{display:none}}
@media (max-width:900px){
  .inicio{grid-template-columns:1fr;min-height:0;padding-top:110px}
  .palco{height:min(105vw,520px)}
  .grelha,.numeros{grid-template-columns:1fr 1fr}
  .grelha-3{grid-template-columns:1fr}
  .contactos-grelha{grid-template-columns:1fr}
  /* a zona clara do fundo desce para trás das fotos (texto sempre sobre o tom escuro: contraste AA) */
  .inicio{background:radial-gradient(130% 55% at 50% 88%,#1C8AA6 0%,var(--petroleo-2) 50%,var(--escuro) 100%)}
  .produto{background:radial-gradient(130% 50% at 50% 92%,#1C8AA6 0%,var(--petroleo-2) 50%,var(--escuro) 100%)}
  .produto-grelha{grid-template-columns:1fr}.produto-foto{min-height:0;padding:20px 0}.produto-foto img{max-height:420px}
  .produto-foto{order:0}
  .passos ol{grid-template-columns:1fr}.passos ol::before,.passos ol::after{display:none}
  .rodape-grelha{grid-template-columns:1fr 1fr}.rodape-grelha>div:first-child{grid-column:1/-1}
  .abre-menu{display:block}
  .menu{position:fixed;inset:0;z-index:-1;flex-direction:column;align-items:flex-start;justify-content:safe center;overflow-y:auto;gap:22px;padding:90px var(--margem) 40px;background:var(--escuro);color:#fff;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
  .menu a{font-size:24px}.menu .entrar{display:block}.menu .cta{font-size:17px;padding:15px 24px}
  .topo.aberto{color:#fff}.topo.aberto .marca img{filter:brightness(0) invert(1)}
  .topo.aberto .menu{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s}  /* visível logo ao abrir: o foco pode entrar */
  .topo>.cta{margin-left:auto;padding:10px 13px;font-size:14px}
  .topo{gap:10px}
}
@media (min-width:360px){.menu .cta-menu{display:none}}
/* Telemóvel (passagem dedicada, ver PROGRESS): alvos de toque ≥ 44 px e cartões horizontais */
@media (max-width:900px){
  .topo .marca{display:inline-flex;align-items:center;min-height:44px}
  .topo>.cta{min-height:44px;display:inline-flex;align-items:center}
  .link{display:inline-flex;align-items:center;min-height:44px}
  .migalhas a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
  .migalhas ol{margin-bottom:12px;align-items:center}
  .rodape ul{gap:0}.rodape li a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
  .rodape-base a{display:inline-flex;align-items:center;min-height:44px}
  .rodape .lingua a,.menu .lingua a{min-width:44px;min-height:44px}
  .tabela dd a{display:inline-flex;align-items:center;min-height:44px}
  .pausa{width:44px;height:44px}
  .aviso-priv a{display:inline-block;padding:10px 0;margin:-10px 0}
}
@media (max-width:520px){
  .card{display:grid;grid-template-columns:38% 1fr;column-gap:14px;align-content:start;padding:12px}
  .card .foto{grid-row:1/span 4;aspect-ratio:auto;height:100%;min-height:150px;margin:0}
  .card h3{font-size:18px}
  .card p:not(.tag):not(.min){font-size:15px}
  .min{grid-column:2;padding-top:10px}
  .min::before{display:none}
  .min{border-top:1px solid var(--linha);margin-top:10px}
  .tag{font-size:14px}
}
@media (max-width:359px){.topo>.cta{display:none}.abre-menu{margin-left:auto}}
@media (max-width:520px){.campos-2{grid-template-columns:1fr}.grelha{grid-template-columns:1fr}.topo .marca img{height:24px}.rodape-grelha{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1;translate:none}.linhas>span>span{translate:none}
}
