/* =====================================================================
   ASPERQD — camada de compatibilidade com o Elementor

   O sistema visual está em theme.css. Aqui só traduzimos aquele visual
   para a estrutura de HTML que o Elementor gera, através de classes que
   o cliente aplica em "Avançado → Classes CSS" de cada elemento.

   Todas as classes começam com `asp-` para não conflitar com nada.
   ===================================================================== */

/* ------------------------------------------------- ajustes de base */

/* As seções do Elementor usam a mesma medida do `.shell` do tema:
   no máximo 1280px, sempre com a margem lateral (gutter) preservada.
   Sem isto, a largura fixa do contêiner estoura a tela no celular. */
.asp-elementor .e-con,
.asp-elementor .elementor-section{
  --container-max-width: 1280px;
}
.asp-elementor .e-con.e-con-boxed{
  padding-inline: var(--gutter);
}
.asp-elementor .e-con.e-con-boxed > .e-con-inner{
  max-width: min(1280px, 100%);
}
/* contêineres internos (linhas e colunas) não repetem a margem lateral */
.asp-elementor .e-con.e-con-full{
  padding-inline: 0;
}
.asp-elementor .e-con,
.asp-elementor .e-con > .e-con-inner{
  max-width: 100%;
}

/* Dentro do editor, nenhuma animação de entrada esconde conteúdo. */
.elementor-editor-active .rv,
body.elementor-editor-active .js .rv{
  opacity:1 !important;
  transform:none !important;
}

/* Imagens do Elementor herdam o comportamento do tema. */
.asp-elementor .elementor-widget-image img{ display:block; }

/* ------------------------------------------------- seções */

.asp-sec{ padding-block:clamp(4.5rem,10vw,8.5rem); position:relative; }
.asp-sec--tight{ padding-block:clamp(3rem,6vw,5rem); }
.asp-sec--sand{ background:var(--sand); }
.asp-sec--ink{ background:var(--ink); }
.asp-sec--paper{ background:var(--paper); }

/* seção de destaque com o brilho amarelo do original */
.asp-sec--spot{ background:var(--ink); overflow:hidden; }
.asp-sec--spot::before{
  content:""; position:absolute; top:-20%; right:-10%; width:52vw; height:52vw;
  background:radial-gradient(circle, rgba(224,161,27,.16), transparent 62%);
  pointer-events:none; z-index:0;
}
.asp-sec--spot > .e-con-inner,
.asp-sec--spot > .elementor-container{ position:relative; z-index:1; }

/* texto claro sobre fundo escuro */
.asp-inv,
.asp-sec--ink,
.asp-sec--spot{ color:var(--paper); }
.asp-sec--ink :is(h1,h2,h3,h4),
.asp-sec--spot :is(h1,h2,h3,h4),
.asp-inv :is(h1,h2,h3,h4){ color:var(--paper); }
.asp-sec--ink .elementor-widget-text-editor,
.asp-sec--spot .elementor-widget-text-editor,
.asp-inv .elementor-widget-text-editor{ color:rgba(251,247,240,.84); }

/* ------------------------------------------------- topo de página interna */

.asp-phead{
  background:var(--ink); color:var(--paper); position:relative; overflow:hidden;
  padding-block:clamp(3rem,7vw,5.5rem) clamp(2.5rem,5vw,4rem);
}
.asp-phead::after{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(90deg,rgba(20,17,15,.92),rgba(20,17,15,.62));
}
.asp-phead > .e-con-inner,
.asp-phead > .elementor-container{ position:relative; z-index:1; }
.asp-phead :is(h1,h2,h3){ color:var(--paper); }

/* hero da home */
.asp-hero{
  background:var(--ink); color:var(--paper); position:relative; overflow:hidden;
  padding-block:clamp(4rem,11vh,7.5rem) clamp(3rem,7vh,5rem);
}
.asp-hero::after{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(100deg, rgba(20,17,15,.94) 0%, rgba(20,17,15,.8) 42%, rgba(20,17,15,.35) 100%);
}
.asp-hero > .e-con-inner,
.asp-hero > .elementor-container{ position:relative; z-index:1; }
.asp-hero h1{ font-size:clamp(2.2rem,5.4vw,4.3rem); letter-spacing:-.02em; max-width:18ch; color:var(--paper); }
.asp-hero h1 em{ font-style:normal; color:var(--yellow); }

