
:root {
  --bg:           #FAFAF8;   
  --bg-raised:    #F4F2EE;   
  --bg-panel:     #FFFFFF;   
  --bg-hover:     #F0EEE9;   
  --bg-invertido: #14171A;   
  
  --line:         #E4E2DC;   
  --line-strong:  #D6D3CC;   
  
  --text:         #15181B;   
  --text-muted:   #585F66;   
  --text-dim:     #666D74;   
  --text-ghost:   #C2C7CC;   
  --text-invertido: #F7F8F8; 
  
  --accent:       #15181B;   
  --accent-hover: #2A2F35;
  --accent-press: #000000;
  --accent-ink:   #FAFAF8;   
  --accent-text:  #15181B;   
  --accent-soft:  rgb(21 24 27 / .06);
  --accent-line:  rgb(21 24 27 / .20);
  
  --bg-destaque:  #F6F0B2;
  --realce:       #F2E45C;
  --realce-soft:  rgb(242 228 92 / .55);
  --realce-borda: rgb(203 188 52 / .55);
  --realce-text:  #585F66;
  
  --tinta-azul:    #C6DCF2;  --tinta-azul-borda:    #A9C6E4;  --tinta-azul-forte:    #15181B;
  --tinta-lima:    #CFE4C4;  --tinta-lima-borda:    #B0CDA1;  --tinta-lima-forte:    #15181B;
  --tinta-laranja: #F6D9C3;  --tinta-laranja-borda: #E5BC9C;  --tinta-laranja-forte: #15181B;
  
  
  --ok:    #15803D;
  --warn:  #9A4507;
  --error: #C0362C;
  
  --banda-ok:   #CFEAD9;   
  --banda-erro: #F7D4D0;   
  
  --font-display: 'Inter', 'Inter Fallback', -apple-system, system-ui, sans-serif;
  --font-body:    'Inter', 'Inter Fallback', -apple-system, system-ui, sans-serif;
  --font-mono:    'Geist Mono', ui-monospace, 'SF Mono', monospace;
  --font-accent:  'Instrument Serif', Georgia, 'Times New Roman', serif;
  
  --t-display: clamp(2.25rem, 4.2vw, 3.5rem);    
  --t-h2:      clamp(1.75rem, 3vw, 2.5rem);      
  --t-h3:      clamp(1.25rem, 1.6vw, 1.5rem);    
  --t-lead:    clamp(1.0625rem, 1.15vw, 1.125rem); 
  --t-body:    1rem;                             
  --t-small:   .875rem;                          
  --t-micro:   .75rem;                           
  
  --w-display: 700;
  --w-strong:  800;
  --w-heading: 640;
  --w-body:    400;
  --w-link:    500;
  
  --ls-display: -.02em;
  --ls-strong:  -.028em;
  --ls-h2:      -.020em;
  --ls-h3:      -.015em;
  --ls-lead:    -.005em;
  --ls-mono:     .10em;
  
  --lh-display: 1.10;
  --lh-h2:     1.15;
  --lh-h3:     1.2;
  --lh-lead:   1.5;
  --lh-body:   1.65;
  
  --s1:  4px;   --s2:  8px;   --s3: 12px;  --s4: 16px;
  --s5: 24px;   --s6: 32px;   --s7: 48px;  --s8: 64px;
  --s9: 96px;   --s10:128px;  --s11:176px;
  --container: 1240px;
  --gutter: clamp(20px, 5vw, 48px);
  --medida: 62ch;
  
  --folha-calha:  52px;   
  --folha-cab:    28px;   
  --folha-cel-l: 132px;
  --folha-cel-a:  38px;
  
  --r-sm: 4px;
  --r-md: 6px;
  --r-full: 999px;
  --r-btn: 6px;
  --shadow-sm:    0 1px 2px rgb(21 24 27 / .04);
  --shadow-modal: 0 24px 64px rgb(21 24 27 / .16), 0 2px 8px rgb(21 24 27 / .06);
  
  --ease-out:   cubic-bezier(.22, 1, .36, 1);
  --ease-inout: cubic-bezier(.4, 0, .2, 1);
  --dur-fast: 160ms;
  --dur-mid:  300ms;
  --dur-slow: 560ms;
  
  --z-deco:    0;
  --z-conteudo:1;
  --z-nav:    50;
  --z-modal: 100;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/inter-variable.woff2') format('woff2-variations');
}
@font-face {
  font-family: 'Inter Fallback';
  src: local('Helvetica Neue'), local('Helvetica'), local('Arial');
  size-adjust: 109.38%;
  ascent-override: 88.57%;
  descent-override: 22.05%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/geist-mono-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/instrument-serif-italic.woff2') format('woff2');
}
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: 96px;    
  overflow-x: clip;
}
body {
  min-height: 100svh;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: var(--t-body);
  line-height: var(--lh-body);
  font-weight: var(--w-body);
  font-optical-sizing: auto;   
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
  position: relative;
}
img, picture, video, canvas, svg { display: block; max-width: 100%; }
input, button, textarea, select { font: inherit; color: inherit; }
p, h1, h2, h3, h4 { overflow-wrap: break-word; }
button { background: none; border: 0; cursor: pointer; }
ul, ol { list-style: none; padding: 0; }
a {
  color: inherit;
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out);
}
main a:not([class]) {
  color: var(--text);
  font-weight: var(--w-link);
}
main :is(h1, h2, h3, h4) a:not([class]) {
  color: inherit;
  font-weight: inherit;
}
main a:not([class]):hover,
main a:not([class]):focus-visible {
  text-decoration: underline;
  text-decoration-thickness: .06em;
  text-underline-offset: .14em;
  text-decoration-skip-ink: auto;
}
[hidden] { display: none !important; }
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 2px;
}
::selection { background: var(--accent); color: var(--accent-ink); }
.invertido {
  background: var(--bg-invertido);
  color: var(--text-invertido);
  --text: var(--text-invertido);
  --text-muted: #9BA1A6;
  --text-dim: #7A8186;
  --line: #262A2E;
  --line-strong: #343A40;
  --bg-panel: #1B1F23;
  --bg-hover: #23282D;
  --bg-raised: #1B1F23;
  --accent-text: var(--accent);
}
:root, .invertido { --tinta-em-claro: #15181B; }
h1 {
  font-family: var(--font-display);
  font-size: var(--t-display);
  font-weight: var(--w-display);
  letter-spacing: var(--ls-display);
  line-height: var(--lh-display);
  text-wrap: balance;
}
h2 {
  font-family: var(--font-display);
  font-size: var(--t-h2);
  font-weight: var(--w-heading);
  letter-spacing: var(--ls-h2);
  line-height: var(--lh-h2);
  text-wrap: balance;
}
h3 {
  font-size: var(--t-h3);
  font-weight: var(--w-heading);
  letter-spacing: var(--ls-h3);
  line-height: var(--lh-h3);
}
.lead {
  font-size: var(--t-lead);
  line-height: var(--lh-lead);
  letter-spacing: var(--ls-lead);
  color: var(--text-muted);
  max-width: 54ch;
}
.corpo { max-width: var(--medida); color: var(--text-muted); }
.corpo > p + p { margin-top: var(--s5); }
h1 + p, h1 + .lead { margin-top: var(--s6); }
h2 + p, h2 + .lead,
h3 + p, h3 + .lead { margin-top: var(--s5); }
.pequeno { font-size: var(--t-small); }
.mono {
  font-family: var(--font-mono);
  font-size: var(--t-micro);
  letter-spacing: var(--ls-mono);
  text-transform: uppercase;
  color: var(--text-dim);
  line-height: 1.4;
}
.w {
  font-style: normal;
  font-weight: var(--w-strong);
  letter-spacing: var(--ls-strong);
}
.dim { color: var(--text-muted); }
.serif {
  font-family: var(--font-accent);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -.01em;
}
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.seccao { padding-block: var(--s10); }
@media (max-width: 720px) {
  .seccao { padding-block: var(--s8); }
  :root { --folha-calha: 34px; --folha-cab: 24px; --folha-cel-l: 88px; --folha-cel-a: 34px; }
}
.saltar {
  position: absolute;
  left: -9999px;
  top: var(--s4);
  background: var(--accent);
  color: var(--accent-ink);
  padding: var(--s3) var(--s5);
  border-radius: var(--r-sm);
  font-weight: var(--w-heading);
  z-index: var(--z-modal);
}
.saltar:focus { left: var(--s4); }
body::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  mix-blend-mode: multiply;
  opacity: .016;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
:has(> .aurora) { position: relative; overflow: hidden; }
.hero, .hero-servico, .cta-final { position: relative; overflow: hidden; }
.aurora {
  position: absolute;
  inset: -20%;
  z-index: var(--z-deco);
  pointer-events: none;
  filter: blur(90px);
  opacity: .5;
  background:
    radial-gradient(38% 44% at 16% 20%, rgb(255 255 255 / .85) 0%, transparent 70%),
    radial-gradient(42% 38% at 80% 14%, rgb(255 253 248 / .70) 0%, transparent 70%),
    radial-gradient(50% 50% at 62% 82%, rgb(236 233 226 / .55) 0%, transparent 70%);
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .aurora { animation: none !important; }
}
@media (prefers-reduced-motion: no-preference) {
  .aurora { animation: deriva 40s var(--ease-inout) infinite alternate; }
  html { scroll-behavior: smooth; }
}
:target, [id] { scroll-margin-top: 92px; }
@keyframes deriva {
  to { transform: translate3d(-3%, 2%, 0) scale(1.06); }
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s2);
  min-height: 48px;                 
  padding: 0 var(--s6);
  border-radius: var(--r-btn);
  font-weight: var(--w-heading);
  font-size: var(--t-body);
  letter-spacing: -.01em;
  
  line-height: 1.2;
  white-space: normal;
  text-align: center;
  text-wrap: balance;
  max-width: 100%;
  padding-block: var(--s3);
  transition: background var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out);
}
.btn-primario {
  background: var(--accent);
  color: var(--accent-ink);
}
.btn-primario:hover { background: var(--accent-hover); transform: translateY(-1px); }
.btn-primario:active { background: var(--accent-press); transform: translateY(0); }
.btn-secundario {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--line-strong);
}
.btn-secundario:hover { background: var(--bg-hover); border-color: var(--text-dim); }
.btn-fantasma {
  min-height: auto;
  padding: 0;
  border-radius: 0;
  color: var(--text-muted);
  font-weight: var(--w-body);
}
.btn-fantasma:hover { color: var(--text); }
.seta {
  display: inline-block;
  width: .62em;
  height: .62em;
  position: relative;
  vertical-align: -.04em;
}
.seta::before,
.projeto a:not(:has(.capa)) .projeto__titulo::after {
  content: "";
  width: .34em;
  height: .34em;
  border-top: .09em solid currentColor;
  border-right: .09em solid currentColor;
  transform: rotate(45deg);
}
.seta::before {
  position: absolute;
  inset: 0;
  margin: auto;
}
.seta--tras::before { transform: rotate(225deg); }
.seta--fora::before { transform: none; }
.seta--fora::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: .46em;
  height: .09em;
  background: currentColor;
  transform: rotate(-45deg);
}
a:has(> .seta--fora) { white-space: nowrap; }
.btn-fantasma:hover .seta--fora,
a:hover > .seta--fora { transform: translate(2px, -2px); }
.seta--fora { transition: transform var(--dur-fast) var(--ease-out); }
.btn-fantasma .seta { transition: transform var(--dur-fast) var(--ease-out); }
.btn-fantasma:hover .seta { transform: translateX(4px); }
.btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; }
.pastilha {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  padding: 6px var(--s3);
  border-radius: var(--r-btn);
  background: var(--bg-panel);
  border: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: var(--t-micro);
  letter-spacing: var(--ls-mono);
  text-transform: uppercase;
  color: var(--text-dim);
}
.pastilha-acento {
  background: var(--accent-soft);
  border-color: var(--accent-line);
  color: var(--accent-text);   
}
.pastilha-realce {
  background: var(--realce-soft);
  border-color: var(--realce-borda);
  color: var(--realce-text);
}
.ponto {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--realce-text);
  flex: none;
}
@media (prefers-reduced-motion: no-preference) {
  .ponto { animation: pulsar 2.4s var(--ease-inout) infinite; }
}
@keyframes pulsar { 50% { opacity: .35; } }
.campo { display: flex; flex-direction: column; gap: var(--s2); }
.campo > label {
  font-size: var(--t-small);
  color: var(--text-muted);
}
.campo input,
.campo select,
.campo textarea {
  width: 100%;
  min-height: 52px;
  padding: 0 var(--s4);
  background: var(--bg-panel);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-sm);
  box-shadow: var(--shadow-sm);
  color: var(--text);
  font-size: var(--t-body);
  transition: border-color var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out);
}
.campo textarea { padding-block: var(--s3); min-height: 120px; resize: vertical; line-height: 1.5; }
.campo input::placeholder,
.campo textarea::placeholder { color: var(--text-dim); }
.campo input:focus,
.campo select:focus,
.campo textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.campo input[aria-invalid='true'],
.campo textarea[aria-invalid='true'] { border-color: var(--error); }
.campo .erro { font-size: var(--t-small); color: var(--error); }
.campo .ajuda { font-size: var(--t-small); color: var(--text-dim); }
.campo select {
  appearance: none;
  cursor: pointer;
  padding-right: var(--s8);
  background-image: linear-gradient(45deg, transparent 50%, var(--text-dim) 50%),
                    linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);
  background-position: calc(100% - 22px) 23px, calc(100% - 16px) 23px;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
