/* OlivalhO: paleta derivada da logo (azul #30416C) e do olival ao entardecer */
:root {
  --azul: #30416C;
  --noite: #141F38;
  --noite-2: #1C2A4A;
  --ouro: #CC6336; /* laranja da marca (P 41-6 C) */
  --ouro-claro: #EDB596;
  --oliva: #5C4738; /* castanho da marca (P 33-16 C) */
  --oliva-claro: #AD7C59; /* castanho claro (P 39-13 C) */
  --papel: #F6F1E4;
  --papel-2: #ECE5D2;
  --tinta: #1B2640;
  --tinta-2: #4B5570;
  --serifa: "Newsreader", Georgia, "Times New Roman", serif;
  --sans: "Albert Sans", "Segoe UI", system-ui, sans-serif;
  --gutter: clamp(1.25rem, 4.5vw, 5rem);
  --sec: clamp(5rem, 11vw, 11rem);
  --oliveira: url("../img/oliveira-mascara.png");
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
html.sem-rolagem { overflow: hidden; }
body {
  margin: 0; background: var(--papel); color: var(--tinta);
  font-family: var(--sans); font-size: clamp(1rem, .96rem + .2vw, 1.15rem); line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
main { overflow-x: clip; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p { margin: 0; }
em { font-style: italic; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.ico { width: 1.15em; height: 1.15em; flex: none; }
:focus-visible { outline: 2px solid var(--ouro); outline-offset: 3px; }
.saltar { position: fixed; left: 1rem; top: -4rem; z-index: 100; background: var(--noite); color: var(--papel); padding: .6rem 1rem; border-radius: .5rem; }
.saltar:focus { top: 1rem; }

.rotulo { font: 300 clamp(2.5rem, 6.4vw, 6.4rem)/1 var(--serifa); letter-spacing: -.02em; }

.botao {
  display: inline-flex; align-items: center; gap: .7rem; padding: .85em 1.5em; border: 0;
  border-radius: 99em; background: var(--azul); color: var(--papel); font: 600 .95rem/1.2 var(--sans);
  text-decoration: none; cursor: pointer; transition: gap .25s, background-color .25s, color .25s;
}
.botao:hover { gap: 1.05rem; background: var(--noite); }
.botao-ouro { background: var(--ouro); color: #FFFDF8; }
.botao-ouro:hover { background: var(--ouro-claro); color: var(--noite); }

/* ---------- TOPO ---------- */
.topo {
  position: fixed; inset: 0 0 auto; z-index: 40; display: flex; align-items: center; justify-content: space-between;
  gap: 1.5rem; padding: .85rem var(--gutter); color: var(--azul); transition: color .35s, transform .4s cubic-bezier(.2, .7, .2, 1);
  pointer-events: none;
}
/* Ao descer o topo sai da frente do texto; ao subir volta */
.topo.oculto:not(:focus-within):not(.gaveta-aberta) { transform: translateY(-110%); }
.topo > * { pointer-events: auto; }
.topo[data-tema="escuro"], .topo.gaveta-aberta { color: var(--papel); }
.topo-logo { position: relative; display: flex; align-items: center; gap: .65rem; text-decoration: none; flex: none; }
.topo-logo img { height: 2.9rem; width: auto; transition: opacity .35s; }
.topo-logo .so-escuro { position: absolute; left: 0; top: 0; opacity: 0; }
.topo[data-tema="escuro"] .so-escuro, .gaveta-aberta .so-escuro { opacity: 1; }
.topo[data-tema="escuro"] .so-claro, .gaveta-aberta .so-claro { opacity: 0; }
.topo-logo span { font-size: 1.35rem; font-weight: 500; letter-spacing: .005em; }

.topo-nav {
  display: flex; align-items: center; gap: .35rem; padding: .3rem .3rem .3rem 1.15rem; border-radius: 99px;
  background: color-mix(in srgb, var(--papel) 72%, transparent); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border: 1px solid color-mix(in srgb, var(--azul) 14%, transparent); transition: background-color .35s, border-color .35s; white-space: nowrap;
}
.topo[data-tema="escuro"] .topo-nav { background: color-mix(in srgb, var(--noite) 62%, transparent); border-color: color-mix(in srgb, var(--papel) 16%, transparent); }
.topo-nav > ul { display: flex; gap: 1.1rem; margin-right: .8rem; }
.topo-nav a { text-decoration: none; font-size: .9rem; font-weight: 500; }
.topo-nav > ul > li { position: relative; }
.topo-nav > ul > li > a { display: block; padding: .35rem 0; position: relative; }
.topo-nav > ul > li > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: .15rem; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.topo-nav > ul > li > a:hover::after { transform: scaleX(1); }
.tem-sub .sub {
  position: absolute; top: 100%; left: -1rem; padding: .5rem; margin-top: .55rem; min-width: 11rem; border-radius: 1rem;
  background: var(--papel); color: var(--azul); box-shadow: 0 18px 40px -18px color-mix(in srgb, var(--noite) 50%, transparent);
  opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .2s, transform .2s, visibility .2s;
}
.tem-sub .sub::before { content: ""; position: absolute; inset: -.6rem 0 auto; height: .6rem; }
.tem-sub:hover .sub, .tem-sub:focus-within .sub { opacity: 1; visibility: visible; transform: none; }
.sub a { display: block; padding: .45rem .75rem; border-radius: .6rem; }
.sub a:hover { background: var(--papel-2); }
.topo-cta { padding: .55rem 1rem; border-radius: 99px; background: var(--azul); color: var(--papel); font-weight: 600 !important; transition: background-color .25s, color .25s; }
.topo[data-tema="escuro"] .topo-cta { background: var(--ouro); color: #FFFDF8; }

.topo-btn {
  display: none; width: 3rem; height: 3rem; padding: .85rem .72rem; border: 0; border-radius: 0 0 99px 99px / 0 0 90% 90%;
  background: transparent; color: inherit; cursor: pointer; flex-direction: column; gap: .24rem; align-items: center;
}
/* O botão repete as três faixas da logo */
.topo-btn i { display: block; height: .17rem; background: currentColor; transition: transform .3s, opacity .3s, width .3s; }
.topo-btn i:nth-of-type(1) { width: 100%; }
.topo-btn i:nth-of-type(2) { width: 78%; }
.topo-btn i:nth-of-type(3) { width: 50%; }
.gaveta-aberta .topo-btn i:nth-of-type(1) { width: 100%; transform: translateY(.41rem) rotate(45deg); }
.gaveta-aberta .topo-btn i:nth-of-type(2) { opacity: 0; }
.gaveta-aberta .topo-btn i:nth-of-type(3) { width: 100%; transform: translateY(-.41rem) rotate(-45deg); }
.topo.compacto .topo-nav { display: none; }
.topo.compacto .topo-btn { display: flex; }

.gaveta {
  position: fixed; inset: 0; z-index: 30; background: var(--noite); color: var(--papel); display: grid; align-items: center;
  padding: 6rem var(--gutter) 3rem; overflow-y: auto;
}
.gaveta[hidden] { display: none; }
.gaveta a { display: block; padding: .35rem 0; font: 300 clamp(2rem, 8.5vw, 3.4rem)/1.15 var(--serifa); text-decoration: none; }
.gaveta em { color: var(--ouro); }

/* ---------- ABERTURA ---------- */
.abertura { height: 340svh; position: relative; background: var(--noite); }
.palco { position: sticky; top: 0; height: 100svh; overflow: hidden; background: var(--papel); }
.arco-ref {
  position: absolute; left: 50%; top: 15svh;
  height: 52svh; width: min(35svh, 54vw); transform: translateX(-50%);
}
.janela {
  position: absolute; inset: 0; background: var(--azul); overflow: hidden;
  clip-path: inset(15svh calc(50% - min(17.5svh, 27vw)) 33svh calc(50% - min(17.5svh, 27vw)) round min(17.5svh, 27vw) min(17.5svh, 27vw) 0 0);
}
.horizonte { position: absolute; left: 0; right: 0; top: 0; height: 0; will-change: transform; }
.ceu {
  position: absolute; left: 0; right: 0; bottom: 0; height: 120svh;
  background: linear-gradient(to top, var(--ouro-claro) 0%, #E4BE74 9%, #A8A08E 26%, #62708E 44%, var(--azul) 64%);
}
.sol {
  position: absolute; left: 50%; top: 0; border-radius: 50%; width: 10rem; height: 10rem; transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #FFF4D2 0 48%, var(--ouro-claro) 66%, var(--ouro) 100%);
  will-change: transform;
}
.bosque {
  position: absolute; left: -20%; right: -20%; bottom: 0; background: var(--azul);
  -webkit-mask: var(--oliveira) bottom left / auto 100% repeat-x; mask: var(--oliveira) bottom left / auto 100% repeat-x;
}
.bosque-longe { height: min(6.5svh, 3.6rem); background: #7D8499; opacity: .85; }
.bosque-perto { height: min(10svh, 5.2rem); background: #4F5D80; left: -28%; right: -12%; -webkit-mask-size: auto 100%; mask-size: auto 100%; }
.solo { position: absolute; left: 0; right: 0; top: -1px; height: 40svh; background: var(--papel); display: flex; flex-direction: column; gap: 0; }
.solo i { display: block; background: var(--azul); }
.solo i:nth-child(1) { height: 2.6svh; margin-bottom: .9svh; }
.solo i:nth-child(2) { height: 2.4svh; margin-bottom: 1svh; }
.solo i:nth-child(3) { height: 2.2svh; margin-bottom: 1.1svh; }
.solo i:nth-child(4) { height: 40svh; }
.noite { position: absolute; inset: 0; background: var(--noite); opacity: 0; }
.arvore {
  position: absolute; left: 50%; bottom: 33svh; width: min(42.7svh, 66vw); max-width: none; margin-left: calc(min(42.7svh, 66vw) / -2);
  transform-origin: 50% 100%; will-change: transform; pointer-events: none;
}
html.js .arvore { margin: 0; bottom: auto; }
.moldura {
  position: absolute; border: clamp(3px, .55svh, 7px) solid var(--azul); border-bottom: 0; border-radius: 999px 999px 0 0; pointer-events: none;
}
.base-logo {
  position: absolute; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between;
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
}
.base-logo i { display: block; height: 26%; background: var(--azul); }

.lema {
  position: absolute; inset: 0; pointer-events: none; font: 300 clamp(2.1rem, 4.75vw, 6.2rem)/1.04 var(--serifa); letter-spacing: -.018em; color: var(--azul);
}
.lema > span { position: absolute; display: block; width: 28vw; will-change: transform; }
.lema-fim { display: block; white-space: nowrap; }
.lema-a { right: calc(50% + min(24svh, 37vw)); top: 25svh; text-align: right; }
.lema-b { left: calc(50% + min(24svh, 37vw)); top: 40svh; }
.lema em { color: var(--oliva); }
.revela {
  position: absolute; left: 50%; top: 44%; width: min(22em, 90vw); transform: translate(-50%, -50%); text-align: center;
  font: 300 clamp(2.2rem, 5.6vw, 6.4rem)/1.06 var(--serifa); letter-spacing: -.015em; color: var(--papel); opacity: 0; visibility: hidden; text-wrap: balance;
}
.revela em { color: var(--ouro); }
.dica {
  position: absolute; left: var(--gutter); bottom: 1.6rem; display: flex; align-items: center; gap: .7rem; font-size: .8rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--azul); text-decoration: none;
}
.dica i { display: block; width: 3rem; height: 1px; background: currentColor; transform-origin: left; animation: dica 2.2s ease-in-out infinite; }
@keyframes dica { 0%, 100% { transform: scaleX(.3); } 50% { transform: scaleX(1); } }

/* Telas estreitas: o lema vai para cima e para baixo do arco */
@media (max-aspect-ratio: 1/1), (max-width: 959px) and (min-height: 561px) {
  .arco-ref { top: 28svh; height: 38svh; width: min(25.6svh, 54vw); }
  .janela { clip-path: inset(28svh calc(50% - min(12.8svh, 27vw)) 34svh calc(50% - min(12.8svh, 27vw)) round min(12.8svh, 27vw) min(12.8svh, 27vw) 0 0); }
  .lema { font-size: clamp(1.9rem, 8.6vw, 3.4rem); }
  .lema > span { width: auto; left: var(--gutter); right: var(--gutter); text-align: center; text-wrap: balance; }
  .lema-fim { display: inline; white-space: normal; }
  .lema-a { top: 11svh; }
  .lema-b { top: auto; bottom: 8.5svh; }
  .lema-fim { display: inline; white-space: normal; }
  .dica { left: 50%; bottom: 0; padding: .9rem 1rem; transform: translateX(-50%); font-size: .68rem; white-space: nowrap; }
  .dica i { width: 1.75rem; }
}
/* Telefone deitado: o lema fica ao lado do arco, em tamanho pela altura */
@media (max-height: 500px) and (min-aspect-ratio: 1/1) {
  .arco-ref { top: 18svh; height: 50svh; width: min(33.5svh, 54vw); }
  .lema { font-size: clamp(1.5rem, 10svh, 2.5rem); }
  .lema-a { top: 24svh; }
  .lema-b { top: 42svh; }
  .dica { display: none; }
}

/* ---------- PERSIANAS (as faixas da logo a separar secções) ---------- */
.persiana { display: flex; flex-direction: column; position: relative; z-index: 1; }
.persiana i { display: block; }
.persiana i:nth-child(1) { height: clamp(3px, .5vw, 8px); margin-bottom: clamp(10px, 1.6vw, 24px); }
.persiana i:nth-child(2) { height: clamp(8px, 1.2vw, 18px); margin-bottom: clamp(8px, 1.2vw, 18px); }
.persiana i:nth-child(3) { height: clamp(16px, 2.4vw, 36px); margin-bottom: clamp(5px, .8vw, 12px); }
.persiana i:nth-child(4) { height: clamp(30px, 4.4vw, 66px); }
.persiana { background: var(--de); }
.persiana i { background: var(--para); }

/* ---------- SOBRE ---------- */
.sobre { background: var(--noite); color: var(--papel); padding: var(--sec) var(--gutter); }
.sobre-cab { margin-bottom: clamp(1.5rem, 3vw, 3rem); color: var(--ouro); }
.palavras {
  font: 300 clamp(1.6rem, 3.5vw, 3.7rem)/1.22 var(--serifa); letter-spacing: -.01em; max-width: 26em;
}
html.js:not(.calmo) .palavras span { color: color-mix(in srgb, var(--papel) 20%, transparent); transition: color .35s; }
html.js:not(.calmo) .palavras span.aceso { color: var(--papel); }
.sobre-resposta {
  margin-top: clamp(5rem, 11vw, 11rem); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 7rem); align-items: center;
}
.sobre-resposta > p { font-size: clamp(1.15rem, 1.7vw, 1.65rem); line-height: 1.55; max-width: 34em; }
.sobre-resposta strong { font-weight: 600; color: var(--ouro-claro); }
.sobre-resposta em { font-family: var(--serifa); font-size: 1.15em; color: var(--ouro); }
.selo { position: relative; width: min(100%, 26rem); aspect-ratio: 1; justify-self: center; }
.selo-texto { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; animation: gira 38s linear infinite; }
.selo-texto text { font: 400 21px var(--serifa); fill: var(--papel); }
.selo img { position: absolute; left: 50%; top: 50%; height: 56%; width: auto; transform: translate(-50%, -50%); }
@keyframes gira { to { transform: rotate(360deg); } }

/* ---------- MISSÃO ---------- */
.missao { padding: var(--sec) var(--gutter) clamp(3rem, 6vw, 6rem); }
.missao .rotulo { color: var(--azul); margin-bottom: clamp(1.5rem, 3vw, 3rem); }
.verbo {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 6fr); gap: clamp(1.5rem, 4vw, 5rem); align-items: center;
  padding: clamp(1.25rem, 2.6vw, 2.75rem) 0; border-top: 1px solid color-mix(in srgb, var(--azul) 22%, transparent);
}
.verbo:last-child { border-bottom: 1px solid color-mix(in srgb, var(--azul) 22%, transparent); }
.verbo h3 { font: 300 clamp(3.2rem, 8.4vw, 10rem)/1.02 var(--serifa); letter-spacing: -.03em; color: var(--azul); }
.verbo h3 em { color: var(--oliva); }
.verbo p { font: 300 clamp(1.4rem, 2.5vw, 3rem)/1.22 var(--serifa); color: var(--tinta); text-wrap: pretty; }

/* ---------- VISÃO E PROPÓSITO ---------- */
.arcos {
  padding: clamp(4rem, 9vw, 9rem) var(--gutter) clamp(5rem, 10vw, 10rem); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 5vw, 6rem); max-width: 1500px; margin: 0 auto;
}
.arco {
  position: relative; overflow: hidden; border-radius: 999px 999px 0 0; color: var(--papel); padding: clamp(8rem, 18vw, 17rem) clamp(1.6rem, 4vw, 4.5rem) clamp(2.5rem, 4vw, 4.5rem);
  will-change: transform;
}
.arco h2 { font: 300 clamp(2.5rem, 5vw, 5.4rem)/1 var(--serifa); margin-bottom: 1rem; position: relative; }
.arco p { font-size: clamp(1.05rem, 1.45vw, 1.4rem); line-height: 1.5; position: relative; }
.arco-visao { background: var(--azul); }
.arco-proposito { background: var(--oliva); margin-top: clamp(0rem, 7vw, 8rem); }
.arco-copa {
  position: absolute; left: 50%; top: clamp(1.2rem, 3vw, 3.2rem); width: min(62%, 21rem); aspect-ratio: 1; transform: translateX(-50%); opacity: .2; background: var(--papel);
  -webkit-mask: var(--oliveira) center / contain no-repeat; mask: var(--oliveira) center / contain no-repeat;
}

/* ---------- VALORES ---------- */
.valores {
  padding: 0 var(--gutter) var(--sec); display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 6vw, 7rem); max-width: 1680px; margin: 0 auto;
}
.valores-cab { position: sticky; top: 7rem; align-self: start; }
.valores-cab .rotulo { color: var(--azul); margin-bottom: 1rem; }
.valores-cab > p { font-size: clamp(1.05rem, 1.35vw, 1.4rem); line-height: 1.5; }
.valores-lista li {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: .1em .3em; padding: clamp(.8rem, 1.8vw, 1.5rem) 0 clamp(.8rem, 1.8vw, 1.5rem) clamp(2.2rem, 4vw, 4rem); border-top: 1px solid color-mix(in srgb, var(--azul) 22%, transparent); position: relative;
  font: 300 clamp(1.9rem, 4.1vw, 4.4rem)/1.1 var(--serifa); letter-spacing: -.015em;
}
.valores-lista strong { font-weight: 400; color: var(--azul); }
.valores-lista em { color: var(--oliva); }
.valores-n { position: absolute; left: 0; top: 50%; transform: translateY(-50%); font: 600 .8rem var(--sans); letter-spacing: .08em; color: var(--tinta-2); }

/* ---------- SERVIÇOS: PORTAS ---------- */
.servicos { background: var(--papel-2); padding: var(--sec) var(--gutter); }
.servicos-tit { font: 300 clamp(2.5rem, 6.4vw, 6.4rem)/1 var(--serifa); letter-spacing: -.02em; color: var(--azul); margin-bottom: 2rem; }
.servicos-tit em { color: var(--oliva); }
.portas { display: grid; gap: 1.25rem; }
.porta { border-radius: clamp(6rem, 30vw, 11rem) clamp(6rem, 30vw, 11rem) 0 0; color: var(--papel); overflow: hidden; scroll-margin-top: 6rem; }
.porta-1 { background: var(--azul); }
.porta-2 { background: var(--oliva); }
.porta-3 { background: var(--ouro); color: #FFFDF8; }
.porta-rotulo { display: none; }
.porta-rotulo b { font-weight: inherit; }
.so-acordeao { display: none; }
.porta-corpo { padding: clamp(5rem, 16vw, 8rem) clamp(1.4rem, 5vw, 3.5rem) clamp(2rem, 5vw, 3.5rem); display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.porta h3 { font: 300 clamp(2rem, 4vw, 3.8rem)/1.06 var(--serifa); letter-spacing: -.015em; }
.porta-n { display: inline-grid; place-items: center; width: 1.45em; height: 1.45em; border-radius: 50%; border: 1px solid currentColor; font-size: .5em; vertical-align: .55em; margin-right: .3em; font-family: var(--sans); font-weight: 500; }
.porta-colunas { display: grid; gap: 1.5rem; }
.porta h4 { font-size: .8rem; line-height: 1.35; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ouro-claro); margin-bottom: .55rem; }
.porta ul li { padding: .42rem 0; border-top: 1px solid color-mix(in srgb, var(--papel) 22%, transparent); line-height: 1.35; }
.porta ul.porta-grande li { font: 300 clamp(1.45rem, 2.7vw, 2.6rem)/1.15 var(--serifa); padding: .6rem 0; }
.porta-frase { font: 300 clamp(1.5rem, 3vw, 3.1rem)/1.16 var(--serifa); max-width: 22em; }
.porta-1 .botao, .porta-2 .botao { background: var(--papel); color: var(--noite); }
.porta-1 .botao:hover, .porta-2 .botao:hover { background: var(--ouro-claro); }
.porta-3 .botao { background: var(--noite); color: var(--papel); }

@media (min-width: 1024px) and (min-height: 620px) {
  html.js:not(.calmo) .servicos { height: 380svh; padding: 0 var(--gutter); }
  html.js:not(.calmo) .servicos-palco { position: sticky; top: 0; height: 100svh; padding-top: clamp(4.6rem, 10svh, 6rem); display: flex; flex-direction: column; }
  html.js:not(.calmo) .servicos-tit { font-size: clamp(2.2rem, 7svh, 4.4rem); margin-bottom: clamp(.6rem, 2svh, 1.4rem); }
  html.js:not(.calmo) .portas { display: flex; flex: 1; min-height: 0; gap: 1rem; }
  html.js:not(.calmo) .porta { position: relative; flex: 0 0 104px; min-width: 0; border-radius: 11rem 11rem 0 0; }
  html.js:not(.calmo) .porta-rotulo {
    display: flex; position: absolute; inset: 0; width: 100%; align-items: flex-end; justify-content: flex-start; gap: .9rem; padding: 2rem 0 2rem calc(52px - .8em); border: 0; background: none; color: inherit; cursor: pointer;
    font: 300 clamp(1.3rem, 2.1vw, 2rem)/1.1 var(--serifa); writing-mode: vertical-rl; transform: rotate(180deg); text-align: left; white-space: nowrap; transition: opacity .3s;
    flex-direction: row-reverse; align-items: center;
  }
  html.js:not(.calmo) .porta-rotulo { flex-direction: row; justify-content: flex-end; align-items: center; padding: 2.4rem 0; }
  html.js:not(.calmo) .porta-rotulo .porta-num { font: 500 .85rem var(--sans); writing-mode: horizontal-tb; transform: rotate(180deg); width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; }
  html.js:not(.calmo) .porta.aberta .porta-rotulo { opacity: 0; pointer-events: none; }
  html.js:not(.calmo) .porta-corpo {
    position: absolute; left: 0; bottom: 0; width: var(--aberta, 70vw); max-height: 100%; padding: clamp(3rem, 9svh, 5.6rem) clamp(2.5rem, 5vw, 6rem) clamp(1.4rem, 4svh, 2.6rem); gap: clamp(.7rem, 2.4svh, 1.5rem); justify-content: flex-end; height: 100%;
    opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s;
  }
  html.js:not(.calmo) .porta.aberta .porta-corpo { opacity: 1; visibility: visible; transition-delay: .05s; }
  html.js:not(.calmo) .porta h3 { font-size: clamp(2rem, 7svh, 4.4rem); }
  html.js:not(.calmo) .porta-colunas { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3.5rem); width: 100%; }
  html.js:not(.calmo) .porta ul li { font-size: clamp(.92rem, 2.2svh, 1.08rem); padding: clamp(.2rem, .7svh, .45rem) 0; }
  html.js:not(.calmo) .porta-grande { width: min(100%, 44rem); }
  html.js:not(.calmo) .porta ul.porta-grande li { font-size: clamp(1.4rem, 4.2svh, 2.5rem); padding: clamp(.3rem, 1svh, .6rem) 0; }
  html.js:not(.calmo) .porta-frase { font-size: clamp(1.7rem, 5.2svh, 3.3rem); }
}
@media (min-width: 760px) and (max-width: 1023px), (min-width: 760px) and (max-height: 619px) {
  .porta-colunas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- COMO FAZEMOS: ANÉIS ---------- */
.como {
  background: var(--noite); color: var(--papel); padding: var(--sec) var(--gutter); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 6rem);
}
.como-aneis { position: sticky; top: 0; height: 100svh; display: grid; place-items: center; align-self: start; margin-top: calc(var(--sec) * -1); }
.tronco { position: relative; width: min(100%, 78svh, 44rem); aspect-ratio: 1; }
.tronco svg { width: 100%; height: 100%; }
.veio { fill: none; stroke: color-mix(in srgb, var(--ouro) 14%, transparent); stroke-width: .8; }
.anel { fill: none; stroke: var(--ouro); stroke-width: 3; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.1s cubic-bezier(.65, 0, .2, 1), stroke .4s, stroke-width .4s, opacity .4s; opacity: .55; }
.anel.aceso { stroke-dashoffset: 0; }
.anel.atual { opacity: 1; stroke: var(--ouro-claro); stroke-width: 5; }
.tronco-n { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font: 300 clamp(1.8rem, 3.6vw, 3.4rem)/1 var(--serifa); color: var(--ouro); font-variant-numeric: lining-nums; }
.como-tit { font: 300 clamp(2.5rem, 6.4vw, 6.4rem)/1 var(--serifa); letter-spacing: -.02em; margin-bottom: 1rem; }
.como-tit em { color: var(--ouro); }
.como { row-gap: 0; grid-template-rows: auto 1fr; }
.como-tit { grid-column: 2; grid-row: 1; }
.como-aneis { grid-column: 1; grid-row: 1 / 3; }
.como-texto { grid-column: 2; grid-row: 2; }
.como-progresso { display: none; }
.etapa { min-height: 62svh; display: flex; flex-direction: column; justify-content: center; opacity: .24; transition: opacity .5s; }
.etapa.ativa { opacity: 1; }
.etapa.feita { opacity: .42; }
.etapa-n { font-size: .8rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ouro); margin-bottom: .7rem; }
.etapa h3 { font: 300 clamp(2rem, 4.6vw, 4.9rem)/1.06 var(--serifa); letter-spacing: -.015em; max-width: 13em; text-wrap: balance; }
html.calmo .etapa, html:not(.js) .etapa { opacity: 1; }
html.calmo .anel, html:not(.js) .anel { stroke-dashoffset: 0; }

/* ---------- POR QUE NÓS: FAIXAS ---------- */
.porque { padding: var(--sec) var(--gutter) clamp(4rem, 8vw, 8rem); }
.porque-tit { font: 300 clamp(3rem, 10vw, 11rem)/.98 var(--serifa); letter-spacing: -.03em; color: var(--azul); text-align: center; margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.porque-tit em { color: var(--oliva); }
.faixas { display: flex; flex-direction: column; align-items: center; gap: clamp(.7rem, 1.2vw, 1.2rem); max-width: 1320px; margin: 0 auto; }
.faixa { background: var(--azul); color: var(--papel); padding: clamp(1.6rem, 3vw, 3rem) clamp(1.5rem, 5vw, 5.5rem); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1rem clamp(2rem, 4vw, 4.5rem); align-items: center; width: var(--l, 100%); }
.faixa h3 { font: 300 clamp(1.75rem, 3.1vw, 3.3rem)/1.08 var(--serifa); letter-spacing: -.01em; text-wrap: balance; }
.faixa p { line-height: 1.5; }
.faixa-final {
  width: 68%; grid-template-columns: 1fr; text-align: center; justify-items: center;
  border-radius: 0 0 50% 50% / 0 0 100% 100%; padding: clamp(1.6rem, 3vw, 3rem) clamp(2.5rem, 7vw, 8rem) clamp(4.5rem, 8vw, 8rem); background: var(--azul);
}
.faixa-final p { font: 300 clamp(1.15rem, 1.7vw, 1.65rem)/1.3 var(--serifa); color: var(--ouro-claro); }

/* ---------- DEPOIMENTOS ---------- */
.depoimentos { background: var(--oliva); color: var(--papel); padding: clamp(3rem, 6vw, 6rem) var(--gutter) var(--sec); overflow: hidden; }
.depoimentos-cab { display: flex; align-items: flex-start; gap: clamp(1rem, 3vw, 3.5rem); margin-bottom: clamp(3rem, 6vw, 6rem); }
.aspas { flex: none; font: 300 clamp(9rem, 24vw, 28rem)/.78 var(--serifa); color: var(--ouro); height: .55em; will-change: transform; }
.depoimentos h2 { font: 300 clamp(3rem, 9.4vw, 11rem)/1 var(--serifa); letter-spacing: -.03em; }
.depoimentos-cab p { font: 300 clamp(1.4rem, 2.5vw, 3rem)/1.22 var(--serifa); margin-top: .5rem; }
.previstos li {
  display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 7fr) auto; gap: .5rem clamp(1.5rem, 4vw, 5rem); align-items: center;
  padding: clamp(1.1rem, 2vw, 2rem) 0; border-top: 1px solid color-mix(in srgb, var(--papel) 32%, transparent);
}
.previstos h3 { font: 300 clamp(1.9rem, 3.4vw, 3.8rem)/1.08 var(--serifa); }
.previstos p { font-size: clamp(1.05rem, 1.35vw, 1.4rem); line-height: 1.4; }

/* ---------- CONTACTO ---------- */
.contacto {
  background: var(--noite); color: var(--papel); padding: var(--sec) var(--gutter); display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(2.5rem, 7vw, 8rem); align-items: start;
}
.contacto-info h2 { font: 300 clamp(3rem, 8.2vw, 9rem)/.98 var(--serifa); letter-spacing: -.03em; margin-bottom: 1.5rem; }
.contacto-info h2 em { color: var(--ouro); }
.contacto-info > p { max-width: 26em; margin-bottom: 2.2rem; color: color-mix(in srgb, var(--papel) 80%, transparent); }
.contacto-lista li { display: flex; align-items: center; gap: .8rem; padding: .65rem 0; border-top: 1px solid color-mix(in srgb, var(--papel) 18%, transparent); overflow-wrap: anywhere; }
.contacto-lista .ico { color: var(--ouro); }
.contacto-lista a { text-decoration: none; }
.contacto-lista a:hover { color: var(--ouro-claro); }
.contacto-form { display: grid; gap: 1.2rem; background: var(--noite-2); border-radius: clamp(7rem, 22vw, 20rem) clamp(7rem, 22vw, 20rem) 0 0; padding: clamp(6rem, 10vw, 10rem) clamp(1.5rem, 5vw, 5rem) clamp(2rem, 4vw, 4rem); }
.contacto-form h3 { font: 300 clamp(1.8rem, 3vw, 3rem)/1.08 var(--serifa); text-align: center; }
.contacto-form > p:first-of-type { text-align: center; color: color-mix(in srgb, var(--papel) 78%, transparent); font-size: .98rem; }
.contacto-form label { display: grid; gap: .2rem; font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ouro-claro); }
.contacto-form input, .contacto-form textarea {
  width: 100%; background: transparent; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--papel) 40%, transparent); color: var(--papel); padding: .6rem 0; font: 400 1.05rem var(--sans); resize: vertical; border-radius: 0;
}
.contacto-form input:focus, .contacto-form textarea:focus { outline: 0; border-bottom-color: var(--ouro); box-shadow: 0 1px 0 var(--ouro); }
.contacto-form .botao { justify-self: start; }
.contacto-aviso { font-size: .92rem; color: var(--ouro-claro); line-height: 1.4; }

