/* Estilos do gestor de consentimento. Partilhado pelo index.html e pela
   privacidade.html, para as duas páginas nunca divergirem. Depende dos
   tokens de cor e tipo definidos em cada página. */

/* ── Consentimento ──────────────────────────────────────────────
   Regras que a CNPD impõe e que o desenho tem de respeitar: recusar é tão
   fácil como aceitar (os dois botões são iguais, em qualquer nível), nada
   vem pré-aceite, e fechar sem escolher não vale como consentimento.

   Aparece como uma pequena janela, a um canto — não bloqueia a leitura.
   Se a pessoa começar a percorrer a página sem decidir, a janela sai da
   frente e fica reduzida a uma aba: continua sempre alcançável, até ao
   fim da página, mas deixa de se impor. */
/* O canto muda com a fase da página: durante o herói o botão "Marcar
   reunião" fica sempre fixo e visível, por isso a janela sobe para o topo
   — onde, nessa fase, nada mais está fixo (o cabeçalho só aparece depois).
   Passado o herói, desce para o canto inferior, junto ao cabeçalho. */
.cc{
  position:fixed;right:var(--gut);top:var(--gut);bottom:auto;z-index:200;
  width:min(380px,calc(100vw - 2 * var(--gut)));
  background:rgba(6,33,30,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid var(--line);box-shadow:0 22px 60px rgba(0,0,0,.45);
  padding:clamp(20px,2.6vw,26px);
  transform:translateY(-16px) scale(.97);opacity:0;
  transition:transform .45s var(--ease),opacity .4s var(--ease);
}
html.tn-past-hero .cc{top:auto;bottom:var(--gut);transform:translateY(16px) scale(.97)}
.cc.is-open,html.tn-past-hero .cc.is-open{transform:none;opacity:1}
.cc[hidden]{display:none}
.cc__t{font-family:var(--f-display);font-size:clamp(17px,1.6vw,20px);color:var(--cream);margin-bottom:8px}
.cc__d{font-size:12.5px;line-height:1.65;color:var(--sage)}
.cc__acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.cc__btn{font-family:var(--f-body);font-size:11px;letter-spacing:.14em;text-transform:uppercase;text-align:center;
  padding:12px 14px;border:1px solid var(--gold);background:var(--gold);color:var(--ink);cursor:pointer;
  transition:background .3s var(--ease),color .3s var(--ease)}
.cc__btn:hover{background:var(--gold-lit);border-color:var(--gold-lit)}
.cc__btn--ghost{background:transparent;color:var(--gold);border-color:var(--line)}
.cc__btn--ghost:hover{background:rgba(201,160,99,.12);color:var(--gold-lit);border-color:var(--gold)}
.cc__prefs{display:block;width:100%;margin-top:10px;background:none;border:0;padding:6px 0 0;cursor:pointer;
  font-family:var(--f-body);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
  text-align:center;text-decoration:underline;text-underline-offset:3px}
.cc__prefs:hover{color:var(--gold-lit)}

/* A aba minimizada: mesma esquina, mesmo peso visual discreto — não é um
   botão "fechar" disfarçado, é o mesmo pedido à espera de resposta. */
.cc__pill{
  position:fixed;right:var(--gut);top:var(--gut);bottom:auto;z-index:199;
  display:flex;align-items:center;gap:9px;
  padding:13px 20px;background:rgba(6,33,30,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid var(--line);color:var(--gold);cursor:pointer;
  font-family:var(--f-body);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  box-shadow:0 14px 36px rgba(0,0,0,.35);
  transform:translateY(-16px);opacity:0;transition:transform .4s var(--ease),opacity .35s var(--ease);
}
html.tn-past-hero .cc__pill{top:auto;bottom:var(--gut);transform:translateY(16px)}
.cc__pill.is-shown,html.tn-past-hero .cc__pill.is-shown{transform:none;opacity:1}
.cc__pill[hidden]{display:none}
.cc__pill:hover{color:var(--gold-lit);border-color:var(--gold)}
.cc__pill svg{flex:none}

.ccm{position:fixed;inset:0;z-index:210;display:grid;place-items:center;padding:var(--gut)}
.ccm[hidden]{display:none}
.ccm__scrim{position:absolute;inset:0;background:rgba(3,18,16,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.ccm__box{position:relative;width:min(660px,100%);max-height:min(86svh,760px);overflow-y:auto;
  background:var(--ground);border:1px solid var(--line);box-shadow:0 30px 80px rgba(0,0,0,.5);
  padding:clamp(24px,3.2vw,40px)}
.ccm__box h2{font-size:clamp(22px,2.4vw,30px);margin-bottom:10px}
.ccm__lead{font-size:13.5px;line-height:1.7;color:var(--sage);margin-bottom:clamp(20px,2.4vw,28px)}
.ccm__list{list-style:none;margin:0 0 clamp(20px,2.4vw,28px);padding:0;
  display:flex;flex-direction:column;gap:1px;background:var(--line-soft);border:1px solid var(--line-soft)}
.ccm__item{background:var(--raise);padding:clamp(16px,2vw,22px)}
.ccm__row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.ccm__name{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--cream)}
.ccm__why{font-size:13px;line-height:1.65;color:var(--sage);margin-top:8px;max-width:56ch}
.ccm__fixed{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);white-space:nowrap;padding-top:2px}
/* interruptor sobre uma checkbox a sério: teclado e leitores de ecrã de borla */
.ccm__sw{position:relative;flex:none;width:46px;height:26px;cursor:pointer}
.ccm__sw input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ccm__sw span{position:absolute;inset:0;border-radius:13px;background:rgba(244,242,237,.16);
  border:1px solid var(--line-soft);transition:background .3s var(--ease),border-color .3s var(--ease);pointer-events:none}
.ccm__sw span::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;
  background:var(--sage);transition:transform .3s var(--ease),background .3s var(--ease)}
.ccm__sw input:checked+span{background:rgba(201,160,99,.34);border-color:var(--gold)}
.ccm__sw input:checked+span::after{transform:translateX(20px);background:var(--gold)}
.ccm__sw input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
/* Aceitar e rejeitar partilham a mesma linha e o mesmo estilo — nenhum dos
   dois pode ser mais fácil de carregar que o outro. O botão em destaque é o
   neutro: guardar o que a pessoa escolheu. */
.ccm__acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ccm__acts .cc__btn{justify-content:center;text-align:center}
.ccm__acts .cc__btn--save{grid-column:1/-1;background:var(--gold);color:var(--ink);border-color:var(--gold)}
.ccm__acts .cc__btn--save:hover{background:var(--gold-lit);border-color:var(--gold-lit);color:var(--ink)}
@media (max-width:430px){.ccm__acts{grid-template-columns:1fr}}
@media (max-width:900px){
  .cc,.cc__pill{right:16px}
  html.tn-past-hero .cc,html.tn-past-hero .cc__pill{bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  html:not(.tn-past-hero) .cc,html:not(.tn-past-hero) .cc__pill{top:16px}
}
/* Em desktop o WhatsApp flutuante vive no mesmo canto (direito, fundo) para
   onde o consentimento desce depois do herói. Enquanto ninguém decidiu, o
   consentimento sobe mais um pouco, para os dois empilharem sem se tocar. */
@media (min-width:901px){
  html.tn-past-hero .cc,html.tn-past-hero .cc__pill{bottom:calc(var(--gut) + 58px + 14px)}
}
@media (max-width:480px){.cc{left:16px;right:16px;width:auto}}
/* movimento reduzido: a janela e a aba aparecem só com o fade, sem deslizar */
@media (prefers-reduced-motion:reduce){
  .cc,html.tn-past-hero .cc,.cc__pill,html.tn-past-hero .cc__pill{transform:none}
}
.foot__consent{font-family:var(--f-body);font-size:11px;letter-spacing:.08em;color:var(--sage);
  background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.foot__consent:hover{color:var(--gold)}
