/* =========================================================================
   Marca concursosgcm.com — camada de apresentação
   v1.0.0 · agosto de 2026

   Ordem do arquivo:
   1. Fontes (Montserrat auto-hospedada)
   2. Tokens
   3. Tipografia
   4. Proteção das fontes de ícone  <- não remova
   5. Cores e links
   6. Botões
   7. Selos de status
   8. Aviso legal e utilitários
   ========================================================================= */

/* 1 ------------------------------------------------------------ FONTES -- */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;
 src:url('../fonts/montserrat-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;
 src:url('../fonts/montserrat-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;
 src:url('../fonts/montserrat-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;
 src:url('../fonts/montserrat-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;
 src:url('../fonts/montserrat-latin-800-normal.woff2') format('woff2')}

/* 2 ------------------------------------------------------------ TOKENS -- */
:root{
  --cgcm-azul:#050831;
  --cgcm-amarelo:#EAC71C;
  --cgcm-amarelo-escuro:#C9A80F;
  --cgcm-amarelo-claro:#F6E37A;
  --cgcm-branco:#FFFFFF;
  --cgcm-preto:#000000;

  --cgcm-cinza-50:#F5F6F8;  --cgcm-cinza-100:#EDEFF3; --cgcm-cinza-200:#E1E4EB;
  --cgcm-cinza-300:#C9CDD8; --cgcm-cinza-500:#8A90A2; --cgcm-cinza-700:#5A6076;

  --cgcm-ok:#1E7A4B;      --cgcm-ok-bg:#EAF6EF;
  --cgcm-atencao:#8A5A00; --cgcm-atencao-bg:#FFF6E0;
  --cgcm-erro:#B3261E;    --cgcm-erro-bg:#FCEEED;

  --cgcm-fonte:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --cgcm-raio:10px;
}

/* 3 -------------------------------------------------------- TIPOGRAFIA -- */
body,
button, input, select, optgroup, textarea,
p, li, dd, dt, blockquote, figcaption, label, th, td, caption,
.elementor-widget-text-editor, .elementor-widget-heading .elementor-heading-title,
.woocommerce-Price-amount, .price, .tutor-course-name, .tutor-card,
.entry-content, .site-content{
  font-family: var(--cgcm-fonte);
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.woocommerce-loop-product__title, .product_title,
.tutor-course-name, .tutor-course-name a{
  font-family: var(--cgcm-fonte) !important;
  letter-spacing: -0.02em;
}

h1, .elementor-widget-heading h1.elementor-heading-title{ font-weight:800 !important; letter-spacing:-0.03em; line-height:1.1; }
h2, .elementor-widget-heading h2.elementor-heading-title{ font-weight:700 !important; line-height:1.15; }
h3, .elementor-widget-heading h3.elementor-heading-title{ font-weight:600 !important; line-height:1.25; }
h4, h5, h6{ font-weight:600 !important; }

/* Caixa alta só em etiqueta e botão pequeno — nunca em título longo. */
h1, h2, h3{ text-transform:none !important; }

/* 4 ------------------------------------- PROTEÇÃO DAS FONTES DE ÍCONE ----
   Os blocos acima forçam Montserrat. Estas regras devevolvem a fonte
   correta aos conjuntos de ícones. NÃO REMOVER: sem elas os ícones do
   Elementor, do Tutor LMS, do WooCommerce e do Font Awesome viram letras.
   ------------------------------------------------------------------------ */
.fa,.fas,.fa-solid,.far,.fa-regular,.fal,
[class^="fa-"],[class*=" fa-"]{ font-family:"Font Awesome 5 Free","Font Awesome 6 Free",FontAwesome !important; }
.fas,.fa-solid{ font-weight:900 !important; }
.far,.fa-regular{ font-weight:400 !important; }
.fab,.fa-brands,
[class^="fa-"].fab,[class*=" fa-"].fab{ font-family:"Font Awesome 5 Brands","Font Awesome 6 Brands" !important; font-weight:400 !important; }

.eicon,[class^="eicon-"],[class*=" eicon-"]{ font-family:eicons !important; }
[class^="tutor-icon"],[class*=" tutor-icon"]{ font-family:tutor !important; }
.dashicons,.dashicons-before::before,[class^="dashicons-"]{ font-family:dashicons !important; }
.star-rating,.star-rating span,.comment-form-rating .stars a,
.woocommerce .star-rating::before{ font-family:star !important; }
.woocommerce ul.products li.product .button::before,
.woocommerce div.product form.cart .button::before,
.woocommerce-message::before,.woocommerce-error::before,.woocommerce-info::before{ font-family:WooCommerce !important; }
.lg-icon,[class^="lg-"]{ font-family:lg !important; }

/* 5 -------------------------------------------------------- CORES/LINKS -- */
a{ color:var(--cgcm-azul); text-underline-offset:3px; }
a:hover{ color:var(--cgcm-amarelo-escuro); }

/* Fundos escuros: o link volta a ser amarelo para manter contraste. */
.cgcm-dark a, [data-cgcm-tema="escuro"] a,
footer a:not(.cgcm-btn):not(.elementor-button){ color:var(--cgcm-amarelo); }

::selection{ background:var(--cgcm-amarelo); color:var(--cgcm-azul); }

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
  outline:3px solid var(--cgcm-amarelo);
  outline-offset:2px;
  border-radius:4px;
}

/* 6 ------------------------------------------------------------ BOTÕES -- */
.elementor-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt,
.woocommerce button.button.alt, .woocommerce input.button.alt,
button.single_add_to_cart_button,
.tutor-btn.tutor-btn-primary, .tutor-btn-primary,
.wp-block-button__link, .cgcm-btn{
  font-family: var(--cgcm-fonte) !important;
  font-weight:700 !important;
  background-color: var(--cgcm-amarelo) !important;
  color: var(--cgcm-azul) !important;
  border-color: var(--cgcm-amarelo) !important;
  border-radius: var(--cgcm-raio) !important;
  text-transform:none !important;
  letter-spacing:0.01em;
  min-height:44px;                 /* área de toque no celular */
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  transition:background-color .16s ease, color .16s ease;
}
.elementor-button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover, button.single_add_to_cart_button:hover,
.tutor-btn.tutor-btn-primary:hover, .cgcm-btn:hover{
  background-color: var(--cgcm-amarelo-escuro) !important;
  color: var(--cgcm-azul) !important;
}

/* Secundário: contorno. Aplique a classe no botão do Elementor. */
.cgcm-btn-secundario, .elementor-button.cgcm-btn-secundario{
  background-color: transparent !important;
  color: var(--cgcm-azul) !important;
  border:2px solid var(--cgcm-azul) !important;
}
.cgcm-dark .cgcm-btn-secundario, .elementor-button.cgcm-btn-secundario.cgcm-claro{
  color: var(--cgcm-branco) !important;
  border-color: rgba(255,255,255,.55) !important;
}
.cgcm-btn-secundario:hover{
  background-color: var(--cgcm-azul) !important;
  color: var(--cgcm-branco) !important;
}

/* Botão desabilitado */
.woocommerce a.button.disabled, .woocommerce button.button:disabled,
.cgcm-btn[disabled]{
  background-color: var(--cgcm-cinza-200) !important;
  color: var(--cgcm-cinza-500) !important;
  border-color: var(--cgcm-cinza-200) !important;
}

/* 7 --------------------------------------------------- SELOS DE STATUS -- */
.cgcm-status{
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 14px; border-radius:999px;
  font-family:var(--cgcm-fonte); font-size:12px; font-weight:700;
  line-height:1; letter-spacing:.01em; white-space:nowrap;
}
.cgcm-status::before{
  content:""; width:8px; height:8px; border-radius:50%;
  background:currentColor; flex:none; opacity:.85;
}
.cgcm-status--previsao   { background:var(--cgcm-cinza-100);   color:var(--cgcm-cinza-700); }
.cgcm-status--autorizado,
.cgcm-status--comissao   { background:#EAF0FF;                 color:#26417E; }
.cgcm-status--banca      { background:var(--cgcm-atencao-bg);  color:var(--cgcm-atencao); }
.cgcm-status--edital     { background:var(--cgcm-amarelo);     color:var(--cgcm-azul); }
.cgcm-status--retificacao{ background:var(--cgcm-erro-bg);     color:var(--cgcm-erro); }
.cgcm-status--prova      { background:var(--cgcm-ok-bg);       color:var(--cgcm-ok); }

.cgcm-fonte-data{
  display:block; margin-top:8px; padding-left:10px;
  border-left:3px solid var(--cgcm-amarelo);
  font-family:var(--cgcm-fonte); font-size:12px; line-height:1.5;
  color:var(--cgcm-cinza-700);
}
.cgcm-dark .cgcm-fonte-data, footer .cgcm-fonte-data{ color:rgba(255,255,255,.7); }

/* 8 -------------------------------------------- AVISO LEGAL E UTILITÁRIOS */
.cgcm-aviso-legal{
  font-family:var(--cgcm-fonte); font-size:12.5px; line-height:1.6;
  color:var(--cgcm-cinza-700);
}
.cgcm-aviso-legal p{ margin:0 0 8px; }
footer .cgcm-aviso-legal, .cgcm-dark .cgcm-aviso-legal{ color:rgba(255,255,255,.6); }
footer .cgcm-aviso-legal strong, .cgcm-dark .cgcm-aviso-legal strong{ color:rgba(255,255,255,.85); }

.cgcm-icone{ vertical-align:middle; fill:none; stroke:currentColor;
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

.cgcm-filete{ height:4px; width:56px; background:var(--cgcm-amarelo);
  border-radius:2px; margin:0 0 16px; }

.cgcm-destaque{ background:var(--cgcm-amarelo); color:var(--cgcm-azul);
  padding:0 .35em; border-radius:6px; }
.cgcm-dark .cgcm-destaque{ background:transparent; color:var(--cgcm-amarelo); padding:0; }

/* Acessibilidade: respeita quem pediu menos movimento. */
@media (prefers-reduced-motion: reduce){
  .elementor-invisible{ opacity:1 !important; animation:none !important; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

@media print{
  .cgcm-status{ border:1px solid #000; }
}