/* ------------------------------------------------- tipografia */

/* Título de apoio em versalete, com o traço vermelho antes. */
.asp-eyebrow .elementor-heading-title,
.asp-eyebrow p{
  font-family:var(--sans); font-size:.7rem; font-weight:650;
  letter-spacing:.22em; text-transform:uppercase; color:var(--red);
  display:flex; align-items:center; gap:.65rem; line-height:1.4;
}
.asp-eyebrow .elementor-heading-title::before,
.asp-eyebrow p::before{ content:""; width:1.6rem; height:2px; background:currentColor; flex:none; }
.asp-eyebrow--inv .elementor-heading-title,
.asp-eyebrow--inv p{ color:var(--yellow); }

/* Texto de abertura, maior que o corpo. */
.asp-lede,
.asp-lede p{
  font-size:clamp(1.05rem,1rem + .4vw,1.3rem);
  line-height:1.6; color:var(--ink-2);
}
.asp-sec--ink .asp-lede, .asp-sec--ink .asp-lede p,
.asp-sec--spot .asp-lede, .asp-sec--spot .asp-lede p,
.asp-phead .asp-lede, .asp-phead .asp-lede p,
.asp-hero .asp-lede, .asp-hero .asp-lede p,
.asp-inv .asp-lede, .asp-inv .asp-lede p{ color:rgba(251,247,240,.84); }

/* Frase de destaque em itálico amarelo (usada na seção da ATI). */
.asp-destaque p,
.asp-destaque .elementor-heading-title{
  color:var(--yellow); font-style:italic; font-weight:500;
  font-size:clamp(1.05rem,1rem + .4vw,1.3rem); line-height:1.5;
}

/* Número grande e vazado das seções. */
.asp-secnum .elementor-heading-title{
  font-size:clamp(3.5rem,9vw,7rem); line-height:.8; font-weight:600;
  letter-spacing:-.04em; color:transparent;
  -webkit-text-stroke:1.5px var(--sand-2); user-select:none;
}
.asp-secnum--inv .elementor-heading-title{ -webkit-text-stroke-color:rgba(251,247,240,.28); }

/* Título de seção com a mesma medida do original. */
.asp-h2 .elementor-heading-title{ font-size:clamp(1.8rem,3.8vw,2.9rem); max-width:24ch; }
.asp-h2--largo .elementor-heading-title{ max-width:none; }

/* Corpo de texto em coluna legível. */
.asp-prose{ max-width:74ch; }
.asp-prose p{ font-size:1.06rem; line-height:1.78; color:var(--ink-2); }
.asp-sec--ink .asp-prose p,
.asp-sec--spot .asp-prose p,
.asp-inv .asp-prose p{ color:rgba(251,247,240,.82); }

/* Capitular. */
.asp-dropcap p:first-of-type::first-letter{
  font-size:3.3rem; line-height:.85; font-weight:700;
  float:left; margin:.12em .12em 0 0; color:var(--red);
}

/* Citação com barra amarela. */
.asp-quote,
.asp-quote p{
  font-family:var(--serif) !important;
  font-style:italic; font-weight:500 !important;
  font-size:clamp(1.05rem,1rem + .45vw,1.35rem); line-height:1.55 !important;
}
.asp-quote{ border-left:4px solid var(--yellow); padding:.4rem 0 .4rem 1.6rem; }
.asp-quote cite{
  display:block; margin-top:.9rem; font:600 .72rem/1.5 var(--sans);
  font-style:normal; letter-spacing:.15em; text-transform:uppercase; color:var(--yellow);
}

