/* ===================================================================
   GEO Engine Ultra — Design System CSS v4.2.1
   =================================================================== */
/* Forca height:auto em todo o stack Elementor que envolve o shortcode.
   Previne que overflow horizontal (causado por qualquer reset CSS externo)
   seja computado como altura vertical pelo flex-column do Elementor. */
.elementor-shortcode,
.elementor-widget-shortcode,
.elementor-widget-container:has(.si-desc),
.elementor-element:has(.si-desc){
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
.si-desc{font-family:'Rubik',sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.6;max-width:100%;overflow-x:hidden;height:auto!important;min-height:0!important}
.si-desc *,.si-desc *::before,.si-desc *::after{box-sizing:border-box;max-width:100%}
.si-desc img{max-width:100%;height:auto;display:block}
.si-desc a{color:var(--c-teal);text-decoration:none}
.si-desc a:hover{text-decoration:underline}
.si-desc p{margin:0 0 1rem}
.si-desc ul{list-style:none;margin:0;padding:0}
.si-container{max-width:1200px;margin:0 auto;padding:0 1.5rem}
.si-section{padding:4rem 0}
.si-section+.si-section{border-top:1px solid var(--border)}

/* Labels, headings, dividers */
.si-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--c-teal);margin-bottom:.75rem}
.si-label::before{content:'';display:block;width:1.5rem;height:2px;background:var(--c-teal)}
.si-heading{font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:800;color:var(--text);letter-spacing:-.02em;line-height:1.15;margin:0 0 .5rem}
.si-heading em{font-style:normal;color:var(--c-teal)}
.si-heading-accent{color:var(--c-orange)}
.si-subheading{font-size:1rem;color:var(--muted);font-weight:400;max-width:100%;line-height:1.7;margin:0 0 2rem}
.si-divider{display:block;width:3rem;height:3px;background:linear-gradient(90deg,var(--c-teal),var(--c-blue));border-radius:99px;margin-bottom:1.25rem}

/* Flashlight cards */
.fl-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);position:relative;overflow:hidden;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.fl-card::before{content:'';position:absolute;inset:0;background:radial-gradient(450px circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(1,193,193,.14),transparent 40%);opacity:0;transition:opacity .4s;pointer-events:none;z-index:1}
.fl-card:hover::before{opacity:1}
.fl-card:hover{border-color:rgba(1,193,193,.35);box-shadow:var(--shadow-hv);transform:translateY(-3px)}
.fl-card-inner{position:relative;z-index:2}

