.e-con.fsg-s1{justify-items:start !important}
.e-con.fsg-s2{justify-content:center !important}
.e-con.fsg-s3{grid-template-columns:1.1fr 1fr !important;max-width:1000px !important;margin:0 auto !important}
.e-con.fsg-s4{align-content:start !important}
.e-con.fsg-s5{justify-items:center !important}
.e-con.fsg-s6{border-color:var(--brand-primary) !important;box-shadow:var(--shadow-glow) !important}
.e-con.fsg-s7{justify-content:space-between !important}
.e-con.fsg-s8{padding:28px 16px !important}
.e-con.fsg-s9{grid-template-columns:1.2fr 1fr !important;align-items:start !important}
.e-con.fsg-s10{color:inherit !important}
.e-con.fsg-s11{margin-bottom:40px !important}
.e-con.fsg-s12{grid-template-columns:1.2fr 1fr !important;border-radius:var(--radius-2xl) !important}
.e-con.fsg-s13{padding-top:64px !important;padding-bottom:64px !important;justify-items:center !important}
@media (max-width:640px){.e-con.fsg-s3,.e-con.fsg-s9,.e-con.fsg-s12{grid-template-columns:1fr !important}}

/* Typography classes the design applies to headings/paragraphs, mapped onto
   the Elementor widget wrappers that now carry them. */
.elementor-widget-heading.pc-title .elementor-heading-title{font:var(--text-h5);letter-spacing:-0.01em;color:var(--text-primary)}
.post-card:hover .elementor-widget-heading.pc-title .elementor-heading-title{color:var(--brand-primary)}
.elementor-widget-text-editor.muted,.elementor-widget-text-editor.muted p{color:var(--text-secondary)}
.elementor-widget-heading.h6 .elementor-heading-title{font:var(--text-h6)}

/* ---- Heading / text alignment (approved design centers .sec-head & .center) --
   Scoped high enough to beat Elementor per-post CSS regardless of load order. */
.e-con.sec-head{text-align:center}
.e-con.sec-head .elementor-widget-heading .elementor-heading-title,
.e-con.sec-head .elementor-widget-text-editor,
.e-con.center > .elementor-widget-heading .elementor-heading-title,
.e-con.center > .elementor-widget-text-editor,
.elementor-widget-heading.center .elementor-heading-title,
.elementor-widget-text-editor.center,
.elementor-widget-text-editor.center p{text-align:center}