/* Caixa de aviso amarela. */
.asp-note{ border:1.5px solid var(--yellow); background:#fdf6e3; padding:1.3rem 1.5rem; }
.asp-note p{ font-size:.94rem; color:var(--ink-2); }
.asp-note strong:first-child{ display:block; font-size:1.05rem; margin-bottom:.4rem; font-weight:700; }

/* ------------------------------------------------- régua de 4 cores
   Aplicada no widget "Divisor". */
.asp-rule4 .elementor-divider{
  padding-block:0;
  --divider-block-width:8.85rem;
  --divider-border-width:0px;
  justify-content:flex-start;
}
.asp-rule4 .elementor-divider-separator{
  width:8.85rem !important; max-width:8.85rem; margin-inline:0;
  border:0 !important; height:5px !important; width:8.85rem;
  background:linear-gradient(90deg,
    var(--red)    0 24%, transparent 24% 25.4%,
    var(--yellow) 25.4% 49.4%, transparent 49.4% 50.8%,
    var(--green)  50.8% 74.8%, transparent 74.8% 76.2%,
    var(--blue)   76.2% 100%);
}

/* ------------------------------------------------- botões
   Aplicados no widget "Botão". */
.asp-btn .elementor-button{
  --bg:var(--ink); --fg:var(--paper);
  display:inline-flex; align-items:center; gap:.7rem;
  padding:.92rem 1.5rem; background:var(--bg); color:var(--fg);
  font-family:var(--sans); font-size:.795rem; font-weight:650;
  letter-spacing:.13em; text-transform:uppercase; text-decoration:none;
  border:1.5px solid var(--bg); border-radius:0; fill:var(--fg);
  transition:transform .3s var(--e), background .3s var(--e), color .3s var(--e);
}
.asp-btn .elementor-button:hover{ transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--yellow); background:var(--bg); color:var(--fg); }
.asp-btn .elementor-button-icon svg{ width:.95em; height:.95em; transition:transform .3s var(--e); }
.asp-btn .elementor-button:hover .elementor-button-icon svg{ transform:translateX(4px); }

.asp-btn--inv .elementor-button{ --bg:var(--paper); --fg:var(--ink); }
.asp-btn--ghost .elementor-button{ --bg:transparent; --fg:var(--ink); border-color:var(--ink); }
.asp-btn--ghost .elementor-button:hover{ background:var(--ink); color:var(--paper); fill:var(--paper); }
.asp-btn--ghost-inv .elementor-button{ --bg:transparent; --fg:var(--paper); border-color:rgba(251,247,240,.5); }
.asp-btn--ghost-inv .elementor-button:hover{ background:var(--paper); color:var(--ink); fill:var(--ink); }

/* Link de texto sublinhado que cresce. */
.asp-tlink .elementor-button{
  background:none; border:0; border-bottom:2px solid var(--red);
  padding:0 0 2px; color:var(--ink); border-radius:0;
  font-size:.9rem; font-weight:650; letter-spacing:.02em;
  text-transform:none; gap:.5rem; display:inline-flex; align-items:center;
  transition:gap .3s var(--e), color .3s var(--e);
}
.asp-tlink .elementor-button:hover{ gap:.95rem; color:var(--red); background:none; box-shadow:none; transform:none; }
.asp-inv .asp-tlink .elementor-button,
.asp-sec--ink .asp-tlink .elementor-button,
.asp-sec--spot .asp-tlink .elementor-button{ color:var(--paper); border-bottom-color:var(--yellow); }
.asp-inv .asp-tlink .elementor-button:hover,
.asp-sec--ink .asp-tlink .elementor-button:hover,
.asp-sec--spot .asp-tlink .elementor-button:hover{ color:var(--yellow); }

/* Etiqueta vazada (spot__tag). */
.asp-tag .elementor-heading-title{
  display:inline-block; padding:.4rem .85rem;
  border:1px solid var(--yellow); color:var(--yellow);
  font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; font-weight:650;
}

/* ------------------------------------------------- molduras de imagem
   Aplicadas no widget "Imagem". */
