/* Fontes hospedadas no próprio site (subconjunto latino, cobre todo o português). Sem pedidos a terceiros. */
@font-face{font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/jost-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 700;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-wght-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
/*!
 * Wharbz · estilos compartilhados por todas as páginas
 * Atualizado em 25/09/2026
 * Componentes: rodapé, painel de contato e banner de cookies (fonte única, extraída da Home),
 * mais as regras de acessibilidade comuns. Carregado depois do CSS de cada página,
 * então prevalece sobre qualquer cópia antiga desses componentes.
 */

/* ===== Componentes compartilhados ===== */
.contact-panel{position:fixed; inset:0; z-index:100;
    display:flex; align-items:center; justify-content:center; padding:5vw;
    background:rgba(10,26,49,0.42); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    opacity:0; visibility:hidden; transition:opacity 0.4s ease, visibility 0s linear 0.4s;}
.contact-panel.open{opacity:1; visibility:visible; transition:opacity 0.4s ease, visibility 0s linear 0s;}
.contact-card{position:relative; background:var(--white); max-width:720px; width:100%;
    padding:4.5vh 4vw; box-shadow:0 40px 80px rgba(10,26,49,0.25);
    transform:translateY(16px); transition:transform 0.4s ease;}
.contact-panel.open .contact-card{transform:translateY(0);}
.contact-close{position:absolute; top:1.6rem; right:1.6rem; background:none; border:none; cursor:pointer;
    width:22px; height:22px;}
.contact-close::before, .contact-close::after{content:""; position:absolute; top:10px; left:0; width:22px; height:1px; background:var(--navy);}
.contact-close::before{transform:rotate(45deg);}
.contact-close::after{transform:rotate(-45deg);}
.contact-title{font-family:"Cormorant Garamond", serif; font-style:italic; font-weight:400;
    font-size:clamp(1.3rem, 2.4vw, 1.7rem); color:var(--navy); margin-bottom:0.8rem; padding-right:2rem;}
.contact-sub{font-weight:300; font-size:0.88rem; color:var(--grey-text); margin-bottom:3vh; line-height:1.7;}
.contact-split{display:grid; grid-template-columns:1fr 1px 1fr; gap:2.4rem;}
.contact-divider{background:rgba(14,42,77,0.1);}
.contact-option-label{font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold-text); margin-bottom:1.2rem;}
.contact-wa-btn{display:inline-block; width:100%; text-align:center; box-sizing:border-box;
    font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--white);
    background:var(--navy); text-decoration:none; padding:1rem 1.2rem; transition:opacity 0.3s ease;}
.contact-wa-btn:hover{opacity:0.85;}
.contact-wa-note{font-size:0.78rem; color:var(--grey-text); margin-top:1rem; line-height:1.6;}
.contact-form{display:flex; flex-direction:column; gap:0.9rem;}
.contact-form input{font-family:"Jost", sans-serif; font-size:0.85rem; color:var(--navy);
    border:none; border-bottom:1px solid rgba(14,42,77,0.2); padding:0.6rem 0.1rem;
    background:none; outline:none; transition:border-color 0.3s ease;}
.contact-form input:focus{border-color:var(--gold);}
.contact-form input::placeholder{color:rgba(14,42,77,0.4);}
.contact-form button{margin-top:0.6rem; font-family:"Jost", sans-serif; font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase;
    color:var(--navy); background:none; border:1px solid var(--navy); padding:0.85rem 1.2rem; cursor:pointer;
    transition:all 0.3s ease;}
.contact-form button:hover{background:var(--navy); color:var(--white);}
@media (max-width:700px){
  .contact-split{grid-template-columns:1fr; gap:3.5vh;}
  .contact-divider{display:none;}
}
.cookie-banner{position:fixed; left:0; right:0; bottom:0; z-index:90;
    background:var(--navy); border-top:2px solid rgba(199,162,92,0.3);
    padding:2rem 6vw; box-shadow:0 -12px 48px rgba(10,26,49,0.24);
    display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
    transform:translateY(120%); transition:transform 0.6s cubic-bezier(0.65,0,0.35,1);}