/* ---------- RODAPÉ ---------- */
.rodape { background: var(--noite); color: var(--papel); padding: 0 var(--gutter) 2rem; }
.rodape-faixas { display: flex; flex-direction: column; gap: .5rem; align-items: center; padding-bottom: clamp(2.5rem, 5vw, 5rem); }
.rodape-faixas i { display: block; height: 1px; background: color-mix(in srgb, var(--papel) 25%, transparent); }
.rodape-faixas i:nth-child(1) { width: 100%; } .rodape-faixas i:nth-child(2) { width: 70%; } .rodape-faixas i:nth-child(3) { width: 40%; }
.rodape-grade { display: grid; grid-template-columns: auto minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: 2rem clamp(1.5rem, 3vw, 3.5rem); align-items: start; }
.rodape-marca img { width: clamp(6.5rem, 9vw, 9rem); }
.rodape-lema { font: 300 clamp(1.35rem, 2.2vw, 2.2rem)/1.15 var(--serifa); max-width: 15em; }
.rodape-lema em { color: var(--ouro); }
.rodape-col h2 { font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ouro); margin-bottom: .6rem; }
.rodape-col li { padding: .18rem 0; font-size: .92rem; overflow-wrap: anywhere; }
.rodape-col a { text-decoration: none; }
.rodape-col a:hover { color: var(--ouro-claro); }
.rodape-fim { margin-top: 2.5rem; padding-top: 1.2rem; border-top: 1px solid color-mix(in srgb, var(--papel) 15%, transparent); font-size: .82rem; color: color-mix(in srgb, var(--papel) 65%, transparent); }

