/* GIFO global institutional system v1
   Aplica a linguagem institucional da homepage às páginas públicas.
   VigiForensic e GIFO Editorial mantêm variantes próprias. */
@font-face{font-family:'Archivo';src:url(/fonts/archivo-400.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Archivo';src:url(/fonts/archivo-600.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Archivo';src:url(/fonts/archivo-700.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Playfair Display';src:url(/fonts/playfair-400.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Playfair Display';src:url(/fonts/playfair-600.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Playfair Display';src:url(/fonts/playfair-700.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}

html.gifo-public:not(.page-index){
  --inst-bg:#0a0b0e;
  --inst-bg-soft:#0f1116;
  --inst-bg-raised:#12151b;
  --inst-blue:#315f9f;
  --inst-blue-hover:#3b6eae;
  --inst-accent:#93acd0;
  --inst-accent-soft:#9bb0cd;
  --inst-text:#f0f4ff;
  --inst-muted:rgba(240,244,255,.66);
  --inst-muted-2:rgba(240,244,255,.62);
  --inst-rule:rgba(240,244,255,.12);
  --inst-rule-soft:rgba(240,244,255,.075);
  color-scheme:dark;
  background:var(--inst-bg);
}
html.gifo-public:not(.page-index) body{background:var(--inst-bg)!important;color:var(--inst-text);font-family:'Archivo',sans-serif!important;line-height:1.68;text-rendering:optimizeLegibility}
html.gifo-public:not(.page-index) .progress-bar{background:var(--inst-accent)!important;height:2px!important}
html.gifo-public:not(.page-index) .classif-bar,
html.gifo-public:not(.page-index) .classif{background:#18243a!important;color:rgba(240,244,255,.86)!important;font-family:'Archivo',sans-serif!important;font-size:9px!important;font-weight:600;letter-spacing:1.45px!important;min-height:25px;padding:5px 14px!important}
html.gifo-public:not(.page-index) .classif-bar::before,
html.gifo-public:not(.page-index) .classif-bar::after{opacity:.25}

/* Navegação partilhada e variantes antigas */
html.gifo-public:not(.page-index) nav,
html.gifo-public:not(.page-index) .nav,
html.gifo-public:not(.page-index) .site-header{background:rgba(10,11,14,.96)!important;border-bottom:1px solid var(--inst-rule-soft)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
html.gifo-public:not(.page-index) .nav-inner,
html.gifo-public:not(.page-index) .nav-in{min-height:58px!important;height:auto!important}
html.gifo-public:not(.page-index) .nav-links a,
html.gifo-public:not(.page-index) .links a,
html.gifo-public:not(.page-index) .desktop-nav a{color:rgba(240,244,255,.64)!important;font-family:'Archivo',sans-serif!important;font-size:.8rem!important;font-weight:500}
html.gifo-public:not(.page-index) .nav-links a:hover,
html.gifo-public:not(.page-index) .nav-links a.active,
html.gifo-public:not(.page-index) .links a:hover,
html.gifo-public:not(.page-index) .links a.active,
html.gifo-public:not(.page-index) .desktop-nav a:hover,
html.gifo-public:not(.page-index) .desktop-nav a.active{color:#fff!important;background:rgba(255,255,255,.045)!important}
html.gifo-public:not(.page-index) .nav-cta,
html.gifo-public:not(.page-index) .nav-contact{background:var(--inst-blue)!important;color:#fff!important;border-color:var(--inst-blue)!important}
html.gifo-public:not(.page-index) .nav-cta:hover,
html.gifo-public:not(.page-index) .nav-contact:hover{background:var(--inst-blue-hover)!important}
html.gifo-public:not(.page-index) .nav-hamburger,
html.gifo-public:not(.page-index) .hamb,
html.gifo-public:not(.page-index) .menu-button,
html.gifo-public:not(.page-index) .mobile-close,
html.gifo-public:not(.page-index) .close,
html.gifo-public:not(.page-index) .menu-close{border:1px solid var(--inst-rule)!important;background:transparent!important;color:#fff!important;border-radius:0!important}

/* Tipografia e hierarquia */
html.gifo-public:not(.page-index):not(.page-vigiforensic) main h1,
html.gifo-public:not(.page-index):not(.page-vigiforensic) main h2,
html.gifo-public:not(.page-index):not(.page-vigiforensic) .hero h1,
html.gifo-public:not(.page-index):not(.page-vigiforensic) .page-hero h1{font-family:'Playfair Display',serif!important;font-weight:600!important;letter-spacing:-.018em!important;text-wrap:balance;overflow-wrap:normal!important}
html.gifo-public:not(.page-index) main h1{font-size:clamp(2.15rem,6.2vw,4rem)!important;line-height:1.03!important;max-width:18ch}
html.gifo-public:not(.page-index) main h2{font-size:clamp(1.65rem,4.1vw,2.65rem)!important;line-height:1.1!important}
html.gifo-public:not(.page-index) main h3{font-family:'Archivo',sans-serif;font-weight:650;line-height:1.28}
html.gifo-public:not(.page-index) main p,
html.gifo-public:not(.page-index) main li{color:var(--inst-muted);line-height:1.75}
html.gifo-public:not(.page-index) .kicker,
html.gifo-public:not(.page-index) .label,
html.gifo-public:not(.page-index) .section-label,
html.gifo-public:not(.page-index) .gifo-kicker,
html.gifo-public:not(.page-index) [class*="eyebrow"]{font-family:'Archivo',sans-serif!important;color:rgba(240,244,255,.66)!important;font-size:.67rem!important;font-weight:650!important;letter-spacing:1.25px!important;text-transform:uppercase}
html.gifo-public:not(.page-index) .section-label::before,
html.gifo-public:not(.page-index) .gifo-kicker::before{background:var(--inst-accent)!important;opacity:.72}
html.gifo-public:not(.page-index) .section-desc,
html.gifo-public:not(.page-index) .intro,
html.gifo-public:not(.page-index) [class*="lead"]{color:var(--inst-muted)!important;line-height:1.78!important}

/* Heróis e secções */
html.gifo-public:not(.page-index) .hero,
html.gifo-public:not(.page-index) .page-hero,
html.gifo-public:not(.page-index) .library-hero,
html.gifo-public:not(.page-index) [class$="-hero"]{background:radial-gradient(ellipse 48% 58% at 84% 24%,rgba(113,143,184,.09),transparent 72%),linear-gradient(180deg,#0b0c0f,var(--inst-bg))!important;border-bottom:1px solid var(--inst-rule-soft)!important;position:relative;overflow:hidden}
html.gifo-public:not(.page-index) .hero,
html.gifo-public:not(.page-index) .page-hero{padding-top:clamp(52px,7vw,80px)!important;padding-bottom:clamp(48px,6vw,72px)!important}
html.gifo-public:not(.page-index) .section,
html.gifo-public:not(.page-index) .section-pad,
html.gifo-public:not(.page-index) [class$="-section"]{padding-top:clamp(46px,6vw,68px)!important;padding-bottom:clamp(46px,6vw,68px)!important}
html.gifo-public:not(.page-index) .section.alt,
html.gifo-public:not(.page-index) [class$="-section"].alt{background:var(--inst-bg-soft)!important}
html.gifo-public:not(.page-index) .container{width:min(100%,1180px)!important;padding-left:clamp(20px,4vw,34px)!important;padding-right:clamp(20px,4vw,34px)!important;margin-inline:auto}

/* Ações */
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .btn-primary,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) button[type="submit"]{background:var(--inst-blue)!important;border-color:var(--inst-blue)!important;color:#fff!important;box-shadow:none!important}
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .btn-primary:hover,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) button[type="submit"]:hover{background:var(--inst-blue-hover)!important;color:#fff!important}
html.gifo-public:not(.page-index) .btn-primary,
html.gifo-public:not(.page-index) .btn-outline,
html.gifo-public:not(.page-index) .btn{min-height:44px;padding:11px 20px!important;border-radius:0!important;font-family:'Archivo',sans-serif!important;font-size:.84rem;font-weight:650}
html.gifo-public:not(.page-index) .btn-outline{background:transparent!important;border:1px solid var(--inst-rule)!important;color:rgba(240,244,255,.76)!important}
html.gifo-public:not(.page-index) .btn-outline:hover{border-color:var(--inst-accent)!important;color:#fff!important}
html.gifo-public:not(.page-index) .card-link,
html.gifo-public:not(.page-index) .gifo-text-link,
html.gifo-public:not(.page-index) [class*="text-link"]{font-family:'Archivo',sans-serif!important;color:var(--inst-accent-soft)!important;font-weight:650!important;letter-spacing:0!important}

/* Cartões e estruturas documentais */
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .card,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .gifo-card,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .audience-card,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .solution-card,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .deliverable,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .case-card,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .price-card,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .team-hero-card,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .profile-card,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .feature-case-main,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .feature-case-link{background:transparent!important;border:1px solid var(--inst-rule)!important;border-radius:0!important;box-shadow:none!important;transform:none!important}
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .card:hover,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .gifo-card:hover,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .audience-card:hover,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .solution-card:hover,
html.gifo-public:not(.page-index):not(.page-editorial):not(.page-vigiforensic) .case-card:hover{background:rgba(255,255,255,.018)!important;border-color:rgba(113,143,184,.36)!important}
html.gifo-public:not(.page-index) .card .no,
html.gifo-public:not(.page-index) .step b,
html.gifo-public:not(.page-index) .workflow-step b{font-family:'Archivo',sans-serif!important;color:rgba(233,240,252,.64)!important;font-weight:650!important;letter-spacing:.06em!important}
html.gifo-public:not(.page-index) .workflow,
html.gifo-public:not(.page-index) .workflow-strip,
html.gifo-public:not(.page-index) .steps-row{background:transparent!important;border-top:1px solid var(--inst-rule)!important;border-bottom:1px solid var(--inst-rule)!important;gap:0!important}
html.gifo-public:not(.page-index) .step,
html.gifo-public:not(.page-index) .workflow-step,
html.gifo-public:not(.page-index) .step-item{background:transparent!important;border:0!important;border-right:1px solid var(--inst-rule)!important}
html.gifo-public:not(.page-index) .step:last-child,
html.gifo-public:not(.page-index) .workflow-step:last-child,
html.gifo-public:not(.page-index) .step-item:last-child{border-right:0!important}
html.gifo-public:not(.page-index) .card li::before,
html.gifo-public:not(.page-index) .price-list li::before{color:var(--inst-accent)!important}
html.gifo-public:not(.page-index) .card-result,
html.gifo-public:not(.page-index) .solution-output,
html.gifo-public:not(.page-index) .price-eyebrow{font-family:'Archivo',sans-serif!important;color:var(--inst-accent-soft)!important;letter-spacing:0!important}

/* Formulários, pesquisa e contacto */
html.gifo-public:not(.page-index) input:not([type="checkbox"]):not([type="radio"]),
html.gifo-public:not(.page-index) select,
html.gifo-public:not(.page-index) textarea{background:rgba(255,255,255,.025)!important;border:1px solid var(--inst-rule)!important;border-radius:0!important;color:#f0f4ff!important;font-family:'Archivo',sans-serif!important;min-height:46px}
html.gifo-public:not(.page-index) input:focus,
html.gifo-public:not(.page-index) select:focus,
html.gifo-public:not(.page-index) textarea:focus{border-color:var(--inst-accent)!important;box-shadow:0 0 0 3px rgba(113,143,184,.1)!important;outline:0}
html.gifo-public:not(.page-index) label{font-family:'Archivo',sans-serif!important;color:rgba(240,244,255,.62)!important;font-weight:600}
html.gifo-public:not(.page-index) form,
html.gifo-public:not(.page-index) .contact-card,
html.gifo-public:not(.page-index) .access-form-v2{border-radius:0!important}

/* FAQ, documentos, tabelas e conteúdo longo */
html.gifo-public:not(.page-index) details{border-radius:0!important}
html.gifo-public:not(.page-index) .faq-accordion{gap:0!important;border-top:1px solid var(--inst-rule)}
html.gifo-public:not(.page-index) .faq-accordion details{background:transparent!important;border:0!important;border-bottom:1px solid var(--inst-rule)!important}
html.gifo-public:not(.page-index) .faq-accordion summary{min-height:52px;padding:13px 2px!important;font-family:'Archivo',sans-serif!important}
html.gifo-public:not(.page-index) .faq-accordion summary::after{color:rgba(233,240,252,.64)!important;font-family:'Archivo',sans-serif!important}
html.gifo-public:not(.page-index) table{border-collapse:collapse;width:100%;background:transparent!important}
html.gifo-public:not(.page-index) th{font-family:'Archivo',sans-serif!important;color:rgba(240,244,255,.72)!important;background:rgba(255,255,255,.025)!important}
html.gifo-public:not(.page-index) th,
html.gifo-public:not(.page-index) td{border:1px solid var(--inst-rule)!important;padding:12px 14px!important}
html.gifo-public:not(.page-index) main article,
html.gifo-public:not(.page-index) .legal-content,
html.gifo-public:not(.page-index) .article-content,
html.gifo-public:not(.page-index) .case-content{max-width:860px}
html.gifo-public:not(.page-index) main article h2,
html.gifo-public:not(.page-index) .legal-content h2,
html.gifo-public:not(.page-index) .article-content h2{margin-top:1.5em}
html.gifo-public:not(.page-index) blockquote,
html.gifo-public:not(.page-index) .gifo-note,
html.gifo-public:not(.page-index) .note{background:rgba(113,143,184,.055)!important;border-left:2px solid var(--inst-accent)!important;color:var(--inst-muted)!important}

/* Páginas de serviços que usam a estrutura autónoma antiga */
html.gifo-public:not(.page-index) .nav-in{width:min(100%,1180px)!important;padding-inline:clamp(20px,4vw,34px)!important}
html.gifo-public:not(.page-index) .hero-actions{gap:10px!important;margin-top:24px!important}
html.gifo-public:not(.page-index) .grid{gap:10px!important}
html.gifo-public:not(.page-index) .cta{background:var(--inst-bg-soft)!important;border-top:1px solid var(--inst-rule-soft)!important}
html.gifo-public:not(.page-index) .point,
html.gifo-public:not(.page-index) .operation-row,
html.gifo-public:not(.page-index) .sector-tool,
html.gifo-public:not(.page-index) .core-cap{background:transparent!important;border:1px solid var(--inst-rule)!important}

/* VigiForensic pública: identidade tecnológica confinada */
html.page-vigiforensic{--tech:#00d7c0;--tech-blue:#1a6eff}
html.page-vigiforensic main h1,
html.page-vigiforensic main h2{font-family:'Archivo',sans-serif!important;font-weight:700!important;letter-spacing:-.025em!important}
html.page-vigiforensic .vigi-hero-v2,
html.page-vigiforensic .hero{background:radial-gradient(ellipse 58% 62% at 82% 20%,rgba(0,215,192,.09),transparent 72%),#0a0d12!important;border-bottom-color:rgba(0,215,192,.15)!important}
html.page-vigiforensic .section-label,
html.page-vigiforensic .kicker,
html.page-vigiforensic [class*="eyebrow"]{font-family:'Space Mono',monospace!important;color:rgba(0,215,192,.74)!important}
html.page-vigiforensic .section-label::before{background:var(--tech)!important}
html.page-vigiforensic .btn-primary{background:var(--tech-blue)!important;border-color:var(--tech-blue)!important}
html.page-vigiforensic .vigi-app-preview,
html.page-vigiforensic .sector-panel,
html.page-vigiforensic .core-cap{border-color:rgba(0,215,192,.17)!important}

/* GIFO Editorial: mesma grelha, identidade dourada preservada */
html.page-editorial{--editorial-gold:#b88a3d;--editorial-ink:#0d0b08}
html.page-editorial body{background:#0d0b08!important;color:#f0ede8!important}
html.page-editorial .classif-bar{background:#2a2114!important}
html.page-editorial .site-header,
html.page-editorial nav{background:rgba(13,11,8,.96)!important}
html.page-editorial main h1,
html.page-editorial main h2{font-family:'Playfair Display',serif!important;color:#f0ede8!important}
html.page-editorial .section-label,
html.page-editorial [class*="kicker"]{color:rgba(184,138,61,.9)!important}
html.page-editorial .section-label::before{background:var(--editorial-gold)!important}
html.page-editorial .btn-primary{background:var(--editorial-gold)!important;border-color:var(--editorial-gold)!important;color:#0d0b08!important}
html.page-editorial .btn-outline{border-color:rgba(184,138,61,.28)!important;color:rgba(240,237,232,.72)!important}
html.page-editorial .library-card,
html.page-editorial .catalogue-feature,
html.page-editorial .editorial-cta{border-radius:0!important;box-shadow:none!important;border-color:rgba(184,138,61,.17)!important}
html.page-editorial .editorial-nav{border-top:1px solid rgba(184,138,61,.1)!important;border-bottom:1px solid rgba(184,138,61,.14)!important;background:#100d09!important}

/* Podcast: institucional, com detalhe editorial discreto */
html.page-podcast .podcast-hero,
html.page-podcast .hero{background:radial-gradient(ellipse 48% 55% at 84% 20%,rgba(113,143,184,.09),transparent 72%),#0a0b0e!important}
html.page-podcast .episode-card,
html.page-podcast .podcast-card{border:1px solid var(--inst-rule)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}

/* Rodapé e botão de topo */
html.gifo-public:not(.page-index) .site-footer{background:#06070a!important;border-top:1px solid var(--inst-rule-soft)!important}
html.gifo-public:not(.page-index) #back-to-top,
html.gifo-public:not(.page-index) .back-to-top{width:38px!important;height:38px!important;border:1px solid rgba(240,244,255,.2)!important;border-radius:50%!important;background:rgba(10,11,14,.88)!important;color:rgba(240,244,255,.68)!important;box-shadow:0 5px 16px rgba(0,0,0,.25)!important}

@media(max-width:767px){
  html.gifo-public:not(.page-index) main h1{font-size:clamp(2rem,10vw,2.85rem)!important;line-height:1.02!important}
  html.gifo-public:not(.page-index) main h2{font-size:clamp(1.55rem,8vw,2.25rem)!important}
  html.gifo-public:not(.page-index) .hero,
  html.gifo-public:not(.page-index) .page-hero{padding-top:44px!important;padding-bottom:44px!important}
  html.gifo-public:not(.page-index) .section,
  html.gifo-public:not(.page-index) .section-pad,
  html.gifo-public:not(.page-index) [class$="-section"]{padding-top:42px!important;padding-bottom:42px!important}
  html.gifo-public:not(.page-index) .grid,
  html.gifo-public:not(.page-index) .gifo-grid,
  html.gifo-public:not(.page-index) .audience-grid,
  html.gifo-public:not(.page-index) .solution-matrix,
  html.gifo-public:not(.page-index) .deliverable-grid,
  html.gifo-public:not(.page-index) .pricing-cards,
  html.gifo-public:not(.page-index) .card-grid{grid-template-columns:1fr!important}
  html.gifo-public:not(.page-index) .card,
  html.gifo-public:not(.page-index) .gifo-card,
  html.gifo-public:not(.page-index) .audience-card,
  html.gifo-public:not(.page-index) .solution-card,
  html.gifo-public:not(.page-index) .price-card{padding:20px!important}
  html.gifo-public:not(.page-index) .workflow,
  html.gifo-public:not(.page-index) .workflow-strip,
  html.gifo-public:not(.page-index) .steps-row{grid-template-columns:1fr!important}
  html.gifo-public:not(.page-index) .step,
  html.gifo-public:not(.page-index) .workflow-step,
  html.gifo-public:not(.page-index) .step-item{border-right:0!important;border-bottom:1px solid var(--inst-rule)!important;padding:18px 0!important}
  html.gifo-public:not(.page-index) .step:last-child,
  html.gifo-public:not(.page-index) .workflow-step:last-child,
  html.gifo-public:not(.page-index) .step-item:last-child{border-bottom:0!important}
  html.gifo-public:not(.page-index) .hero-actions,
  html.gifo-public:not(.page-index) .mobile-actions{grid-template-columns:1fr!important}
  html.gifo-public:not(.page-index) .hero-actions .btn-primary,
  html.gifo-public:not(.page-index) .hero-actions .btn-outline{width:100%!important}
  html.gifo-public:not(.page-index) th,
  html.gifo-public:not(.page-index) td{padding:10px!important;font-size:.76rem}
}

@media(prefers-reduced-motion:reduce){
  html.gifo-public:not(.page-index) *,html.gifo-public:not(.page-index) *::before,html.gifo-public:not(.page-index) *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