.asp-frame .elementor-widget-container,
.asp-frame figure{ position:relative; margin:0; }
.asp-frame .elementor-widget-container::before{
  content:""; position:absolute; inset:0; translate:11px 11px;
  border:1.5px solid var(--ink); z-index:0;
  transition:translate .45s var(--e);
}
.asp-frame img{ position:relative; z-index:1; width:100%; }
.asp-frame:hover .elementor-widget-container::before{ translate:5px 5px; }
.asp-frame--red    .elementor-widget-container::before{ border-color:var(--red);    background:var(--red); }
.asp-frame--yellow .elementor-widget-container::before{ border-color:var(--yellow); background:var(--yellow); }
.asp-frame--green  .elementor-widget-container::before{ border-color:var(--green);  background:var(--green); }
.asp-frame--blue   .elementor-widget-container::before{ border-color:var(--blue);   background:var(--blue); }

/* Proporções fixas para as fotos. */
.asp-ratio-43 img{ aspect-ratio:4/3;  object-fit:cover; }
.asp-ratio-34 img{ aspect-ratio:3/4;  object-fit:cover; }
.asp-ratio-32 img{ aspect-ratio:3/2;  object-fit:cover; }
.asp-ratio-169 img{ aspect-ratio:16/9; object-fit:cover; }

/* Legenda discreta abaixo da foto. */
.asp-legenda p{ font-size:.82rem; color:var(--ink-3); line-height:1.5; }
.asp-inv .asp-legenda p,
.asp-sec--ink .asp-legenda p,
.asp-sec--spot .asp-legenda p{ color:rgba(251,247,240,.6); }

/* ------------------------------------------------- cartão de conteúdo
   Aplicado num contêiner do Elementor: barra colorida no topo, borda e
   elevação no hover, exatamente como os cards de "frentes" e "valores". */
.asp-pill{
  border:1.5px solid var(--ink) !important; background:var(--paper);
  position:relative; overflow:hidden;
  transition:transform .35s var(--e), box-shadow .35s var(--e);
}
.asp-pill::before{ content:""; position:absolute; inset:0 0 auto 0; height:6px; background:var(--red); z-index:2; }
.asp-pill--yellow::before{ background:var(--yellow); }
.asp-pill--green::before{  background:var(--green); }
.asp-pill--blue::before{   background:var(--blue); }
.asp-pill:hover{ transform:translateY(-5px); box-shadow:0 12px 0 -4px rgba(20,17,15,.12); }
.asp-pill .elementor-heading-title{ letter-spacing:-.01em; }
.asp-pill .elementor-widget-text-editor{ font-size:.93rem; color:var(--ink-3); line-height:1.58; }

/* Numeração dos cartões (01, 02, 03…). */
.asp-pill-num .elementor-heading-title{
  font-size:.95rem; font-weight:600; color:var(--ink-3); letter-spacing:.1em;
}

/* Livro do acervo. */
.asp-book .elementor-widget-image img{
  aspect-ratio:3/2; object-fit:cover;
  border:1.5px solid var(--ink); background:var(--sand-2);
  transition:transform .6s var(--e);
}
.asp-book:hover .elementor-widget-image img{ transform:scale(1.04); }

/* ------------------------------------------------- linha do tempo
   Marcador como elemento real (nao ::before), para nao depender de
   pseudo-elemento na cascata do Elementor. */
.asp-tl{ border-left:2px solid var(--rule-2); margin-left:.5rem; padding-left:.5rem; }
.asp-tl__item{ align-items:flex-start !important; }
.asp-tl__marker{
  width:16px !important; height:16px !important; min-width:16px !important;
  flex:none !important; margin-left:-19px !important; margin-top:.35rem !important;
  background:var(--paper) !important; border:3px solid var(--red) !important;
}
.asp-tl__marker--yellow{ border-color:var(--yellow) !important; }
.asp-tl__marker--green{ border-color:var(--green) !important; }
.asp-tl__item .elementor-heading-title{ font-size:1.6rem; line-height:1; }
.asp-tl__item .elementor-widget-text-editor{ color:var(--ink-3); font-size:.96rem; max-width:70ch; }