.cookie-banner.show{transform:translateY(0);}
.cookie-banner.hiding{transform:translateY(120%); transition:transform 0.5s cubic-bezier(0.65,0,0.35,1);}
.cookie-text{flex:1; min-width:260px;}
.cookie-text-title{font-size:0.78rem; font-weight:500; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--gold); margin-bottom:0.5rem;}
.cookie-text-body{font-size:0.82rem; line-height:1.7; color:rgba(252,252,250,0.78); font-weight:300;}
.cookie-text-body a{color:var(--gold); text-decoration:none; border-bottom:1px solid rgba(199,162,92,0.4);}
.cookie-text-body a:hover{border-bottom-color:var(--gold);}
.cookie-actions{display:flex; align-items:center; gap:0.8rem; flex-shrink:0; flex-wrap:wrap;}
.cookie-btn{font-family:"Jost", sans-serif; letter-spacing:0.1em; text-transform:uppercase;
    cursor:pointer; transition:all 0.3s ease; white-space:nowrap; border-radius:0;}
.cookie-btn-reject{font-size:0.66rem; padding:0.7rem 0.8rem; border:1px solid rgba(252,252,250,0.2);
    background:none; color:rgba(252,252,250,0.6);}
.cookie-btn-reject:hover{border-color:rgba(252,252,250,0.5); color:rgba(252,252,250,0.9);}
.cookie-btn-accept{font-size:0.72rem; font-weight:500; padding:0.9rem 2rem;
    border:1px solid var(--gold); background:var(--gold); color:var(--navy);}
.cookie-btn-accept:hover{opacity:0.88;}
@media (max-width:700px){
  .cookie-banner{flex-direction:column; align-items:stretch; padding:1.6rem 6vw;}
  .cookie-actions{width:100%; justify-content:space-between;}
  .cookie-btn-accept{flex:1; text-align:center;}
}
.site-footer{position:relative; background:var(--white); border-top:1px solid rgba(14,42,77,0.12);
    padding:9vh 8vw 0;}
.site-footer-top{max-width:1180px; margin:0 auto;
    display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:4vw;
    padding-bottom:7vh;}
.sf-brand-mark{font-family:"Cormorant Garamond", serif; font-weight:500;
    font-size:1.35rem; letter-spacing:0.16em; color:var(--navy); margin-bottom:0.7rem;}
.sf-brand-slogan{font-family:"Cormorant Garamond", serif; font-style:italic;
    font-size:0.95rem; color:var(--gold-text); margin-bottom:1.6rem;}
.sf-brand-note{font-weight:300; font-size:0.82rem; line-height:1.8; color:var(--grey-text); max-width:260px;}
.sf-col-title{font-size:0.62rem; letter-spacing:0.22em; text-transform:uppercase;
    color:var(--navy); opacity:0.5; margin-bottom:1.4rem;}
.sf-col a, .sf-col span{display:block; font-weight:300; font-size:0.86rem; line-height:1.4;
    color:var(--navy); opacity:0.8; text-decoration:none; margin-bottom:0.9rem;
    transition:opacity 0.25s ease, color 0.25s ease;}
.sf-col a:hover{opacity:1; color:var(--gold-text);}
.sf-col .sf-muted{font-size:0.78rem; color:var(--grey-text); opacity:0.75;}
.site-footer-bottom{max-width:1180px; margin:0 auto;
    border-top:1px solid rgba(14,42,77,0.1);
    padding:3vh 0 4vh;
    display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;}
.sf-legal-info{font-size:0.74rem; line-height:1.9; color:var(--grey-text); font-weight:300;}
.sf-legal-links{display:flex; gap:1.6rem; flex-wrap:wrap;}
.sf-legal-links a{font-size:0.74rem; color:var(--grey-text); text-decoration:none;
    border-bottom:1px solid rgba(199,162,92,0.5); padding-bottom:2px;
    transition:color 0.25s ease;}
.sf-legal-links a:hover{color:var(--navy);}
@media (max-width:900px){
  .site-footer-top{grid-template-columns:1fr 1fr; gap:5vh 4vw;}
}
@media (max-width:560px){
  .site-footer{padding:7vh 7vw 0;}
  .site-footer-top{grid-template-columns:1fr; gap:4.5vh;}
  .sf-brand-note{max-width:none;}
  .site-footer-bottom{flex-direction:column; align-items:flex-start; gap:1.4rem;}
}