.zap {
  position: fixed; right: clamp(.9rem, 2vw, 1.75rem); bottom: clamp(.9rem, 2vw, 1.75rem); z-index: 25; width: 3.25rem; height: 3.25rem; display: grid; place-items: center;
  background: var(--ouro); color: #FFFDF8; border-radius: 50%; box-shadow: 0 10px 26px -10px color-mix(in srgb, var(--noite) 70%, transparent); transition: transform .25s, opacity .25s, visibility .25s;
}
.zap.zap-fora { opacity: 0; visibility: hidden; transform: scale(.8); }
.zap:hover { transform: scale(1.08); }
.zap .ico { width: 1.6rem; height: 1.6rem; }

.erro { min-height: 80svh; padding: 9rem var(--gutter) 5rem; display: flex; flex-direction: column; gap: 1.2rem; align-items: flex-start; justify-content: center; }
.erro h1 { font: 300 clamp(2.8rem, 8vw, 7rem)/1 var(--serifa); color: var(--azul); }
.erro em { color: var(--oliva); }

/* ---------- SURGIR ---------- */
html.js:not(.calmo) .surge { opacity: 0; transform: translateY(26px); transition: opacity .8s, transform .9s cubic-bezier(.2, .7, .2, 1); }
html.js:not(.calmo) .surge-esq { transform: translateX(-7%); }
html.js:not(.calmo) .surge-dir { transform: translateX(7%); }
html.js:not(.calmo) .surge.visto { opacity: 1; transform: none; }