/* ------------------------------------------------- mestres e mestras */
.asp-master{ border-top:1.5px solid var(--rule-2); }
.asp-master .elementor-heading-title{ font-size:1.35rem; }
.asp-master .elementor-widget-text-editor{ color:var(--ink-3); font-size:.97rem; }
.asp-funcao .elementor-heading-title{
  font:600 .68rem/1.6 var(--sans); letter-spacing:.16em;
  text-transform:uppercase; color:var(--red);
}

/* ------------------------------------------------- dados de contato
   Aplicado no widget "Lista de ícones", sem ícone. */
.asp-info .elementor-icon-list-items{ border-top:1.5px solid var(--rule-2); }
.asp-info .elementor-icon-list-item{
  border-bottom:1px solid var(--rule); padding:1.15rem 0; display:block;
}
.asp-info .elementor-icon-list-text{ font-size:1rem; line-height:1.55; padding:0; }
.asp-info a:hover{ color:var(--red); }

/* ------------------------------------------------- grades dos widgets do tema */
.asp-grade{
  display:grid;
  gap:clamp(1.4rem,2.6vw,2.2rem);
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (max-width:680px){
  .asp-grade{ grid-template-columns:1fr !important; }
}

/* paginação das listagens */
.asp-paginacao{ margin-top:3rem; display:flex; gap:.5rem; flex-wrap:wrap; }
.asp-paginacao .page-numbers{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:2.6rem; height:2.6rem; padding:0 .7rem;
  border:1.5px solid var(--ink); text-decoration:none;
  font-size:.8rem; font-weight:650; letter-spacing:.08em;
  transition:.25s var(--e);
}
.asp-paginacao .page-numbers:hover{ background:var(--sand-2); }
.asp-paginacao .page-numbers.current{ background:var(--ink); color:var(--paper); }
.asp-paginacao .screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* mensagem de erro do formulário */
.msg--erro{ border-color:var(--red) !important; background:#fdeceb !important; }
.btn.is-enviando{ opacity:.6; pointer-events:none; }

/* ------------------------------------------------- cartão com link
   Contêiner do Elementor que reproduz o card do site original. */
.asp-card{
  border:1.5px solid var(--ink) !important; background:var(--paper);
  padding:0 !important; overflow:hidden !important;
  transition:transform .35s var(--e), box-shadow .35s var(--e);
}
.asp-card:hover{ transform:translate(-4px,-4px); box-shadow:8px 8px 0 var(--ink); }
.asp-card .asp-card__media{ margin:0; }
.asp-card .asp-card__media img{
  width:100%; aspect-ratio:16/10; object-fit:cover;
  border-bottom:1.5px solid var(--ink);
  transition:transform .7s var(--e);
}
.asp-card:hover .asp-card__media img{ transform:scale(1.06); }
/* Elementor 4 nao embrulha os filhos em .e-con-inner: os widgets sao filhos
   diretos do container. Os seletores abaixo miram a estrutura real. */
.asp-card > .elementor-element:not(.asp-card__media){
  padding-inline:1.5rem !important;
}
.asp-card > .elementor-element:not(.asp-card__media):first-of-type{ padding-top:1.5rem !important; }
.asp-card > .elementor-element:last-child{ padding-bottom:1.7rem !important; margin-top:auto; }
.asp-card .elementor-widget-text-editor{ font-size:.94rem; color:var(--ink-3); line-height:1.55; }
.asp-card .elementor-heading-title{ font-size:clamp(1.2rem,1.05rem + .5vw,1.55rem); }

/* etiqueta e data dentro do card */
.asp-card__meta p{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; margin:0; }
.asp-chip{
  font-size:.63rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase;
  padding:.3rem .6rem; border:1px solid currentColor; color:var(--red);
}
.asp-data{ font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-3); }

/* ------------------------------------------------- blocos auxiliares */

/* migalhas de pão do topo das páginas internas */
.asp-crumb p{
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(251,247,240,.6); margin:0;
}
.asp-crumb a{ text-decoration:none; border-bottom:1px solid rgba(251,247,240,.35); }
.asp-crumb a:hover{ color:var(--yellow); border-color:var(--yellow); }

/* listas numeradas e com marcadores */
.asp-lista ol,
.asp-lista ul{ padding-left:1.2rem; color:var(--ink-3); margin:0; }
.asp-lista li{ margin-bottom:.5rem; }
.asp-lista strong{ color:var(--ink); }

/* caixa lateral (ficha, dados de contato) */
.asp-aside{
  border:1.5px solid var(--ink) !important;
  background:var(--sand);
  padding:1.5rem !important;
  position:sticky !important; top:100px;
}
.asp-aside .elementor-heading-title{ font-size:1.05rem; }

/* destaque dentro do texto das notícias */
.asp-destaque-texto{
  border:1.5px solid var(--ink); border-top-width:6px; border-top-color:var(--red);
  padding:1.5rem; margin:2.2rem 0;
}
.asp-destaque-texto strong{ display:block; font-size:1.3rem; font-weight:600; margin-bottom:.6rem; }
.asp-destaque-texto p{ font-size:.93rem; color:var(--ink-3); line-height:1.58; margin:0; }

/* espaçamento das grades montadas com contêineres */
.asp-grid, .asp-shelf{ align-items:stretch; }
.asp-sechead{ margin-bottom:0; }
.asp-duo, .asp-article{ align-items:flex-start; }

/* ------------------------------------------------- responsivo */
@media (max-width:1000px){
  .asp-grid > .e-con{ width:48% !important; }
}
@media (max-width:900px){
  .asp-duo > .e-con,
  .asp-article > .e-con,
  .asp-shelf > .e-con,
  .asp-master > .e-con{ width:100% !important; }
}
@media (max-width:680px){
  .asp-grid > .e-con{ width:100% !important; }
}
@media (max-width:900px){
  .asp-hero h1{ max-width:none; }
  .asp-h2 .elementor-heading-title{ max-width:none; }
}
@media (max-width:760px){
  .asp-frame .elementor-widget-container::before{ translate:7px 7px; }
}

/* =====================================================================
   PRIORIDADE SOBRE O KIT DO ELEMENTOR

   O Elementor aplica cores e fontes próprias nos widgets através do kit
   global (regras com dois níveis de classe). Os seletores abaixo têm um
   nível a mais e garantem que a identidade visual da ASPERQD prevaleça,
   sem precisar desligar as configurações globais do plugin — o cliente
   continua podendo trocar cores pelo painel quando quiser.
   ===================================================================== */

/* títulos */
.asp-elementor .elementor-widget-heading .elementor-heading-title{
  font-family:var(--serif); color:var(--ink); letter-spacing:-.015em; line-height:1.14;
}
.asp-elementor .asp-hero .elementor-widget-heading .elementor-heading-title,
.asp-elementor .asp-phead .elementor-widget-heading .elementor-heading-title,
.asp-elementor .asp-sec--ink .elementor-widget-heading .elementor-heading-title,
.asp-elementor .asp-sec--spot .elementor-widget-heading .elementor-heading-title,
.asp-elementor .asp-inv .elementor-widget-heading .elementor-heading-title{ color:var(--paper); }

/* Os títulos com papel próprio (olho, número, etiqueta) precisam de tantas
   classes quanto a regra de fundo escuro acima para vencerem por ordem. */
.asp-elementor .asp-eyebrow.elementor-widget-heading .elementor-heading-title{
  color:var(--red); font-family:var(--sans); font-weight:650;
}
.asp-elementor .asp-eyebrow--inv.elementor-widget-heading .elementor-heading-title{ color:var(--yellow); }
.asp-elementor .asp-secnum.elementor-widget-heading .elementor-heading-title{
  color:transparent; -webkit-text-stroke:1.5px var(--sand-2);
}
.asp-elementor .asp-secnum--inv.elementor-widget-heading .elementor-heading-title{
  -webkit-text-stroke-color:rgba(251,247,240,.28);
}
.asp-elementor .asp-tag.elementor-widget-heading .elementor-heading-title{
  color:var(--yellow); font-family:var(--sans); font-weight:650;
}
.asp-elementor .asp-funcao.elementor-widget-heading .elementor-heading-title{
  color:var(--red); font-family:var(--sans);
}
.asp-elementor .asp-pill-num.elementor-widget-heading .elementor-heading-title{ color:var(--ink-3); }
.asp-elementor .asp-destaque.elementor-widget-heading .elementor-heading-title{ color:var(--yellow); }

/* texto corrido */
.asp-elementor .elementor-widget-text-editor{ color:var(--ink-2); font-family:var(--sans); }
.asp-elementor .asp-sec--ink .elementor-widget-text-editor,
.asp-elementor .asp-sec--spot .elementor-widget-text-editor,
.asp-elementor .asp-hero .elementor-widget-text-editor,
.asp-elementor .asp-phead .elementor-widget-text-editor,
.asp-elementor .asp-inv .elementor-widget-text-editor{ color:rgba(251,247,240,.84); }
.asp-elementor .asp-quote,
.asp-elementor .asp-quote p{ color:var(--ink) !important; }
.asp-elementor .asp-sec--ink .asp-quote,
.asp-elementor .asp-sec--ink .asp-quote p,
.asp-elementor .asp-sec--spot .asp-quote,
.asp-elementor .asp-sec--spot .asp-quote p,
.asp-elementor .asp-inv .asp-quote p{ color:var(--paper) !important; }
.asp-elementor .asp-note p{ color:var(--ink-2); }

/* links dentro do conteúdo */
.asp-elementor .elementor-widget-text-editor a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }
.asp-elementor .elementor-widget-text-editor a:hover{ color:var(--red); }
.asp-elementor .asp-sec--ink .elementor-widget-text-editor a:hover,
.asp-elementor .asp-sec--spot .elementor-widget-text-editor a:hover{ color:var(--yellow); }