.reforco { font-size: var(--t-small); color: var(--text-dim); }
.fita {
  position: relative;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg,
    transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg,
    transparent, #000 8%, #000 92%, transparent);
}
.fita__pista {
  display: flex;
  width: max-content;
  animation: fitaAnda 64s linear infinite;
}
@keyframes fitaAnda {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.fita:hover .fita__pista { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .fita__pista { animation: none; }
}
.fita__lista {
  display: flex;
  align-items: center;
  gap: var(--s9);
  padding-inline: var(--s5);
  margin: 0;
  list-style: none;
  flex: none;
}
.fita__lista > li {
  flex: none;
  display: grid;
  place-items: center;
}
.fita__lista img {
  height: calc(40px * var(--k, 1));
  width: min(calc(136px * var(--k, 1)), calc(40px * var(--k, 1) * var(--r, 1)));
  object-fit: contain;
}
.fita__texto {
  color: var(--text-muted);
  font-weight: var(--w-heading);
  white-space: nowrap;
}
@media (max-width: 900px) {
  .fita__lista { gap: var(--s7); }
  .fita__lista img { max-height: calc(32px * var(--k, 1)); max-width: calc(112px * var(--k, 1)); }
  .fita__pista { animation-duration: 44s; }
}
.muro-cel img {
  max-width: min(128px, 100%);
  max-height: 52px;
  width: auto;
  height: auto;
  object-fit: contain;
  opacity: .82;
  transition: opacity var(--dur-fast) var(--ease-out);
}
.muro-cel:hover img { opacity: 1; }
.testemunho blockquote {
  font-size: var(--t-h3);
  font-weight: var(--w-body);
  line-height: 1.45;
  letter-spacing: var(--ls-h3);
  max-width: 34ch;
}
.testemunho mark,
.caso-citacao mark {
  background: var(--realce-soft);   
  color: var(--text);
  padding: 2px 5px;
  margin-inline: -3px;
  border-radius: 3px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
[data-preenche] > span,
.puxada mark[data-partido] > span {
  background-image: linear-gradient(var(--realce), var(--realce));
  background-repeat: no-repeat;
  background-size: var(--marcado, 0%) .92em;
  background-position: 0 calc(100% - .19em);
  border-radius: .06em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.testemunho figcaption {
  display: flex;
  align-items: center;
  gap: var(--s3);
  margin-top: var(--s5);
}
.testemunho figcaption img { width: 40px; height: 40px; border-radius: 50%; }
.testemunho .nome { font-weight: var(--w-heading); }
.testemunho .empresa { color: var(--text-dim); font-size: var(--t-small); }
.painel { border: 1px solid; border-radius: var(--r-md); padding: var(--s7); }
.painel-azul    { background: var(--tinta-azul);    border-color: var(--tinta-azul-borda); }
.painel-lima    { background: var(--tinta-lima);    border-color: var(--tinta-lima-borda); }
.painel-laranja { background: var(--tinta-laranja); border-color: var(--tinta-laranja-borda); }
.painel-azul    .rotulo { color: var(--tinta-azul-forte); }
.painel-lima    .rotulo { color: var(--tinta-lima-forte); }
.painel-laranja .rotulo { color: var(--tinta-laranja-forte); }
.painel .rotulo {
  font-family: var(--font-mono);
  font-size: var(--t-micro);
  letter-spacing: var(--ls-mono);
  text-transform: uppercase;
}
.tripla { display: grid; gap: var(--s7); }
@media (min-width: 900px) { .tripla { grid-template-columns: repeat(3, 1fr); } }
.tripla p { color: var(--text-muted); }
.tripla b { color: var(--text); font-weight: var(--w-heading); }
.cabecalho {
  position: sticky;
  top: 0;
  z-index: var(--z-nav);
  transition: background var(--dur-mid) var(--ease-out),
              border-color var(--dur-mid) var(--ease-out);
  border-bottom: 1px solid transparent;
}
[data-scrolled] .cabecalho {
  background: var(--bg);
  border-bottom-color: var(--line);
}
.cabecalho-int {
  display: flex;
  align-items: center;
  gap: var(--s6);
  min-height: 68px;
}
.marca { flex: none; display: block; }
.marca img { width: 76px; height: auto; }
.cabecalho-int > nav { margin-inline-start: auto; }
.nav-principal { display: flex; align-items: center; gap: var(--s2); }
.nav-principal > li { position: relative; }
.nav-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: var(--s2) var(--s3);
  border-radius: var(--r-sm);
  font-size: var(--t-small);
  color: var(--text-muted);
}
.nav-link:hover { color: var(--text); background: var(--bg-hover); }
.nav-link[aria-current='page'] { color: var(--text); }
.nav-link .chevron { transition: transform var(--dur-fast) var(--ease-out); }
.nav-link[aria-expanded='true'] .chevron { transform: rotate(180deg); }
.acoes-cabecalho { display: flex; align-items: center; gap: var(--s3); flex: none; }
.acoes-cabecalho .btn { min-height: 42px; padding: 0 var(--s5); font-size: var(--t-small); }
.painel-servicos {
  position: absolute;
  top: calc(100% + var(--s2));
  left: 0;
  width: 460px;
  padding: var(--s3);
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-modal);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out),
              visibility var(--dur-fast);
}
.painel-servicos[data-aberto] { opacity: 1; visibility: visible; transform: none; }
.painel-servicos a {
  display: block;
  padding: var(--s4);
  border-radius: var(--r-sm);
}
.painel-servicos a:hover { background: var(--bg-hover); }
.painel-servicos .titulo { font-weight: var(--w-heading); display: block; }
.painel-servicos .desc { color: var(--text-muted); font-size: var(--t-small); display: block; margin-top: 2px; }
.painel-servicos .prova {
  display: inline-block;
  margin-top: var(--s3);
  font-family: var(--font-mono);
  font-size: var(--t-micro);
  letter-spacing: var(--ls-mono);
  text-transform: uppercase;
  color: var(--realce-text);
}
.btn-menu { display: none; width: 42px; height: 42px; place-items: center; border-radius: var(--r-sm); flex: none; }
.btn-menu:hover { background: var(--bg-hover); }
.menu-mobile:focus, .menu-mobile:focus-visible { outline: none; }
.menu-mobile {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  background: var(--bg);
  padding: var(--s5) var(--gutter) var(--s8);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.menu-topo { display: flex; align-items: center; justify-content: space-between; min-height: 68px; margin-bottom: var(--s6); }
.menu-topo .marca { display: flex; align-items: center; min-height: 44px; }
.menu-links { display: grid; gap: var(--s2); }
.menu-links a {
  font-size: var(--t-h3);
  font-weight: var(--w-heading);
  letter-spacing: var(--ls-h3);
  padding-block: var(--s3);
}
.menu-links .sub { display: block; font-size: var(--t-small); font-weight: var(--w-body); letter-spacing: 0; color: var(--text-muted); }
.menu-links--paginas {
  margin-top: var(--s5);
  padding-top: var(--s5);
  border-top: 1px solid var(--line);
}
.menu-links--paginas a {
  font-size: var(--t-lead);
  font-weight: var(--w-link);
  letter-spacing: 0;
  color: var(--text-muted);
}
.menu-rodape { margin-top: auto; padding-top: var(--s8); display: grid; gap: var(--s4); }
.menu-rodape .btn { width: 100%; }
.menu-telefone {
  font-size: var(--t-lead);
  font-weight: var(--w-heading);
  color: var(--text);
  padding-block: var(--s3);
}
.menu-contactos { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--s4); font-size: var(--t-small); color: var(--text-muted); }
.menu-contactos a + a::before { content: '·'; margin-inline-end: var(--s4); color: var(--text-ghost); }
.menu-contactos a { padding-block: var(--s3); }
.menu-contactos span { flex-basis: 100%; }
.menu-contactos a:hover { color: var(--text); }
.rodape {
  background: var(--bg-raised);
  border-top: 1px solid var(--line);
}
.rodape-topo {
  display: grid;
  gap: var(--s8);
  padding-block: var(--s8) var(--s7);
}
@media (min-width: 900px) {
  .rodape-topo { grid-template-columns: 1fr 1.6fr; gap: var(--s8); }
}
.rodape-marca > img { display: block; margin-bottom: var(--s5); }
.rodape-marca > p {
  color: var(--text-muted);
  font-size: var(--t-small);
  max-width: 34ch;
  margin-bottom: var(--s5);
}
.rodape-cartao {
  padding: var(--s2);
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  max-width: 34ch;
}
.rodape-cartao__miolo {
  padding: var(--s5);
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
}
.rodape-cartao__rotulo {
  font-family: var(--font-mono);
  font-size: var(--t-micro);
  letter-spacing: var(--ls-mono);
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: var(--s4);
}
.rodape-tel {
  display: block;
  position: relative;
  width: fit-content;
  font-size: var(--t-h3);
  font-weight: var(--w-heading);
  color: var(--text);
  line-height: 1.35;
  letter-spacing: -.01em;
}
.rodape-tel::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 1px;
  background: var(--text);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .32s cubic-bezier(.32, .72, 0, 1);
}
.rodape-tel:hover::after { transform: scaleX(1); }
.rodape-cartao__resto {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2) var(--s4);
  margin-top: var(--s4);
  padding-top: var(--s4);
  border-top: 1px solid var(--line);
  font-size: var(--t-small);
}
.rodape-cartao__resto a { color: var(--text-muted); }
.rodape-cartao__resto a:hover { color: var(--text); }
.rodape-morada {
  display: block;
  margin-top: var(--s4);
  font-size: var(--t-small);
  line-height: 1.5;
  color: var(--text-dim);
}
.rodape-morada:hover { color: var(--text-muted); }
.rodape-links { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s7) var(--s5); }
@media (min-width: 560px) {
  .rodape-links { grid-template-columns: repeat(3, 1fr); gap: var(--s6); }
}
.rodape h3 {
  font-family: var(--font-mono);
  font-size: var(--t-micro);
  font-weight: 400;
  letter-spacing: var(--ls-mono);
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: var(--s5);
}
.rodape-links ul { display: grid; gap: var(--s4); }
.rodape-links a {
  display: inline-block;
  font-size: var(--t-small);
  color: var(--text-muted);
  transition: color .2s ease, transform .32s cubic-bezier(.32, .72, 0, 1);
}
.rodape-links a:hover { color: var(--text); transform: translateX(3px); }
.barra-ia {
  display: grid;
  gap: var(--s5);
  padding-block: var(--s7);
  border-top: 1px solid var(--line);
}
@media (min-width: 760px) {
  .barra-ia { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--s8); }
}
.barra-ia__texto {
  font-size: var(--t-small);
  color: var(--text-muted);
  max-width: 56ch;
}
.barra-ia__texto b { color: var(--text); font-weight: var(--w-heading); }
.barra-ia ul { display: flex; gap: var(--s3); flex-wrap: wrap; }
.barra-ia a {
  display: inline-flex;
  align-items: center;
  gap: .45em;
  padding: 9px var(--s4);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-btn);
  font-size: var(--t-small);
  color: var(--text-muted);
  background: var(--bg-panel);
  transition: transform .32s cubic-bezier(.32, .72, 0, 1),
              border-color .2s ease, color .2s ease;
}
.barra-ia a:hover {
  color: var(--text);
  border-color: var(--text-dim);
  transform: translateY(-1px);
}
.barra-ia a:active { transform: translateY(0) scale(.98); }
.rodape-legal {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2) var(--s5);
  align-items: center;
  padding-block: var(--s5) var(--s7);
  border-top: 1px solid var(--line);
  font-size: var(--t-small);
  color: var(--text-dim);
}
.rodape-legal a:hover { color: var(--text); }
.rodape-legal .redes { margin-left: auto; display: flex; gap: var(--s4); }
.rodape[data-anima] .entra {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .7s cubic-bezier(.32, .72, 0, 1),
              transform .7s cubic-bezier(.32, .72, 0, 1);
  transition-delay: calc(var(--ordem, 0) * 70ms);
}
.rodape[data-anima][data-visivel] .entra {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .rodape .entra {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
@media (max-width: 900px) {
  .cabecalho-int > nav { display: none; }
  .btn-menu { display: grid; }
  .acoes-cabecalho { gap: var(--s2); margin-inline-start: auto; }
  .rodape-marca { grid-column: 1 / -1; }
  .rodape-legal .redes { margin-left: 0; width: 100%; }
}
@media (min-width: 901px) { .menu-mobile { display: none !important; } }
@media (max-height: 460px) {
  .cabecalho { position: static; }
  .cabecalho-int { min-height: 52px; }
}
.hero {
  position: relative;
  overflow: hidden;
  overflow-x: clip;
  overflow-y: visible;
  padding-block: var(--s7) var(--s9);
  background: var(--bg-destaque);
}
.hero--dobra {
  min-height: min(calc(100svh - var(--topo, 68px)), 48rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-bottom: var(--s10);
}
@media (max-width: 999px) {
}
@media (prefers-reduced-motion: no-preference) {
}
@media (max-width: 640px) {
  
  .hero--dobra { padding-top: var(--s4); padding-bottom: var(--s7); }
  .hero.hero--dobra h1 { margin-block: var(--s2) var(--s5); }
  .hero.hero--dobra .lead { margin-bottom: var(--s4); }
  .hero--dobra .hero-baixo { gap: var(--s4); }
  .hero--dobra .hero-acoes { margin-top: var(--s4); gap: var(--s3) var(--s5); }
  
}
.hero-grelha {
  position: relative;
  z-index: var(--z-conteudo);
  display: grid;
  gap: var(--s8);
  align-items: center;
}
@media (min-width: 1000px) {
  .hero-grelha { grid-template-columns: 1.15fr .85fr; gap: var(--s9); }
}
.hero-solo { position: relative; z-index: var(--z-conteudo); }
.hero-fio { display: none; }
@media (min-width: 1000px) {
  .hero-fio {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: var(--z-deco);
    pointer-events: none;
    fill: none;
    stroke-linecap: round;
  }
  .hero-fio__trilho {
    stroke: rgb(0 0 0 / .07);
    stroke-width: 1.5;
  }
  
  @media (prefers-reduced-motion: no-preference) {
    .hero-fio__luz {
      stroke: rgb(0 0 0 / .26);
      stroke-width: 2;
      stroke-dasharray: 22 100;
      animation: hero-fio-passa 15s cubic-bezier(.4, 0, .5, 1) infinite;
    }
  }
}
@keyframes hero-fio-passa {
  0%   { stroke-dashoffset: 22; }
  58%  { stroke-dashoffset: -100; }
  100% { stroke-dashoffset: -100; }
}
@media (min-width: 1000px) {
  .hero-solo {
    display: grid;
    
    
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: var(--s8);
  }
  .hero-solo > .hero-titulo {
    grid-column: 1 / -1;
    max-width: 22ch;
  }
  .hero-solo > .hero-texto { align-self: start; }
  .hero-solo { row-gap: var(--s5); }
}
.hero h1 {
  font-size: var(--t-display);
  max-width: 24ch;
  
  margin-block: var(--s3) var(--s6);
  text-wrap: balance;
}
.hero .lead { max-width: 56ch; }
.hero .lead { margin-bottom: var(--s6); }
.atualizado {
  margin-top: var(--s5);
  font-size: var(--t-small);
  color: var(--text-dim);
}
.hero-servico .lead + .atualizado { margin-top: var(--s4); }
.hero-fantasma { display: inline-flex; align-items: center; gap: 6px; }
.hero-acoes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s4) var(--s6);
  margin-top: var(--s6);
}
.hero-baixo { display: grid; gap: var(--s6); align-items: start; }
.hero-baixo > .lead { margin-bottom: 0; }
.hero-baixo .hero-acoes { margin-top: 0; }
.hero-compromissos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--s4);
  max-width: 45ch;
  font-size: var(--t-small);
  color: var(--text-muted);
  line-height: 1.55;
}
.hero-compromissos b { color: var(--text); font-weight: var(--w-heading); }
.hero-compromissos li { position: relative; padding-left: 1.7em; }
.hero-compromissos li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 0;
  color: var(--text);
  font-weight: var(--w-heading);
}
@media (max-width: 900px) {
  .hero-compromissos { max-width: none; gap: var(--s3); }
}
@media (max-width: 480px) {
  .hero-compromissos { gap: var(--s2); }
  .hero-compromissos li { padding-left: 1.45em; }
}
.form-lead {
  background: var(--bg-panel);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
  padding: var(--s5);
  display: grid;
  gap: var(--s4);
  box-shadow: 0 1px 2px rgb(21 24 27 / .04), 0 12px 32px rgb(21 24 27 / .05);
}
.form-lead .btn { width: 100%; margin-top: var(--s1); }
.form-lead__titulo { font-weight: var(--w-heading); font-size: var(--t-h3); letter-spacing: var(--ls-h3); }
.escolhas { display: grid; gap: var(--s2); }
@media (min-width: 520px) { .escolhas { grid-template-columns: 1fr 1fr; } }
.escolhas .escolha:last-child { grid-column: 1 / -1; }
.escolha {
  display: flex;
  align-items: center;
  gap: var(--s3);
  padding: var(--s3);
  min-height: 48px;
  border: 1px solid var(--line-strong);
  border-radius: var(--r-sm);
  background: var(--bg);
  text-align: left;
  font-size: var(--t-small);
  transition: border-color var(--dur-fast) var(--ease-out),
              background var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out);
}
.escolha:hover {
  background: var(--bg-hover);
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgb(21 24 27 / .07);
}
.escolha:active {
  transform: translateY(0) scale(.985);
  box-shadow: none;
}
.escolha .marca-radio {
  width: 16px; height: 16px; flex: none;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  display: grid; place-items: center;
}
.escolha .marca-radio::after {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent); transform: scale(0);
  transition: transform 220ms cubic-bezier(.34, 1.56, .64, 1);
}
.escolha[aria-pressed='true'] {
  border-color: var(--accent);
  background: var(--accent-soft);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.escolha[aria-pressed='true']:hover {
  box-shadow: inset 0 0 0 1px var(--accent), 0 2px 6px rgb(21 24 27 / .07);
}
.escolha[aria-pressed='true'] .marca-radio { border-color: var(--accent); }
.escolha[aria-pressed='true'] .marca-radio::after { transform: scale(1); }
.form-lead .erro-geral {
  font-size: var(--t-small);
  color: var(--error);
  background: rgb(192 54 44 / .07);
  border: 1px solid rgb(192 54 44 / .2);
  border-radius: var(--r-sm);
  padding: var(--s3) var(--s4);
}
.form-sucesso { display: grid; gap: var(--s3); text-align: left; }
.form-sucesso .visto {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--realce); color: var(--text);
  display: grid; place-items: center; font-size: 20px;
}
.btn[data-a-enviar] { pointer-events: none; opacity: .7; }
.vagas__cabeca {
  font-size: var(--t-h3);
  letter-spacing: var(--ls-h3);
  color: var(--text-muted);
  font-weight: var(--w-heading);
}
.vagas { display: grid; gap: var(--s5); margin-top: var(--s5); }
.vaga {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  background: var(--bg-panel);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
  transition: border-color var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out);
}
.vaga:hover,
.vaga:focus-visible {
  border-color: var(--text-dim);
  box-shadow: 0 1px 2px rgb(21 24 27 / .04), 0 14px 34px rgb(21 24 27 / .07);
  transform: translateY(-2px);
}
.vaga__titulo {
  grid-area: titulo;
  font-weight: var(--w-heading);
  line-height: 1.05;
  color: var(--text);
}
.vaga__regime {
  grid-area: regime;
  font-family: var(--font-mono);
  font-size: var(--t-micro);
  letter-spacing: var(--ls-mono);
  text-transform: uppercase;
  color: var(--text-dim);
}
.vaga__linha {
  grid-area: linha;
  max-width: 56ch;
  color: var(--text-muted);
}
.vaga__seta {
  grid-area: seta;
  justify-self: end;
  color: var(--text-dim);
  transition: transform var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out);
}
.vaga:hover .vaga__seta,
.vaga:focus-visible .vaga__seta { transform: translateX(6px); color: var(--text); }
.vaga {
  grid-template-areas:
    "titulo seta"
    "regime regime"
    "linha  linha";
  column-gap: var(--s4);
  row-gap: var(--s3);
  padding: var(--s5);
}
.vaga__titulo { font-size: var(--t-h3); letter-spacing: var(--ls-h3); }
.vaga__regime { justify-self: start; text-align: left; }
.vaga__seta { align-self: center; font-size: 1.15rem; }
@media (min-width: 720px) {
  
  .vaga {
    grid-template-columns: auto minmax(0, 1fr) max-content;
    grid-template-areas:
      "titulo regime seta"
      "linha  linha  seta";
    column-gap: var(--s4);
    row-gap: var(--s3);
    padding: var(--s6) var(--s7);
    align-items: baseline;
  }
  .vaga__titulo { font-size: var(--t-h2); letter-spacing: var(--ls-h2); }
  .vaga__linha { max-width: 72ch; }
  .vaga__seta { align-self: center; font-size: 2rem; }
}
.vaga--porta {
  background: transparent;
  margin-top: var(--s5);
}
.vaga--porta:hover,
.vaga--porta:focus-visible { background: var(--bg-panel); }
.form-candidatura { padding: var(--s6); }
.campo-cv input[type="file"] {
  font-size: var(--t-small);
  color: var(--text-muted);
  padding: var(--s3);
  cursor: pointer;
}
.campo-cv input[type="file"]::file-selector-button {
  font: inherit;
  font-weight: var(--w-heading);
  color: var(--text);
  background: var(--bg);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-sm);
  padding: 11px var(--s4);
  margin-right: var(--s3);
  cursor: pointer;
}
.campo-cv input[type="file"]:hover::file-selector-button { border-color: var(--text-dim); }
.caminho-bloco {
  display: grid; gap: var(--s7); align-items: center;
  padding-block: var(--s8);
}
.caminho-media { position: relative; }
.caminho-media > .anim {
  border: 1px solid;
  border-radius: var(--r-md);
  padding: clamp(12px, 2.2vw, 28px);
}
.caminho-bloco:nth-of-type(1) .caminho-media > .anim {
  background: var(--tinta-azul);    border-color: var(--tinta-azul-borda);
}
.caminho-bloco:nth-of-type(2) .caminho-media > .anim {
  background: var(--tinta-lima);    border-color: var(--tinta-lima-borda);
}
.caminho-bloco:nth-of-type(3) .caminho-media > .anim {
  background: var(--tinta-laranja); border-color: var(--tinta-laranja-borda);
}
.caminho-media > .capa {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--r-md);
  background: var(--bg-raised);
}
@media (min-width: 900px) {
  .caminho-bloco { grid-template-columns: 1fr 1fr; gap: var(--s9); }
  .caminho-bloco:nth-child(even) .caminho-texto { order: 2; }
}
.caminho-bloco + .caminho-bloco { border-top: 1px solid var(--line); }
.caminho-prova {
  display: flex; gap: var(--s3); align-items: baseline;
  margin-top: var(--s5); padding-top: var(--s5);
  border-top: 1px solid var(--line);
}
.caminho-prova .rotulo {
  font-family: var(--font-mono); font-size: var(--t-micro);
  letter-spacing: var(--ls-mono); text-transform: uppercase;
  color: var(--text-dim); flex: none;
}
.capa {
  display: block; width: 100%;
  aspect-ratio: 16 / 10;
  height: auto;
  object-fit: cover;
  object-position: center;
  border-radius: var(--r-md);
  background: var(--bg-raised);
}
.projeto a:hover .capa { opacity: .92; }
.projetos { display: grid; gap: var(--s7); }
.projeto a { display: grid; grid-template-rows: auto auto 1fr auto; height: 100%; }
.projeto--sem-link { display: grid; grid-template-rows: auto auto 1fr auto; height: 100%; }
.projeto .capa { margin-bottom: var(--s4); }
.projeto .projeto__titulo { font-size: var(--t-h3); letter-spacing: var(--ls-h3); margin-bottom: var(--s2); }
.projeto .resultado { color: var(--text-muted); }
.projeto a:not(:has(.capa)) .projeto__titulo {
  display: flex;
  align-items: baseline;
  gap: .4em;
}
.projeto a:not(:has(.capa)) .projeto__titulo::after {
  content: "";
  flex: none;
  align-self: center;
  transition: transform var(--dur-fast) var(--ease-out);
}
.projeto a:not(:has(.capa)):hover .projeto__titulo::after {
  transform: rotate(45deg) translate(2px, -2px);
}
.projeto .disciplinas {
  font-family: var(--font-mono); font-size: var(--t-micro);
  letter-spacing: var(--ls-mono); text-transform: uppercase;
  color: var(--text-dim); margin-top: var(--s4); display: block;
}
.projeto__paraquem {
  display: block;
  margin-top: var(--s4);
  color: var(--text-dim);
  font-size: var(--t-small);
}
.processo { display: grid; gap: var(--s7); }
@media (min-width: 900px) { .processo { grid-template-columns: 260px 1fr; gap: var(--s9); } }
.processo-nav { display: none; }
@media (min-width: 900px) { .processo-nav { display: grid; align-content: start; } }
@media (min-width: 900px) {
  .processo-nav { position: sticky; top: 100px; align-self: start; }
}
.processo-nav ul {
  position: relative;
  border-left: 2px solid var(--line);
}
.processo-nav li a {
  display: block;
  position: relative;
  padding: var(--s3) 0 var(--s3) var(--s5);
  color: var(--text-dim);
  transition: color var(--dur-fast) var(--ease-out);
}
.processo-nav li a::before {
  content: '';
  position: absolute;
  left: -7px;
  top: 1.15em;
  width: 10px; height: 10px;
  background: var(--bg-raised);
  border: 2px solid var(--line);
  transform: rotate(45deg);
  transition: background var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out);
}
.processo-nav li a:hover { color: var(--text-muted); }
.processo-nav li a:hover::before { border-color: var(--line-strong); }
.processo-nav li a[data-ativo] { color: var(--text); }
.processo-nav li a[data-ativo]::before {
  background: var(--accent);
  border-color: var(--accent);
}
.processo-nav .quando {
  display: block; font-family: var(--font-mono); font-size: var(--t-micro);
  letter-spacing: var(--ls-mono); text-transform: uppercase; margin-bottom: 2px;
}
.processo-nav li a[data-ativo] .quando { color: var(--accent-text); }
.processo-passos { display: grid; gap: var(--s8); }
.processo-passo { scroll-margin-top: 100px; }
@media (min-width: 900px) {
  .processo-passos { gap: 0; }
  .processo-passo { min-height: 38vh; display: grid; align-content: center; }
}
.processo-passo h3 { margin-bottom: var(--s3); }
.processo-passo p { color: var(--text-muted); max-width: var(--medida); }
.pf { display: none; }
@media (min-width: 1100px) {
  .processo {
    grid-template-columns: 200px minmax(0, 1fr) minmax(0, .85fr);
    gap: var(--s7);
  }
  .pf {
    display: block;
    position: sticky;
    top: 100px;
    align-self: start;
    container-type: inline-size;
  }
}
@supports not selector(:has(*)) {
  .pf { display: none !important; }
}
.pf__painel {
  display: grid;
  position: relative;
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  box-shadow: 0 .6cqw 2.4cqw rgb(21 24 27 / .07);
  overflow: hidden;
}
.pf__cena {
  grid-area: 1 / 1;
  padding: 7cqw;
  display: grid;
  align-content: start;
  gap: 4cqw;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s var(--ease-out), visibility 0s linear .25s;
}
.pf__cena > * {
  opacity: 0;
  transform: translateY(2cqw);
  transition: opacity .3s var(--ease-out), transform .45s var(--ease-out);
}
.processo:has([data-passo="1"][data-ativo]) .pf__cena[data-cena="1"],
.processo:has([data-passo="2"][data-ativo]) .pf__cena[data-cena="2"],
.processo:has([data-passo="3"][data-ativo]) .pf__cena[data-cena="3"],
.processo:has([data-passo="4"][data-ativo]) .pf__cena[data-cena="4"] {
  opacity: 1;
  visibility: visible;
  transition: opacity .3s var(--ease-out) .2s, visibility 0s;
}
.processo:has([data-passo="1"][data-ativo]) .pf__cena[data-cena="1"] > *,
.processo:has([data-passo="2"][data-ativo]) .pf__cena[data-cena="2"] > *,
.processo:has([data-passo="3"][data-ativo]) .pf__cena[data-cena="3"] > *,
.processo:has([data-passo="4"][data-ativo]) .pf__cena[data-cena="4"] > * {
  opacity: 1;
  transform: none;
  transition-delay: calc(.25s + var(--i, 0) * 70ms);
}
@media (prefers-reduced-motion: reduce) {
  .pf__cena, .pf__cena > * { transition: none !important; }
  .pf__onda i { animation: none !important; }
}
.pf__rot {
  font-family: var(--font-mono);
  font-size: max(10px, 3.2cqw);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.pf__nota {
  font-family: var(--font-display);
  font-size: max(11px, 4.4cqw);
  color: var(--text-muted);
}
.pf__nota b { color: var(--text); font-weight: var(--w-heading); }
.pf__linha {
  display: block;
  width: var(--w, 70%);
  height: 2.4cqw;
  min-height: 7px;
  border-radius: 99px;
  background: var(--line);
}
.pf__chamada {
  display: flex;
  align-items: center;
  gap: 4cqw;
  padding: 4cqw;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: var(--bg-raised);
}
.pf__tempo {
  font-family: var(--font-display);
  font-size: max(12px, 6cqw);
  font-weight: var(--w-heading);
  letter-spacing: -.02em;
  color: var(--text);
  white-space: nowrap;
}
.pf__onda {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 12cqw;
}
.pf__onda i {
  flex: none;
  width: max(3px, 1.1cqw);
  height: calc(var(--h) * 100%);
  border-radius: 99px;
  background: var(--text-dim);
  transform-origin: center;
  animation: pfOnda 1.1s ease-in-out infinite alternate;
  animation-delay: calc(var(--h) * -2.2s);
}
@keyframes pfOnda {
  from { transform: scaleY(.3); }
  to   { transform: scaleY(1); }
}
.pf__doc { display: grid; border-top: 1px solid var(--line); }
.pf__campo {
  display: grid;
  grid-template-columns: 20cqw minmax(0, 1fr) auto;
  align-items: center;
  gap: 3cqw;
  padding-block: 3.6cqw;
  border-bottom: 1px solid var(--line);
  font-family: var(--font-display);
  font-size: max(11px, 4cqw);
  color: var(--text);
}
.pf__campo b {
  font-family: var(--font-mono);
  font-size: max(10px, 3cqw);
  font-weight: 500;
  letter-spacing: .04em;
  padding: .8cqw 2cqw;
  border-radius: 99px;
  background: var(--realce);
  color: var(--text);
}
.pf__ecra {
  display: grid;
  gap: 2.6cqw;
  padding-bottom: 3.4cqw;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  overflow: hidden;
}
.pf__barra {
  display: flex;
  gap: 1.2cqw;
  padding: 2.2cqw 3cqw;
  border-bottom: 1px solid var(--line);
  background: var(--bg-raised);
}
.pf__barra i {
  width: 1.8cqw;
  min-width: 5px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--line-strong);
}
.pf__bloco {
  display: block;
  margin-inline: 3.4cqw;
  height: 8cqw;
  border-radius: var(--r-sm);
}
.pf__bloco:nth-of-type(1) { height: 15cqw; }
.pf__bloco--feito { background: var(--line); }
.pf__bloco--a-fazer { border: 1.5px dashed var(--line-strong); }
.pf__repo {
  display: grid;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  overflow: hidden;
}
.pf__ficheiro {
  font-family: var(--font-mono);
  font-size: max(10px, 3.8cqw);
  color: var(--text);
  padding: 3.2cqw 4cqw;
  border-bottom: 1px solid var(--line);
}
.pf__ficheiro:last-child { border-bottom: 0; }
.pf__ficheiro:first-child { background: var(--bg-raised); }
.garantias { display: grid; gap: var(--s6); }
@media (min-width: 820px) { .garantias { grid-template-columns: 1fr 1fr; gap: var(--s7) var(--s9); } }
.garantia { max-width: 46ch; }
.garantia b { color: var(--text); font-weight: var(--w-heading); }
.garantia p { color: var(--text-muted); }
.numeros { display: grid; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 820px) {
  .numeros { grid-template-columns: repeat(4, 1fr); }
  .numeros:has(.numero:nth-child(3):last-child) { grid-template-columns: repeat(3, 1fr); }
  .numeros:has(.numero:nth-child(2):last-child) { grid-template-columns: repeat(2, 1fr); }
}
.numeros:has(.numero:only-child) {
  grid-template-columns: auto;
  justify-content: center;
}
.numero:only-child { text-align: center; padding-inline: var(--s6); }
.numero { padding: var(--s6) var(--s5); border-left: 1px solid var(--line); }
.numero:first-child { border-left: 0; }
@media (max-width: 819px) {
  .numero:nth-child(odd) { border-left: 0; }
  .numero:nth-child(n+3) { border-top: 1px solid var(--line); }
}
.numero .valor {
  font-family: var(--font-display); font-size: var(--t-h2);
  font-weight: var(--w-display); letter-spacing: var(--ls-h2);
  line-height: 1; display: block; margin-bottom: var(--s3);
}
.numero .legenda { color: var(--text-muted); font-size: var(--t-small); }
.caso-marco {
  display: grid;
  
  gap: var(--s5);
  max-width: min(100%, 50ch);
  font-size: var(--t-lead);
  line-height: var(--lh-lead);
  color: var(--text);
}
.caso-marco__linha {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0 .3em;
  font-weight: 400;
  color: var(--text-muted);
}
.caso-marco b {
  font-family: var(--font-display);
  font-size: clamp(3rem, 6.5vw, 5rem);
  font-weight: var(--w-display);
  letter-spacing: -.04em;
  line-height: .9;
  color: var(--text);
}
.testemunhos { display: grid; gap: var(--s8); }
@media (min-width: 900px) { .testemunhos { grid-template-columns: repeat(2, 1fr); gap: var(--s7) var(--s8); } }
.testemunho { display: flex; flex-direction: column; height: 100%; }
.testemunho > figcaption { margin-top: auto; padding-top: var(--s5); }
.objecoes { display: grid; max-width: 900px; }
.objecao { border-top: 1px solid var(--line); }
.objecao:last-child { border-bottom: 1px solid var(--line); }
.objecao > summary {
  display: flex; align-items: baseline; gap: var(--s4);
  padding: var(--s6) 0; cursor: pointer; list-style: none;
  font-size: var(--t-h3); font-weight: var(--w-heading); letter-spacing: var(--ls-h3);
}
.objecao > summary::-webkit-details-marker { display: none; }
.objecao > summary::after {
  content: '+'; margin-left: auto; flex: none;
  font-family: var(--font-mono); font-size: 20px; color: var(--text-dim);
  transition: transform var(--dur-fast) var(--ease-out);
}
.objecao[open] > summary::after { content: '\2212'; }
.objecao > summary:hover { color: var(--accent-text); }
.objecao .resposta { padding-bottom: var(--s6); color: var(--text-muted); }
.objecao .resposta > :is(p, ol, ul, h3, h4, .corpo) { max-width: var(--medida); }
.objecao .resposta > * + * { margin-top: var(--s4); }
.cta-final { position: relative; overflow: hidden; background: var(--bg-destaque); }
.cta-final .aurora { display: none; }
.cta-final .grelha { display: grid; gap: var(--s8); align-items: center; position: relative; z-index: var(--z-conteudo); }
@media (min-width: 1000px) { .cta-final .grelha { grid-template-columns: 1.1fr .9fr; gap: var(--s9); } }
.contactos-diretos { display: flex; flex-wrap: wrap; gap: var(--s3) var(--s5); margin-top: var(--s6); color: var(--text-muted); }
.contactos-diretos a {
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: var(--line-strong);
  text-underline-offset: 4px;
}
.contactos-diretos a:hover { text-decoration-color: var(--accent); }
.sintomas { display: grid; margin-top: var(--s7); }
.sintoma {
  padding-block: var(--s7);
  border-top: 1px solid var(--line-strong);
  max-width: 68ch;
}
.sintoma:last-child { border-bottom: 1px solid var(--line-strong); }
.sintoma h3 {
  font-size: clamp(1.75rem, 3vw, 2.75rem);   
  line-height: 1.18;
  letter-spacing: var(--ls-h2);
  margin-bottom: var(--s4);
  max-width: 24ch;
  text-wrap: balance;
}
.sintoma p { color: var(--text-muted); max-width: var(--medida); }
.sintoma .btn-fantasma { margin-top: var(--s4); }
.marcacao__lead { max-width: 54ch; margin-top: var(--s4); margin-bottom: var(--s7); }
.marcacao__grelha { display: grid; gap: var(--s8); align-items: start; }
@media (min-width: 900px) {
  .marcacao__grelha { grid-template-columns: 1.4fr 1fr; gap: var(--s9); }
}
.marcar__rotulo {
  font-weight: var(--w-heading);
  margin-bottom: var(--s3);
}
.marcar__opcoes { display: flex; flex-wrap: wrap; gap: var(--s2); }
.opcao {
  min-height: 44px;
  padding: 0 var(--s4);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-btn);
  background: var(--bg-panel);
  color: var(--text);
  font-size: var(--t-small);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  transition: background var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out);
}
.opcao:hover { border-color: var(--accent); }
.opcao[aria-pressed='true'] {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-ink);
  font-weight: var(--w-heading);
}
.cal { margin-bottom: var(--s6); max-width: 360px; }
.cal__topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s3);
  margin-bottom: var(--s3);
}
.cal__mes {
  font-weight: var(--w-heading);
  font-size: var(--t-small);
}
.cal__mes::first-letter { text-transform: uppercase; }
.cal__seta {
  width: 36px; height: 36px;
  display: grid; place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: var(--r-btn);
  background: var(--bg);
  color: var(--text);
  font-size: 18px;
  line-height: 1;
  transition: border-color var(--dur-fast) var(--ease-out);
}
.cal__seta:hover:not([disabled]) { border-color: var(--accent); }
.cal__seta[disabled] { opacity: .3; cursor: not-allowed; }
.cal__semana,
.cal__grelha {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.cal__semana {
  margin-bottom: 4px;
  text-align: center;
  font-size: max(10px, .68rem);
  color: var(--text-dim);
}
.cal__dia {
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid transparent;
  border-radius: var(--r-btn);
  background: var(--bg);
  color: var(--text);
  font-variant-numeric: tabular-nums;
  font-size: var(--t-small);
  transition: background var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out);
}
.cal__dia:hover:not([disabled]) { border-color: var(--accent); }
.cal__dia[disabled] {
  background: none;
  color: var(--text-dim);
  cursor: not-allowed;
}
.cal__dia[aria-pressed='true'] {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-ink);
  font-weight: var(--w-heading);
}
.cal__vazia { aspect-ratio: 1; }
@media (max-width: 560px) {
  .cal { max-width: none; }
  .cal__dia,
  .cal__vazia { aspect-ratio: auto; min-height: 44px; }
  .cal__seta { width: 44px; height: 44px; }
}
.marcar__horas { display: grid; gap: var(--s4); margin-bottom: var(--s6); }
.marcar__metade { display: grid; gap: var(--s2); }
.marcar__metade-rotulo {
  font-size: var(--t-small);
  color: var(--text-dim);
}
.marcar__escolhido {
  margin: 0;
  font-weight: var(--w-heading);
  color: var(--text);
}
.marcar__accao {
  margin-top: var(--s5);
  font-size: var(--t-h3);
  letter-spacing: var(--ls-h3);
}
.marcar__ajuda {
  margin-top: var(--s4);
  max-width: 46ch;
  color: var(--text-dim);
  font-size: var(--t-small);
}
.marcar__form {
  margin-top: var(--s6);
  display: grid;
  gap: var(--s4);
  animation: marcarEntra var(--dur-med, 240ms) var(--ease-out) both;
}
@keyframes marcarEntra {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .marcar__form { animation: none; }
}
@container (min-width: 560px) {
  .marcar__form { grid-template-columns: 1fr 1fr; }
  .marcar__form .btn,
  .marcar__form .marcar__escolhido,
  .marcar__form .marcar__recado { grid-column: 1 / -1; }
}
.marcar {
  container-type: inline-size;
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: clamp(20px, 3.5vw, 40px);
  box-shadow: 0 2px 18px rgb(21 24 27 / .06);
}
.marcar__recado {
  margin: 0;
  font-size: var(--t-small);
  color: var(--text-muted);
}
.marcar__recado--mau { color: var(--error); }
.marcar__sucesso { display: grid; gap: var(--s3); max-width: 46ch; }
.marcar__sucesso-titulo {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--t-h2);
  letter-spacing: var(--ls-h2);
}
.marcar__sucesso-quando {
  margin: 0;
  font-weight: var(--w-heading);
  color: var(--text);
}
.marcar__sucesso p { color: var(--text-muted); }
.marcacao__telefone {
  display: inline-block;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3vw, 2.5rem);   
  font-weight: var(--w-display);
  letter-spacing: var(--ls-h2);
  line-height: 1.1;
  margin-bottom: var(--s4);
  font-variant-numeric: tabular-nums;
}
.marcacao__telefone:hover { text-decoration: underline; text-underline-offset: .12em; }
.marcacao__outra .pequeno { color: var(--text-dim); max-width: 40ch; }
.marcacao__outra .pequeno + .pequeno { margin-top: var(--s3); }
.marcacao__outra .pequeno a { text-decoration: underline; text-underline-offset: .12em; }
.lista-numerada { list-style: decimal; padding-left: 1.5em; max-width: var(--medida); }
.lista-numerada li { margin-bottom: var(--s3); padding-left: var(--s2); }
.lista-numerada li::marker { color: var(--accent-text); font-variant-numeric: tabular-nums; }
.seccao-alt { background: var(--bg-raised); }
.seccao-alt + .seccao-alt { background: var(--bg); }
.seccao-alt + .seccao-alt + .seccao-alt { background: var(--bg-raised); }
.seccao.hero-servico { background: var(--bg-panel); }
.seccao.hero-servico + .seccao-alt { background: var(--bg); }
.hero-servico h1 { margin-bottom: var(--s5); }
.hero-servico .lead + p { margin-top: var(--s4); }
.hero-servico__acoes {
  display: flex; flex-wrap: wrap; gap: var(--s4);
  margin-top: var(--s7);
}
.sentido { display: grid; gap: var(--s7); align-items: start; position: relative; }
@media (min-width: 900px) {
  .sentido { grid-template-columns: 1fr 1fr; gap: var(--s8); }
  .sentido::before {
    content: '';
    position: absolute;
    left: 50%; top: 0; bottom: 0;
    width: 1px;
    background: var(--line);
  }
}
.sentido__col { padding-top: var(--s5); border-top: 2px solid var(--accent-line); }
.sentido__col--nao { border-top-color: var(--line-strong); }
.sentido__col :is(h3, h4) { font-size: var(--t-h3); letter-spacing: var(--ls-h3); margin-bottom: var(--s5); }
.sentido__col ul { display: grid; gap: var(--s4); }
.sentido__col li {
  color: var(--text-muted);
  padding-left: var(--s5);
  position: relative;
  max-width: 46ch;
}
.sentido__col li::before {
  content: '';
  position: absolute; left: 0; top: .65em;
  width: 10px; height: 2px; background: var(--accent);
}
.sentido__col--nao li::before { background: var(--text-dim); }
.integracoes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(11rem, 100%), 1fr));
  gap: 0 var(--s6);
  max-width: 46rem;
  margin-top: var(--s7);
  padding: 0;
  list-style: none;
  border: 0;
  background: none;
}
.integracoes li {
  display: block;
  min-height: 0;
  padding: var(--s4) 0;
  border: 0;
  border-top: 1px solid var(--line);
  font-family: var(--font-display);
  font-size: var(--t-lead);
  font-weight: 400;
  letter-spacing: -.01em;
  line-height: 1.3;
  color: var(--text);
  text-align: left;
}
.depoimento { margin-top: var(--s7); }
.depoimento__ficha {
  padding: var(--s6);
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
}
.depoimento__quem {
  display: flex; align-items: center; gap: var(--s4);
  padding-bottom: var(--s5);
  border-bottom: 1px solid var(--line);
}
.depoimento__logo {
  flex: none;
  width: 44px; height: 44px;
  object-fit: contain;
}
.depoimento__nome { font-weight: var(--w-heading); font-size: var(--t-h3); letter-spacing: var(--ls-h3); }
.depoimento__cargo { color: var(--text-muted); }
.depoimento__numeros {
  display: grid; gap: var(--s5);
  padding-top: var(--s5);
}
@media (min-width: 700px) {
  .depoimento__numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s6); }
}
.depoimento__numeros > div { display: flex; flex-direction: column-reverse; gap: var(--s1); }
.depoimento__numeros dt { color: var(--text-muted); font-size: var(--t-small); }
.depoimento__numeros dd {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--t-h2);
  font-weight: var(--w-heading);
  letter-spacing: -.025em;
  line-height: 1.05;
  color: var(--text);
}
.depoimento__ligado {
  margin-top: var(--s5); padding-top: var(--s5);
  border-top: 1px solid var(--line);
  font-size: var(--t-small);
  color: var(--text);
  line-height: 1.9;
}
.depoimento__ligado span {
  margin-inline: .6em;
  color: var(--text-dim);
}
.depoimento__ligado b { font-weight: inherit; white-space: nowrap; }
.pendente {
  margin-block: var(--s6);
  padding: var(--s5);
  border: 2px dashed var(--warn);
  border-radius: var(--r-md);
  background: color-mix(in srgb, var(--warn) 8%, transparent);
  max-width: 68ch;
}
.pendente__etiqueta {
  font-family: var(--font-mono);
  font-size: var(--t-micro);
  letter-spacing: var(--ls-mono);
  text-transform: uppercase;
  color: var(--warn);
  margin-bottom: var(--s3);
}
.pendente__o-que { font-weight: var(--w-heading); color: var(--text); }
.pendente__porque { color: var(--text-muted); font-size: var(--t-small); margin-top: var(--s2); }
.pendente__porque:empty { display: none; }
.container-estreito { max-width: 720px; }
.progresso { margin-bottom: var(--s8); }
.progresso__rotulo {
  font-family: var(--font-mono);
  font-size: var(--t-micro);
  letter-spacing: var(--ls-mono);
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: var(--s3);
}
.progresso__calha {
  height: 4px;
  border-radius: var(--r-full);
  background: var(--line);
  overflow: hidden;
}
.progresso__barra {
  display: block; height: 100%;
  background: var(--accent);
  border-radius: var(--r-full);
  transition: width var(--dur-mid) var(--ease-out);
}
@media (prefers-reduced-motion: reduce) {
  .progresso__barra { transition: none; }
}
.progresso__barra--indeterminada {
  width: 30%;
  transition: none;
  animation: progressoAnda 1.1s ease-in-out infinite;
}
@keyframes progressoAnda {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(333%); }
}
@media (prefers-reduced-motion: reduce) {
  .progresso__barra--indeterminada { width: 100%; animation: none; opacity: .45; }
}
.form-candidatura .progresso { margin-bottom: 0; }
.form-candidatura .progresso__rotulo { margin-bottom: var(--s2); }
.escolhas--linha { display: flex; flex-wrap: wrap; gap: var(--s3); }
.escolhas--linha .escolha { flex: 0 1 auto; }
.passo-acoes {
  display: flex; gap: var(--s4); align-items: center;
  margin-top: var(--s8);
}
.passo-acoes .btn-primario { margin-left: auto; }
@media (max-width: 520px) {
  .passo-acoes { flex-direction: column-reverse; align-items: stretch; }
  .passo-acoes .btn-primario { margin-left: 0; }
}
.texto-longo h2 { margin-bottom: var(--s5); }
.texto-longo h3 { margin-bottom: var(--s4); }
.texto-longo h2:not(:first-child) { margin-top: var(--s9); }
.texto-longo h3:not(:first-child) { margin-top: var(--s7); }
.fundador { --retrato: 96px; }
.fundador__retrato {
  width: var(--retrato);
  aspect-ratio: 1;
  min-height: 0;
  border-radius: var(--r-md);
  border: 1px solid var(--line);
  overflow: hidden;
}
.fundador__retrato img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
  -webkit-user-drag: none;
  user-select: none;
  -webkit-user-select: none;
}
.fundadores { display: grid; gap: var(--s7); }
@media (min-width: 720px) { .fundadores { grid-template-columns: 1fr 1fr; gap: var(--s8); } }
.fundador__cabeca { display: flex; align-items: center; gap: var(--s4); }
.fundador__id { min-width: 0; }
.fundador h3 { margin-top: 0; }
.fundador__cabeca + p { margin-top: var(--s5); }
.fundador__cargo {
  font-family: var(--font-mono);
  font-size: var(--t-micro);
  letter-spacing: var(--ls-mono);
  text-transform: uppercase;
  color: var(--text-dim);
  margin-bottom: var(--s4);
}
.fundador p { color: var(--text-muted); max-width: 42ch; }
.fundador a { color: var(--accent-text); }
.antes-depois { display: grid; gap: var(--s6); margin-top: var(--s7); align-items: start; }
@media (min-width: 820px) { .antes-depois { grid-template-columns: 1fr 1fr; gap: var(--s8); } }
.antes-depois__col { padding-top: var(--s5); border-top: 2px solid var(--line-strong); }
.antes-depois__col--depois { border-top-color: var(--accent); }
.antes-depois__col h3 {
  font-family: var(--font-mono); font-size: var(--t-micro);
  letter-spacing: var(--ls-mono); text-transform: uppercase;
  color: var(--text-dim); margin-bottom: var(--s4);
}
.antes-depois__col--depois h3 { color: var(--accent-text); }
.antes-depois__col p { color: var(--text-muted); max-width: 44ch; }
.antes-depois__col p + p { margin-top: var(--s4); }
.carril-capas {
  --carril-lado: max(var(--gutter), calc(50% - var(--container) / 2 + var(--gutter)));
}
.projetos--indice {
  display: flex;
  gap: var(--s7);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  padding-inline: var(--carril-lado);
  scroll-padding-inline-start: var(--carril-lado);
  padding-block-end: var(--s3);
}
.projetos--indice > .projeto {
  flex: 0 0 auto;
  width: min(86%, 640px);
  scroll-snap-align: start;
}
@media (min-width: 820px) {
  .projetos--indice > .projeto { width: 640px; }
}
.projetos--indice {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.projetos--indice::-webkit-scrollbar { display: none; }
@media (prefers-reduced-motion: reduce) {
  .projetos--indice { scroll-snap-type: none; }
}
.hero-caso { display: grid; gap: var(--s6); }
@media (min-width: 1000px) {
  .hero-caso {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    column-gap: var(--s9);
    row-gap: var(--s7);
    align-items: start;
  }
  .hero-caso > h1 { grid-column: 1 / -1; }
}
.capa-caso {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  height: auto;
  object-fit: cover;
  object-position: center;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--bg-raised);
  box-shadow: 0 8px 32px rgb(21 24 27 / .07);
}
.capa--desenho {
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 16 / 10;
  margin-bottom: var(--s4);
}
.projetos--duas { gap: var(--s7); }
@media (min-width: 820px) {
  .projetos--duas { grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
  .projetos--duas:has(.projeto:nth-child(3):last-child) { grid-template-columns: repeat(3, 1fr); }
}
.caso-bloco { display: grid; gap: var(--s6); align-items: center; margin-bottom: var(--s9); }
.caso-bloco:last-child { margin-bottom: 0; }
@media (min-width: 900px) {
  .caso-bloco { grid-template-columns: 1.3fr 1fr; gap: var(--s8); }
  .caso-bloco:nth-child(even) { grid-template-columns: 1fr 1.3fr; }
  .caso-bloco:nth-child(even) > :first-child { order: 2; }
}
.caso-bloco h3 { margin-bottom: var(--s3); }
.caso-bloco p { color: var(--text-muted); max-width: 44ch; }
.caso-bloco p b {
  font-weight: var(--w-heading);
  color: var(--text);
}
.caso-citacao {
  position: relative;
  max-width: 62ch;
  padding-left: 0;
}
.caso-citacao::before {
  content: '\201C' / '';
  position: absolute;
  left: 0;
  top: -.30em;
  font-family: Georgia, 'Times New Roman', 'Noto Serif', serif;
  font-size: clamp(5.5rem, 10vw, 10rem);
  font-weight: 400;
  line-height: 1;
  color: var(--realce);
  pointer-events: none;
  user-select: none;
}
@media (min-width: 700px) {
  .caso-citacao { padding-left: clamp(5rem, 8vw, 7.5rem); }
  .caso-citacao::before { top: -.24em; }
}
.caso-citacao p {
  font-size: clamp(1.25rem, 2.1vw, 1.6rem);
  line-height: 1.45;
  letter-spacing: -.01em;
  text-wrap: pretty;
}
.caso-citacao footer { margin-top: var(--s6); display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); }
.caso-citacao .nome { font-weight: var(--w-heading); }
.caso-citacao .empresa { color: var(--text-dim); }
@media (max-width: 640px) {
  .acoes-cabecalho .btn { min-height: 46px; }
  .btn-menu { width: 46px; height: 46px; }
}
.modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  padding: var(--s5);
  display: flex;
  justify-content: center;
  align-items: flex-end;
  background: rgba(16, 16, 16, .42);
  animation: modal-entra var(--dur-mid) var(--ease-out);
}
@media (min-width: 700px) {
  .modal { align-items: center; }
}
@keyframes modal-entra { from { opacity: 0; } }
.modal__caixa { animation: modal-caixa-entra var(--dur-mid) var(--ease-out); }
@keyframes modal-caixa-entra { from { opacity: 0; transform: translateY(12px); } }
@media (prefers-reduced-motion: reduce) {
  .modal, .modal__caixa { animation: none; }
}
.modal__caixa {
  width: 100%;
  max-width: 880px;
  background: var(--bg-panel);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-modal);
  overflow: hidden;
}
.modal__topo {
  padding: var(--s4) var(--s6);
  border-bottom: 1px solid var(--line);
  display: flex; align-items: center;
}
.modal__miolo { padding: var(--s6); }
.modal__titulo { font-size: var(--t-h3); letter-spacing: var(--ls-h3); margin-bottom: var(--s4); }
.modal__texto { color: var(--text-muted); max-width: 62ch; }
.modal__pequeno { font-size: var(--t-small); color: var(--text-dim); margin-top: var(--s5); }
.modal__pequeno a { text-decoration: underline; text-underline-offset: 3px; }
.modal__categorias {
  display: grid; gap: var(--s5);
  margin-top: var(--s6); padding-top: var(--s5);
  border-top: 1px solid var(--line);
}
@media (min-width: 620px) {
  .modal__categorias { grid-template-columns: 1fr 1fr; gap: 0; }
  .modal__categoria + .modal__categoria { border-left: 1px solid var(--line); padding-left: var(--s6); }
  .modal__categoria { padding-right: var(--s6); }
}
.modal__categoria { display: grid; grid-template-columns: 1fr auto; gap: var(--s2) var(--s4); align-items: center; }
.modal__cat-nome { font-weight: var(--w-heading); }
.modal__cat-estado { font-size: var(--t-small); color: var(--text-dim); }
.modal__cat-nota { grid-column: 1 / -1; font-size: var(--t-small); color: var(--text-muted); }
.modal__interruptor { width: 44px; height: 26px; accent-color: var(--accent); cursor: pointer; }
.modal__form { margin-top: var(--s5); }
.modal__rotulo {
  display: block;
  margin-bottom: var(--s2);
  font-size: var(--t-small);
  font-weight: var(--w-heading);
}
.modal__campo {
  width: 100%;
  min-height: 52px;
  padding: 0 var(--s4);
  background: var(--bg-panel);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-sm);
  box-shadow: var(--shadow-sm);
  color: var(--text);
  font-size: var(--t-body);
  transition: border-color var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out);
}
.modal__campo::placeholder { color: var(--text-dim); }
.modal__campo:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--realce);
}
.modal__form .erro {
  display: block;
  margin-top: var(--s2);
  font-size: var(--t-small);
  color: var(--error);
}
.modal__acoes {
  display: grid; gap: var(--s3);
  padding: var(--s5) var(--s6) var(--s6);
  border-top: 1px solid var(--line);
}
@media (min-width: 620px) {
  .modal__acoes { grid-auto-flow: column; grid-auto-columns: 1fr; }
}
.modal__acoes .btn { width: 100%; }
.sublinhado {
  text-decoration: underline;
  text-decoration-thickness: .07em;
  text-underline-offset: .12em;
  text-decoration-skip-ink: auto;
}
p .sublinhado { text-decoration-thickness: .09em; text-underline-offset: .16em; }
.quando-inline { color: var(--text-dim); font-weight: var(--w-body); }
.respiro { text-align: left; }
.respiro__par { display: grid; gap: var(--s8); align-items: center; }
@media (min-width: 900px) {
  .respiro__par {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    gap: var(--s8);
  }
}
.respiro__miolo { margin-inline: 0; }
.respiro h2 {
  
  font-size: clamp(2rem, 3.6vw, 3rem);
  max-width: 18ch;
  margin-inline: 0;
  margin-bottom: var(--s6);
  text-wrap: balance;
}
.respiro p {
  max-width: 54ch;
  margin-inline: 0;
  font-size: var(--t-lead);
  color: var(--text-muted);
  text-wrap: pretty;
}
.hero-img {
  display: block;
  width: 100%;
  user-select: none;
  -webkit-user-select: none;
  pointer-events: none;
}
.hero-img img {
  display: block;
  width: 100%;
  height: auto;
}
@media (min-width: 1000px) {
  .hero-img {
    
    width: calc(100% + max(0px, (100vw - var(--container)) / 2) + var(--gutter));
    
    max-width: min(760px, max(560px, calc((100svh - var(--topo, 68px) - 290px) * 1.75)));
  }
}
.dor__tit { margin-block: 0 var(--s7); max-width: 20ch; }
@media (min-width: 900px) {
  .dor__grelha {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: var(--s8);
    align-items: start;
  }
  .dor__tit    { grid-column: 1; grid-row: 1; }
  .sintomas    { grid-column: 1; grid-row: 2; }
  .dor__lado   { grid-column: 2; grid-row: 1 / 3; height: 100%; }
  .dor__lado .fp {
    position: sticky;
    top: calc(var(--topo, 68px) + var(--s9));
  }
}
@media (max-width: 899px) {
  .dor__lado { margin-block: var(--s7) var(--s8); }
}
@property --resp-e { syntax: '<number>'; inherits: true; initial-value: 0; }
@property --resp-p { syntax: '<number>'; inherits: true; initial-value: 1; }
.respiro { position: relative; isolation: isolate; }
.respiro > *:not(.respiro__grelha) { position: relative; z-index: 1; }
.respiro__grelha {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(to right, var(--line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--line) 1px, transparent 1px);
  background-size: var(--folha-cel-l) var(--folha-cel-a);
  opacity: calc(var(--resp-e) * (1 - var(--resp-p)));
  
  -webkit-mask-image:
    linear-gradient(to bottom, #000 0,
      transparent calc(50% - var(--fura-y)), transparent calc(50% + var(--fura-y)),
      #000 100%),
    linear-gradient(to right, #000 0,
      transparent calc(50% - var(--fura-x)), transparent calc(50% + var(--fura-x)),
      #000 100%);
  -webkit-mask-composite: source-over;
          mask-image:
    linear-gradient(to bottom, #000 0,
      transparent calc(50% - var(--fura-y)), transparent calc(50% + var(--fura-y)),
      #000 100%),
    linear-gradient(to right, #000 0,
      transparent calc(50% - var(--fura-x)), transparent calc(50% + var(--fura-x)),
      #000 100%);
          mask-composite: add;
}
.respiro__grelha {
  
  --fura-x: calc(max(600px, 34vw) + var(--resp-p) * 1400px);
  --fura-y: calc(210px + var(--resp-p) * 900px);
}
.respiro { padding-block: calc(var(--s9) + var(--s7)); }
@media (prefers-reduced-motion: reduce) {
  .respiro__grelha { display: none; }
}
.prova-fita {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--s2);
  margin-bottom: var(--s6);
  text-align: center;
}
.prova-fita__nota {
  display: flex;
  align-items: baseline;
  gap: var(--s3);
  flex-wrap: wrap;
  justify-content: center;
}
.prova-fita__nota .nota {
  font-size: var(--t-h3);
  font-weight: var(--w-heading);
  letter-spacing: -.02em;
  color: var(--text);
}
.prova-fita__nota .estrelas {
  color: var(--text);
  letter-spacing: .08em;
}
.prova-fita__det { color: var(--text-muted); font-size: var(--t-small); }
.prova-fita__linha { color: var(--text-muted); }
.texto-puxado { display: grid; gap: var(--s7); }
@media (min-width: 900px) {
  .texto-puxado {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: var(--s9);
    align-items: start;
  }
}
.puxada { display: none; }
@media (min-width: 900px) { .puxada { display: block; } }
.puxada {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4.6vw, 4rem);
  line-height: 1.1;
  letter-spacing: -.025em;
  color: var(--text-muted);
  max-width: 14ch;
}
.puxada mark {
  background: var(--realce);
  color: var(--text);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding: .04em .12em;
}
.puxada mark[data-partido] {
  background: none;
  padding: 0;
  color: inherit;
}
@media (min-width: 900px) {
  .texto-puxado > .puxada {
    position: sticky;
    top: calc(var(--topo, 68px) + var(--s9));
    margin-top: var(--s8);
  }
}
.modelo-par { display: grid; gap: var(--s7); }
@media (min-width: 1100px) {
  .modelo-par {
    grid-template-columns: minmax(0, 1fr) 34rem;
    gap: var(--s9);
    align-items: center;
  }
}
.modelo-par__desenho > .mod { width: 100%; margin-inline: auto; }
.frase-fundador {
  margin: var(--s9) 0 0;
  padding: 0;
  position: relative;
}
.frase-fundador:first-child { margin-top: 0; }
.frase-fundador blockquote {
  margin: 0;
  max-width: 38ch;
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.6vw, 4rem);
  line-height: 1.1;
  letter-spacing: -.025em;
  color: var(--text);
}
@media (min-width: 760px) {
  .container-estreito .frase-fundador blockquote {
    font-size: clamp(1.6rem, 2.9vw, 2.4rem);
  }
  .container-estreito .frase-fundador::before {
    font-size: clamp(3rem, 5.7vw, 4.8rem);
  }
}
.frase-fundador::before {
  content: '\201C' / '';
  position: absolute;
  left: -.62em;
  top: -.34em;
  font-family: Georgia, 'Times New Roman', 'Noto Serif', serif;
  font-size: clamp(4.5rem, 9vw, 8rem);
  line-height: 1;
  color: var(--realce);
  pointer-events: none;
}
@media (max-width: 720px) {
  .frase-fundador::before { position: static; display: block; margin-bottom: -.28em; }
}
.frase-fundador figcaption {
  margin-top: var(--s5);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.frase-fundador__nome { color: var(--text); font-weight: var(--w-heading); }
.frase-fundador__papel { color: var(--text-dim); font-size: var(--t-small); }
.anim-servico > .anim {
  border: 1px solid;
  border-radius: var(--r-md);
  padding: clamp(12px, 2.2vw, 28px);
}
section:has(.anim-servico) { overflow-x: clip; }
.anim-servico--lima > .anim    { background: var(--tinta-lima);    border-color: var(--tinta-lima-borda); }
.anim-servico--laranja > .anim { background: var(--tinta-laranja); border-color: var(--tinta-laranja-borda); }
.faixa-accao { background: var(--bg-destaque); }
.faixa-accao .aurora { display: none; }
@media (min-width: 1000px) {
  .hero-img { position: relative; z-index: var(--z-conteudo); }
}
@media (min-width: 1000px) and (min-height: 900px) {
  .hero-img {
    transform: translateY(96px);
  }
}
@media (min-width: 1000px) {
  .hero.hero--dobra { padding-bottom: var(--s5); }
}
@media (min-width: 1000px) {
  .hero.hero--dobra { padding-top: var(--s6); }
  .hero.hero--dobra .hero-titulo { margin-bottom: var(--s5); }
  .hero.hero--dobra .hero-solo { row-gap: var(--s4); }
  .hero.hero--dobra .hero-baixo { gap: var(--s5); }
}
.caminhos { overflow-x: clip; position: relative; }
.fio {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 0;
  pointer-events: none;
  overflow: visible;
}
.caminhos > .container { position: relative; z-index: 1; }
.fio-envolve { position: relative; }
.caso-fio { position: relative; overflow-x: clip; }
.caso-fio > .container { position: relative; z-index: 1; }
.fio-envolve > .fio { z-index: 1; }
[data-fio-linha] {
  stroke: url(#fioGrad);
  stroke-width: 3;
  stroke-dasharray: 14 18;
  stroke-linecap: round;
  opacity: .9;
}
.fio__cor--azul    { stop-color: var(--tinta-azul-borda); }
.fio__cor--lima    { stop-color: var(--tinta-lima-borda); }
.fio__cor--laranja { stop-color: var(--tinta-laranja-borda); }
.dois-lados {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s6);
  margin-top: var(--s7);
}
.dois-lados__lado > p { color: var(--text-muted); max-width: 44ch; }
.dois-lados__lado > .integracoes { margin-top: var(--s6); }
.dois-lados__liga {
  position: relative;
  justify-self: center;
  width: 100%;
  height: 1px;
  background: var(--line-strong);
}
.dois-lados__liga::after {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  width: 9px; height: 9px;
  margin: -5px 0 0 -5px;
  background: var(--bg);
  border: 1px solid var(--line-strong);
  transform: rotate(45deg);
}
@media (min-width: 900px) {
  .dois-lados__liga { display: none; }
  .dois-lados {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--s7);
    align-items: start;
  }
}
.integracoes__regra {
  margin-top: var(--s6);
  max-width: 52ch;
  color: var(--text-muted);
}
.hero-servico__par { display: grid; gap: var(--s7); }
@media (min-width: 1000px) {
  .hero-servico__par {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: var(--s9);
    align-items: center;
  }
}
@media (max-width: 900px) {
  .btn-fantasma { min-height: 44px; }
  
  .contactos-diretos a,
  .rodape-cartao__resto a,
  .rodape-legal a,
  .marcacao__telefone,
  .rodape-tel,
  .rodape-morada {
    position: relative;
  }
  .contactos-diretos a::before,
  .rodape-cartao__resto a::before,
  .rodape-legal a::before,
  .marcacao__telefone::before,
  .rodape-tel::before,
  .rodape-morada::before,
  .marca::before {
    content: '';
    position: absolute;
    inset-inline: 0;
    top: 50%;
    translate: 0 -50%;
    height: 44px;
  }
  
  .rodape-legal { row-gap: var(--s5); }
  
  .modal__cat-nome { min-height: 44px; display: flex; align-items: center; }
  .modal__interruptor { align-self: center; }
  .contactos-diretos { gap: var(--s5) var(--s5); }
  .rodape-cartao__resto { gap: var(--s5) var(--s4); }
  .rodape-cartao__miolo .rodape-tel + .rodape-tel { margin-top: var(--s4); }
  
  .marca { position: relative; }
}
.comparativo {
  margin-top: var(--s7);
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
}
.comparativo table {
  width: 100%;
  min-width: 34rem;
  border-collapse: collapse;
  font-size: var(--t-small);
}
.comparativo caption {
  padding: var(--s5) var(--s5) 0;
  text-align: left;
  color: var(--text-muted);
  font-size: var(--t-small);
}
.comparativo th,
.comparativo td {
  padding: var(--s4) var(--s5);
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--line);
}
.comparativo tbody tr:last-child th,
.comparativo tbody tr:last-child td { border-bottom: 0; }
.comparativo thead th {
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
}
.comparativo tbody th {
  font-weight: 600;
  color: var(--text);
  width: 11rem;
}
.comparativo td { color: var(--text-muted); }
:root {
  --anim-dur: 6.5s;
  
  --anim-entrada: 2.8s;
}
.anim {
  container-type: inline-size;
  width: 100%;
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--bg);
  
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}
.anim__palco {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  font-family: var(--font-display);
}
.anim *,
.anim *::after,
.anim *::before { animation-play-state: paused; }
.anim[data-a-tocar] *,
.anim[data-a-tocar] *::after,
.anim[data-a-tocar] *::before { animation-play-state: running; }
@media (prefers-reduced-motion: reduce) {
  .anim *,
  .anim *::after,
  .anim *::before {
    animation-duration: var(--anim-dur) !important;
    animation-iteration-count: 1 !important;
    animation-delay: var(--anim-parada, calc(var(--anim-dur) * -.85)) !important;
    animation-play-state: paused !important;
  }
}
