/* ============================================================
   DVCODEWEB — SISTEMA DE DESIGN DO BLOG  v2.0
   Aplica-se ao conteúdo dos artigos (widget Post Content do
   Elementor). Não afeta páginas nem o header/footer.
   Elementor gera `.elementor-XXXX .elementor-element.elementor-element-YYYY`
   com especificidade (0,3,0) e força font-size/color — daí o !important
   nas poucas propriedades que ele impõe.
   ============================================================ */
.elementor-widget-theme-post-content .elementor-widget-container{
  --dv-ink:#0A0118; --dv-ink-2:#120825; --dv-surface:#1A0F2E;
  --dv-line:#2E2440; --dv-violet:#B47CFD; --dv-pink:#FF7FC2;
  --dv-peach:#FFB07B; --dv-text:#FFFFFF; --dv-muted:#9B96B0; --dv-body:#C6C1D4;
  --dv-serif:Georgia,"Iowan Old Style","Times New Roman",serif;
  font-size:18px !important; line-height:1.75 !important; color:#C6C1D4 !important;
  max-width:760px; margin-left:auto; margin-right:auto;
}

/* ---------- tipografia ---------- */
.elementor-widget-theme-post-content .elementor-widget-container p{
  margin:0 0 22px !important; color:#C6C1D4 !important;
  font-size:18px !important; line-height:1.75 !important;
}
.elementor-widget-theme-post-content .elementor-widget-container h2{
  font-size:clamp(1.5rem,3.2vw,2rem) !important; line-height:1.22 !important;
  letter-spacing:-.02em; font-weight:800 !important; color:#FFFFFF !important;
  margin:60px 0 18px !important; text-wrap:balance; scroll-margin-top:100px;
}
.elementor-widget-theme-post-content .elementor-widget-container h3{
  font-size:1.2rem !important; font-weight:700 !important; color:#FFFFFF !important;
  margin:34px 0 12px !important; line-height:1.35 !important; scroll-margin-top:100px;
}
.elementor-widget-theme-post-content .elementor-widget-container li{
  font-size:18px !important; line-height:1.75 !important; color:#C6C1D4 !important; margin-bottom:10px !important;
}
.elementor-widget-theme-post-content .elementor-widget-container strong{color:#FFFFFF !important; font-weight:650}
.elementor-widget-theme-post-content .elementor-widget-container a{
  color:#B47CFD; text-decoration:none; border-bottom:1px solid rgba(180,124,253,.35); transition:.15s;
}
.elementor-widget-theme-post-content .elementor-widget-container a:hover{color:#FF7FC2; border-bottom-color:#FF7FC2}
.elementor-widget-theme-post-content .elementor-widget-container a:focus-visible{outline:2px solid #B47CFD; outline-offset:3px; border-radius:2px}
.elementor-widget-theme-post-content .elementor-widget-container hr{border:none; height:1px; background:#2E2440; margin:48px 0}
.elementor-widget-theme-post-content .elementor-widget-container figcaption{color:#9B96B0 !important; font-size:.85rem !important; text-align:center; margin-top:10px}
.elementor-widget-theme-post-content .elementor-widget-container img{border-radius:12px}

/* ---------- barra de progresso de leitura ---------- */
#dvProgress{position:fixed; top:0; left:0; height:3px; width:0; z-index:9999;
  background:linear-gradient(90deg,#B47CFD,#FF7FC2); transition:width .1s linear; pointer-events:none}

/* ---------- cabeçalho do artigo ---------- */
.dv-kicker{display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin:0 0 26px !important; font-size:.85rem !important; color:#9B96B0 !important}
.dv-kicker .dv-tag{display:inline-flex; align-items:center; gap:8px; font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#B47CFD}
.dv-kicker .dv-tag::before{content:""; width:22px; height:2px; background:linear-gradient(90deg,#B47CFD,#FF7FC2)}
.dv-kicker .dv-sep{width:3px; height:3px; border-radius:50%; background:#2E2440}
.dv-kicker .dv-fresh{color:#FFB07B}

/* ---------- ÍNDICE ----------
   Mobile/tablet: cartão colapsável dentro do fluxo.
   Desktop (>=1440px): painel fixo à esquerda que só aparece DEPOIS
   do herói — de outra forma flutuaria por cima do título e da imagem. */
.dv-toc{border:1px solid #2E2440; border-radius:14px; background:#120825; margin:0 0 40px; padding:0}
.dv-toc-label{font-size:.7rem !important; letter-spacing:.14em; text-transform:uppercase; color:#9B96B0 !important; margin:0 0 14px !important; font-weight:700; display:none}
.dv-toc-toggle{display:flex; width:100%; align-items:center; justify-content:space-between; gap:12px;
  padding:17px 20px; background:none; border:none; cursor:pointer; font-family:inherit;
  font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:#9B96B0; font-weight:700;
  text-align:left; min-height:44px}
.dv-toc-toggle span{color:#6E6880; letter-spacing:.04em; text-transform:none; font-weight:500}
.dv-toc-toggle::after{content:"+"; font-size:1.5rem; font-weight:300; color:#B47CFD; line-height:1; flex:none}
.dv-toc.dv-open .dv-toc-toggle::after{content:"\2013"}
.dv-toc-toggle:focus-visible{outline:2px solid #B47CFD; outline-offset:-2px; border-radius:12px}
.dv-toc-body{display:none; padding:0 20px 16px}
.dv-toc.dv-open .dv-toc-body{display:block}
.dv-toc ol{margin:0; padding-left:20px}
.dv-toc li{margin-bottom:9px !important; font-size:.95rem !important; line-height:1.45 !important}
.elementor-widget-theme-post-content .dv-toc a{color:#C6C1D4; border-bottom:none; display:inline-block; padding:3px 0}
.elementor-widget-theme-post-content .dv-toc a:hover{color:#B47CFD}
.elementor-widget-theme-post-content .dv-toc a.dv-active{color:#FFFFFF; font-weight:650}
/* Índice fixo em ecrãs largos.
   Geometria: coluna de conteúdo 760px deslocada 120px para a direita;
   índice de 230px com 60px de intervalo — TOC e artigo lidos como um
   grupo centrado, em vez de tudo encostado à esquerda.
   `position:relative` (nunca `transform`) porque transform num ancestral
   quebraria o `position:fixed` do índice. */
@media(min-width:1440px){
  .elementor-widget-theme-post-content .elementor-widget-container{position:relative; left:170px}
  .dv-toc{
    position:fixed; top:112px; left:calc(50% - 544px); width:270px;
    max-height:calc(100vh - 190px); overflow-y:auto; margin:0; padding:20px 18px; z-index:20;
    scrollbar-width:thin; scrollbar-color:#2E2440 transparent;
    opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:opacity .28s ease, transform .28s ease, visibility .28s;
  }
  .dv-toc.dv-stuck{opacity:1; visibility:visible; transform:none}
  .dv-toc::-webkit-scrollbar{width:5px}
  .dv-toc::-webkit-scrollbar-thumb{background:#2E2440; border-radius:3px}
  .dv-toc-toggle{display:none}
  .dv-toc-label{display:block; margin:0 0 12px !important}
  .dv-toc-body{display:block !important; padding:0}
  .dv-toc ol{padding-left:18px}
  .dv-toc li{margin-bottom:6px !important; font-size:.85rem !important; line-height:1.4 !important}
  .elementor-widget-theme-post-content .dv-toc a{display:block; padding:2px 0 2px 9px; border-left:2px solid transparent; transition:.15s}
  .elementor-widget-theme-post-content .dv-toc a.dv-active{border-left-color:#B47CFD}
}
@media(min-width:1750px){
  .elementor-widget-theme-post-content .elementor-widget-container{left:195px}
  .dv-toc{left:calc(50% - 574px); width:290px}
  .dv-toc li{font-size:.88rem !important}
}

/* ---------- resumo + metodologia ---------- */
.dv-summary{background:linear-gradient(160deg,rgba(180,124,253,.13),rgba(255,127,194,.05)); border:1px solid rgba(180,124,253,.28); border-radius:14px; padding:26px 28px; margin:0 0 36px}
.dv-summary h2{margin:0 0 14px !important; font-size:1.05rem !important; letter-spacing:.02em}
.dv-summary ul{margin:0; padding-left:20px}
.dv-num{color:#FFFFFF !important; font-weight:700; font-variant-numeric:tabular-nums}
.dv-method{border:1px dashed rgba(255,176,123,.4); border-radius:12px; padding:20px 22px; margin:0 0 40px; background:rgba(255,176,123,.05)}
.dv-method .dv-callout-label{color:#FFB07B}
.dv-method p:last-child{margin-bottom:0 !important}

/* ---------- destaques ---------- */
.dv-callout{border-radius:12px; padding:20px 22px; margin:32px 0; background:#1A0F2E; border:1px solid #2E2440}
.dv-callout-label{display:block; font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; margin-bottom:8px}
.dv-callout p:last-child{margin-bottom:0 !important}
.dv-callout--tip{background:linear-gradient(160deg,rgba(180,124,253,.1),transparent); border-color:rgba(180,124,253,.3)}
.dv-callout--tip .dv-callout-label{color:#B47CFD}
.dv-callout--warn{background:linear-gradient(160deg,rgba(255,176,123,.1),transparent); border-color:rgba(255,176,123,.32)}
.dv-callout--warn .dv-callout-label{color:#FFB07B}

/* ---------- citação ---------- */
.dv-quote{margin:40px 0; padding:0 0 0 24px; border-left:2px solid #B47CFD;
  font-family:var(--dv-serif); font-size:1.28rem !important; line-height:1.5 !important;
  color:#FFFFFF !important; font-style:italic}
.dv-quote cite{display:block; margin-top:10px; font-family:inherit; font-style:normal; font-size:.85rem; color:#9B96B0}

/* ---------- tabelas ---------- */
.elementor-widget-theme-post-content .wp-block-table,
.elementor-widget-theme-post-content .dv-tablewrap{
  overflow-x:auto; margin:32px 0; border-radius:14px; border:1px solid #2E2440; background:#120825;
}
.elementor-widget-theme-post-content table{width:100%; border-collapse:collapse; font-size:.94rem; min-width:520px}
.elementor-widget-theme-post-content thead th{
  background:linear-gradient(180deg,rgba(180,124,253,.16),rgba(180,124,253,.06));
  color:#FFFFFF; font-weight:700; text-align:left; padding:14px 18px;
  font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; border-bottom:1px solid #2E2440;
}
.elementor-widget-theme-post-content tbody td{padding:14px 18px; border-bottom:1px solid rgba(46,36,64,.65); vertical-align:top; color:#C6C1D4}
.elementor-widget-theme-post-content tbody tr:last-child td{border-bottom:none}
.elementor-widget-theme-post-content tbody tr:nth-child(even){background:rgba(255,255,255,.014)}
.elementor-widget-theme-post-content td.dv-price{color:#FFFFFF; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap}

/* ---------- gráfico (escala logarítmica) ---------- */
.dv-chart{margin:34px 0; padding:26px; border:1px solid #2E2440; border-radius:14px; background:#120825}
.dv-chart-title{font-size:.76rem !important; letter-spacing:.1em; text-transform:uppercase; color:#9B96B0 !important; font-weight:700; margin:0 0 22px !important}
.dv-bar-row{display:grid; grid-template-columns:148px 1fr 116px; gap:14px; align-items:center; margin-bottom:14px}
.dv-bar-label{font-size:.85rem !important; color:#C6C1D4 !important; line-height:1.3 !important}
.dv-bar-track{position:relative; height:26px; background:rgba(255,255,255,.05); border-radius:6px; overflow:hidden}
.dv-bar-fill{position:absolute; top:0; bottom:0; border-radius:6px; min-width:6px;
  background:linear-gradient(90deg,#B47CFD,#FF7FC2); box-shadow:0 0 18px rgba(180,124,253,.35);
  transform:scaleX(0); transform-origin:left; transition:transform .8s cubic-bezier(.16,1,.3,1)}
.dv-chart.dv-seen .dv-bar-fill{transform:scaleX(1)}
.dv-bar-value{font-size:.84rem !important; color:#FFFFFF !important; font-weight:700; font-variant-numeric:tabular-nums; text-align:right; white-space:nowrap; line-height:1.3 !important}
.dv-scale{display:flex; justify-content:space-between; font-size:.72rem !important; color:#9B96B0 !important;
  margin-top:10px !important; padding:10px 130px 0 162px; border-top:1px solid #2E2440}

/* ---------- botões ---------- */
.elementor-widget-theme-post-content a.dv-btn{
  display:inline-block; padding:14px 28px; border-radius:999px; font-weight:800; font-size:.94rem;
  background:linear-gradient(90deg,#B47CFD,#FF7FC2); color:#0B0416; border:none; border-bottom:none;
  text-decoration:none; transition:.18s; white-space:nowrap;
}
.elementor-widget-theme-post-content a.dv-btn:hover{transform:translateY(-1px); box-shadow:0 10px 28px rgba(180,124,253,.42); color:#0B0416; border-bottom:none}
.elementor-widget-theme-post-content a.dv-btn--sm{padding:10px 20px; font-size:.86rem}
.elementor-widget-theme-post-content a.dv-btn--ghost{background:transparent; border:1px solid rgba(180,124,253,.55); color:#B47CFD}
.elementor-widget-theme-post-content a.dv-btn--ghost:hover{background:rgba(180,124,253,.12); color:#FFFFFF; box-shadow:none}

/* ---------- CTAs ---------- */
.dv-cta{margin:44px 0; padding:28px 30px; border-radius:16px; position:relative; overflow:hidden;
  background:linear-gradient(135deg,rgba(180,124,253,.18),rgba(255,127,194,.1)); border:1px solid rgba(180,124,253,.34)}
.dv-cta::after{content:""; position:absolute; right:-60px; top:-60px; width:200px; height:200px; border-radius:50%;
  background:radial-gradient(circle,rgba(255,127,194,.22),transparent 70%); pointer-events:none}
.dv-cta h3{margin:0 0 8px !important; font-size:1.2rem !important}
.dv-cta p{margin:0 0 18px !important; font-size:.97rem !important}
.dv-cta--slim{display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
  margin:34px 0; padding:15px 20px; border-radius:12px;
  background:rgba(180,124,253,.07); border:1px solid rgba(180,124,253,.22)}
.dv-cta--slim::after{display:none}
.dv-cta--slim p{margin:0 !important; font-size:.93rem !important; color:#FFFFFF !important}

/* ---------- calculadora ---------- */
.dv-calc{margin:44px 0; border-radius:18px; overflow:hidden; border:1px solid rgba(180,124,253,.34); background:#120825}
.dv-calc-head{padding:22px 26px; background:linear-gradient(135deg,rgba(180,124,253,.2),rgba(255,127,194,.08)); border-bottom:1px solid #2E2440}
.dv-calc-head h3{margin:0 0 6px !important; font-size:1.22rem !important}
.dv-calc-head p{margin:0 !important; font-size:.88rem !important; color:#9B96B0 !important}
.dv-calc-body{padding:24px 26px}
.dv-field{margin-bottom:20px}
.dv-field>label{display:block; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:#9B96B0; font-weight:700; margin-bottom:10px}
.dv-opts{display:flex; flex-wrap:wrap; gap:8px}
.dv-opt{position:relative; margin:0 !important; padding:0 !important}
.dv-opt::before{display:none !important}
.dv-opt input{position:absolute; opacity:0; width:0; height:0}
.dv-opt span{display:block; padding:9px 16px; border-radius:999px; font-size:.87rem; cursor:pointer;
  border:1px solid #2E2440; color:#C6C1D4; background:rgba(255,255,255,.02); transition:.15s}
.dv-opt input:checked+span{border-color:#B47CFD; background:rgba(180,124,253,.18); color:#FFFFFF; font-weight:600}
.dv-opt input:focus-visible+span{outline:2px solid #FF7FC2; outline-offset:2px}
.dv-range{width:100%; accent-color:#B47CFD}
.dv-range-val{color:#FFFFFF; font-weight:700; font-variant-numeric:tabular-nums}
.dv-result{margin-top:6px; padding:22px 24px; border-radius:14px; text-align:center;
  background:linear-gradient(135deg,rgba(180,124,253,.16),rgba(255,127,194,.08)); border:1px solid rgba(180,124,253,.3)}
.dv-result-label{font-size:.72rem !important; letter-spacing:.12em; text-transform:uppercase; color:#9B96B0 !important; font-weight:700; margin:0 !important}
.dv-result-num{font-size:clamp(1.8rem,5vw,2.4rem) !important; font-weight:800; color:#FFFFFF !important;
  margin:8px 0 4px !important; font-variant-numeric:tabular-nums; letter-spacing:-.02em}
.dv-result-sub{font-size:.84rem !important; color:#9B96B0 !important; margin:0 0 18px !important}

/* ---------- seletor de setor ---------- */
.dv-sector{margin:36px 0; border:1px solid #2E2440; border-radius:16px; background:#120825; overflow:hidden}
.dv-sector-tabs{display:flex; flex-wrap:wrap; gap:8px; padding:20px 22px; border-bottom:1px solid #2E2440}
.dv-sector-tab{padding:9px 16px; border-radius:999px; font-size:.87rem; cursor:pointer; font-family:inherit;
  border:1px solid #2E2440; color:#C6C1D4; background:rgba(255,255,255,.02); transition:.15s}
.dv-sector-tab[aria-selected="true"]{border-color:#B47CFD; background:rgba(180,124,253,.18); color:#FFFFFF; font-weight:600}
.dv-sector-tab:focus-visible{outline:2px solid #FF7FC2; outline-offset:2px}
.dv-sector-panel{padding:24px 26px}
.dv-sector-panel[hidden]{display:none}
.dv-sector-price{font-size:1.6rem !important; font-weight:800; color:#FFFFFF !important; font-variant-numeric:tabular-nums; margin:0 0 6px !important}
.dv-sector-panel h4{margin:18px 0 8px !important; color:#FFFFFF !important; font-size:.95rem !important}

/* ---------- checklist interativa ---------- */
.dv-check{margin:34px 0; border:1px solid #2E2440; border-radius:14px; background:#120825; padding:24px 26px}
.dv-check-item{display:flex; gap:12px; align-items:flex-start; padding:11px 0; border-bottom:1px solid rgba(46,36,64,.6); cursor:pointer}
.dv-check-item:last-of-type{border-bottom:none}
.dv-check-item input{margin-top:5px; accent-color:#B47CFD; width:17px; height:17px; flex:none; cursor:pointer}
.dv-check-item span{font-size:.95rem; color:#C6C1D4; line-height:1.55}
.dv-check-score{margin-top:18px; padding:16px 18px; border-radius:12px; text-align:center;
  background:rgba(180,124,253,.1); border:1px solid rgba(180,124,253,.28); color:#FFFFFF; font-weight:650; font-size:.98rem}

/* ---------- FAQ do Rank Math ---------- */
#rank-math-faq{margin:20px 0 0 !important}
#rank-math-faq .rank-math-list{border-top:1px solid #2E2440}
#rank-math-faq .rank-math-list-item{border-bottom:1px solid #2E2440 !important; margin:0 !important; padding:0 !important}
#rank-math-faq .rank-math-question{
  margin:0 !important; padding:20px 46px 20px 0 !important; position:relative;
  font-size:1.04rem !important; font-weight:650 !important; color:#FFFFFF !important; line-height:1.45 !important; cursor:pointer;
}
#rank-math-faq .rank-math-question::after{content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%);
  color:#B47CFD; font-size:1.6rem; font-weight:300; line-height:1; transition:transform .2s}
#rank-math-faq .rank-math-list-item.dv-open>.rank-math-question::after{transform:translateY(-50%) rotate(45deg)}
#rank-math-faq .rank-math-question:focus-visible{outline:2px solid #B47CFD; outline-offset:3px; border-radius:4px}
#rank-math-faq .rank-math-answer{padding:0 0 22px !important}
#rank-math-faq .rank-math-answer p{margin:0 !important; color:#C6C1D4 !important; font-size:17px !important; line-height:1.7 !important}
#rank-math-faq.dv-js .rank-math-list-item:not(.dv-open) .rank-math-answer{display:none}

/* ---------- CTA final + autor ---------- */
.dv-final{margin:56px 0 0; padding:44px 36px; border-radius:20px; text-align:center; position:relative; overflow:hidden;
  background:linear-gradient(150deg,#1C0A38,#2A1140 55%,#3A1235); border:1px solid rgba(180,124,253,.3)}
.dv-final::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 20% 0%,rgba(180,124,253,.25),transparent 55%),
             radial-gradient(ellipse at 90% 100%,rgba(255,127,194,.2),transparent 50%)}
.dv-final>*{position:relative}
.dv-final h3{margin:0 0 12px !important; font-size:clamp(1.3rem,3.5vw,1.7rem) !important; color:#FFFFFF !important}
.dv-final p{margin:0 auto 24px !important; max-width:46ch}
.dv-final-actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}
.dv-trust{margin-top:20px !important; font-size:.8rem !important; color:#9B96B0 !important}
.dv-author{display:flex; gap:18px; align-items:flex-start; margin:36px 0 0; padding:24px; border:1px solid #2E2440; border-radius:14px; background:#120825}
.dv-author-img{width:56px; height:56px; border-radius:50%; flex:none; background:linear-gradient(135deg,#B47CFD,#FF7FC2); display:grid; place-items:center; color:#0B0416; font-weight:800}
.dv-author h4{margin:0 0 4px !important; color:#FFFFFF !important; font-size:1rem !important}
.dv-author-role{font-size:.8rem !important; color:#B47CFD !important; margin:0 0 8px !important; font-weight:600}
.dv-author p:last-child{margin:0 !important; font-size:.9rem !important; color:#9B96B0 !important}
.dv-author-links{margin:10px 0 0 !important}
.elementor-widget-theme-post-content .dv-author-links a{font-size:.88rem; font-weight:600; color:#B47CFD; border-bottom:none}
.elementor-widget-theme-post-content .dv-author-links a:hover{color:#FF7FC2}

/* ---------- fontes citadas ---------- */
.dv-sources{margin:40px 0 0; padding:20px 22px; border-radius:12px; background:#120825; border:1px solid #2E2440}
.dv-sources p{margin:0 0 10px !important; font-size:.72rem !important; letter-spacing:.12em; text-transform:uppercase; color:#9B96B0 !important; font-weight:700}
.dv-sources ol{margin:0; padding-left:20px}
.dv-sources li{font-size:.85rem !important; color:#9B96B0 !important; margin-bottom:7px !important; line-height:1.5 !important}

/* ============================================================
   MOBILE — mais de 60% do tráfego web em Portugal.
   Objetivos: nada corta, nada exige zoom, alvos táteis >=44px,
   tabelas deslizam em vez de espremer, e o índice não ocupa
   um ecrã inteiro.
   ============================================================ */
@media(max-width:782px){
  .elementor-widget-theme-post-content .elementor-widget-container{
    font-size:17px !important; padding-left:0; padding-right:0;
  }
  .elementor-widget-theme-post-content .elementor-widget-container p,
  .elementor-widget-theme-post-content .elementor-widget-container li{
    font-size:17px !important; line-height:1.7 !important;
  }
  .elementor-widget-theme-post-content .elementor-widget-container h2{
    font-size:1.42rem !important; margin:44px 0 14px !important; line-height:1.25 !important;
  }
  .elementor-widget-theme-post-content .elementor-widget-container h3{font-size:1.08rem !important; margin:28px 0 10px !important}

  /* gráfico: label em cima, barra a toda a largura, valor à direita */
  .dv-chart{padding:20px 16px}
  .dv-bar-row{grid-template-columns:1fr auto; gap:5px 10px; margin-bottom:18px}
  .dv-bar-label{grid-column:1; font-size:.82rem !important}
  .dv-bar-value{grid-column:2; text-align:right; font-size:.82rem !important}
  .dv-bar-track{grid-column:1 / -1; height:22px}
  .dv-scale{padding:10px 0 0; font-size:.68rem !important}

  /* separadores de setor: faixa deslizante em vez de 3 linhas */
  .dv-sector-tabs{flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none;
    padding:16px; -webkit-overflow-scrolling:touch}
  .dv-sector-tabs::-webkit-scrollbar{display:none}
  .dv-sector-tab{flex:0 0 auto; min-height:40px}
  .dv-sector-panel{padding:20px 18px}
  .dv-sector-price{font-size:1.4rem !important}

  /* calculadora e opções: alvos maiores */
  .dv-calc-head,.dv-calc-body{padding:20px 18px}
  .dv-opt span{padding:11px 16px; font-size:.86rem}
  .dv-range{height:28px}
  .dv-result{padding:20px 16px}

  /* CTAs empilham e o botão ocupa a largura */
  .dv-cta{padding:22px 18px}
  .dv-cta--slim{flex-direction:column; align-items:stretch; gap:12px; text-align:center; padding:18px}
  .elementor-widget-theme-post-content .dv-cta--slim a.dv-btn{width:100%; text-align:center}
  .dv-final{padding:32px 20px}
  .dv-final-actions{flex-direction:column}
  .elementor-widget-theme-post-content .dv-final-actions a.dv-btn{width:100%; text-align:center}

  /* checklist e autor */
  .dv-check{padding:18px 16px}
  .dv-check-item{padding:13px 0}
  .dv-check-item input{width:20px; height:20px}
  .dv-author{flex-direction:column; gap:14px; padding:20px 18px}
  .dv-quote{font-size:1.12rem !important; padding-left:18px; margin:32px 0}
  .dv-summary,.dv-method{padding:20px 18px}
  .dv-sources{padding:18px 16px}

  /* tabelas: sombra a indicar que desliza */
  .elementor-widget-theme-post-content .wp-block-table,
  .elementor-widget-theme-post-content .dv-tablewrap{
    background-image:linear-gradient(to right,#120825 30%,rgba(18,8,37,0)),
      linear-gradient(to left,#120825 30%,rgba(18,8,37,0));
    background-position:left center,right center; background-repeat:no-repeat;
    background-size:32px 100%,32px 100%; background-attachment:local,local;
  }
  .elementor-widget-theme-post-content table{font-size:.88rem; min-width:460px}
  .elementor-widget-theme-post-content thead th,
  .elementor-widget-theme-post-content tbody td{padding:12px 14px}

  #rank-math-faq .rank-math-question{font-size:.98rem !important; padding:18px 40px 18px 0 !important}
  #dvProgress{height:3px}
}
@media(max-width:420px){
  .elementor-widget-theme-post-content .elementor-widget-container h2{font-size:1.3rem !important}
  .dv-bar-row{grid-template-columns:1fr}
  .dv-bar-value{grid-column:1; text-align:left}
}
@media(prefers-reduced-motion:reduce){
  .dv-bar-fill{transition:none; transform:scaleX(1)}
  .elementor-widget-theme-post-content a.dv-btn:hover{transform:none}
}


/* ============================================================
   TEMPLATE LAYER — used when single-dv.php renders the post.

   Layout = CSS Grid + position:sticky.
   NOT position:fixed with calculated offsets. Fixed positioning depends on
   viewport arithmetic and silently breaks if any ancestor gains a transform,
   filter or will-change, because that ancestor then becomes the containing
   block. Sticky lives inside its grid cell and cannot escape it.
   ============================================================ */
.dv-post-shell{
  --dv-ink:#0A0118; --dv-ink-2:#120825; --dv-line:#2E2440;
  --dv-violet:#B47CFD; --dv-pink:#FF7FC2; --dv-peach:#FFB07B;
  --dv-text:#FFFFFF; --dv-body:#C6C1D4; --dv-muted:#9B96B0;
  background:var(--dv-ink); color:var(--dv-body);
  padding:40px 22px 96px;
}

/* ---- MOBILE / TABLET ----
   Plain block flow. DOM order is already correct:
   header -> hero -> index -> content -> footer. */
.dv-post-inner{
  max-width:760px; margin:0 auto; font-size:18px; line-height:1.75;
}


/* ---- DESKTOP ----
   grid-template-areas places each element explicitly, so the visual layout
   no longer depends on DOM order, `order`, or row-span arithmetic — the three
   things that kept breaking this. The sidebar column spans every row, and
   because the content column is far taller than the sidebar, nothing stretches.
   Breakpoint is 1200px: Windows display scaling reports a 1920px screen as
   1536 or 1280 CSS pixels, so a 1400px breakpoint silently never fires on
   many real laptops. */
@media(min-width:1200px){
  .dv-post-inner{
    display:grid;
    grid-template-columns:290px minmax(0,1fr);
    column-gap:58px;
    /* 1280px is the site's Elementor container width, so the index lines up
       with the logo and the article ends level with the header CTA. */
    max-width:1280px;
    margin-left:auto; margin-right:auto;
    grid-template-areas:
      "side head"
      "side hero"
      "side body"
      "side foot";
    align-items:start;
  }
  .dv-post-head{grid-area:head; min-width:0}
  .dv-hero     {grid-area:hero; min-width:0}
  .dv-content  {grid-area:body; min-width:0}
  .dv-post-foot{grid-area:foot; min-width:0}

  /* The sticky element itself must NOT scroll — overflow on a sticky box is a
     well-known way to break it. Any scrolling belongs to the inner list. */
  .dv-side{
    grid-area:side; align-self:start;
    position:-webkit-sticky; position:sticky; top:104px;
    margin:0; max-height:none; overflow:visible;
  }
  .dv-side .dv-toc-body{max-height:calc(100vh - 320px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--dv-line) transparent}
  .dv-side .dv-toc-body::-webkit-scrollbar{width:5px}
  .dv-side .dv-toc-body::-webkit-scrollbar-thumb{background:var(--dv-line); border-radius:3px}
}

/* ---- header ---- */
.dv-post-head{margin:0 0 30px}
.dv-post-shell .dv-kicker{display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin:0 0 20px; font-size:.85rem; color:var(--dv-muted)}
.dv-post-title{
  font-size:clamp(1.9rem,4.6vw,2.9rem); line-height:1.09; letter-spacing:-.028em;
  font-weight:800; color:var(--dv-text); margin:0 0 22px; text-wrap:balance;
}
.dv-byline{display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; font-size:.9rem; color:var(--dv-muted); padding-bottom:26px; border-bottom:1px solid var(--dv-line)}
.dv-byline b{color:var(--dv-text); font-weight:600}
.dv-byline-img{
  width:34px; height:34px; border-radius:50%; flex:none; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--dv-violet),var(--dv-pink));
  color:#0B0416; font-weight:800; font-size:.78rem;
}
.dv-hero{margin:0 0 38px}
.dv-hero img{width:100%; height:auto; border-radius:16px; display:block}

/* ---- index inside the sticky column ---- */
.dv-side{margin:0 0 36px}
/* Must match the layout breakpoint exactly — a mismatch gives two columns
   with a collapsed mobile-style index in the gap between the two values. */
@media(min-width:1200px){
  .dv-post-shell .dv-toc{position:static; opacity:1; visibility:visible; transform:none; width:auto; max-height:none; overflow:visible; margin:0 0 14px; padding:16px 15px}
  .dv-post-shell .dv-toc-toggle{display:none}
  .dv-post-shell .dv-toc-label{display:block; margin:0 0 11px}
  .dv-post-shell .dv-toc-body{display:block; padding:0}
  .dv-post-shell .dv-toc ol{padding-left:18px}
  .dv-post-shell .dv-toc li{margin-bottom:5px; font-size:.79rem; line-height:1.34}
  .dv-post-shell .dv-toc a{display:block; padding:1px 0 1px 8px; border-left:2px solid transparent; transition:.15s}
  .dv-post-shell .dv-toc a.dv-active{border-left-color:var(--dv-violet); color:var(--dv-text); font-weight:650}
}

/* ---- article body: restate typography, since the base sheet scopes it to
   .elementor-widget-theme-post-content which does not exist here ---- */
.dv-content > *:first-child{margin-top:0}
.dv-content{font-size:18px; line-height:1.75; color:var(--dv-body)}
.dv-content p{margin:0 0 22px; color:var(--dv-body); font-size:18px; line-height:1.75}
.dv-content h2{
  font-size:clamp(1.5rem,3.2vw,2rem); line-height:1.22; letter-spacing:-.02em;
  font-weight:800; color:var(--dv-text); margin:60px 0 18px; text-wrap:balance; scroll-margin-top:120px;
}
.dv-content h3{font-size:1.2rem; font-weight:700; color:var(--dv-text); margin:34px 0 12px; line-height:1.35; scroll-margin-top:120px}
.dv-content h4{font-size:1rem; font-weight:700; color:var(--dv-text); margin:24px 0 10px}
.dv-content strong{color:var(--dv-text); font-weight:650}
.dv-content a{color:var(--dv-violet); text-decoration:none; border-bottom:1px solid rgba(180,124,253,.35); transition:.15s}
.dv-content a:hover{color:var(--dv-pink); border-bottom-color:var(--dv-pink)}
.dv-content a:focus-visible{outline:2px solid var(--dv-violet); outline-offset:3px; border-radius:2px}
.dv-content ul,.dv-content ol{margin:0 0 22px; padding-left:24px}
.dv-content li{font-size:18px; line-height:1.75; color:var(--dv-body); margin-bottom:10px}
.dv-content hr{border:none; height:1px; background:var(--dv-line); margin:48px 0}
.dv-content img{max-width:100%; height:auto; border-radius:12px}
.dv-content figure{margin:32px 0; max-width:100%}
.dv-content figcaption{color:var(--dv-muted); font-size:.85rem; text-align:center; margin-top:10px}

.dv-content .wp-block-table,.dv-content .dv-tablewrap{
  overflow-x:auto; margin:32px 0; border-radius:14px;
  border:1px solid var(--dv-line); background:var(--dv-ink-2); max-width:100%;
}
.dv-content table{width:100%; border-collapse:collapse; font-size:.94rem; min-width:520px}
.dv-content thead th{
  background:linear-gradient(180deg,rgba(180,124,253,.16),rgba(180,124,253,.06));
  color:var(--dv-text); font-weight:700; text-align:left; padding:14px 18px;
  font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; border-bottom:1px solid var(--dv-line);
}
.dv-content tbody td{padding:14px 18px; border-bottom:1px solid rgba(46,36,64,.65); vertical-align:top; color:var(--dv-body)}
.dv-content tbody tr:last-child td{border-bottom:none}
.dv-content tbody tr:nth-child(even){background:rgba(255,255,255,.014)}

/* ---- CTA card ---- */
.dv-rail-card{
  border:1px solid rgba(180,124,253,.34); border-radius:16px; padding:20px 22px;
  background:linear-gradient(150deg,rgba(180,124,253,.16),rgba(255,127,194,.06));
}
.dv-rail-title{margin:0 0 8px; font-size:.98rem; font-weight:700; color:var(--dv-text); line-height:1.3}
.dv-rail-text{margin:0 0 15px; font-size:.86rem; color:var(--dv-body); line-height:1.55}
.dv-rail-trust{margin:12px 0 0; font-size:.75rem; color:var(--dv-muted)}
.dv-post-shell a.dv-btn{
  display:inline-block; padding:12px 24px; border-radius:999px; font-weight:800; font-size:.9rem;
  background:linear-gradient(90deg,var(--dv-violet),var(--dv-pink)); color:#0B0416;
  text-decoration:none; border:none; transition:.18s;
}
.dv-post-shell a.dv-btn:hover{transform:translateY(-1px); box-shadow:0 10px 28px rgba(180,124,253,.42); color:#0B0416}

/* ---- footer ---- */
.dv-post-foot{margin-top:8px}

/* ============================================================
   MOBILE — 60%+ of Portuguese web traffic. Nothing may overflow.
   ============================================================ */
@media(max-width:782px){
  .dv-post-shell{padding:24px 16px 64px}
  .dv-post-inner{font-size:17px}
  .dv-post-head{margin-bottom:24px}
  .dv-post-title{font-size:clamp(1.5rem,6.4vw,1.85rem); line-height:1.15; margin-bottom:18px}
  .dv-post-shell .dv-kicker{font-size:.78rem; gap:8px 12px; margin-bottom:16px}
  .dv-byline{font-size:.82rem; gap:8px 12px; padding-bottom:20px}
  .dv-byline-img{width:30px; height:30px; font-size:.72rem}
  .dv-hero{margin-bottom:28px}
  .dv-hero img{border-radius:12px}
  .dv-side{margin-bottom:30px}

  .dv-content{font-size:17px}
  .dv-content p,.dv-content li{font-size:17px; line-height:1.7}
  .dv-content h2{font-size:1.42rem; margin:44px 0 14px; scroll-margin-top:80px}
  .dv-content h3{font-size:1.08rem; margin:28px 0 10px; scroll-margin-top:80px}
  .dv-content ul,.dv-content ol{padding-left:20px}
  .dv-content table{font-size:.88rem; min-width:460px}
  .dv-content thead th,.dv-content tbody td{padding:12px 14px}
  .dv-content .wp-block-table,.dv-content .dv-tablewrap{
    background-image:linear-gradient(to right,var(--dv-ink-2) 30%,rgba(18,8,37,0)),
                     linear-gradient(to left,var(--dv-ink-2) 30%,rgba(18,8,37,0));
    background-position:left center,right center; background-repeat:no-repeat;
    background-size:32px 100%,32px 100%; background-attachment:local,local;
  }

  .dv-rail-card{padding:20px 18px}
  .dv-post-shell a.dv-btn{display:block; text-align:center; padding:14px 22px}
  .dv-author{flex-direction:column; gap:14px; padding:20px 18px}
  .dv-related-grid{grid-template-columns:1fr; gap:12px}
}

@media(max-width:400px){
  .dv-post-shell{padding:20px 13px 56px}
  .dv-post-title{font-size:1.42rem}
  .dv-content h2{font-size:1.3rem}
  .dv-byline{font-size:.78rem}
}

/* never let anything push the page sideways */
.dv-post-shell,.dv-post-inner,.dv-content{max-width:100%; overflow-wrap:break-word}
.dv-content pre,.dv-content code{white-space:pre-wrap; word-break:break-word}
@media(prefers-reduced-motion:reduce){
  .dv-post-shell a.dv-btn:hover{transform:none}
}