/* ---- Dark CTA: force white text on heading + lead, keep inside section ---- */
.e-con.cta-dark{width:100%;max-width:1280px;margin-inline:auto;box-sizing:border-box}
.e-con.cta-dark .elementor-widget-heading .elementor-heading-title{color:#fff}
.e-con.cta-dark .elementor-widget-text-editor,
.e-con.cta-dark .elementor-widget-text-editor p{color:var(--neutral-300,#cbd5e1)}

/* ---- Contact form (static rebuild of the React island) ---- */
.fsg-contact-form{width:100%}
.fsg-contact-form .ds-field-label{display:grid;gap:8px;font-size:14px;font-weight:600;color:var(--text-primary);font-family:var(--font-sans)}
.fsg-contact-form .ds-field-label .req{color:var(--brand-primary);margin-left:2px}
.fsg-contact-form .ds-input{
  width:100%;box-sizing:border-box;font-family:var(--font-sans);font-size:15px;font-weight:400;
  color:var(--text-primary);background:var(--surface,#fff);
  border:1px solid var(--border-subtle);border-radius:var(--radius-md);
  padding:12px 14px;transition:border-color 160ms ease,box-shadow 160ms ease;
}
.fsg-contact-form textarea.ds-input{resize:vertical;min-height:112px}
.fsg-contact-form .ds-input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--brand-primary-soft)}
.fsg-contact-form .ds-input::placeholder{color:var(--text-muted)}
.fsg-contact-form .ds-hint{font-size:12.5px;font-weight:400;color:var(--text-muted)}
.fsg-contact-form .ds-btn{width:100%;justify-content:center}
@media (max-width:640px){.fsg-contact-form .fsg-field-row{grid-template-columns:1fr !important}}

/* ---- FAQ accordion hardening: win over Elementor / ElementsKit ---- */
.elementor-widget-html .ds-acc,
.e-con .ds-acc{display:grid;gap:var(--space-3);border:0;background:transparent}
.elementor-widget-html .ds-acc-item{
  background:var(--surface-card,#fff) !important;
  border:1px solid var(--border-subtle) !important;
  border-radius:var(--radius-lg) !important;
  box-shadow:var(--shadow-soft);overflow:hidden;
}
.elementor-widget-html .ds-acc-item.open{border-color:rgba(47,107,255,0.35) !important;box-shadow:var(--shadow-large)}
.elementor-widget-html .ds-acc-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);
  padding:var(--space-5) var(--space-6);margin:0;border:0;background:transparent !important;cursor:pointer;text-align:left;
  font-family:var(--font-sans);font-size:var(--fs-h6);font-weight:600;line-height:1.35;color:var(--text-primary) !important;
}
.elementor-widget-html .ds-acc-btn:hover,
.elementor-widget-html .ds-acc-item.open .ds-acc-btn{color:var(--brand-primary) !important}
.elementor-widget-html .ds-acc-btn > span:first-child{flex:1}
.elementor-widget-html .ds-acc-chev{
  width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;border-radius:var(--radius-full);
  background:var(--brand-primary-soft);color:var(--brand-primary);
  transition:transform 300ms var(--ease-spring,cubic-bezier(.34,1.56,.64,1)),background 220ms ease,color 220ms ease;
}
.elementor-widget-html .ds-acc-item.open .ds-acc-chev{transform:rotate(180deg);background:var(--gradient-brand,#2f6bff);color:#fff}
.elementor-widget-html .ds-acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows 360ms ease}
.elementor-widget-html .ds-acc-item.open .ds-acc-panel{grid-template-rows:1fr}
.elementor-widget-html .ds-acc-panel > div{overflow:hidden}
.elementor-widget-html .ds-acc-body{padding:0 var(--space-6) var(--space-5);font-size:var(--fs-body-sm,15px);color:var(--text-secondary);line-height:1.6}
/* never let scroll-reveal leave the FAQ widget invisible */
.elementor-widget-html[data-reveal] .ds-acc{opacity:1}

/* Page-scoped CSS from the approved design */
@media (max-width:1024px){.section .container[style*="1.2fr"]{grid-template-columns:1fr !important}}
.blog-layout{display:grid;grid-template-columns:1fr 340px;gap:48px;align-items:start}
.post-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.post-card{padding:0;overflow:hidden;display:grid;color:inherit}
.post-card .pc-body{padding:24px;display:grid;gap:12px;align-content:start}
.pc-meta{display:flex;gap:14px;align-items:center;font-size:13px;color:var(--text-muted);flex-wrap:wrap}
.pc-meta .row{gap:5px}
.pc-cat{display:inline-flex;padding:3px 10px;border-radius:var(--radius-full);background:var(--brand-primary-soft);color:var(--brand-primary);font-size:12px;font-weight:600}
.pc-title{font:var(--text-h5);letter-spacing:-0.01em;color:var(--text-primary)}
.post-card:hover .pc-title{color:var(--brand-primary)}
.pc-author{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text-secondary)}
.pc-av{width:30px;height:30px;border-radius:50%;background:var(--gradient-brand);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700}
.widget{display:grid;gap:16px}
.widget h3{font:var(--text-h5)}
.search-box{display:flex;align-items:center;gap:10px;height:48px;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:0 14px;background:var(--surface)}
.search-box:focus-within{border-color:var(--brand-primary);box-shadow:0 0 0 3px rgba(47,107,255,0.18)}
.search-box input{border:none;outline:none;flex:1;font:inherit;font-size:14.5px;background:none;color:var(--text-primary)}
.search-box input::placeholder{color:var(--text-placeholder)}
.cat-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.cat-list a{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:14.5px;font-weight:500}
.cat-list a:hover{background:var(--neutral-100);color:var(--text-primary)}
.cat-list .n{font-size:12px;font-weight:600;color:var(--text-muted);background:var(--neutral-100);border-radius:var(--radius-full);padding:2px 9px}
.pop-item{display:flex;gap:14px;align-items:center;color:inherit}
.pop-item strong{font-size:14px;line-height:1.4;letter-spacing:-0.005em;display:block}
.pop-item:hover strong{color:var(--brand-primary)}
.pop-item .body-sm{font-size:12.5px}
.pop-num{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--brand-primary-soft);color:var(--brand-primary);display:grid;place-items:center;font-weight:700;font-size:15px;flex-shrink:0}
.pagination{display:flex;gap:8px;justify-content:center;margin-top:48px}
.pagination a{width:42px;height:42px;border-radius:var(--radius-sm);border:1px solid var(--border-default);display:grid;place-items:center;font-size:14.5px;font-weight:600;color:var(--text-secondary)}
.pagination a:hover{border-color:var(--brand-primary);color:var(--brand-primary)}
.pagination a.cur{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}
@media (max-width:1024px){.blog-layout{grid-template-columns:1fr}.post-card[style*="1.2fr"]{grid-template-columns:1fr !important}}
@media (max-width:640px){.post-grid{grid-template-columns:1fr}.email-cta{flex-direction:row}}
.policy{max-width:760px;margin:0 auto;display:grid;gap:32px}.policy h2{font:var(--text-h3);letter-spacing:-0.015em}.policy p,.policy li{color:var(--text-secondary);line-height:1.65}.policy ul{margin:0;padding-left:22px;display:grid;gap:8px}
/* reveal failsafe: never leave content permanently hidden if JS is delayed/blocked */
@keyframes fsgRevealIn{to{opacity:1;transform:none}}
[data-reveal]:not(.in){animation:fsgRevealIn 500ms ease-out 1.6s forwards}
.elementor-widget-html[data-reveal] .ds-acc,.fsg-contact-form{opacity:1 !important}

/* select fix */
.fsg-contact-form select.ds-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:1.5;min-height:48px;height:auto;padding:12px 40px 12px 14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;text-overflow:ellipsis;cursor:pointer;}
.fsg-contact-form select.ds-input option{color:var(--text-primary);font-size:15px}

/* pricing mobile stability */
@media (max-width:768px){.fsg-s3,.e-con.fsg-s3,.price-card,.e-con.price-card{grid-template-columns:1fr !important;max-width:100% !important;gap:24px !important}.e-con.price-card,.price-card{box-sizing:border-box}}
@media (max-width:480px){.price-num,.e-con .price-num{font-size:clamp(30px,10vw,44px) !important;word-break:break-word}}