/* botões */
.asp-elementor .asp-btn .elementor-button{
  background-color:var(--bg); color:var(--fg); fill:var(--fg);
  font-family:var(--sans); border-radius:0;
}
.asp-elementor .asp-btn .elementor-button:hover,
.asp-elementor .asp-btn .elementor-button:focus{ background-color:var(--bg); color:var(--fg); fill:var(--fg); }
.asp-elementor .asp-btn--ghost .elementor-button:hover{ background-color:var(--ink); color:var(--paper); fill:var(--paper); }
.asp-elementor .asp-btn--ghost-inv .elementor-button:hover{ background-color:var(--paper); color:var(--ink); fill:var(--ink); }
.asp-elementor .asp-tlink .elementor-button{
  background-color:transparent; color:var(--ink); fill:var(--ink); font-family:var(--sans);
}
.asp-elementor .asp-tlink .elementor-button:hover{ background-color:transparent; color:var(--red); fill:var(--red); }
.asp-elementor .asp-inv .asp-tlink .elementor-button,
.asp-elementor .asp-sec--ink .asp-tlink .elementor-button,
.asp-elementor .asp-sec--spot .asp-tlink .elementor-button{ color:var(--paper); fill:var(--paper); }
.asp-elementor .asp-inv .asp-tlink .elementor-button:hover,
.asp-elementor .asp-sec--ink .asp-tlink .elementor-button:hover,
.asp-elementor .asp-sec--spot .asp-tlink .elementor-button:hover{ color:var(--yellow); fill:var(--yellow); }