/* ---------- RESPONSIVO ---------- */
@media (max-width: 1100px) {
  .rodape-grade { grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr); }
  .rodape-lema { grid-column: 2 / -1; }
}
@media (max-width: 899px) {
  .sobre-resposta { grid-template-columns: 1fr; }
  .selo { width: min(78%, 22rem); }
  .valores { grid-template-columns: 1fr; }
  .valores-cab { position: static; }
  .faixa { grid-template-columns: 1fr; }
  .contacto { grid-template-columns: 1fr; }
}
@media (max-width: 759px) {
  .arcos { grid-template-columns: 1fr; }
  .arco-proposito { margin-top: 0; }
  .verbo { grid-template-columns: 1fr; gap: .5rem; }
  .verbo h3 { font-size: 15vw; }
  .depoimentos-cab { flex-direction: column; gap: 1rem; }
  .previstos li { grid-template-columns: 1fr; }
  .rodape-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rodape-lema { grid-column: 1 / -1; order: -1; }
  .rodape-marca { grid-column: 1 / -1; order: -2; }
}

/* ---------- ACORDEÃO DOS SERVIÇOS (sem o palco fixo das portas) ---------- */
.acordeao.portas { gap: .6rem; }
.acordeao .porta { display: grid; grid-template-rows: auto 0fr; border-radius: 3.5rem 3.5rem 0 0; transition: grid-template-rows .32s ease; scroll-margin-top: 1rem; }
.acordeao .porta.expandida { grid-template-rows: auto 1fr; }
.acordeao .porta-rotulo {
  display: flex; align-items: center; gap: .8rem; width: 100%; min-height: 4.75rem; padding: 1rem 1.5rem 1rem 1.75rem; border: 0; background: none; color: inherit;
  font: 300 clamp(1.5rem, 5.6vw, 2.4rem)/1.12 var(--serifa); text-align: left; cursor: pointer;
}
.acordeao .porta-rotulo .porta-num { flex: none; width: 1.75rem; height: 1.75rem; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font: 500 .85rem var(--sans); }
.acordeao .porta-rotulo::after { content: "+"; margin-left: auto; flex: none; font: 300 2rem/1 var(--sans); transition: transform .3s; }
.acordeao .expandida .porta-rotulo::after { transform: rotate(45deg); }
.acordeao .so-portas { display: none; }
.acordeao .so-acordeao { display: inline; }
.acordeao .porta h3 { display: none; }
.acordeao .porta-corpo { min-height: 0; overflow: hidden; visibility: hidden; padding: 0 1.75rem; gap: 1.25rem; transition: padding .32s ease, visibility .32s; }
.acordeao .expandida .porta-corpo { visibility: visible; padding: .25rem 1.75rem 1.75rem; }

/* ---------- CELULAR: usabilidade ---------- */
html { -webkit-tap-highlight-color: color-mix(in srgb, var(--ouro) 25%, transparent); }
.topo.compacto { padding-top: max(.5rem, env(safe-area-inset-top)); padding-bottom: .5rem; transition: color .35s, transform .4s cubic-bezier(.2, .7, .2, 1), background-color .3s; }
.topo.compacto .topo-logo img { height: 2.5rem; }
/* Depois da abertura o topo tem fundo: ao voltar não fica sobre o texto */
.topo.compacto.fundo { background: var(--papel); }
.topo.compacto.fundo[data-tema="escuro"] { background: var(--noite); }
.topo.compacto.gaveta-aberta { background: none; }

.gaveta > nav > ul > li > a { font-size: clamp(1.7rem, 7.5vw, 3rem); padding: .4rem 0; }
.gaveta-sub { margin: 0 0 .4rem; padding-left: 1rem; border-left: 1px solid color-mix(in srgb, var(--ouro) 50%, transparent); }
.gaveta .gaveta-sub a { font: 500 1rem/1.3 var(--sans); padding: .7rem 0; color: var(--ouro-claro); }
.gaveta a.botao { display: flex; justify-content: center; margin-top: 1.25rem; padding: 1rem 1.5rem; font: 600 1rem/1.2 var(--sans); }

@media (max-width: 899px) {
  /* Abertura mais curta: o conteúdo chega antes */
  .abertura { height: 230svh; }
  .botao { min-height: 3rem; }

  html.js:not(.calmo) .palavras span { color: color-mix(in srgb, var(--papel) 38%, transparent); }
  .palavras { font-size: clamp(1.4rem, 5.6vw, 2.2rem); line-height: 1.3; }
  .sobre-resposta { margin-top: 3.5rem; gap: 2rem; }
  .selo { width: min(62%, 16rem); }

  .servicos { padding-top: 4.5rem; padding-bottom: 4.5rem; }

  /* Etapas: barra fixa pequena com o tronco e lista compacta */
  .como { display: block; }
  .como-tit { margin-bottom: 1.25rem; }
  .como-aneis {
    display: flex; align-items: center; justify-content: flex-start; gap: 1rem; position: sticky; top: 0; z-index: 2; height: auto;
    margin: 0 calc(var(--gutter) * -1); padding: .5rem var(--gutter); background: var(--noite); border-bottom: 1px solid color-mix(in srgb, var(--ouro) 30%, transparent);
  }
  .tronco { width: 4.75rem; flex: none; border-radius: 50%; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ouro) 40%, transparent); }
  .veio { display: none; }
  .anel { stroke-width: 10; }
  .anel.atual { stroke-width: 15; }
  .tronco-n { font-size: 1.05rem; color: var(--papel); font-family: var(--sans); font-weight: 600; }
  .como-progresso { display: block; font: 300 1.45rem/1.1 var(--serifa); color: var(--ouro); }
  .etapa { min-height: 0; padding: 1.6rem 0; border-bottom: 1px solid color-mix(in srgb, var(--papel) 14%, transparent); opacity: .55; }
  .etapa.feita { opacity: .6; }
  .etapa h3 { font-size: clamp(1.65rem, 6.6vw, 2.8rem); }
  .como-texto .botao { margin-top: 2rem; }

  /* Contacto: links e campos fáceis de tocar */
  .contacto { gap: 2.5rem; }
  .contacto-lista li { padding: 0; }
  .contacto-lista li > .ico { flex: none; }
  .contacto-lista li:first-child { min-height: 3rem; }
  .contacto-lista a { display: flex; align-items: center; flex: 1; min-height: 3rem; padding: .5rem 0; }
  .contacto-form { border-radius: 6rem 6rem 0 0; padding: 4.25rem 1.5rem 2rem; }
  .contacto-form input { min-height: 3rem; }
  .contacto-form .botao { justify-self: stretch; justify-content: center; }

  /* Rodapé: contactos numa linha inteira, para o e-mail não partir */
  .rodape-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rodape-marca, .rodape-lema, .rodape-lema + .rodape-col { grid-column: 1 / -1; }
  .rodape-marca { order: -2; }
  .rodape-lema { order: -1; }
  .rodape-col li { padding: 0; font-size: 1rem; }
  .rodape-col a { display: flex; align-items: center; min-height: 2.75rem; }
  .rodape-col li:not(:has(a)) { min-height: 2.75rem; display: flex; align-items: center; }
  .rodape { padding-bottom: max(1.5rem, env(safe-area-inset-bottom)); }

  .zap { width: 3rem; height: 3rem; right: max(.9rem, env(safe-area-inset-right)); bottom: max(.9rem, env(safe-area-inset-bottom)); }
}
@media (max-width: 759px) {
  .aspas { font-size: 7rem; }
  .arco { padding-top: 7rem; }
}

/* ---------- MOVIMENTO REDUZIDO: sem etapa fixa na abertura ---------- */
html.calmo { scroll-behavior: auto; }
html.calmo .abertura { height: 100svh; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .selo-texto, .dica i { animation: none; }
}

/* Botão do assistente na secção de contacto */
.contacto-assistente { margin-top: 1.75rem; }
.contacto-assistente[hidden] { display: none; }