/* Icon boxes */
.icon-box{width:48px;height:48px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.icon-box-teal{background:rgba(1,193,193,.12);color:var(--c-teal)}
.icon-box-blue{background:rgba(40,165,241,.12);color:var(--c-blue)}
.icon-box-orange{background:rgba(236,139,14,.12);color:var(--c-orange)}
.icon-box-sky{background:rgba(86,182,208,.12);color:var(--c-sky)}
.icon-box-blue-dk{background:rgba(28,97,231,.10);color:var(--c-blue-dk)}
.icon-box-red{background:rgba(255,0,0,.08);color:var(--c-red)}

/* Badges */
.si-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:.3rem .8rem;border-radius:9999px}
.si-badge-teal{background:rgba(1,193,193,.1);color:var(--c-teal);border:1px solid rgba(1,193,193,.2)}
.si-badge-blue{background:rgba(40,165,241,.1);color:var(--c-blue);border:1px solid rgba(40,165,241,.2)}
.si-badge-orange{background:rgba(236,139,14,.1);color:var(--c-orange);border:1px solid rgba(236,139,14,.2)}
.si-badge-green{background:rgba(34,197,94,.1);color:#16a34a;border:1px solid rgba(34,197,94,.2)}
.si-badge-sky{background:rgba(86,182,208,.1);color:var(--c-sky);border:1px solid rgba(86,182,208,.2)}
.si-badge-blue-dk{background:rgba(28,97,231,.08);color:var(--c-blue-dk);border:1px solid rgba(28,97,231,.18)}

/* Specs table */
.si-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.91rem;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.si-table th,.si-table td{padding:.9rem 1.1rem;text-align:left;border-bottom:1px solid var(--border)}
.si-table th{width:36%;background:rgba(1,193,193,.05);color:var(--muted);font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.si-table td{background:var(--surface);color:var(--text);font-weight:500}
.si-table tr:nth-child(even) td{background:#fafafa}
.si-table tr:hover td{background:rgba(1,193,193,.05);transition:background .15s}
.si-table tr:last-child th,.si-table tr:last-child td{border-bottom:none}

/* Editorial content */
.si-editorial h2{font-size:1.35rem;font-weight:800;color:var(--text);border-left:3px solid var(--c-teal);padding-left:.75rem;margin:2rem 0 .65rem;line-height:1.2;word-break:break-word;overflow-wrap:break-word}
.si-editorial h2:first-child{margin-top:0}
.si-editorial h3{font-size:1.11rem;font-weight:700;color:#333;margin:1.4rem 0 .4rem;word-break:break-word}
.si-editorial h4{font-size:1.03rem;font-weight:700;color:#333;margin:1.2rem 0 .35rem;word-break:break-word}
.si-editorial p{font-size:1.03rem;line-height:1.85;color:#4a4a4a;margin-bottom:1rem;word-break:break-word;overflow-wrap:break-word}
.si-editorial ul{margin:.5rem 0 1.2rem;padding:0}
.si-editorial ul li{position:relative;display:block;padding:.45rem 0 .45rem 1.2rem;font-size:1.00rem;line-height:1.75;color:#444;border-bottom:1px solid rgba(0,0,0,.04)}
.si-editorial ul li::before{content:'';position:absolute;left:0;top:.78rem;width:7px;height:7px;border-radius:50%;background:var(--c-teal)}
.si-editorial strong{color:var(--text);font-weight:700}
/* Tabelas geradas pela IA dentro do editorial — responsive */
.si-editorial table{width:100%;border-collapse:collapse;font-size:.88rem;margin:1rem 0;border-radius:var(--radius);overflow:hidden}
.si-editorial table td,.si-editorial table th{padding:.6rem .9rem;border:1px solid var(--border);vertical-align:top;word-break:break-word;overflow-wrap:break-word;min-width:0}
.si-editorial table th{background:rgba(1,193,193,.05);font-weight:700;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.si-editorial table td:first-child,.si-editorial table th:first-child{min-width:60px}

/* Callouts — titulo em destaque acima do texto */
/* Callout: flex-direction:column — label sempre ACIMA do texto, nunca ao lado */
.si-callout{border-radius:0 var(--radius) var(--radius) 0;padding:1rem 1.25rem;margin:1.5rem 0;font-size:.94rem;line-height:1.8;display:flex;flex-direction:column;gap:.35rem}
.si-callout-teal{background:rgba(1,193,193,.07);border-left:4px solid var(--c-teal)}
.si-callout-orange{background:rgba(236,139,14,.10);border-left:4px solid var(--c-orange)}
/* Label: bloco completo acima, texto flui normalmente abaixo */
.si-callout strong,.si-callout b{display:block;width:100%;font-size:.78rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--c-orange);margin-bottom:.15rem;line-height:1.2}
.si-callout-teal strong,.si-callout-teal b{color:var(--c-teal-dk)}
/* Remove herança de flex de divs filhos — texto ocupa largura total */
.si-callout>div,.si-callout iconify-icon{display:block;width:100%}
/* Editorial: strong/b isolados em parágrafo = texto normal, sem destaque laranja */
.si-editorial p>strong:first-child:last-child,.si-editorial p>b:first-child:last-child{
  display:inline;background:none;border:none;padding:0;color:inherit;
  font-size:inherit;text-transform:none;letter-spacing:normal;margin-bottom:0
}

/* FAQ */
.si-faq-item{padding:1.25rem 0;border-bottom:1px solid var(--border)}
.si-faq-item:last-child{border-bottom:none}
.si-faq-q{font-size:1rem;font-weight:700;color:var(--text);display:flex;align-items:flex-start;gap:.65rem;margin-bottom:.6rem}
.si-faq-q-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;min-width:22px;border-radius:50%;background:var(--c-teal);color:#fff;font-size:.68rem;font-weight:800;flex-shrink:0;margin-top:.1rem}
.si-faq-a{font-size:.91rem;line-height:1.8;color:var(--muted);padding-left:2.1rem;margin:0}

/* Use cases */
.si-usecase{background:var(--surface);border-left:4px solid var(--c-teal);border-radius:0 var(--radius) var(--radius) 0;padding:1.25rem 1.1rem;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column;gap:.75rem}
.si-usecase:hover{transform:translateY(-3px);box-shadow:var(--shadow-hv)}
.si-usecase-orange{border-left-color:var(--c-orange)}
.si-usecase-blue{border-left-color:var(--c-blue)}

/* Kit */
.si-kit-list{display:flex;flex-direction:column;gap:.55rem}
.si-kit-item{display:flex;align-items:center;gap:.85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem;transition:border-color .2s,box-shadow .2s}
.si-kit-item:hover{border-color:var(--c-teal);box-shadow:0 4px 16px rgba(1,193,193,.1)}
.si-kit-thumb{width:60px;height:60px;min-width:60px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;background:var(--bg)}

/* Gallery */
.si-gallery{display:grid;gap:.6rem}
.si-gallery-item{aspect-ratio:1/1;border-radius:var(--radius);overflow:hidden;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;background:var(--bg)}
.si-gallery-item:hover{transform:scale(1.04);box-shadow:var(--shadow-hv)}
.si-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.si-gallery-item:hover img{transform:scale(1.08)}

/* ─── BUTTONS ───────────────────────────────────────────────────── */
.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:var(--c-teal)!important;color:#fff!important;font-family:'Rubik',sans-serif;font-weight:700;font-size:.88rem;text-transform:uppercase;letter-spacing:.06em;padding:.85rem 2.2rem;border-radius:9999px;border:none!important;cursor:pointer;text-decoration:none!important;transition:background .2s,transform .2s,box-shadow .2s;-webkit-text-fill-color:#fff}
.btn-primary:hover{background:var(--c-teal-dk)!important;transform:translateY(-2px);box-shadow:0 10px 28px rgba(1,193,193,.3);color:#fff!important}
/* btn-secondary: borda visivel em qualquer fundo (inclusive branco/claro) */
.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;background:rgba(0,0,0,.04);color:var(--text);font-family:'Rubik',sans-serif;font-weight:700;font-size:.88rem;text-transform:uppercase;letter-spacing:.06em;padding:.85rem 2.2rem;border-radius:9999px;border:1.5px solid rgba(0,0,0,.22);cursor:pointer;text-decoration:none;transition:border-color .2s,color .2s,background .2s,box-shadow .2s}
.btn-secondary:hover{border-color:var(--c-teal);color:var(--c-teal);background:rgba(1,193,193,.05);box-shadow:var(--shadow-sm)}

.gsap-up{opacity:0}
.magnetic-btn{display:inline-block;cursor:pointer}
.si-desc .grid{min-width:0}
.si-editorial-content{min-width:0;overflow-wrap:break-word;word-break:break-word}

/* =====================================================================
   TAILWIND CDN COMPAT — custom color tokens
   ===================================================================== */
.text-cTeal{color:var(--c-teal)!important}
.text-cBlue{color:var(--c-blue)!important}
.text-cOrange{color:var(--c-orange)!important}
.text-cSky{color:var(--c-sky)!important}
.text-cBlueDk{color:var(--c-blue-dk)!important}
.text-textMain{color:var(--text)!important}
.text-textMuted{color:var(--muted)!important}
.text-textLight{color:#8a8a8a!important}
.bg-surface{background:var(--surface)!important}
.bg-bg{background:var(--bg)!important}
.border-borderLt{border-color:rgba(0,0,0,.08)!important}
.shadow-sm{box-shadow:0 1px 4px rgba(0,0,0,.06)!important}
.font-semibold{font-weight:600!important}

/* =====================================================================
   LAYOUT
   ===================================================================== */
.si-sec-header{text-align:center;margin-bottom:2.5rem}
.si-sec-header .si-label{display:inline-flex!important;align-items:center;justify-content:center}
@media(max-width:600px){
.si-sec-header{text-align:left!important}
.si-sec-header .si-label{justify-content:flex-start!important;display:flex!important}
.si-sec-header .si-heading{text-align:left!important}
.si-sec-header .si-subheading{text-align:left!important;margin-left:0!important;margin-right:0!important}
}
.si-trust-strip{display:flex;flex-wrap:wrap;justify-content:center}
.si-specs-table{min-width:0}
.si-specs-feature-card{margin-top:1.5rem}
/* CTA inner — background vem via inline style (gradiente claro) */
.si-cta-inner{border-radius:var(--radius-xl);padding:3.5rem 2rem;text-align:center}
.si-guarantees{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:center}
.si-guarantee-item{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--muted);font-weight:500}
.si-sidebar-inner{min-width:0}
/* Sidebar stats cards — maiores e mais claros */
.si-sidebar .fl-card{background:#fff!important;min-height:72px}
.si-sidebar .fl-card .font-bold.text-textMain.text-sm{font-size:1.05rem!important;font-weight:800!important}
.si-sidebar .fl-card .text-\[9px\]{font-size:.72rem!important}
.si-sidebar .fl-card .icon-box{width:46px!important;height:46px!important}

/* =====================================================================
   RESPONSIVE — TABLET (<=1024px)
   ===================================================================== */
@media(max-width:1024px){
.si-benefits-grid{grid-template-columns:repeat(2,1fr)}
.si-uc-grid{grid-template-columns:repeat(2,1fr)}
.si-gal-grid{grid-template-columns:repeat(3,1fr)}
}

/* =====================================================================
   RESPONSIVE — MEDIUM (<=900px)
   ===================================================================== */
@media(max-width:900px){
.si-container{padding:0 1.25rem}
.si-section{padding:2.5rem 0}
.si-heading{font-size:clamp(1.3rem,4vw,1.9rem)}
.si-subheading{font-size:.94rem}
}

/* =====================================================================
   RESPONSIVE — MOBILE (<=600px)
   Remove o padding do WooCommerce e reaplica o proprio
   ===================================================================== */
@media(max-width:600px){
/* --- LARGURA FULL: container Elementor ja e 100vw no mobile ---
   NAO usar breakout (left:50%/margin-left:-50vw/width:100vw) pois
   dentro de um flex-column do Elementor o overflow horizontal e
   computado como altura vertical, gerando height absurdo (~16334px).
   O container .elementor-shortcode ja ocupa 100% da viewport. ------- */
.si-desc{
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  position:static!important;
  left:auto!important;
  margin-left:0!important;
  padding:0!important;
  overflow-x:hidden;
  padding-bottom:0!important;
}
.si-desc .si-container{
  width:100%!important;
  max-width:100vw!important;
  padding:0 16px!important;
  box-sizing:border-box!important;
}
/* Reset padding de containers Elementor/WooCommerce */
.elementor-widget-container,.elementor-text-editor,.woocommerce-Tabs-panel,#tab-description{
  padding:0!important;margin:0!important;
}
/* Reaplica padding interno consistente */
.si-container{padding:0 16px!important;max-width:100%!important;box-sizing:border-box!important}
.si-section{padding:1.75rem 0}

/* Tipografia */
.si-heading{font-size:1.3rem!important;line-height:1.2}
.si-subheading{font-size:.88rem}
.si-label{font-size:.6rem}

/* Editorial */
.si-editorial h2{font-size:1.05rem;padding-left:.6rem;margin-top:1.75rem}
.si-editorial h3{font-size:1.01rem}
.si-editorial p{font-size:.94rem;margin-bottom:.9rem}
/* Tabelas da IA no editorial — scroll horizontal */
.si-editorial table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:normal;min-width:0;font-size:.8rem}
.si-editorial table td,.si-editorial table th{padding:.45rem .6rem;min-width:70px}
.si-editorial table td:first-child,.si-editorial table th:first-child{min-width:70px;max-width:110px;white-space:normal}
.si-callout{padding:.75rem .9rem;font-size:.84rem;margin:1.1rem 0}

/* Specs table */
.si-table th,.si-table td{padding:.6rem .7rem;font-size:.78rem}
.si-table th{width:42%}

/* Trust strip */
.si-trust-strip{gap:.5rem!important;padding:0!important}
.si-trust-strip>div{flex:1 1 calc(50% - .5rem);min-width:130px}

/* Kit — imagem hero do kit: altura fixa 460px so no desktop */
.si-kit-img img,.si-kit-img>div{height:auto!important;max-height:260px!important;object-fit:cover}
.si-kit-item{padding:.7rem .75rem;gap:.6rem}
.si-kit-thumb{width:48px;height:48px;min-width:48px}

/* Galeria — em mobile height:100% pode causar problema sem aspect-ratio */
.si-gal-grid .si-gallery-item{height:auto!important}
.si-gal-grid .si-gallery-item img{width:100%!important;height:auto!important;object-fit:cover}

/* Garante que nenhum fl-card herde height externo (via JS de temas) */
.si-desc .fl-card{height:auto!important}

/* FAQ */
.si-faq-content .fl-card{padding:1rem!important;border-radius:var(--radius)!important}
.si-faq-q{font-size:.88rem;gap:.5rem}
.si-faq-a{font-size:.81rem;padding-left:1.6rem;line-height:1.65}

/* CTA */
.si-cta-inner{padding:1.75rem 1rem!important;border-radius:12px!important;margin:0}
.si-cta-inner .flex.flex-wrap.gap-4{flex-direction:column!important;gap:.75rem!important;align-items:stretch!important;width:100%}
.si-cta-inner .magnetic-btn{display:block!important;width:100%}
.si-cta-inner .magnetic-btn a{display:flex!important;justify-content:center!important;width:100%!important;box-sizing:border-box!important}

/* Garantias CTA — 2 colunas no mobile */
.si-cta-inner .flex.flex-wrap.justify-center.gap-5{gap:.5rem .75rem!important}

/* Buttons */
.btn-primary,.btn-primary:link,.btn-primary:visited{color:#fff!important;-webkit-text-fill-color:#fff!important;background-color:var(--c-teal)!important;font-size:.84rem!important;padding:.85rem 1.5rem!important}
.btn-secondary,.btn-secondary:link,.btn-secondary:visited{color:#1a1a1b!important;-webkit-text-fill-color:#1a1a1b!important;font-size:.84rem!important;padding:.85rem 1.5rem!important;border:1.5px solid rgba(0,0,0,.25)!important;background:rgba(0,0,0,.04)!important}

/* Sidebar cards no mobile — sem sticky */
.lg\:col-span-4 .sticky,.sticky.top-6{position:static!important}
/* Sidebar stats: 2 colunas */
.si-sidebar .space-y-3{display:grid!important;grid-template-columns:1fr 1fr!important;gap:.5rem!important}
.si-sidebar .space-y-3>*{margin-top:0!important}
/* Sidebar card text maior no mobile */
.si-sidebar .fl-card .font-bold.text-textMain.text-sm{font-size:.95rem!important}

/* --- FIX: elimina espaco em branco abaixo do ultimo card CTA ------
   IMPORTANTE: NAO usar overflow:hidden nos containers pai pois isso
   clipa o breakout width:100vw do .si-desc tornando o layout estreito.
   Solucao: zerar padding/margin em todos os wrappers WC/Elementor. --- */
.si-section:last-child{padding-bottom:0!important;margin-bottom:0!important}
#si-cta{padding-bottom:0!important;margin-bottom:0!important}
.woocommerce-Tabs-panel,#tab-description,.woocommerce-tab--description,
.woocommerce-tabs,.wc-tab,.entry-content,
.elementor-widget-container,.elementor-text-editor{
  padding-bottom:0!important;margin-bottom:0!important;
}
}

/* Links internos de categoria injetados nas keywords da descricao editorial */
.si-kw-link{color:inherit;text-decoration:underline;text-decoration-color:rgba(1,193,193,.4);text-underline-offset:2px;transition:text-decoration-color .2s}
.si-kw-link:hover{text-decoration-color:var(--c-teal);color:var(--c-teal)}

/* INTRO GEO / AI-FRIENDLY LEDE
   Primeiro paragrafo visivel da pagina, ANTES de qualquer H2.
   Responde: O que e / Para que serve / Para quem.
   Indexado por LLMs (ChatGPT, Gemini, Perplexity) e Google SGE. */
.si-geo-intro{
  padding:1.5rem 0 .5rem;
}
.si-geo-intro-text{
  font-size:1.05rem;
  line-height:1.75;
  color:var(--c-text-muted,#64748b);
  max-width:780px;
  margin:0 auto;
  text-align:center;
  font-style:italic;
}
@media(max-width:600px){
.si-geo-intro{padding:1rem 0 .25rem}
.si-geo-intro-text{font-size:.95rem;text-align:left}
}