/* lista de ícones (dados de contato) */
.asp-elementor .asp-info .elementor-icon-list-text,
.asp-elementor .asp-info .elementor-icon-list-item > a{ color:var(--ink-2); }

/* divisor colorido */
.asp-elementor .asp-rule4 .elementor-divider-separator{ border-block-start:0 !important; }

/* ------------------------------------------------- comentários (opcionais) */
.asp-comentarios{ margin-top:3rem; }
.asp-comentarios h3{ font-size:1.4rem; margin-bottom:1.4rem; }
.asp-lista-comentarios{ list-style:none; margin:0 0 2.4rem; padding:0; }
.asp-lista-comentarios li{ border-top:1px solid var(--rule); padding:1.3rem 0; }
.asp-lista-comentarios .children{ list-style:none; margin:1rem 0 0 1.6rem; padding:0; }
.asp-comentarios .comment-author{ display:flex; align-items:center; gap:.7rem; font-size:.9rem; font-weight:600; }
.asp-comentarios .comment-metadata{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); margin:.3rem 0 .7rem; }
.asp-comentarios .comment-metadata a{ text-decoration:none; }

/* ------------------------------------------------- classes que faltavam
   nesta build (existiam no gerador local, nunca chegaram no import) */
.asp-card--ghost{
  background:transparent !important;
  border-color:rgba(251,247,240,.32) !important;
  cursor:default;
}
.asp-card--ghost:hover{ transform:none !important; box-shadow:none !important; }
.asp-card--ghost .elementor-heading-title{ color:var(--paper) !important; }
.asp-card--ghost .elementor-widget-text-editor,
.asp-card--ghost .elementor-widget-text-editor p{ color:rgba(251,247,240,.78) !important; }
.asp-card--ghost .asp-chip,
.asp-card--ghost .asp-data{ color:var(--yellow) !important; border-color:currentColor; }

