/*
Theme Name: Baluarte Studios — Elementor Edition
Theme URI: https://baluartestudios.com.br/
Author: Baluarte Studios
Description: Tema oficial do Baluarte Studios com integração nativa ao Elementor e ao sistema de agendamento.
Version: 4.6.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: baluarte-studios
*/
:root{
  --bg:#05070a;--surface:#0d1117;--surface2:#121923;--line:#222c38;
  --text:#f7f9fc;--muted:#98a6b7;--pink:#ff2c8b;--cyan:#21d9ff;
  --purple:#7a35ff;--yellow:#ffce34;--max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--text);background:
  radial-gradient(circle at 82% 5%,rgba(255,44,139,.10),transparent 24%),
  radial-gradient(circle at 15% 12%,rgba(33,217,255,.08),transparent 25%),
  var(--bg);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.55
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.bs-container{width:min(var(--max),calc(100% - 40px));margin:auto}
.bs-header{
  position:sticky;top:0;z-index:999;background:rgba(5,7,10,.86);
  backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.06)
}
body.admin-bar .bs-header{top:32px}
.bs-nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.bs-brand{display:flex;align-items:center;gap:12px}
.bs-brand img{width:52px;height:52px;border-radius:13px;object-fit:cover}
.bs-brand-copy{display:flex;flex-direction:column;line-height:1}
.bs-brand-copy strong{font-size:.86rem;letter-spacing:.14em}
.bs-brand-copy span{font-size:.65rem;letter-spacing:.34em;color:var(--pink);margin-top:6px}
.bs-menu{display:flex;align-items:center;gap:27px;font-size:.92rem}
.bs-menu>a:not(.bs-nav-cta){color:#cad2dd}
.bs-menu .menu-item{list-style:none;margin:0;padding:0}
.bs-menu .menu-item>a{color:#cad2dd}
.bs-menu .current-menu-item>a{color:#fff}
.bs-nav-cta,.bs-btn-primary{
  background:linear-gradient(135deg,var(--pink),var(--purple));color:white!important;
  box-shadow:0 10px 35px rgba(255,44,139,.17)
}
.bs-nav-cta{padding:11px 18px;border-radius:12px;font-weight:850}
.bs-menu-button{display:none;border:0;background:transparent;color:white;font-size:1.6rem}
.bs-hero{position:relative;overflow:hidden;min-height:690px;display:flex;align-items:center}
.bs-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center;padding:74px 0 92px}
.bs-eyebrow{font-size:.71rem;letter-spacing:.28em;color:var(--cyan);font-weight:900;margin-bottom:12px}
.bs-hero h1{font-size:clamp(3.7rem,7.8vw,6.8rem);line-height:.88;letter-spacing:-.065em;margin:0 0 28px}
.bs-hero h1 span{background:linear-gradient(90deg,var(--pink),#ff81be,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.bs-hero p{max-width:650px;color:#b6c1cf;font-size:1.1rem;margin:0 0 29px}
.bs-actions{display:flex;gap:11px;flex-wrap:wrap}
.bs-btn{min-height:52px;padding:0 22px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-weight:850;border:1px solid transparent;transition:.2s}
.bs-btn:hover{transform:translateY(-2px)}
.bs-btn-secondary{background:#10151d;border-color:#303a48}
.bs-btn-wide{width:100%}
.bs-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:25px}
.bs-pills span{font-size:.8rem;color:#b1bdca;border:1px solid #28323e;border-radius:999px;padding:8px 11px;background:rgba(255,255,255,.025)}
.bs-hero-logo{
  overflow:hidden;border:1px solid rgba(255,255,255,.09);border-radius:32px;
  box-shadow:0 30px 90px rgba(0,0,0,.42),0 0 70px rgba(33,217,255,.07)
}
.bs-hero-logo img{width:100%;aspect-ratio:16/9;object-fit:cover}
.bs-section{padding:95px 0}
.bs-section-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:36px}
.bs-section-head h2,.bs-cast h2,.bs-contact h2,.bs-cta h2{font-size:clamp(2.1rem,4vw,3.45rem);letter-spacing:-.045em;line-height:1;margin:0}
.bs-section-head p{max-width:430px;margin:0;color:var(--muted)}
.bs-services{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.bs-service{
  display:flex;flex-direction:column;min-height:305px;padding:25px;border:1px solid var(--line);
  border-radius:23px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.011));transition:.2s
}
.bs-service:hover{transform:translateY(-4px);border-color:#39485a}
.bs-service.featured{border-color:rgba(255,44,139,.35);box-shadow:inset 0 0 45px rgba(255,44,139,.035)}
.bs-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#151c26;color:var(--cyan);font-size:1.4rem;margin-bottom:24px}
.bs-service h3{font-size:1.25rem;margin:0 0 9px}
.bs-service p{color:var(--muted);margin:0 0 20px}
.bs-price{margin-top:auto;display:flex;gap:8px;align-items:baseline}
.bs-price strong{font-size:1.72rem}.bs-price span{color:var(--muted);font-size:.82rem}
.bs-service>a{margin-top:17px;color:var(--cyan);font-weight:800}
.bs-cast-mini{height:70px;max-width:180px;object-fit:contain;object-position:left center;margin-bottom:12px}
.bs-cast{background:linear-gradient(115deg,rgba(122,53,255,.10),rgba(255,206,52,.035),rgba(255,44,139,.045));border-block:1px solid rgba(255,255,255,.055)}
.bs-cast-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:65px;align-items:center}
.bs-cast-art{background:white;border-radius:28px;padding:30px;min-height:390px;display:grid;place-items:center}
.bs-cast-art img{max-height:310px;object-fit:contain}
.bs-cast p{color:#b6c1cf;max-width:620px;font-size:1.07rem}
.bs-cast-price{font-size:2rem;font-weight:900;margin:23px 0}.bs-cast-price span{font-size:.9rem;font-weight:600;color:var(--muted)}
.bs-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.bs-step{padding:23px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.bs-step>span{font-size:.73rem;color:var(--pink);font-weight:900;letter-spacing:.16em}
.bs-step h3{margin:20px 0 8px}.bs-step p{margin:0;color:var(--muted)}
.bs-cta{margin-top:46px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:32px;border:1px solid rgba(33,217,255,.19);border-radius:28px;background:linear-gradient(130deg,rgba(33,217,255,.065),rgba(122,53,255,.075))}
.bs-cta p{margin:10px 0 0;color:var(--muted)}
.bs-contact{background:#080b10}
.bs-contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:65px;align-items:center}
.bs-lead{color:var(--muted);font-size:1.06rem}
.bs-contact-list{display:grid;gap:12px;margin-top:27px}
.bs-contact-list>a,.bs-contact-list>div{display:flex;flex-direction:column;padding-bottom:13px;border-bottom:1px solid var(--line)}
.bs-contact-list b{font-size:.78rem;color:var(--cyan);letter-spacing:.08em}.bs-contact-list span{margin-top:4px}
.bs-contact-card{padding:32px;text-align:center;border:1px solid var(--line);border-radius:25px;background:var(--surface)}
.bs-contact-card img{width:105px;height:105px;object-fit:cover;border-radius:22px;margin:0 auto 20px}
.bs-contact-card h3{font-size:1.5rem;margin:0 0 8px}.bs-contact-card p{color:var(--muted);margin:0 0 23px}
.bs-content{padding:70px 0;min-height:55vh}.bs-content article{max-width:850px;margin:auto}.bs-content h1{font-size:clamp(2.2rem,5vw,4rem)}
.bs-footer{border-top:1px solid rgba(255,255,255,.06);padding:30px 0 42px;background:#05070a}
.bs-footer-grid{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.bs-footer-brand{display:flex;align-items:center;gap:12px}.bs-footer-brand img{width:45px;height:45px;object-fit:cover;border-radius:11px}
.bs-footer-brand div{display:flex;flex-direction:column}.bs-footer-brand span,.bs-footer small{font-size:.79rem;color:var(--muted)}
.bs-footer-links{display:flex;gap:20px;font-size:.84rem;color:#c6cfda}
.bs-footer-links .menu-item{list-style:none;margin:0;padding:0}
.bs-footer small{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.05);padding-top:19px}
.bs-mobile-book{display:none}
@media(max-width:900px){
 body.admin-bar .bs-header{top:46px}
 .bs-menu{position:absolute;top:78px;left:20px;right:20px;display:none;flex-direction:column;align-items:stretch;gap:4px;padding:15px;border:1px solid var(--line);border-radius:17px;background:#0b0f15}
 .bs-menu.open{display:flex}.bs-menu a{padding:12px 10px}.bs-menu-button{display:block}
 .bs-hero{min-height:auto}.bs-hero-grid,.bs-cast-grid,.bs-contact-grid{grid-template-columns:1fr}.bs-hero-grid{padding:62px 0}.bs-hero-logo{order:-1}
 .bs-services{grid-template-columns:repeat(2,1fr)}.bs-steps{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
 .bs-container{width:min(100% - 28px,var(--max))}.bs-hero-logo{display:none}.bs-hero h1{font-size:3.45rem}.bs-actions .bs-btn{width:100%}
 .bs-section{padding:70px 0}.bs-section-head{display:block}.bs-section-head p{margin-top:15px}
 .bs-services,.bs-steps{grid-template-columns:1fr}.bs-service{min-height:auto}.bs-cast-art{min-height:250px;padding:20px}
 .bs-cta{display:block;padding:25px}.bs-cta .bs-btn{width:100%;margin-top:20px}
 .bs-footer-grid{grid-template-columns:1fr}.bs-footer-links{flex-wrap:wrap}
 body{padding-bottom:72px}.bs-mobile-book{display:flex;position:fixed;z-index:1000;left:14px;right:14px;bottom:12px;height:54px;align-items:center;justify-content:center;border-radius:15px;background:linear-gradient(135deg,var(--pink),var(--purple));font-weight:900;box-shadow:0 14px 35px rgba(0,0,0,.4)}
}


/* ==========================================================
   ELEMENTOR EDITION 4.0
   Classes abaixo permitem que o layout inicial use widgets
   nativos do Elementor sem perder a identidade do tema.
   ========================================================== */
.bs-elementor-page{width:100%;overflow:hidden}
.bs-elementor-page .elementor{width:100%}
.bs-elementor-page .elementor-widget-text-editor p:last-child{margin-bottom:0}

/* Botões nativos Elementor com visual Baluarte */
.elementor-element.bs-btn-widget .elementor-button{
  min-height:52px;padding:0 22px;border-radius:14px;display:inline-flex;align-items:center;
  justify-content:center;font-weight:850;border:1px solid transparent;transition:.2s;box-shadow:none
}
.elementor-element.bs-btn-widget .elementor-button:hover{transform:translateY(-2px)}
.elementor-element.bs-btn-primary-widget .elementor-button{
  background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;
  box-shadow:0 10px 35px rgba(255,44,139,.17)
}
.elementor-element.bs-btn-secondary-widget .elementor-button{background:#10151d;border-color:#303a48;color:#fff}
.elementor-element.bs-service-link .elementor-button{
  min-height:auto;padding:0;background:transparent;color:var(--cyan);font-weight:800;border:0;justify-content:flex-start
}
.elementor-element.bs-service-link .elementor-button:hover{background:transparent;color:#8beeff;transform:none}

/* Pequenos ajustes para wrappers dos widgets */
.elementor-element.bs-eyebrow .elementor-heading-title,
.elementor-element.bs-eyebrow .elementor-widget-container{font:inherit;color:inherit;letter-spacing:inherit}
.bs-service .elementor-widget-text-editor p{color:var(--muted);margin:0}
.bs-service .elementor-widget-heading h3{font-size:1.25rem;margin:0}
.bs-price-el{display:flex!important;align-items:baseline!important;gap:8px!important;margin-top:auto}
.bs-price-el .elementor-widget-heading{width:auto!important}
.bs-price-el .elementor-heading-title{font-size:1.72rem!important;line-height:1!important}
.bs-price-el .elementor-widget-text-editor{width:auto!important;color:var(--muted);font-size:.82rem}
.bs-actions .elementor-widget-button{width:auto!important}
.bs-pills .elementor-widget-text-editor{width:auto!important}
.bs-pills .elementor-widget-text-editor .elementor-widget-container{
  font-size:.8rem;color:#b1bdca;border:1px solid #28323e;border-radius:999px;padding:8px 11px;background:rgba(255,255,255,.025)
}
.bs-step .elementor-widget-heading:first-child .elementor-heading-title{font-size:.73rem;color:var(--pink);font-weight:900;letter-spacing:.16em}
.bs-contact-list .elementor-widget-text-editor{padding-bottom:13px;border-bottom:1px solid var(--line)}
.bs-contact-list .elementor-widget-text-editor b{font-size:.78rem;color:var(--cyan);letter-spacing:.08em}

/* Remove margens impostas por temas/padrões em páginas Elementor */
.elementor-page .entry-content{margin:0}
.elementor-page .bs-elementor-page>p:empty{display:none}
.baluarte-elementor-canvas{margin:0;background:var(--bg)}

@media(max-width:620px){
  .bs-actions .elementor-widget-button{width:100%!important}
  .bs-actions .elementor-button{width:100%}
}

/* ==========================================================
   ELEMENTOR EDITION 4.1 — CORREÇÃO DE LAYOUT
   Elementor usa "css_classes" em Containers e pode aplicar
   regras de Flexbox depois do CSS do tema. Estas regras tornam
   a composição Baluarte previsível no frontend e no editor.
   ========================================================== */
.bs-elementor-page .e-con{
  --padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;
  --gap:0px;
}
.bs-elementor-page .elementor-element.bs-container.e-con{
  width:min(var(--max),calc(100% - 40px))!important;
  max-width:var(--max)!important;
  margin-left:auto!important;margin-right:auto!important;
}
.bs-elementor-page .elementor-element.bs-hero.e-con{
  display:flex!important;min-height:690px;align-items:center!important;
  overflow:hidden;position:relative;
}
.bs-elementor-page .elementor-element.bs-hero-grid.e-con{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:65px!important;align-items:center!important;padding:74px 0 92px!important;
}
.bs-elementor-page .elementor-element.bs-actions.e-con{
  display:flex!important;flex-direction:row!important;gap:11px!important;flex-wrap:wrap!important;
}
.bs-elementor-page .elementor-element.bs-pills.e-con{
  display:flex!important;flex-direction:row!important;gap:8px!important;flex-wrap:wrap!important;margin-top:25px!important;
}
.bs-elementor-page .elementor-element.bs-section.e-con{padding:95px 0!important}
.bs-elementor-page .elementor-element.bs-section-head.e-con{
  display:flex!important;flex-direction:row!important;justify-content:space-between!important;
  align-items:flex-end!important;gap:25px!important;margin-bottom:36px!important;
}
.bs-elementor-page .elementor-element.bs-services.e-con{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:15px!important;
}
.bs-elementor-page .elementor-element.bs-service.e-con{
  display:flex!important;flex-direction:column!important;min-height:305px!important;padding:25px!important;
}
.bs-elementor-page .elementor-element.bs-cast-grid.e-con{
  display:grid!important;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;
  gap:65px!important;align-items:center!important;
}
.bs-elementor-page .elementor-element.bs-cast-art.e-con{padding:30px!important;display:grid!important;place-items:center!important}
.bs-elementor-page .elementor-element.bs-steps.e-con{
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;
}
.bs-elementor-page .elementor-element.bs-step.e-con{padding:23px!important}
.bs-elementor-page .elementor-element.bs-cta.e-con{
  display:flex!important;flex-direction:row!important;align-items:center!important;
  justify-content:space-between!important;gap:24px!important;padding:32px!important;
}
.bs-elementor-page .elementor-element.bs-contact-grid.e-con{
  display:grid!important;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important;
  gap:65px!important;align-items:center!important;
}
.bs-elementor-page .elementor-element.bs-contact-list.e-con{display:grid!important;gap:12px!important;margin-top:27px!important}
.bs-elementor-page .elementor-element.bs-contact-card.e-con{padding:32px!important}

/* Tipografia: neutraliza Global Colors/Fonts do Elementor no layout inicial. */
.bs-elementor-page .bs-hero .elementor-widget-heading h1.elementor-heading-title{
  color:var(--text)!important;font-family:inherit!important;
  font-size:clamp(3.7rem,7.8vw,6.8rem)!important;line-height:.88!important;
  letter-spacing:-.065em!important;font-weight:800!important;margin:0!important;
}
.bs-elementor-page .bs-hero .elementor-widget-heading h1.elementor-heading-title span{
  background:linear-gradient(90deg,var(--pink),#ff81be,var(--cyan));
  -webkit-background-clip:text;background-clip:text;color:transparent!important;
}
.bs-elementor-page .elementor-element.bs-eyebrow .elementor-heading-title{
  color:var(--cyan)!important;font-family:inherit!important;font-size:.71rem!important;
  line-height:1.3!important;letter-spacing:.28em!important;font-weight:900!important;
}
.bs-elementor-page .bs-section-head .elementor-heading-title,
.bs-elementor-page .bs-cast .elementor-widget-heading h2.elementor-heading-title,
.bs-elementor-page .bs-contact .elementor-widget-heading h2.elementor-heading-title,
.bs-elementor-page .bs-cta .elementor-widget-heading h2.elementor-heading-title{
  color:var(--text)!important;font-family:inherit!important;
}
.bs-elementor-page .bs-service .elementor-widget-heading h3.elementor-heading-title,
.bs-elementor-page .bs-step .elementor-widget-heading h3.elementor-heading-title{
  color:var(--text)!important;font-family:inherit!important;
}
.bs-elementor-page .elementor-widget-text-editor{font-family:inherit}

@media(max-width:900px){
  .bs-elementor-page .elementor-element.bs-hero.e-con{min-height:auto}
  .bs-elementor-page .elementor-element.bs-hero-grid.e-con,
  .bs-elementor-page .elementor-element.bs-cast-grid.e-con,
  .bs-elementor-page .elementor-element.bs-contact-grid.e-con{grid-template-columns:1fr!important}
  .bs-elementor-page .elementor-element.bs-hero-grid.e-con{padding:62px 0!important}
  .bs-elementor-page .elementor-element.bs-hero-logo.e-con{order:-1}
  .bs-elementor-page .elementor-element.bs-services.e-con{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .bs-elementor-page .elementor-element.bs-steps.e-con{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
  .bs-elementor-page .elementor-element.bs-container.e-con{width:min(100% - 28px,var(--max))!important}
  .bs-elementor-page .elementor-element.bs-hero-logo.e-con{display:none!important}
  .bs-elementor-page .bs-hero .elementor-widget-heading h1.elementor-heading-title{font-size:3.45rem!important}
  .bs-elementor-page .elementor-element.bs-section.e-con{padding:70px 0!important}
  .bs-elementor-page .elementor-element.bs-section-head.e-con{display:block!important}
  .bs-elementor-page .elementor-element.bs-services.e-con,
  .bs-elementor-page .elementor-element.bs-steps.e-con{grid-template-columns:1fr!important}
  .bs-elementor-page .elementor-element.bs-service.e-con{min-height:auto!important}
  .bs-elementor-page .elementor-element.bs-cast-art.e-con{min-height:250px!important;padding:20px!important}
  .bs-elementor-page .elementor-element.bs-cta.e-con{display:block!important;padding:25px!important}
}



/* ==========================================================
   ELEMENTOR EDITION 4.2 — FULL WIDTH NATIVO / FALLBACK BOXED
   O Elementor usa content_width=boxed por padrão e cria um
   .e-con-inner. O instalador 4.2 grava Full Width nativamente;
   estas regras também corrigem páginas 4.0/4.1 ainda em cache.
   ========================================================== */
.bs-elementor-page .e-con{width:100%;max-width:none}
.bs-elementor-page .e-con > .e-con-inner{width:100%;max-width:100%}

/* Se um cache antigo ainda renderizar e-con-inner, o wrapper interno
   passa a assumir exatamente o layout que o container externo deveria ter. */
.bs-elementor-page .bs-hero-grid > .e-con-inner{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:65px!important;align-items:center!important;width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-actions > .e-con-inner,
.bs-elementor-page .bs-pills > .e-con-inner{
  display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-actions > .e-con-inner{gap:11px!important}
.bs-elementor-page .bs-pills > .e-con-inner{gap:8px!important}
.bs-elementor-page .bs-section-head > .e-con-inner{
  display:flex!important;flex-direction:row!important;justify-content:space-between!important;
  align-items:flex-end!important;gap:25px!important;width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-services > .e-con-inner{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:15px!important;width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-service > .e-con-inner{
  display:flex!important;flex-direction:column!important;min-height:100%!important;width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-price-el > .e-con-inner{
  display:flex!important;flex-direction:row!important;align-items:baseline!important;gap:8px!important;
  width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-cast-grid > .e-con-inner{
  display:grid!important;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;
  gap:65px!important;align-items:center!important;width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-cast-art > .e-con-inner{
  display:grid!important;place-items:center!important;width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-steps > .e-con-inner{
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-cta > .e-con-inner{
  display:flex!important;flex-direction:row!important;align-items:center!important;
  justify-content:space-between!important;gap:24px!important;width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-contact-grid > .e-con-inner{
  display:grid!important;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important;
  gap:65px!important;align-items:center!important;width:100%!important;max-width:none!important
}
.bs-elementor-page .bs-contact-list > .e-con-inner{
  display:grid!important;gap:12px!important;width:100%!important;max-width:none!important
}

@media(max-width:900px){
  .bs-elementor-page .bs-hero-grid > .e-con-inner,
  .bs-elementor-page .bs-cast-grid > .e-con-inner,
  .bs-elementor-page .bs-contact-grid > .e-con-inner{grid-template-columns:1fr!important}
  .bs-elementor-page .bs-services > .e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .bs-elementor-page .bs-steps > .e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
  .bs-elementor-page .bs-section-head > .e-con-inner{display:block!important}
  .bs-elementor-page .bs-services > .e-con-inner,
  .bs-elementor-page .bs-steps > .e-con-inner{grid-template-columns:1fr!important}
  .bs-elementor-page .bs-cta > .e-con-inner{display:block!important}
}


/* ==========================================================
   ELEMENTOR EDITION 4.3 — ACABAMENTO VISUAL DOS SERVIÇOS
   Corrige cabeçalho, alinhamento vertical dos cards e o logo
   do Baluarte Cast dentro do card de serviço.
   ========================================================== */

/* Cabeçalho da seção: tudo alinhado à esquerda, sem texto "solto" à direita. */
.bs-elementor-page .elementor-element.bs-section-head.e-con,
.bs-elementor-page .bs-section-head > .e-con-inner{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:10px!important;
  margin-bottom:34px!important;
  overflow:visible!important;
}
.bs-elementor-page .bs-section-head .elementor-widget-heading,
.bs-elementor-page .bs-section-head .elementor-widget-text-editor{
  width:100%!important;
  max-width:760px!important;
}
.bs-elementor-page .bs-section-head .elementor-heading-title{
  line-height:1.08!important;
  padding-top:.08em!important;
  overflow:visible!important;
}
.bs-elementor-page .bs-section-head .elementor-widget-text-editor p{
  margin:0!important;
  max-width:720px!important;
  color:var(--muted)!important;
}

/* Cards: mesma altura, conteúdo protegido e CTA sempre no rodapé. */
.bs-elementor-page .elementor-element.bs-service.e-con,
.bs-elementor-page .bs-service > .e-con-inner{
  min-width:0!important;
  min-height:330px!important;
  height:100%!important;
  overflow:hidden!important;
}
.bs-elementor-page .elementor-element.bs-service.e-con{
  padding:25px!important;
}
.bs-elementor-page .bs-service .elementor-widget-heading,
.bs-elementor-page .bs-service .elementor-widget-text-editor,
.bs-elementor-page .bs-service .elementor-widget-image,
.bs-elementor-page .bs-service .elementor-widget-button{
  flex:0 0 auto!important;
  max-width:100%!important;
}
.bs-elementor-page .bs-service .elementor-widget-heading h3.elementor-heading-title{
  line-height:1.25!important;
  min-height:1.25em!important;
  overflow-wrap:anywhere;
}
.bs-elementor-page .bs-service > .elementor-widget-text-editor,
.bs-elementor-page .bs-service > .e-con-inner > .elementor-widget-text-editor{
  min-height:52px;
}
.bs-elementor-page .elementor-element.bs-price-el.e-con,
.bs-elementor-page .bs-price-el > .e-con-inner{
  margin-top:auto!important;
}
.bs-elementor-page .elementor-element.bs-service-link{
  margin-top:16px!important;
}
.bs-elementor-page .elementor-element.bs-service-link .elementor-button{
  white-space:normal!important;
  text-align:left!important;
  line-height:1.3!important;
}

/* Logo do Baluarte Cast no card: compacto, sem invadir título/descrição. */
.bs-elementor-page .elementor-element.bs-cast-mini{
  width:82px!important;
  max-width:82px!important;
  height:58px!important;
  max-height:58px!important;
  margin:0 0 14px 0!important;
  padding:5px!important;
  overflow:hidden!important;
  border-radius:12px!important;
  background:#fff!important;
  align-self:flex-start!important;
}
.bs-elementor-page .elementor-element.bs-cast-mini .elementor-widget-container{
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
.bs-elementor-page .elementor-element.bs-cast-mini img{
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
}

/* Evita que estilos globais do Elementor alterem a largura dos itens do grid. */
.bs-elementor-page .bs-services > .elementor-element,
.bs-elementor-page .bs-services > .e-con-inner > .elementor-element{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
}

@media(max-width:900px){
  .bs-elementor-page .elementor-element.bs-service.e-con,
  .bs-elementor-page .bs-service > .e-con-inner{min-height:320px!important}
}
@media(max-width:620px){
  .bs-elementor-page .elementor-element.bs-service.e-con,
  .bs-elementor-page .bs-service > .e-con-inner{min-height:auto!important}
  .bs-elementor-page .bs-service > .elementor-widget-text-editor,
  .bs-elementor-page .bs-service > .e-con-inner > .elementor-widget-text-editor{min-height:0}
}


/* ==========================================================
   ELEMENTOR EDITION 4.5 — ÍCONES E CARD BALUARTE CAST
   Ícones de serviço agora usam SVGs locais como widgets de
   imagem do Elementor, sem dependência de glifos/fontes.
   ========================================================== */

/* Ícones dos serviços: área fixa e SVG centralizado. */
.bs-elementor-page .elementor-element.bs-service-icon{
  width:48px!important;
  min-width:48px!important;
  max-width:48px!important;
  height:48px!important;
  min-height:48px!important;
  max-height:48px!important;
  margin:0 0 22px 0!important;
  padding:0!important;
  border-radius:14px!important;
  background:#151c26!important;
  overflow:hidden!important;
  align-self:flex-start!important;
  flex:0 0 48px!important;
}
.bs-elementor-page .elementor-element.bs-service-icon .elementor-widget-container{
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
}
.bs-elementor-page .elementor-element.bs-service-icon img{
  width:23px!important;
  height:23px!important;
  min-width:23px!important;
  max-width:23px!important;
  min-height:23px!important;
  max-height:23px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
}

/* Compatibilidade visual da home fallback (sem Elementor). */
.bs-service-icon-static{
  width:48px;height:48px;min-width:48px;min-height:48px;
  border-radius:14px;background:#151c26;display:flex;
  align-items:center;justify-content:center;margin-bottom:22px;
}
.bs-service-icon-static img{width:23px;height:23px;object-fit:contain;margin:0}

/* Card Baluarte Cast: logo em bloco próprio, sem sobreposição. */
.bs-elementor-page .elementor-element.bs-cast-mini{
  width:124px!important;
  min-width:124px!important;
  max-width:124px!important;
  height:78px!important;
  min-height:78px!important;
  max-height:78px!important;
  margin:0 0 18px 0!important;
  padding:8px 10px!important;
  border-radius:14px!important;
  background:#fff!important;
  overflow:hidden!important;
  align-self:flex-start!important;
  flex:0 0 78px!important;
  position:relative!important;
  inset:auto!important;
  z-index:1!important;
}
.bs-elementor-page .elementor-element.bs-cast-mini .elementor-widget-container{
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  margin:0!important;
  padding:0!important;
}
.bs-elementor-page .elementor-element.bs-cast-mini img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:62px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0 auto!important;
  position:static!important;
  transform:none!important;
}

/* Garante fluxo normal dos elementos dentro do card Podcast. */
.bs-elementor-page .bs-service .elementor-widget-image + .elementor-widget-heading,
.bs-elementor-page .bs-service .bs-cast-mini + .elementor-widget-heading{
  position:relative!important;
  z-index:2!important;
  margin-top:0!important;
  clear:both!important;
}
.bs-elementor-page .bs-service .elementor-widget-image{
  position:relative!important;
  top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;
  transform:none!important;
}

/* Logo Baluarte Cast também corrigida na home fallback. */
.bs-service > img.bs-cast-mini{
  width:124px;height:78px;max-width:124px;max-height:78px;
  object-fit:contain;object-position:center;background:#fff;
  padding:8px 10px;border-radius:14px;margin:0 0 18px 0;
}

@media(max-width:620px){
  .bs-elementor-page .elementor-element.bs-cast-mini{
    width:116px!important;min-width:116px!important;max-width:116px!important;
    height:74px!important;min-height:74px!important;max-height:74px!important;
  }
}

/* ==========================================================
   ELEMENTOR EDITION 4.5 — REFINO FINAL DOS CARDS DE SERVIÇO
   Ajusta os cards para o visual aprovado: ícones menores,
   card do Baluarte Cast compacto, tipografia mais equilibrada
   e layout fiel dentro do Elementor.
   ========================================================== */

/* Grid e cards */
.bs-services{gap:12px}
.bs-service{
  min-height:286px;
  padding:18px 18px 17px;
  border-radius:18px;
}
.bs-service.featured{border-color:rgba(255,44,139,.45);box-shadow:inset 0 0 36px rgba(255,44,139,.04)}
.bs-service h3{font-size:1.04rem;line-height:1.28;margin:0 0 10px}
.bs-service p{font-size:.95rem;line-height:1.55;margin:0 0 18px}
.bs-price strong{font-size:1.1rem;line-height:1}
.bs-price span{font-size:.74rem}
.bs-service>a{margin-top:14px;font-size:.92rem}

/* Compatibilidade com Elementor */
.bs-elementor-page .elementor-element.bs-services.e-con,
.bs-elementor-page .bs-services > .e-con-inner{gap:12px!important}
.bs-elementor-page .elementor-element.bs-service.e-con,
.bs-elementor-page .bs-service > .e-con-inner{
  min-height:286px!important;
  padding:18px 18px 17px!important;
  border-radius:18px!important;
}
.bs-elementor-page .bs-service .elementor-widget-heading h3.elementor-heading-title{
  font-size:1.04rem!important;
  line-height:1.28!important;
}
.bs-elementor-page .bs-service .elementor-widget-text-editor,
.bs-elementor-page .bs-service .elementor-widget-text-editor p{
  font-size:.95rem!important;
  line-height:1.55!important;
}
.bs-elementor-page .elementor-element.bs-price-el.e-con .elementor-heading-title,
.bs-elementor-page .bs-price-el > .e-con-inner .elementor-heading-title{
  font-size:1.1rem!important;
  line-height:1!important;
}
.bs-elementor-page .elementor-element.bs-price-el .elementor-widget-text-editor,
.bs-elementor-page .bs-price-el > .e-con-inner .elementor-widget-text-editor{
  font-size:.74rem!important;
}
.bs-elementor-page .elementor-element.bs-service-link{margin-top:14px!important}
.bs-elementor-page .elementor-element.bs-service-link .elementor-button{font-size:.92rem!important}

/* Ícones menores e mais proporcionais */
.bs-icon,
.bs-service-icon-static{
  width:36px;height:36px;min-width:36px;min-height:36px;
  border-radius:10px;margin-bottom:18px;
}
.bs-icon{font-size:1rem}
.bs-service-icon-static img{width:17px;height:17px}
.bs-elementor-page .elementor-element.bs-service-icon{
  width:36px!important;min-width:36px!important;max-width:36px!important;
  height:36px!important;min-height:36px!important;max-height:36px!important;
  border-radius:10px!important;margin:0 0 18px 0!important;flex:0 0 36px!important;
}
.bs-elementor-page .elementor-element.bs-service-icon img{
  width:17px!important;height:17px!important;min-width:17px!important;max-width:17px!important;
  min-height:17px!important;max-height:17px!important;
}

/* Card do Baluarte Cast no formato aprovado */
.bs-cast-mini,
.bs-service > img.bs-cast-mini{
  width:58px;height:46px;max-width:58px;max-height:46px;
  padding:4px 5px;border-radius:8px;margin:0 0 14px 0;
  object-position:center center;background:#fff;
}
.bs-elementor-page .elementor-element.bs-cast-mini{
  width:58px!important;min-width:58px!important;max-width:58px!important;
  height:46px!important;min-height:46px!important;max-height:46px!important;
  padding:4px 5px!important;border-radius:8px!important;
  margin:0 0 14px 0!important;flex:0 0 46px!important;
}
.bs-elementor-page .elementor-element.bs-cast-mini img{
  max-height:36px!important;width:auto!important;height:auto!important;
}

/* Mantém os cards bem proporcionais no mobile */
@media(max-width:900px){
  .bs-service,
  .bs-elementor-page .elementor-element.bs-service.e-con,
  .bs-elementor-page .bs-service > .e-con-inner{min-height:270px!important}
}
@media(max-width:620px){
  .bs-service,
  .bs-elementor-page .elementor-element.bs-service.e-con,
  .bs-elementor-page .bs-service > .e-con-inner{min-height:auto!important}
}


/* ==========================================================
   ELEMENTOR EDITION 4.6 — SERVIÇOS / PADRÃO VISUAL APROVADO
   Mantém a seção fiel ao layout de referência e resistente
   aos estilos globais do Elementor. Todos os conteúdos seguem
   em widgets nativos e permanecem editáveis visualmente.
   ========================================================== */

/* Grid 3x2 e geometria dos cards. */
.bs-services,
.bs-elementor-page .elementor-element.bs-services.e-con,
.bs-elementor-page .bs-services > .e-con-inner{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}
.bs-service,
.bs-elementor-page .elementor-element.bs-service.e-con,
.bs-elementor-page .bs-service > .e-con-inner{
  min-width:0!important;
  width:100%!important;
  min-height:286px!important;
  height:100%!important;
  padding:18px 18px 17px!important;
  border:1px solid #27313d!important;
  border-radius:18px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(255,255,255,.009))!important;
  box-shadow:none!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:0!important;
}
.bs-service.featured,
.bs-elementor-page .elementor-element.bs-service.featured.e-con{
  border-color:rgba(255,44,139,.52)!important;
  box-shadow:inset 0 0 32px rgba(255,44,139,.025)!important;
}

/* Neutraliza margens/espaçamentos do Elementor somente dentro dos cards. */
.bs-elementor-page .bs-service > .elementor-element,
.bs-elementor-page .bs-service > .e-con-inner > .elementor-element{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
}
.bs-elementor-page .bs-service .elementor-widget-container{
  margin:0!important;
}

/* Ícones: bloco pequeno, uniforme e sem dependência de fonte. */
.bs-icon,
.bs-service-icon-static,
.bs-elementor-page .elementor-element.bs-service-icon{
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  max-height:36px!important;
  flex:0 0 36px!important;
  margin:0 0 18px 0!important;
  padding:0!important;
  border-radius:10px!important;
  background:#121b27!important;
  align-self:flex-start!important;
  overflow:hidden!important;
}
.bs-service-icon-static,
.bs-elementor-page .elementor-element.bs-service-icon .elementor-widget-container{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.bs-service-icon-static img,
.bs-elementor-page .elementor-element.bs-service-icon img{
  display:block!important;
  width:17px!important;
  height:17px!important;
  min-width:17px!important;
  max-width:17px!important;
  min-height:17px!important;
  max-height:17px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  padding:0!important;
  position:static!important;
  transform:none!important;
}

/* Logo pequena do Baluarte Cast exatamente como item do card, sem sobreposição. */
.bs-cast-mini,
.bs-service > img.bs-cast-mini,
.bs-elementor-page .elementor-element.bs-cast-mini{
  width:58px!important;
  min-width:58px!important;
  max-width:58px!important;
  height:46px!important;
  min-height:46px!important;
  max-height:46px!important;
  flex:0 0 46px!important;
  margin:0 0 14px 0!important;
  padding:4px 5px!important;
  border:0!important;
  border-radius:0!important;
  background:#fff!important;
  overflow:hidden!important;
  align-self:flex-start!important;
  position:relative!important;
  inset:auto!important;
  z-index:1!important;
  transform:none!important;
}
.bs-elementor-page .elementor-element.bs-cast-mini .elementor-widget-container{
  width:100%!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}
.bs-service > img.bs-cast-mini,
.bs-elementor-page .elementor-element.bs-cast-mini img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:38px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:auto!important;
  padding:0!important;
  position:static!important;
  inset:auto!important;
  transform:none!important;
}

/* Título e descrição. */
.bs-service h3,
.bs-elementor-page .bs-service .elementor-widget-heading h3.elementor-heading-title{
  margin:0!important;
  padding:0!important;
  color:#fff!important;
  font-family:inherit!important;
  font-size:1.04rem!important;
  font-weight:800!important;
  line-height:1.28!important;
  letter-spacing:0!important;
  min-height:0!important;
  overflow-wrap:anywhere!important;
}
.bs-elementor-page .bs-service .elementor-widget-heading{
  margin:0 0 10px!important;
}
.bs-service p,
.bs-elementor-page .bs-service .elementor-widget-text-editor,
.bs-elementor-page .bs-service .elementor-widget-text-editor p{
  color:#aebdcb!important;
  font-family:inherit!important;
  font-size:.95rem!important;
  font-weight:400!important;
  line-height:1.55!important;
}
.bs-service p,
.bs-elementor-page .bs-service > .elementor-widget-text-editor,
.bs-elementor-page .bs-service > .e-con-inner > .elementor-widget-text-editor{
  margin:0!important;
  padding:0!important;
  min-height:58px!important;
}
.bs-elementor-page .bs-service .elementor-widget-text-editor p{margin:0!important}

/* Preço: mesma linha visual em todos os cards. */
.bs-price,
.bs-elementor-page .elementor-element.bs-price-el.e-con,
.bs-elementor-page .bs-price-el > .e-con-inner{
  width:100%!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:baseline!important;
  justify-content:flex-start!important;
  flex-wrap:nowrap!important;
  gap:6px!important;
  margin-top:auto!important;
  padding:0!important;
}
.bs-price strong,
.bs-elementor-page .elementor-element.bs-price-el .elementor-heading-title,
.bs-elementor-page .bs-price-el > .e-con-inner .elementor-heading-title{
  color:#fff!important;
  font-family:inherit!important;
  font-size:1.1rem!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.bs-price span,
.bs-elementor-page .elementor-element.bs-price-el .elementor-widget-text-editor,
.bs-elementor-page .bs-price-el > .e-con-inner .elementor-widget-text-editor{
  color:#b4c0cc!important;
  font-family:inherit!important;
  font-size:.74rem!important;
  font-weight:500!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.bs-elementor-page .bs-price-el .elementor-widget-heading,
.bs-elementor-page .bs-price-el .elementor-widget-text-editor{
  width:auto!important;
  max-width:none!important;
  flex:0 0 auto!important;
  margin:0!important;
}
.bs-elementor-page .bs-price-el .elementor-widget-text-editor p{margin:0!important}

/* CTA inferior no mesmo ponto visual. */
.bs-service>a,
.bs-elementor-page .elementor-element.bs-service-link{
  margin-top:14px!important;
  margin-bottom:0!important;
}
.bs-elementor-page .elementor-element.bs-service-link .elementor-widget-container{
  margin:0!important;
  padding:0!important;
}
.bs-service>a,
.bs-elementor-page .elementor-element.bs-service-link .elementor-button{
  color:var(--cyan)!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  min-height:0!important;
  font-family:inherit!important;
  font-size:.92rem!important;
  font-weight:800!important;
  line-height:1.3!important;
  text-align:left!important;
  justify-content:flex-start!important;
  white-space:normal!important;
}
.bs-elementor-page .elementor-element.bs-service-link .elementor-button-content-wrapper{
  justify-content:flex-start!important;
}

/* Breakpoints: mantém o desenho no desktop e se adapta sem quebrar no Elementor. */
@media(max-width:900px){
  .bs-services,
  .bs-elementor-page .elementor-element.bs-services.e-con,
  .bs-elementor-page .bs-services > .e-con-inner{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .bs-service,
  .bs-elementor-page .elementor-element.bs-service.e-con,
  .bs-elementor-page .bs-service > .e-con-inner{min-height:278px!important}
}
@media(max-width:620px){
  .bs-services,
  .bs-elementor-page .elementor-element.bs-services.e-con,
  .bs-elementor-page .bs-services > .e-con-inner{
    grid-template-columns:1fr!important;
  }
  .bs-service,
  .bs-elementor-page .elementor-element.bs-service.e-con,
  .bs-elementor-page .bs-service > .e-con-inner{min-height:auto!important}
  .bs-service p,
  .bs-elementor-page .bs-service > .elementor-widget-text-editor,
  .bs-elementor-page .bs-service > .e-con-inner > .elementor-widget-text-editor{min-height:0!important}
}