/* Formulário de contacto: armadilha anti-robô, erros e envio */
.armadilha { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.contacto-form label.campo-erro input, .contacto-form label.campo-erro textarea { border-bottom-color: #E8907A; }
.contacto-aviso.erro { color: #F2B4A4; }
.contacto-form button[disabled] { opacity: .6; cursor: wait; }

/* Secções reordenáveis: valores pode ficar depois de qualquer secção */
.valores { padding-top: clamp(3rem, 6vw, 6rem); }

/* ---------- CLIENTES: centrado, carrossel de 5 em 5 ---------- */
.clientes { background: var(--papel); padding: var(--sec) var(--gutter); text-align: center; }
.clientes-cab { max-width: 46rem; margin: 0 auto clamp(2.5rem, 5vw, 4.5rem); }
.clientes-tit { font: 300 clamp(2.6rem, 7vw, 7rem)/1 var(--serifa); letter-spacing: -.02em; color: var(--azul); margin-bottom: 1rem; text-wrap: balance; }
.clientes-tit em { color: var(--oliva); }
.clientes-cab p { font-size: clamp(1.05rem, 1.4vw, 1.35rem); color: var(--tinta-2); text-wrap: balance; }
.carrossel-logos { max-width: 1320px; margin: 0 auto; }
.logos { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(.9rem, 2vw, 1.75rem); }
.logos li { flex: 0 0 min(100%, 13rem); }
.logos a, .logos li > div { display: grid; gap: .7rem; text-decoration: none; color: var(--tinta-2); }
.logo-arco {
  display: grid; place-items: center; aspect-ratio: 4 / 3; padding: 18% 14% 12%;
  border: 1.5px solid color-mix(in srgb, var(--azul) 18%, transparent); border-bottom: 4px solid var(--azul); border-radius: 999px 999px .6rem .6rem;
  background: #FFFDF8; transition: border-color .3s, transform .3s, box-shadow .3s;
}
.logo-arco img { max-width: 100%; max-height: 5.5rem; width: auto; height: auto; object-fit: contain; user-select: none; transition: transform .3s; }
.logos a:hover .logo-arco, .logos a:focus-visible .logo-arco { border-color: var(--azul); transform: translateY(-4px); box-shadow: 0 16px 30px -22px color-mix(in srgb, var(--noite) 60%, transparent); }
.logos li:hover img, .logos a:focus-visible img { transform: scale(1.04); }
.logo-nome { font-size: .92rem; font-weight: 600; }

/* ---------- Carrossel (genérico) ---------- */
.carrossel-ativo .carrossel-janela { overflow: hidden; padding: 6px 0 14px; margin: -6px 0 -14px; touch-action: pan-y; }
.carrossel-ativo .carrossel-trilho {
  --g: clamp(.9rem, 2vw, 1.75rem);
  display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: var(--g);
  transition: transform .8s cubic-bezier(.65, 0, .25, 1); will-change: transform;
}
.carrossel-ativo .carrossel-trilho > li { flex: 0 0 calc((100% - (var(--por, 1) - 1) * var(--g)) / var(--por, 1)); min-width: 0; }
.carrossel-ativo .carrossel-trilho > li[aria-hidden="true"] { opacity: .35; transition: opacity .6s; }
.carrossel-ativo .carrossel-trilho > li[aria-hidden="false"] { opacity: 1; transition: opacity .6s; }
.carrossel-controlos { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: clamp(1.75rem, 3vw, 2.5rem); }
.carrossel-controlos[hidden] { display: none; }
.carrossel-seta {
  display: grid; place-items: center; width: 3rem; height: 3rem; flex: none; border: 1.5px solid currentColor; border-radius: 50%;
  background: transparent; color: var(--azul); cursor: pointer; transition: background-color .25s, color .25s;
}
.carrossel-seta svg { width: 1.3rem; height: 1.3rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.carrossel-seta:hover { background: var(--azul); color: var(--papel); }
/* Indicadores: as faixas da logo; a activa enche-se durante o intervalo */
.carrossel-pontos { display: flex; align-items: center; gap: .45rem; }
.carrossel-ponto {
  position: relative; width: 2.4rem; height: 2.75rem; border: 0; background: none; cursor: pointer; padding: 0;
}
.carrossel-ponto::before, .carrossel-ponto::after { content: ""; position: absolute; left: 0; top: 50%; height: 5px; margin-top: -2.5px; border-radius: 99px; }
.carrossel-ponto::before { right: 0; background: color-mix(in srgb, var(--azul) 20%, transparent); }
.carrossel-ponto::after { width: 0; background: var(--azul); }
.carrossel-ponto.ativo::after { animation: encher var(--intervalo, 6s) linear forwards; }
.pausado .carrossel-ponto.ativo::after { animation: none; width: 100%; }
@keyframes encher { from { width: 0; } to { width: 100%; } }

/* ---------- DEPOIMENTOS: citação em destaque ---------- */
.depoimentos { position: relative; isolation: isolate; }
.depoimentos-oliveira {
  position: absolute; right: -6%; bottom: 8%; z-index: -1; width: min(48vw, 46rem); aspect-ratio: 1; opacity: .12; background: var(--papel);
  -webkit-mask: var(--oliveira) center / contain no-repeat; mask: var(--oliveira) center / contain no-repeat; pointer-events: none;
}
.depoimentos-grade { display: grid; gap: clamp(2rem, 5vw, 5rem); margin-bottom: clamp(3rem, 6vw, 6rem); }
.com-depoimentos .depoimentos-cab { margin-bottom: 0; }
@media (min-width: 1000px) {
  .com-depoimentos .depoimentos-grade { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; }
  .com-depoimentos .depoimentos-cab { flex-direction: column; gap: 0; }
  .com-depoimentos .aspas { font-size: clamp(9rem, 16vw, 18rem); }
  .com-depoimentos .depoimentos h2, .com-depoimentos h2 { font-size: clamp(3rem, 6.4vw, 7rem); }
}
.depoimentos-cab p em { color: var(--ouro-claro); }
.depo {
  position: relative; display: flex; flex-direction: column; gap: clamp(1.25rem, 2.5vw, 2rem); padding: clamp(1.75rem, 3.5vw, 3.25rem);
  border-radius: clamp(5rem, 14vw, 12rem) clamp(5rem, 14vw, 12rem) 1.25rem 1.25rem; padding-top: clamp(3.5rem, 7vw, 6rem);
  background: color-mix(in srgb, var(--noite) 28%, transparent); border: 1px solid color-mix(in srgb, var(--papel) 14%, transparent); text-align: left;
}
.depo::before {
  content: "“"; position: absolute; top: clamp(.4rem, 1.5vw, 1.2rem); left: 50%; transform: translateX(-50%);
  font: 300 clamp(4rem, 8vw, 7rem)/1 var(--serifa); color: var(--ouro);
}
.depo blockquote { margin: 0; }
.depo blockquote p { font: 300 clamp(1.45rem, 2.6vw, 2.6rem)/1.28 var(--serifa); letter-spacing: -.01em; color: var(--papel); text-wrap: pretty; }
.depo-autor { display: flex; align-items: center; gap: 1rem; padding-top: clamp(1rem, 2vw, 1.5rem); border-top: 1px solid color-mix(in srgb, var(--papel) 20%, transparent); }
.depo-avatar {
  flex: none; display: grid; place-items: center; width: 3.4rem; height: 4rem; padding-top: .3rem; border-radius: 999px 999px .45rem .45rem;
  background: var(--ouro); color: #FFFDF8; font: 600 1.05rem var(--sans); letter-spacing: .04em;
}
.depo-autor b { display: block; font: 600 1.1rem/1.25 var(--sans); }
.depo-autor small { display: block; color: var(--ouro-claro); font-size: .92rem; line-height: 1.35; }
.depo-exemplo { align-self: flex-start; padding: .3rem .8rem; border-radius: 99px; background: var(--ouro-claro); color: var(--noite); font-size: .75rem; font-weight: 700; letter-spacing: .04em; }
.carrossel-depo .carrossel-controlos { justify-content: flex-start; }
.carrossel-depo .carrossel-seta { color: var(--papel); }
.carrossel-depo .carrossel-seta:hover { background: var(--papel); color: var(--oliva); }
.carrossel-depo .carrossel-ponto::before { background: color-mix(in srgb, var(--papel) 25%, transparent); }
.carrossel-depo .carrossel-ponto::after { background: var(--ouro); }
.previsto-etq { font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ouro-claro); white-space: nowrap; }
@media (max-width: 999px) { .carrossel-depo .carrossel-controlos { justify-content: center; } }
@media (prefers-reduced-motion: reduce) { .carrossel-ativo .carrossel-trilho { transition: none; } .carrossel-ponto.ativo::after { animation: none; width: 100%; } }


/* ---------- Actualizações do cliente (2026-11-11) ---------- */
/* Topo: símbolo + palavra "OlivalhO" original da logo */
.topo-palavra { position: relative; display: block; height: 1.45rem; }
.topo .topo-logo .topo-palavra img { height: 100%; width: auto; }
.topo-logo .topo-palavra .so-escuro { position: absolute; left: 0; top: 0; }
.topo.compacto .topo-palavra { height: 1.25rem; }
/* Rodapé: logo com "Lançando sementes" */
.rodape-marca img { width: clamp(7.5rem, 10vw, 10rem); height: auto; }
/* Quem somos: descrição por baixo do parágrafo grande */
.sobre-descricao { max-width: 46em; margin-top: clamp(2rem, 4vw, 3.5rem); font-size: clamp(1.05rem, 1.45vw, 1.35rem); line-height: 1.6; color: color-mix(in srgb, var(--papel) 86%, transparent); }
.sobre-resposta em { font-family: var(--serifa); font-size: 1.12em; color: var(--ouro); }
/* Valores: nome em destaque e o significado por baixo */
.valores-lista li { display: grid; grid-template-columns: 1fr; gap: .35rem; }
.valores-texto { display: block; font: 400 clamp(1rem, 1.3vw, 1.2rem)/1.5 var(--sans); letter-spacing: 0; color: var(--tinta-2); max-width: 38em; }
/* O que fazemos: introdução e as duas listas da Academia */
.servicos-cab { display: grid; gap: .75rem; margin-bottom: 2rem; }
.servicos-cab .servicos-tit { margin-bottom: 0; }
.servicos-intro { max-width: 46em; font-size: clamp(1.02rem, 1.3vw, 1.25rem); line-height: 1.55; color: var(--tinta-2); }
.porta-academia { display: grid; gap: 1.5rem 3rem; width: 100%; }
@media (min-width: 760px) { .porta-academia { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) and (min-height: 620px) {
  html.js:not(.calmo) .servicos { height: 300svh; }
  html.js:not(.calmo) .servicos-cab { margin-bottom: clamp(.6rem, 2svh, 1.4rem); gap: .35rem; }
  html.js:not(.calmo) .servicos-intro { font-size: clamp(.92rem, 2svh, 1.1rem); max-width: 60em; }
  html.js:not(.calmo) .porta-academia .porta-grande li { font-size: clamp(1.25rem, 3.6svh, 2.1rem); }
}
/* Como trabalhamos: pergunta (dourado) e resultado de cada etapa */
.etapa-pergunta { margin-top: .9rem; font: 300 italic clamp(1.3rem, 2.4vw, 2.2rem)/1.25 var(--serifa); color: var(--ouro); }
.etapa-resultado { margin-top: .6rem; max-width: 30em; font-size: clamp(1rem, 1.3vw, 1.2rem); line-height: 1.55; color: color-mix(in srgb, var(--papel) 78%, transparent); }
/* Porquê nós: faixas que estreitam (largura vem do PHP) */
@media (max-width: 899px) { .faixa, .faixa-final { width: 100% !important; } }
/* Abertura: "Deslize para entrar" já não é link; seta a descer em movimento */
.dica { margin: 0; cursor: default; }
.dica-seta { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border: 1.5px solid currentColor; border-radius: 50%; animation: dica-desce 1.8s ease-in-out infinite; }
.dica-seta svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@keyframes dica-desce { 0%, 100% { transform: translateY(-3px); } 50% { transform: translateY(5px); } }
@media (prefers-reduced-motion: reduce) { .dica-seta { animation: none; } }
@media (max-width: 599px) { .topo-palavra { height: 1.15rem; } }

/* Topo: símbolo + palavra "OlivalhO" original da logo; a versão vertical com o lema fica no rodapé */

/* Voltar ao topo: por cima do botão do WhatsApp */
.subir {
  position: fixed; z-index: 25; right: calc(clamp(.9rem, 2vw, 1.75rem) + .3rem); bottom: calc(clamp(.9rem, 2vw, 1.75rem) + 4rem);
  width: 2.65rem; height: 2.65rem; display: grid; place-items: center; border-radius: 50%;
  background: var(--noite); color: var(--papel); border: 1.5px solid color-mix(in srgb, var(--ouro) 70%, transparent);
  box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--noite) 70%, transparent);
  opacity: 0; visibility: hidden; transform: translateY(.6rem); transition: opacity .25s, visibility .25s, transform .25s, background-color .2s;
}
.subir.visivel { opacity: 1; visibility: visible; transform: none; }
.subir:hover, .subir:focus-visible { background: var(--azul); transform: translateY(-2px); }
.subir svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
html.assist-aberto .subir { opacity: 0; visibility: hidden; }
@media (max-width: 899px) {
  .subir { right: calc(max(.9rem, env(safe-area-inset-right)) + .2rem); bottom: calc(max(.9rem, env(safe-area-inset-bottom)) + 3.7rem); width: 2.6rem; height: 2.6rem; }
}
@media print { .subir { display: none; } }

/* =========================================================
   NOTÍCIAS
   ========================================================= */
/* Cartão (página principal, lista, outras notícias) */
.cartao-noticia { position: relative; display: grid; gap: 1rem; height: 100%; align-content: start; }
.cartao-capa { position: relative; display: block; overflow: hidden; border-radius: 1.4rem 1.4rem .5rem .5rem; aspect-ratio: 16 / 10; background: var(--azul); }
.cartao-capa img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.cartao-noticia:hover .cartao-capa img { transform: scale(1.045); }
/* Sem capa: a oliveira da marca sobre azul, com as faixas da base */
.cartao-sem-capa { position: absolute; inset: 0; background:
  linear-gradient(transparent 70%, color-mix(in srgb, var(--papel) 12%, transparent) 70% 74%, transparent 74% 80%, color-mix(in srgb, var(--papel) 12%, transparent) 80% 84%, transparent 84%),
  radial-gradient(120% 90% at 50% 110%, var(--noite-2), var(--azul)); }
.cartao-sem-capa::after { content: ""; position: absolute; inset: 14% 30% 26%; background: var(--ouro); opacity: .5;
  -webkit-mask: var(--oliveira) center / contain no-repeat; mask: var(--oliveira) center / contain no-repeat; }
.cartao-destaque { position: absolute; left: .8rem; top: .8rem; display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .75rem; border-radius: 99px;
  background: var(--ouro); color: #FFFDF8; font-size: .74rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.cartao-destaque .ico { width: .95rem; height: .95rem; }
.cartao-corpo { display: grid; gap: .55rem; align-content: start; }
.cartao-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .8rem; font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--tinta-2); }
.cartao-cat { color: var(--oliva); }
.cartao-corpo h2, .cartao-corpo h3 { font: 400 clamp(1.3rem, 1.8vw, 1.65rem)/1.18 var(--serifa); color: var(--azul); text-wrap: balance; overflow-wrap: anywhere; }
.cartao-corpo h2 a, .cartao-corpo h3 a { text-decoration: none; }
/* A ligação do título cobre o cartão todo (um só alvo de toque) */
.cartao-corpo h2 a::after, .cartao-corpo h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 1.4rem; }
.cartao-corpo h2 a:focus-visible, .cartao-corpo h3 a:focus-visible { outline: 0; }
.cartao-noticia:has(a:focus-visible) { outline: 2px solid var(--ouro); outline-offset: 6px; border-radius: 1.4rem; }
.cartao-corpo p { color: var(--tinta-2); font-size: .98rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.cartao-ler { display: inline-flex; align-items: center; gap: .45rem; margin-top: .2rem; font-size: .88rem; font-weight: 600; color: var(--azul); transition: gap .25s; }
.cartao-noticia:hover .cartao-ler { gap: .8rem; }
.cartao-grande .cartao-capa { aspect-ratio: 4 / 3; border-radius: 2rem 2rem .6rem .6rem; }
.cartao-grande .cartao-corpo h3 { font-size: clamp(1.7rem, 3vw, 2.6rem); }
.cartao-compacto { grid-template-columns: minmax(6.5rem, 38%) 1fr; align-items: center; gap: 1.1rem; }
.cartao-compacto .cartao-capa { aspect-ratio: 4 / 3; border-radius: 1rem 1rem .4rem .4rem; }
.cartao-compacto .cartao-corpo h3 { font-size: clamp(1.1rem, 1.5vw, 1.35rem); }
.cartao-compacto .cartao-destaque { left: .4rem; top: .4rem; padding: .25rem .5rem; font-size: .62rem; }

/* Secção na página principal */
.noticias { background: var(--papel-2); padding: var(--sec) var(--gutter); }
.noticias-cab { display: grid; gap: 1rem; align-items: end; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.noticias-tit { font: 300 clamp(2.5rem, 6.4vw, 6.4rem)/1 var(--serifa); letter-spacing: -.02em; color: var(--azul); }
.noticias-tit em { color: var(--oliva); }
.noticias-cab p { max-width: 34em; color: var(--tinta-2); }
.noticias-cab .botao { justify-self: start; }
@media (min-width: 900px) {
  .noticias-cab { grid-template-columns: 1fr auto; }
  .noticias-cab .noticias-tit { grid-column: 1 / -1; }
  .noticias-cab .botao { justify-self: end; }
}
.noticias-grade { display: grid; gap: clamp(1.75rem, 3vw, 3rem); }
.noticias-lado { display: grid; gap: 1.5rem; align-content: start; }
.noticias-lado > div + div { padding-top: 1.5rem; border-top: 1px solid color-mix(in srgb, var(--azul) 15%, transparent); }
@media (min-width: 900px) {
  .noticias-grade { grid-template-columns: 1.15fr 1fr; align-items: start; }
  .noticias-grade.so-uma { grid-template-columns: minmax(0, 46rem); }
}
@media (max-width: 520px) { .cartao-compacto { grid-template-columns: 7rem 1fr; } .cartao-compacto .cartao-ler { display: none; } }

/* Página com todas as notícias */
.pag-noticias, .pag-noticia, .outras-noticias { padding: clamp(7.5rem, 14vw, 10rem) var(--gutter) var(--sec); }
.pag-cab { display: grid; gap: 1rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.pag-cab h1 { font: 300 clamp(3rem, 9vw, 8rem)/.95 var(--serifa); letter-spacing: -.03em; color: var(--azul); }
.pag-cab h1 em { color: var(--oliva); }
.pag-intro { max-width: 38em; font-size: clamp(1.05rem, 1.4vw, 1.3rem); color: var(--tinta-2); }
.migalhas { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .85rem; color: var(--tinta-2); }
.migalhas a { color: var(--azul); text-underline-offset: .2em; }
.filtros-noticias { display: grid; gap: 1rem; margin-bottom: 1.5rem; }
@media (min-width: 900px) { .filtros-noticias { grid-template-columns: minmax(16rem, 22rem) 1fr; align-items: center; } }
.pesquisa { display: flex; align-items: center; gap: .6rem; min-height: 3.2rem; padding: 0 1.1rem; border: 1.5px solid color-mix(in srgb, var(--azul) 20%, transparent); border-radius: 99px; background: #FFFDF8; color: var(--tinta-2); transition: border-color .2s, box-shadow .2s; }
.pesquisa:focus-within { border-color: var(--azul); box-shadow: 0 0 0 4px color-mix(in srgb, var(--azul) 12%, transparent); }
.pesquisa input { flex: 1; min-width: 0; border: 0; background: none; font: inherit; color: var(--tinta); outline: 0; padding: .7rem 0; }
.categorias { display: flex; gap: .45rem; overflow-x: auto; scrollbar-width: none; margin: 0 calc(-1 * var(--gutter)); padding: .2rem var(--gutter); }
.categorias::-webkit-scrollbar { display: none; }
@media (min-width: 900px) { .categorias { flex-wrap: wrap; overflow: visible; margin: 0; padding: 0; } }
.categorias a { flex: none; display: inline-flex; align-items: center; gap: .4rem; min-height: 2.75rem; padding: 0 1.05rem; border-radius: 99px; border: 1.5px solid color-mix(in srgb, var(--azul) 20%, transparent);
  text-decoration: none; font-size: .92rem; font-weight: 600; color: var(--azul); transition: background-color .2s, color .2s; }
.categorias a small { font-size: .75rem; opacity: .65; }
.categorias a:hover { background: #FFFDF8; }
.categorias a[aria-current="page"] { background: var(--azul); border-color: var(--azul); color: var(--papel); }
.resultado { margin-bottom: 1.5rem; color: var(--tinta-2); }
.resultado a { color: var(--azul); }
.etiqueta-filtro { display: inline-flex; gap: .3rem; padding: .1rem .6rem; border-radius: 99px; background: var(--azul); color: var(--papel) !important; text-decoration: none; font-weight: 600; font-size: .9rem; }
.grade-noticias { display: grid; gap: clamp(2rem, 3.5vw, 3rem) clamp(1.5rem, 2.5vw, 2.25rem); grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.noticias-vazio { padding: 3rem 0; font: 300 clamp(1.4rem, 2.5vw, 2rem)/1.3 var(--serifa); color: var(--tinta-2); }
.paginacao { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1rem; margin-top: clamp(2.5rem, 5vw, 4rem); color: var(--tinta-2); }
.paginacao a { display: inline-flex; align-items: center; gap: .5rem; min-height: 3rem; padding: 0 1.3rem; border-radius: 99px; background: var(--azul); color: var(--papel); text-decoration: none; font-weight: 600; }
.paginacao a:hover { background: var(--noite); }

/* Página de uma notícia */
.pag-noticia { padding-bottom: clamp(3rem, 6vw, 5rem); }
.aviso-rascunho { max-width: 52rem; margin: 0 auto 1.5rem; padding: .8rem 1.1rem; border-radius: .9rem; background: #FBF0D3; color: #6B4E0E; font-size: .92rem; font-weight: 600; }
.noticia-cab { max-width: 52rem; margin: 0 auto; display: grid; gap: 1.1rem; }
.noticia-cab h1 { font: 300 clamp(2.3rem, 5.6vw, 4.8rem)/1.02 var(--serifa); letter-spacing: -.02em; color: var(--azul); text-wrap: balance; overflow-wrap: anywhere; }
.noticia-lead { font: 300 clamp(1.2rem, 2vw, 1.6rem)/1.45 var(--serifa); color: var(--tinta); }
.noticia-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-size: .88rem; color: var(--tinta-2); }
.noticia-meta > * { display: inline-flex; align-items: center; gap: .4rem; }
.noticia-meta a { color: var(--azul); }
.noticia-capa { margin: clamp(2rem, 4vw, 3.5rem) auto 0; max-width: 72rem; }
.noticia-capa img { width: 100%; max-height: 78svh; object-fit: cover; border-radius: clamp(1.2rem, 3vw, 2.5rem) clamp(1.2rem, 3vw, 2.5rem) .6rem .6rem; }
.noticia-conteudo { max-width: 46rem; margin: clamp(2rem, 4vw, 3.5rem) auto 0; display: grid; gap: clamp(2.5rem, 5vw, 4rem); }
.prosa { font-size: clamp(1.05rem, 1.15vw, 1.18rem); line-height: 1.75; color: var(--tinta); overflow-wrap: break-word; }
.prosa > * + * { margin-top: 1.1em; }
.prosa h2 { margin-top: 1.8em; font: 400 clamp(1.6rem, 2.6vw, 2.2rem)/1.2 var(--serifa); color: var(--azul); }
.prosa h3 { margin-top: 1.5em; font: 500 clamp(1.25rem, 1.8vw, 1.5rem)/1.25 var(--serifa); color: var(--azul); }
.prosa ul, .prosa ol { padding-left: 1.4em; }
.prosa ul li { position: relative; }
.prosa ul li::before { content: ""; position: absolute; left: -1.05em; top: .72em; width: .42em; height: .42em; border-radius: 50%; background: var(--ouro); }
.prosa ol { list-style: decimal; }
.prosa ol li::marker { color: var(--oliva); font-weight: 700; }
.prosa li + li { margin-top: .4em; }
.prosa blockquote { margin-left: 0; margin-right: 0; padding: .4em 0 .4em 1.3em; border-left: 3px solid var(--ouro); font: italic 300 clamp(1.3rem, 2vw, 1.7rem)/1.45 var(--serifa); color: var(--azul); }
.prosa a { color: var(--azul); text-decoration-color: var(--ouro); text-decoration-thickness: 2px; text-underline-offset: .2em; }
.prosa hr { border: 0; height: 1px; background: color-mix(in srgb, var(--azul) 20%, transparent); margin: 2.2em 0; }
.galeria h2 { display: flex; align-items: baseline; gap: .6rem; margin-bottom: 1.2rem; font: 400 clamp(1.6rem, 2.6vw, 2.2rem)/1.2 var(--serifa); color: var(--azul); }
.galeria h2 small { font: 600 .9rem var(--sans); color: var(--tinta-2); }
.galeria-grade { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fill, minmax(min(46%, 11rem), 1fr)); }
.galeria-grade a { display: block; overflow: hidden; border-radius: .8rem; aspect-ratio: 1; background: var(--papel-2); }
.galeria-grade img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.galeria-grade a:hover img { transform: scale(1.06); }
@media (min-width: 700px) { .galeria-grade li:first-child { grid-column: span 2; grid-row: span 2; } }
.noticia-rodape { display: grid; gap: 1.2rem; padding-top: 2rem; border-top: 1px solid color-mix(in srgb, var(--azul) 15%, transparent); }
.noticia-rodape .botao { justify-self: start; }
.etiquetas-noticia { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; color: var(--tinta-2); }
.etiquetas-noticia a { padding: .3rem .8rem; border-radius: 99px; border: 1.5px solid color-mix(in srgb, var(--azul) 20%, transparent); color: var(--azul); text-decoration: none; font-size: .9rem; font-weight: 600; }
.etiquetas-noticia a:hover { background: var(--azul); color: var(--papel); }
.partilhar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .92rem; color: var(--tinta-2); }
.partilhar a, .partilhar button { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.6rem; padding: 0 .95rem; border-radius: 99px; border: 0; background: #FFFDF8;
  color: var(--azul); font: 600 .9rem var(--sans); text-decoration: none; cursor: pointer; box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--azul) 18%, transparent); }
.partilhar a:hover, .partilhar button:hover { background: var(--azul); color: var(--papel); }
.outras-noticias { background: var(--papel-2); padding-top: var(--sec); }
.outras-noticias h2 { margin-bottom: clamp(2rem, 4vw, 3rem); font: 300 clamp(2.2rem, 5vw, 4.5rem)/1 var(--serifa); color: var(--azul); }

/* Visualizador da galeria */
.visor { position: fixed; inset: 0; z-index: 90; display: grid; grid-template-columns: auto 1fr auto; align-items: center; background: rgb(12 18 34 / .96); color: var(--papel); }
.visor[hidden] { display: none; }
.visor-fig { margin: 0; grid-column: 2; display: grid; place-items: center; align-content: center; gap: .8rem; height: 100svh; padding: 4rem .5rem 3.5rem; min-width: 0; }
.visor-fig img { max-width: 100%; max-height: calc(100svh - 9rem); width: auto; height: auto; object-fit: contain; border-radius: .5rem; opacity: 0; transition: opacity .3s; }
.visor-fig img.pronta { opacity: 1; }
.visor-fig figcaption { max-width: 40rem; text-align: center; font-size: .95rem; color: color-mix(in srgb, var(--papel) 85%, transparent); }
.visor button { display: grid; place-items: center; width: 3.2rem; height: 3.2rem; margin: 0 .5rem; border: 0; border-radius: 50%; background: color-mix(in srgb, var(--papel) 10%, transparent); color: var(--papel); cursor: pointer; }
.visor button:hover { background: color-mix(in srgb, var(--papel) 22%, transparent); }
.visor button[hidden] { visibility: hidden; display: grid; }
.visor svg { width: 1.4rem; height: 1.4rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.visor .visor-fechar { position: absolute; top: max(.8rem, env(safe-area-inset-top)); right: .8rem; margin: 0; }
.visor-conta { position: absolute; top: max(1.6rem, env(safe-area-inset-top)); left: 1.2rem; font-size: .9rem; color: color-mix(in srgb, var(--papel) 70%, transparent); }
@media (max-width: 640px) {
  .visor { grid-template-columns: 1fr; }
  .visor-fig { grid-column: 1; padding-inline: 0; }
  .visor .visor-ant, .visor .visor-seg { position: absolute; bottom: max(1rem, env(safe-area-inset-bottom)); margin: 0; }
  .visor .visor-ant { left: 1rem; }
  .visor .visor-seg { right: 1rem; }
}
.topo-nav a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--ouro); text-decoration-thickness: 2px; text-underline-offset: .35em; }

/* V3: introdução das práticas no Como trabalhamos */
.como-intro { font: 300 clamp(1.2rem, 1.7vw, 1.75rem)/1.4 var(--serifa); max-width: 34em; margin: 0 0 clamp(1rem, 3vw, 2.5rem); color: color-mix(in srgb, var(--papel) 86%, transparent); text-wrap: pretty; }
.como-intro strong { font-weight: 400; color: var(--ouro-claro); }
/* V3: serviço que ainda vai chegar */
.em-breve { display: inline-block; margin-left: .35em; padding: .12em .6em; border: 1px solid currentColor; border-radius: 999px; font: 600 .66rem/1.5 var(--sans); letter-spacing: .12em; text-transform: uppercase; vertical-align: .15em; opacity: .75; white-space: nowrap; }
/* V3: título mais comprido ("O que nos distingue") */
.porque-tit { font-size: clamp(2.6rem, 7.4vw, 8.4rem); text-wrap: balance; }
/* Árvore na cor escolhida no painel (o SVG serve de máscara) */
.arvore-cor { display: block; aspect-ratio: 270 / 271; background: var(--azul); -webkit-mask: var(--arvore) center / 100% 100% no-repeat; mask: var(--arvore) center / 100% 100% no-repeat; }

/* ---------- Logos do painel: tamanho e posição ---------- */
.topo-original { display: flex; align-items: center; gap: .65rem; }
.topo-logo .topo-original.so-escuro { position: absolute; left: 0; top: 0; height: 100%; }
.topo .topo-logo img { height: calc(2.9rem * var(--logo-escala, 1)); }
.topo.compacto .topo-logo img { height: calc(2.5rem * var(--logo-escala, 1)); }
.topo-palavra { height: calc(1.45rem * var(--logo-escala, 1)); }
.topo.compacto .topo-palavra { height: calc(1.25rem * var(--logo-escala, 1)); }
@media (max-width: 599px) { .topo-palavra, .topo.compacto .topo-palavra { height: calc(1.15rem * var(--logo-escala, 1)); } }
.topo .topo-logo .topo-palavra img { height: 100%; }
.topo .topo-logo .topo-logo-img { width: auto; max-width: min(56vw, 22rem); object-fit: contain; object-position: left center; }
.topo-logo .topo-logo-img.so-escuro { position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
.topo.logo-direita { flex-direction: row-reverse; }
.topo.logo-direita .topo-logo .topo-logo-img { object-position: right center; }
.topo.logo-direita .topo-logo .so-escuro { left: auto; right: 0; }
.topo.logo-centro .topo-logo { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.topo.logo-centro { justify-content: flex-end; }
.rodape-marca img { width: calc(clamp(7.5rem, 10vw, 10rem) * var(--logo-escala, 1)); max-width: 100%; height: auto; }
.rodape-grade.logo-centro .rodape-marca, .rodape-grade.logo-direita .rodape-marca { grid-column: 1 / -1; order: -3; }
.rodape-grade.logo-centro .rodape-marca { justify-self: center; }
.rodape-grade.logo-direita .rodape-marca { justify-self: end; }
.rodape-marca img.logo-larga { width: calc(clamp(12rem, 18vw, 18rem) * var(--logo-escala, 1)); }
/* Logo oficial no topo: símbolo com o nome por baixo */
.topo .topo-logo img.topo-cabecalho { height: calc(5.72rem * var(--logo-escala, 1)); width: auto; }
.topo.compacto .topo-logo img.topo-cabecalho { height: calc(4.42rem * var(--logo-escala, 1)); }
@media (max-width: 599px) { .topo .topo-logo img.topo-cabecalho { height: calc(4.42rem * var(--logo-escala, 1)); } }

/* Lema por baixo do símbolo (faixas azuis): centrado, numa linha sempre que couber */
.lema .lema-a {
  left: var(--gutter); right: var(--gutter); width: auto; text-align: center; text-wrap: balance;
  top: calc(15svh + 52svh + min(35svh, 54vw) * .47 + 2.2svh);
  font-size: clamp(1.5rem, min(3vw, 5.2svh), 3.4rem); line-height: 1.1;
}
@media (max-aspect-ratio: 1/1), (max-width: 959px) and (min-height: 561px) {
  .lema .lema-a { top: calc(28svh + 38svh + min(25.6svh, 54vw) * .47 + 2.4svh); font-size: clamp(1.45rem, 6.6vw, 2.6rem); }
}
@media (max-height: 500px) and (min-aspect-ratio: 1/1) {
  .lema .lema-a { top: calc(18svh + 50svh + min(33.5svh, 54vw) * .47 + 1.5svh); font-size: clamp(1rem, 6.5svh, 1.8rem); }
}

/* Lema da abertura com mais presença: maior, "Angola" em destaque, filetes que se desenham dos lados e entrada suave */
.lema .lema-a { font-size: clamp(1.9rem, min(4vw, 6.2svh), 4.6rem); letter-spacing: -.022em; }
.lema-linha { display: inline-flex; align-items: center; justify-content: center; gap: clamp(.9rem, 2vw, 1.8rem); max-width: 100%; }
.lema-linha::before, .lema-linha::after {
  content: ""; flex: none; width: clamp(2.2rem, 7vw, 7.5rem); height: 1.5px; border-radius: 2px;
  background: linear-gradient(90deg, transparent, var(--ouro)); transform: scaleX(0); transform-origin: right center;
  animation: lema-filete 1.1s cubic-bezier(.2, .7, .2, 1) .75s forwards;
}
.lema-linha::after { background: linear-gradient(90deg, var(--ouro), transparent); transform-origin: left center; }
.lema-txt { min-width: 0; animation: lema-entra 1.2s cubic-bezier(.2, .7, .2, 1) .15s both; }
.lema .lema-a em { color: var(--ouro); font-weight: 400; padding-right: .04em; }
@keyframes lema-entra { from { opacity: 0; transform: translateY(.45em); filter: blur(8px); letter-spacing: .06em; } }
@keyframes lema-filete { to { transform: scaleX(1); } }
@media (max-aspect-ratio: 1/1), (max-width: 959px) and (min-height: 561px) {
  .lema .lema-a { font-size: clamp(1.7rem, 7.8vw, 3rem); }
  .lema-linha { gap: .7rem; }
  .lema-linha::before, .lema-linha::after { width: clamp(1.2rem, 6vw, 3.5rem); }
}
@media (max-width: 420px) { .lema-linha::before, .lema-linha::after { display: none; } }
@media (max-height: 500px) and (min-aspect-ratio: 1/1) { .lema .lema-a { font-size: clamp(1.1rem, 7svh, 2rem); } }
@media (prefers-reduced-motion: reduce) { .lema-txt, .lema-linha::before, .lema-linha::after { animation: none; transform: none; } }

/* O que fazemos (ecrã grande): portas com a altura do conteúdo e o bloco centrado no ecrã */
@media (min-width: 1024px) and (min-height: 620px) {
  html.js:not(.calmo) .servicos-palco { justify-content: center; padding-bottom: clamp(1rem, 4svh, 2.5rem); }
  html.js:not(.calmo) .portas { flex: 0 0 auto; }
  html.js:not(.calmo) .porta-colunas { gap: 1.5rem 3rem; }
  html.js:not(.calmo) .porta-corpo { padding-top: clamp(4.2rem, 11svh, 6.5rem); }
}
/* Consultoria com a mesma letra, títulos e espaçamentos da Academia */
.porta-colunas { gap: 1.5rem 3rem; width: 100%; }

/* Menu: secção em que se está */
.topo-nav > ul > li > a.ativo::after { transform: scaleX(1); height: 2px; background: var(--ouro); }
.topo[data-tema="escuro"] .topo-nav > ul > li > a.ativo::after { background: var(--ouro-claro); }
.topo-cta.ativo { box-shadow: 0 0 0 2px var(--papel), 0 0 0 4px var(--ouro); }
.gaveta a.ativo:not(.botao) { color: var(--ouro-claro); }
.gaveta a.ativo:not(.botao)::before { content: ""; display: inline-block; width: .5em; height: .5em; margin-right: .45em; border-radius: 50%; background: currentColor; vertical-align: .18em; }
@media (min-width: 1024px) and (min-height: 620px) {
  /* Consultoria e Academia: a mesma letra, a caber no ecrã; conteúdo a começar no topo da porta */
  html.js:not(.calmo) .porta ul.porta-grande li { font-size: clamp(1.1rem, 2.75svh, 2.1rem); padding: clamp(.2rem, .6svh, .5rem) 0; }
  html.js:not(.calmo) .porta-corpo { justify-content: flex-start; }
}
@media (min-width: 1024px) and (max-width: 1180px) and (min-height: 620px) {
  html.js:not(.calmo) .porta ul.porta-grande li { font-size: clamp(1rem, 2.35svh, 1.6rem); }
  html.js:not(.calmo) .porta-corpo { padding-top: clamp(3.6rem, 9svh, 5rem); }
}

/* ---------- Serviços: item com cartão de descrição ---------- */
.servico { position: relative; cursor: pointer; outline: none; transition: color .2s, padding-left .25s cubic-bezier(.2, .7, .2, 1); }
.servico::after {
  content: "→"; position: absolute; right: .2rem; top: 50%; transform: translate(-.4rem, -50%); opacity: 0;
  font: 400 .7em/1 var(--sans); transition: opacity .2s, transform .25s;
}
.servico:hover, .servico.aberto, .servico:focus-visible { color: var(--ouro-claro); padding-left: .45rem; }
.servico:hover::after, .servico.aberto::after, .servico:focus-visible::after { opacity: 1; transform: translate(0, -50%); }
.servico:focus-visible { box-shadow: inset 3px 0 0 var(--ouro-claro); }
.editando .servico { cursor: text; }
.editando .servico::after { display: none; }

.servico-pop {
  position: fixed; z-index: 60; top: 0; left: 0; width: min(23rem, calc(100vw - 20px)); padding: 1.15rem 1.25rem 1.25rem;
  border-radius: 1.1rem; background: var(--papel); color: var(--tinta);
  box-shadow: 0 24px 60px -18px rgb(10 16 32 / .55), 0 0 0 1px color-mix(in srgb, var(--azul) 12%, transparent);
  opacity: 0; visibility: hidden; transform: translateY(6px) scale(.98); transform-origin: var(--seta, 2rem) 0;
  transition: opacity .2s, transform .22s cubic-bezier(.2, .7, .2, 1), visibility .2s;
}
.servico-pop.acima { transform-origin: var(--seta, 2rem) 100%; transform: translateY(-6px) scale(.98); }
.servico-pop.ver { opacity: 1; visibility: visible; transform: none; }
.servico-pop::before {
  content: ""; position: absolute; top: -7px; left: calc(var(--seta, 2rem) - 7px); width: 14px; height: 14px;
  background: inherit; transform: rotate(45deg); border-radius: 3px 0 0 0; box-shadow: -1px -1px 0 color-mix(in srgb, var(--azul) 10%, transparent);
}
.servico-pop.acima::before { top: auto; bottom: -7px; border-radius: 0 0 3px 0; box-shadow: 1px 1px 0 color-mix(in srgb, var(--azul) 10%, transparent); }
.servico-pop-area { font: 700 .7rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ouro); }
.servico-pop-nome { margin-top: .35rem; font: 400 1.45rem/1.15 var(--serifa); color: var(--azul); text-wrap: balance; }
.servico-pop-desc { margin-top: .55rem; font-size: .95rem; line-height: 1.55; color: var(--tinta-2); }
.servico-pop-botao { margin-top: 1rem; }
.servico-pop-botao svg { width: 1.1em; height: 1.1em; }
@media (prefers-reduced-motion: reduce) { .servico, .servico::after, .servico-pop { transition: none; } }

/* ---------- Menu fixo (computador) e secção actual com fundo preenchido ---------- */
.topo-nav > ul { gap: .2rem; margin-right: .5rem; }
.topo-nav > ul > li > a { padding: .42rem .75rem; border-radius: 99px; transition: background-color .3s, color .3s; }
.topo-nav > ul > li > a::after { display: none; }
.topo-nav > ul > li > a:hover { background: color-mix(in srgb, var(--azul) 9%, transparent); }
.topo[data-tema="escuro"] .topo-nav > ul > li > a:hover { background: color-mix(in srgb, var(--papel) 12%, transparent); }
.topo-nav > ul > li > a.ativo, .topo-nav > ul > li > a.ativo:hover { background: var(--azul); color: var(--papel); }
.topo[data-tema="escuro"] .topo-nav > ul > li > a.ativo { background: var(--ouro); color: #FFFDF8; }
.topo-nav { padding-left: .3rem; }
.topo-fixar {
  flex: none; display: grid; place-items: center; width: 2.35rem; height: 2.35rem; margin-left: .15rem; border: 0; border-radius: 50%;
  background: none; color: inherit; cursor: pointer; opacity: .55; transition: opacity .2s, background-color .2s, transform .25s;
}
.topo-fixar:hover, .topo-fixar:focus-visible { opacity: 1; background: color-mix(in srgb, currentColor 10%, transparent); }
.topo-fixar svg { width: 1.05rem; height: 1.05rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.topo-fixar[aria-pressed="false"] { transform: rotate(40deg); }
.topo.compacto .topo-fixar { display: none; }
/* Fixo e já fora da abertura: faixa com fundo e logo mais pequena */
.topo.fixo.fundo:not(.compacto) {
  background: color-mix(in srgb, var(--papel) 90%, transparent); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--azul) 10%, transparent); padding-top: .45rem; padding-bottom: .45rem;
  transition: color .35s, transform .4s cubic-bezier(.2, .7, .2, 1), background-color .35s, padding .3s;
}
.topo.fixo.fundo[data-tema="escuro"]:not(.compacto) { background: color-mix(in srgb, var(--noite) 90%, transparent); box-shadow: 0 1px 0 color-mix(in srgb, var(--papel) 10%, transparent); }
.topo.fixo.fundo:not(.compacto) .topo-logo img.topo-cabecalho { height: calc(3.6rem * var(--logo-escala, 1)); }
.topo .topo-logo img.topo-cabecalho { transition: height .3s, opacity .35s; }

/* Palavras que acendem ao descer: também nos parágrafos de Quem somos (mantém itálicos e negritos) */
html.js:not(.calmo) [data-palavras] span.pal { color: color-mix(in srgb, currentColor 24%, transparent); transition: color .35s; }
html.js:not(.calmo) [data-palavras] span.pal.aceso { color: inherit; }

/* Cartão dos serviços em modo "Editar textos" */
.servico-pop-dica { display: none; margin-top: .8rem; font-size: .74rem; line-height: 1.35; color: var(--tinta-2); }
.editando .servico-pop-dica { display: block; }
.editando .servico-pop .ed-lapis { margin-top: .55rem; }
.editando .servico-pop-desc:has(.ed:empty) { min-height: 1.5em; }

/* Logo ao centro: em grelha (a faixa cresce com a logo e ela nunca fica colada/cortada no topo) */
.topo.logo-centro { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
.topo.logo-centro .topo-logo { position: relative; left: auto; top: auto; transform: none; grid-column: 2; grid-row: 1; margin-top: .35rem; }
.topo.logo-centro > :not(.topo-logo) { grid-column: 3; grid-row: 1; justify-self: end; }
.topo.logo-centro.fixo.fundo .topo-logo { margin-top: 0; }
/* Na abertura, a logo ao centro não toca no arco (que começa a 15% da altura do ecrã) */
.topo.logo-centro:not(.fundo) .topo-logo img.topo-cabecalho { max-height: max(3.2rem, calc(15svh - 2.6rem)); }

/* Formulário de contacto: obrigatórios, empresa/função lado a lado e telefone com país */
.contacto-form .campo-rotulo { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .4rem; }
.contacto-form .obrigatorio { color: var(--ouro); }
.contacto-form .opcional { font-weight: 500; letter-spacing: .04em; text-transform: none; color: color-mix(in srgb, var(--papel) 55%, transparent); }
.contacto-form > p.contacto-obrig { margin: -.4rem 0 0; text-align: left; font-size: .78rem; color: color-mix(in srgb, var(--papel) 60%, transparent); }
.contacto-form .contacto-obrig span { color: var(--ouro); }
.contacto-par { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: 1.2rem; }
.contacto-tel { display: grid; gap: .2rem; font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ouro-claro); }
.contacto-tel-campos { display: flex; align-items: stretch; gap: .6rem; min-width: 0; border-bottom: 1px solid color-mix(in srgb, var(--papel) 40%, transparent); }
.contacto-tel-campos:focus-within { border-bottom-color: var(--ouro); box-shadow: 0 1px 0 var(--ouro); }
.contacto-tel-campos input { border-bottom: 0; flex: 1 1 8rem; min-width: 0; }
.contacto-tel-campos input:focus { box-shadow: none; }
.contacto-tel-campos select {
  flex: 0 1 auto; min-width: 0; max-width: 11.5rem; background: transparent; border: 0; color: var(--papel); font: 400 1rem var(--sans); letter-spacing: 0; text-transform: none;
  padding: .6rem 1.4rem .6rem 0; cursor: pointer; appearance: none; -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: right .55rem center, right .25rem center; background-size: .3rem .3rem; background-repeat: no-repeat;
}
.contacto-tel-campos select:focus-visible { outline: 2px solid var(--ouro); outline-offset: 2px; }
.contacto-tel-campos select option { color: #1B2640; background: #fff; }
.contacto-ddi { align-self: center; font: 400 1.05rem var(--sans); letter-spacing: 0; color: color-mix(in srgb, var(--papel) 70%, transparent); }
.contacto-tel.campo-erro .contacto-tel-campos, .contacto-form label.campo-erro input, .contacto-form label.campo-erro textarea { border-bottom-color: #E8907A; }
@media (max-width: 420px) { .contacto-tel-campos select { max-width: 8.5rem; } .contacto-ddi { display: none; } }

/* ---------- Actualizações v3 (2026-11-14) ---------- */
/* Abertura: sinal que desce por baixo da frase, a convidar a continuar */
.revela-desce { position: absolute; left: 50%; bottom: max(4.5rem, 10svh); width: 2px; height: clamp(2.8rem, 8svh, 4.6rem); transform: translateX(-50%); border-radius: 2px; overflow: hidden; background: color-mix(in srgb, var(--papel) 22%, transparent); opacity: 0; visibility: hidden; pointer-events: none; }
.revela-desce i { position: absolute; left: 0; top: 0; width: 100%; height: 38%; border-radius: 2px; background: var(--ouro); animation: revela-desce 1.9s cubic-bezier(.6, 0, .3, 1) infinite; }
@keyframes revela-desce { 0% { transform: translateY(-100%); } 100% { transform: translateY(270%); } }
@media (prefers-reduced-motion: reduce) { .revela-desce i { animation: none; top: 31%; } }

/* Como trabalhamos: o tronco fica fixo até a última etapa chegar ao centro do ecrã */
@media (min-width: 900px) { .como-texto { padding-bottom: 17svh; } }

/* Quem somos: o texto de baixo com o mesmo tamanho e largura do texto de cima */
.sobre-descricao { font: 300 clamp(1.6rem, 3.5vw, 3.7rem)/1.22 var(--serifa); letter-spacing: -.01em; max-width: 26em; color: var(--papel); }
@media (max-width: 899px) { .sobre-descricao { font-size: clamp(1.4rem, 5.6vw, 2.2rem); line-height: 1.3; } }
/* Frase ao lado do selo: sem efeito palavra a palavra e centrada */
.sobre-resposta > p.sobre-frase { justify-self: center; text-align: center; text-wrap: balance; max-width: 100%; }

/* Visão e Propósito: título e texto centrados na direcção do tronco, por baixo da árvore */
.arco { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: calc(clamp(1.2rem, 3vw, 3.2rem) + min(62%, 21rem) * .97); }
.arco p { max-width: 26em; text-wrap: balance; }
@media (max-width: 759px) { .arco { padding-top: calc(clamp(1.2rem, 3vw, 3.2rem) + min(62%, 21rem) * .97); } }

/* Valores: números maiores, ao lado do nome (tamanho, fonte e cor editáveis no site) */
.valores-lista li { grid-template-columns: auto minmax(0, 1fr); column-gap: clamp(1rem, 2.6vw, 2.6rem); padding-left: 0; }
.valores-lista li > strong, .valores-lista li > .valores-texto { grid-column: 2; }
.valores-n { position: static; transform: none; grid-column: 1; grid-row: 1 / span 2; align-self: start; min-width: 1.2em; font: 300 clamp(1.7rem, 3vw, 3.2rem)/1.1 var(--serifa); letter-spacing: 0; color: var(--oliva); padding-top: .12em; font-variant-numeric: lining-nums; }

/* Contacto: a introdução numa só linha quando cabe */
.contacto-info > p { max-width: none; text-wrap: balance; }

/* Tamanhos em px escolhidos no editor: iguais a partir de 1200 px de largura, mais pequenos em proporção abaixo
   (nunca abaixo de 16 px, nem maiores do que o escolhido) */
:root { --esc-px: 1; }
@media (max-width: 1199px) { :root { --esc-px: .86; } }
@media (max-width: 899px) { :root { --esc-px: .72; } }
@media (max-width: 599px) { :root { --esc-px: .58; } }
[style*="--fs"] { font-size: max(min(calc(var(--fs) * 1px), 16px), calc(var(--fs) * var(--esc-px) * 1px)) !important; }