/* ===== Acessibilidade ===== */
/* Ao pular para uma seção, o título não fica escondido atrás do menu fixo */
[id]{scroll-margin-top:96px}
/* Texto disponível só para leitores de tela */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.campo-extra{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Contorno visível para quem navega pelo teclado (não aparece no clique do mouse) */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible, summary:focus-visible{outline:2px solid #C7A25C;outline-offset:3px}
.contact-form input:focus-visible{outline:2px solid #C7A25C;outline-offset:2px}

/* Banner de cookies no celular: mais compacto, botões lado a lado.
   Enquanto visível, o script reserva o espaço dele no fim da página para não cobrir o conteúdo. */
@media (max-width:640px){
  .cookie-banner{padding:1rem 5vw 1.1rem;gap:.8rem}
  .cookie-text-title{margin-bottom:.3rem}
  .cookie-text-body{font-size:.76rem;line-height:1.55}
  .cookie-actions{width:100%;gap:.6rem}
  .cookie-btn{flex:1;text-align:center;padding:.8rem .6rem}
}

/* Quem pediu menos movimento no sistema não recebe animações nem transições */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .reveal{opacity:1!important;transform:none!important}
}

/* ===== Contraste mínimo de leitura (WCAG AA) · ajuste de 25/09/2026 =====
   Cada cor foi escurecida só o necessário para atingir o mínimo no fundo onde aparece,
   mantendo o mesmo tom. Cor anterior e contraste anterior → novo no comentário.
   Ficam de fora, de propósito: os números grandes de marca d'água do Hub (decoração, isenta pela WCAG)
   e os títulos "Em preparação" do Hub (tratados na fase 3). */
.article-meta .article-meta-item{color:#707478!important;opacity:1!important;}  /* #83878c 3.52:1 → 4.59:1 (mínimo 4.5:1) */
.cert-verify a{color:#84693a!important;}  /* #8a6d3d 4.30:1 → 4.59:1 (mínimo 4.5:1) */
.compare-table th{color:#84693a!important;}  /* #8a6d3d 4.30:1 → 4.59:1 (mínimo 4.5:1) */
.final-cta-inner .final-cta-tag{color:#a29068!important;opacity:1!important;}  /* #8f7e58 3.63:1 → 4.62:1 (mínimo 4.5:1) */
.how-meta .how-label{color:#657587!important;opacity:1!important;}  /* #79899b 3.49:1 → 4.60:1 (mínimo 4.5:1) */
.how-meta .how-number{color:#8d6e30!important;}  /* #dac293 1.69:1 → 4.64:1 (mínimo 4.5:1) */
.hub-card .hub-tag{color:#84693a!important;}  /* #8a6d3d 4.30:1 → 4.59:1 (mínimo 4.5:1) */
.hub-dest-content .hub-dest-cat{color:#a29068!important;}  /* #8f7e58 3.63:1 → 4.62:1 (mínimo 4.5:1) */
.hub-ec .hub-ec-cat{color:#876b3c!important;}  /* #8a6d3d 4.49:1 → 4.63:1 (mínimo 4.5:1) */
.hub-ec .hub-ec-soon-tag{color:#687483!important;}  /* #97a0ac 2.57:1 → 4.63:1 (mínimo 4.5:1) */
.hub-ed-left .hub-ed-tag{color:#876b3c!important;}  /* #8a6d3d 4.49:1 → 4.63:1 (mínimo 4.5:1) */
.hub-head .hub-eyebrow{color:#84693a!important;}  /* #8a6d3d 4.30:1 → 4.59:1 (mínimo 4.5:1) */
.hub-pub .hub-pub-soon-tag{color:#687483!important;}  /* #97a0ac 2.57:1 → 4.63:1 (mínimo 4.5:1) */
.js .cert-source{color:#687483!important;}  /* #97a0ac 2.57:1 → 4.63:1 (mínimo 4.5:1) */
.js .hub-section-label{color:#657586!important;}  /* #919eac 2.66:1 → 4.60:1 (mínimo 4.5:1) */
.js .rg-source{color:#687483!important;}  /* #97a0ac 2.57:1 → 4.63:1 (mínimo 4.5:1) */
.reframe-inner .old-q{color:#8593a5!important;}  /* #7a8a9d 4.08:1 → 4.61:1 (mínimo 4.5:1) */
.respiro .respiro-creci{color:#687483!important;}  /* #97a0ac 2.57:1 → 4.63:1 (mínimo 4.5:1) */
.reveal .sobre-metodo-num{color:#86682f!important;}  /* #d7be8e 1.60:1 → 4.62:1 (mínimo 4.5:1) */
.rg-regioes .rg-regioes-label{color:#84693a!important;}  /* #8a6d3d 4.30:1 → 4.59:1 (mínimo 4.5:1) */
.sf-col .sf-col-title{color:#657487!important;opacity:1!important;}  /* #8593a4 3.05:1 → 4.64:1 (mínimo 4.5:1) */
.sf-col .sf-muted{color:#707478!important;opacity:1!important;}  /* #83878c 3.52:1 → 4.59:1 (mínimo 4.5:1) */
.sobre-metodo .sobre-metodo-tag{color:#84693a!important;}  /* #8a6d3d 4.30:1 → 4.59:1 (mínimo 4.5:1) */
.svc-item-title-wrap .svc-item-flag{color:#84704f!important;opacity:1!important;}  /* #a18a63 3.23:1 → 4.63:1 (mínimo 4.5:1) */

/* ===== Acessibilidade (auditoria 01/10/2026) ===== */
/* F09 · texto de exemplo dos campos com contraste suficiente (antes ~2,35:1) */
.contact-panel .contact-form input::placeholder{color:#5A6067;opacity:1;}
/* F10 · área de toque de 44 px no menu e no fechar, sem mudar o desenho do ícone */
button.nav-toggle{box-sizing:content-box;padding:12px 9px;margin:-12px -9px;}
button.contact-close{box-sizing:content-box;padding:11px;margin:-11px;}
button.contact-close::before,button.contact-close::after{top:21px;left:11px;}
/* F11 · banner de cookies fechado sai do foco e da leitura por leitores de tela */
div.cookie-banner{visibility:hidden;transition:transform 0.6s cubic-bezier(0.65,0,0.35,1),visibility 0s linear 0.6s;}
div.cookie-banner.show{visibility:visible;transition:transform 0.6s cubic-bezier(0.65,0,0.35,1),visibility 0s;}
div.cookie-banner.show.hiding{transition:transform 0.5s cubic-bezier(0.65,0,0.35,1),visibility 0s linear 0.5s;}

/* ===== Seletor de idioma PT | EN (menu e menu do celular) =====
   O link do outro idioma tem área de toque de 44 px (a margem negativa mantém o desenho compacto). */
.nav-lang{display:flex;align-items:center;font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.1em;}
.nav-lang .lang-active{color:#0E2A4D;font-weight:500;}
.nav-lang .lang-sep{color:#5A6067;opacity:.5;margin:0 .15rem;}
.nav-lang .lang-inactive{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:0 -14px;color:#5A6067;text-decoration:none;transition:color .2s ease;}
.nav-lang .lang-inactive:hover,.nav-lang .lang-inactive:focus-visible{color:#0E2A4D;}
.mobile-menu .mobile-lang{display:flex;align-items:center;margin-top:.4rem;font-family:'Jost',sans-serif;font-style:normal;font-size:.8rem;letter-spacing:.1em;color:#5A6067;}
.mobile-menu .mobile-lang .lang-active{color:#0E2A4D;font-weight:500;}
.mobile-menu .mobile-lang .lang-sep{opacity:.5;margin:0 .2rem;}
.mobile-menu .mobile-lang .lang-inactive{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:0 -12px;font-family:'Jost',sans-serif;font-style:normal;font-size:.8rem;color:#5A6067;text-decoration:none;}
@media (max-width:1100px){ .nav-lang{display:none;} }
/* Indicação "(in Portuguese)" nas páginas em inglês */
.sf-lang-note{font-size:.8em;white-space:nowrap;}
.sf-col-title .sf-lang-note{text-transform:none;letter-spacing:.02em;}

/* Formulário (F08): telefone em três campos (DDI, DDD, número) e dica de "basta um contato" */
.contact-form .cf-tel{display:grid;grid-template-columns:3.4rem 3.6rem minmax(0,1fr);gap:.6rem;border:0;margin:0;padding:0;min-width:0;}
.contact-form .cf-tel input{width:100%;min-width:0;}
.contact-form .cf-dica{font-size:.72rem;line-height:1.5;color:#5A6067;margin:-.3rem 0 0;}
