/* ============================================================
   DIGITAL SURGEONS HUB — BRAND CSS  v2.0
   AI-first marketing agency. Dark, sophisticated, modern.
   ============================================================ */
:root{
  --bg:#070A12;
  --bg-2:#0B0F1A;
  --surface:#10172A;
  --surface-2:#172033;
  --surface-3:#1E2940;
  --line:rgba(148,163,184,0.10);
  --line-2:rgba(148,163,184,0.18);
  --line-3:rgba(148,163,184,0.30);
  --ink:#F1F5F9;
  --ink-soft:#94A3B8;
  --ink-faint:#64748B;
  --mint:#5EEAD4;
  --mint-2:#2DD4BF;
  --mint-deep:#0D9488;
  --mint-glow:rgba(94,234,212,0.20);
  --indigo:#818CF8;
  --indigo-2:#6366F1;
  --on-acc:#022C22;
  --shadow-lg:0 30px 60px -30px rgba(0,0,0,0.6);
  --shadow-xl:0 40px 80px -40px rgba(0,0,0,0.7);
  --shadow-glow:0 20px 60px -20px rgba(94,234,212,0.18);
}
* { box-sizing:border-box; }
html,body{ background:var(--bg)!important; color:var(--ink); font-family:'Hanken Grotesk',system-ui,-apple-system,sans-serif; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
body{ margin:0; padding:0; overflow-x:hidden; }
h1,h2,h3,h4,h5,h6{ font-family:'Bricolage Grotesque','Hanken Grotesk',serif; color:var(--ink); letter-spacing:-0.025em; line-height:1.08; font-weight:700; }
p,li,td,th{ color:var(--ink-soft); line-height:1.7; }
a{ color:var(--mint); text-decoration:none; transition:color .2s ease; }
a:hover{ color:#7df0db; }
img{ max-width:100%; height:auto; display:block; }
button,input,textarea,select{ font-family:inherit; }
*::selection{ background:var(--mint); color:var(--on-acc); }
strong{ color:var(--ink); font-weight:600; }
html{ scroll-behavior:smooth; }

/* Hide all Astra chrome */
#masthead,.site-header,.site-footer,.ast-noticebar-wrap,
.ast-mobile-header-wrap,.ast-primary-header-bar,
.ast-builder-grid-row-container,
.entry-header.ast-no-thumbnail,.ast-archive-description,
.entry-content > .post-meta,.entry-content > .entry-meta { display:none!important; }
.ast-no-sidebar .entry-content > .alignfull,
.ast-page-builder-template .entry-content { padding:0!important; margin:0!important; max-width:none!important; }
#page,.site,.site-content { background:transparent!important; padding:0!important; margin:0!important; }
body.elementor-page,body.page-template-elementor_header_footer { padding-top:0!important; }

/* Decorative ambient background for body */
body::before{
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(900px 500px at 85% -10%, rgba(94,234,212,0.10), transparent 60%),
    radial-gradient(700px 400px at 15% 110%, rgba(129,140,248,0.08), transparent 60%);
}

/* Container max-width safety net */
.elementor-section-wrap > .elementor-section,
.elementor-section{ width:100%; }
.elementor-section.elementor-section-boxed > .elementor-container,
.elementor-container.elementor-column-gap-default,
.e-con.e-con-boxed{ max-width:1240px!important; margin-inline:auto; }
.elementor-element.e-con-full{ max-width:none; }

/* Sections: vertical rhythm */
section.elementor-section{ padding:90px 0; }
.elementor-page .elementor-element.e-con{ --gap:24px; }

/* Buttons: refined */
.elementor-button,.elementor-button-link{
  font-family:'JetBrains Mono',monospace!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:0.10em!important;
  text-transform:uppercase!important;
  padding:15px 26px!important;
  border-radius:100px!important;
  transition:all .35s cubic-bezier(.22,.61,.36,1)!important;
  display:inline-flex!important;align-items:center!important;gap:10px!important;
  white-space:nowrap!important;
}
.elementor-button[style*="background-color:#5EEAD4"],
.elementor-button[style*="background-color:#2BD4B5"],
.elementor-button[style*="background:#5EEAD4"],
.elementor-button[style*="background:#2BD4B5"]{ background:linear-gradient(135deg,#5EEAD4,#2DD4BF)!important; box-shadow:0 8px 24px -10px rgba(94,234,212,0.45)!important; }
.elementor-button:hover{ transform:translateY(-2px); box-shadow:0 14px 40px -10px rgba(94,234,212,0.35)!important; }

/* Card hover lifts */
.e-con.e-con-boxed[data-element_type="container"],
.e-con.e-con--column{ transition:transform .35s cubic-bezier(.22,.61,.36,1), border-color .35s, box-shadow .35s; }

/* Image polish */
.elementor-widget-image img,.elementor-widget-image{ border-radius:16px; }

/* Icon-list */
.elementor-icon-list-item{ transition:transform .2s ease; }
.elementor-icon-list-item .elementor-icon-list-text{ font-family:'Hanken Grotesk',sans-serif; }

/* Accordion (FAQ) */
.elementor-accordion-item{ margin-bottom:14px!important; border-radius:14px!important; overflow:hidden; border:1px solid var(--line)!important; background:var(--surface)!important; }
.elementor-tab-title{ padding:22px 28px!important; transition:all .25s; }
.elementor-tab-title.elementor-active{ background:var(--surface-2)!important; border-color:var(--mint)!important; }
.elementor-tab-title.elementor-active .elementor-accordion-icon{ color:var(--mint)!important; }
.elementor-tab-content{ padding:0 28px 24px 28px!important; background:var(--surface)!important; color:var(--ink-soft)!important; }
.elementor-tab-content p{ color:var(--ink-soft)!important; margin:0; }

/* XPro Header */
.xpro-theme-builder-header{ position:sticky; top:0; z-index:1000; backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); background:rgba(7,10,18,0.78); border-bottom:1px solid var(--line); }
.xpro-theme-builder-header .e-con,.xpro-theme-builder-header .elementor-section{ background:transparent!important; }
.xpro-theme-builder-header a{ color:var(--ink-soft); }
.xpro-theme-builder-header .xpro-horizontal-menu li a{ font-family:'Hanken Grotesk'!important; font-size:14px!important; font-weight:500!important; padding:9px 14px!important; color:var(--ink-soft)!important; transition:color .2s; }
.xpro-theme-builder-header .xpro-horizontal-menu li a:hover,
.xpro-theme-builder-header .xpro-horizontal-menu li.current-menu-item a{ color:var(--mint)!important; }

/* XPro Footer */
.xpro-theme-builder-footer{ background:var(--bg-2); border-top:1px solid var(--line); }
.xpro-theme-builder-footer .elementor-icon-list-text{ color:var(--ink-soft); transition:color .2s; }
.xpro-theme-builder-footer .elementor-icon-list-item:hover .elementor-icon-list-text{ color:var(--mint); }

/* WPForms (dark) */
.wpforms-container{ font-family:'Hanken Grotesk',sans-serif!important; }
.wpforms-field-label{ color:var(--ink-faint)!important; font-family:'JetBrains Mono',monospace!important; font-size:11px!important; font-weight:600!important; letter-spacing:0.10em!important; text-transform:uppercase!important; margin-bottom:8px!important; }
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container input[type="url"],
.wpforms-container input[type="number"],
.wpforms-container textarea,
.wpforms-container select{ background:var(--bg-2)!important; border:1px solid var(--line-2)!important; border-radius:12px!important; color:var(--ink)!important; padding:14px 16px!important; font-size:15px!important; width:100%!important; transition:.2s!important; }
.wpforms-container input:focus,.wpforms-container textarea:focus,.wpforms-container select:focus{ outline:none!important; border-color:var(--mint)!important; box-shadow:0 0 0 3px rgba(94,234,212,0.15)!important; }
.wpforms-container textarea{ min-height:130px!important; resize:vertical!important; }
.wpforms-container .wpforms-submit{ background:linear-gradient(135deg,var(--mint),var(--mint-2))!important; color:var(--on-acc)!important; border:none!important; border-radius:100px!important; padding:15px 28px!important; font-family:'JetBrains Mono',monospace!important; font-weight:700!important; font-size:13px!important; letter-spacing:0.10em!important; text-transform:uppercase!important; transition:.35s!important; cursor:pointer!important; box-shadow:0 8px 24px -10px rgba(94,234,212,0.45)!important; }
.wpforms-container .wpforms-submit:hover{ transform:translateY(-2px)!important; box-shadow:0 14px 40px -10px rgba(94,234,212,0.45)!important; }
.wpforms-container .wpforms-confirmation-container{ background:rgba(94,234,212,0.10)!important; border:1px solid var(--mint)!important; color:var(--mint)!important; border-radius:12px!important; padding:18px!important; }
.wpforms-container .wpforms-required-label,.wpforms-container abbr{ color:var(--mint)!important; }
.wpforms-container input::placeholder,.wpforms-container textarea::placeholder{ color:var(--ink-faint)!important; }

/* Sticky CTA glow utility (added via _css_classes) */
.dsh-pill-badge{ display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:100px; background:rgba(94,234,212,0.08); border:1px solid rgba(94,234,212,0.30); color:var(--mint)!important; font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; }

/* Decorative grid pattern */
.dsh-grid-bg{ position:relative; }
.dsh-grid-bg::before{ content:''; position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(148,163,184,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,0.05) 1px,transparent 1px); background-size:48px 48px; mask-image:radial-gradient(ellipse at center, #000 0%, transparent 70%); -webkit-mask-image:radial-gradient(ellipse at center, #000 0%, transparent 70%); }

/* Responsive: TABLET */
@media (max-width: 1024px){
  section.elementor-section{ padding:64px 0; }
  h1{ font-size:2.6rem!important; }
  h2{ font-size:2rem!important; }
  .elementor-element.e-con--row{ flex-wrap:wrap!important; }
}

/* Responsive: MOBILE */
@media (max-width: 767px){
  body{ font-size:15px; }
  section.elementor-section{ padding:48px 0; }
  h1{ font-size:2rem!important; line-height:1.1!important; }
  h2{ font-size:1.6rem!important; }
  h3{ font-size:1.2rem!important; }
  .elementor-button{ padding:13px 22px!important; font-size:11px!important; }
  /* Force all multi-col rows to stack */
  .elementor-element.e-con.e-con--row > .e-con{ width:100%!important; flex-basis:100%!important; }
  /* Disable hover lifts on touch */
  .e-con:hover{ transform:none!important; }
  /* Hide menu (XPro will swap to hamburger if responsive_show=mobile set) */
  .xpro-theme-builder-header .xpro-horizontal-menu > ul{ display:none; }
}

@media (max-width: 480px){
  h1{ font-size:1.75rem!important; }
  section.elementor-section{ padding:40px 0; }
  .elementor-container{ padding-left:16px!important; padding-right:16px!important; }
}
/* ============================================================
   v2.1 LAYOUT FIX: auto-grid for every multi-column row
   ============================================================ */
/* Any inner container that holds 2+ container children = grid row. */
.elementor-section .e-con-boxed > .e-con-inner > .e-con-full:has(> .e-con-full + .e-con-full){
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap:24px !important;
  width:100% !important;
  max-width:100% !important;
  align-items:stretch !important;
  align-content:flex-start !important;
}
.elementor-section .e-con-boxed > .e-con-inner > .e-con-full:has(> .e-con-full + .e-con-full) > .e-con-full{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  flex:none !important;
  height:100% !important;
}
/* Section heading + single-element rows stay normal flow */
.elementor-section .e-con-boxed > .e-con-inner > .e-con-full:not(:has(> .e-con-full + .e-con-full)){
  width:100% !important;
  max-width:100% !important;
}
/* Mobile: collapse all grids to single column */
@media (max-width: 767px){
  .elementor-section .e-con-boxed > .e-con-inner > .e-con-full:has(> .e-con-full + .e-con-full){
    grid-template-columns:1fr !important;
    gap:16px !important;
  }
}
/* Tablet: ensure cards don't get too cramped */
@media (max-width: 1024px) and (min-width: 768px){
  .elementor-section .e-con-boxed > .e-con-inner > .e-con-full:has(> .e-con-full + .e-con-full){
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)) !important;
  }
}
/* Stat rows (4 cards small) get a 4-col target via narrower minmax */
.elementor-section .e-con-boxed > .e-con-inner > .e-con-full:has(> .e-con-full + .e-con-full + .e-con-full + .e-con-full){
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)) !important;
}
@media (max-width: 600px){
  .elementor-section .e-con-boxed > .e-con-inner > .e-con-full:has(> .e-con-full + .e-con-full + .e-con-full + .e-con-full){
    grid-template-columns:repeat(2, 1fr) !important;
  }
}
@media (max-width: 480px){
  .elementor-section .e-con-boxed > .e-con-inner > .e-con-full:has(> .e-con-full + .e-con-full + .e-con-full + .e-con-full){
    grid-template-columns:1fr !important;
  }
}

/* Stretch card content so all cards in a row are equal height */
.elementor-section .e-con-full > .e-con-inner{
  width:100% !important;
  flex:1 1 auto !important;
}

/* Boxed container internal width fix */
.e-con-boxed{ width:100% !important; max-width:1240px !important; margin-inline:auto !important; padding-inline:max(24px, env(safe-area-inset-left)) !important; }
@media (max-width: 480px){ .e-con-boxed{ padding-inline:18px !important; } }