.asp-elementor .asp-hero__cta{ margin-block-start:2.5rem !important; }
.asp-elementor .asp-foot__cta{
  border-top:1px solid var(--rule-inv) !important;
  border-bottom:1px solid var(--rule-inv) !important;
  padding:2.2rem 0 !important;
  justify-content:space-between !important;
}
.asp-elementor .asp-foot__cta .elementor-widget-text-editor{
  font-family:var(--serif) !important;
  font-size:clamp(1.2rem,2.4vw,1.75rem) !important;
  color:var(--paper) !important;
  max-width:34ch !important;
  font-style:italic !important;
}
.asp-elementor .asp-foot__cta .elementor-widget-text-editor p{ margin:0; }

/* =====================================================================
   FIDELIDADE AO SITE ESTATICO ORIGINAL
   ===================================================================== */
/* SEM regra de gap aqui de proposito: .asp-sechead, .asp-duo, .asp-article,
   .asp-shelf e .asp-grid ja nascem com um espacamento proprio (configuracao
   nativa do Elementor, controle Gap na aba Estilo) vindo da conversao do
   site original. Uma regra CSS nossa pra gap empataria em especificidade
   com o CSS que o Elementor gera pra esse controle e, por vir depois no
   arquivo, sempre ganharia -- deixando o controle Gap do painel sem
   nenhum efeito visual, mesmo respondendo como alterado. */
.asp-elementor .asp-sechead{ margin-bottom:clamp(2.2rem,4vw,3.4rem) !important; }
@media (min-width:901px){
  /* asp-duo/asp-article: 2 colunas com largura em %, o gap padrao (56px)
     ja e grande o bastante pra estourar a soma com a largura sem esse
     desconto. Se o usuario aumentar MUITO o gap pelo painel, pode sobrar
     uma folga extra em vez de quebrar linha (prefere sobra a quebra). */
  .asp-elementor .asp-duo > .e-con,
  .asp-elementor .asp-article > .e-con{
    width:calc(var(--width) - 28px) !important;
  }
}
@media (min-width:901px){
  /* asp-shelf: 3 colunas de 31%, gap padrao 40px. */
  .asp-elementor .asp-shelf > .e-con{
    width:calc(var(--width) - 27px) !important;
  }
}
@media (min-width:1001px){
  /* asp-grid: 2/3/4 colunas conforme a pagina, gap padrao 30px. */
  .asp-elementor .asp-grid > .e-con{
    width:calc(var(--width) - 22px) !important;
  }
}
.asp-elementor .asp-master{ gap:clamp(1rem,3vw,2.5rem) !important; }
.asp-elementor .asp-tl__item{ gap:.55rem !important; }

.asp-elementor .asp-eyebrow{ margin-block-end:1.15rem !important; }
