
/* CleanSlate Component Bridge - neutralize Divi wrappers and let original source CSS win. */
body.csc-component-site .et-l--header, body.csc-component-site .et-l--footer { display:none !important; height:0 !important; min-height:0 !important; overflow:hidden !important; }
body.csc-component-site #page-container { padding-top:0 !important; margin-top:0 !important; }
body.csc-component-site #main-content { padding:0 !important; margin:0 !important; background:transparent; }
body.csc-component-site .csc-shell.et_pb_section { margin:0 !important; padding:0 !important; width:100% !important; max-width:none !important; background:transparent !important; }
body.csc-component-site .csc-shell > .cs_source_section,
body.csc-component-site .csc-source-module { margin:0 !important; padding:0 !important; width:100% !important; max-width:none !important; }
body.csc-component-site .csc-module-inner,
body.csc-component-site .csc-source-content { margin:0 !important; padding:0 !important; width:100% !important; max-width:none !important; }
body.csc-component-site .csc-source-content > :first-child { margin-top:0; }
body.csc-component-site .csc-source-content > :last-child { margin-bottom:0; }
body.csc-component-site.admin-bar #main-header { top:32px; }
body.csc-component-site.admin-bar #memo-mobile-nav { top:112px; max-height:calc(100vh - 112px); }
@media(max-width:782px){ body.csc-component-site.admin-bar #main-header{top:46px;} body.csc-component-site.admin-bar #memo-mobile-nav{top:126px;max-height:calc(100vh - 126px);} }
/* WPForms bridge */
body.csc-component-site .csc-wpforms-embed .wpforms-container{margin:0;width:100%;max-width:none}
body.csc-component-site .csc-wpforms-embed .wpforms-field{padding:0 0 18px}
body.csc-component-site .csc-wpforms-embed .wpforms-field-label{display:block;font-family:'Assistant',sans-serif;font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:#004363;margin-bottom:8px}
body.csc-component-site .csc-wpforms-embed .wpforms-form,body.csc-component-site .csc-wpforms-embed .wpforms-field-container{width:100%!important;max-width:none!important}
body.csc-component-site .csc-wpforms-embed input,body.csc-component-site .csc-wpforms-embed select,body.csc-component-site .csc-wpforms-embed textarea{width:100%!important;max-width:none!important;padding:12px 16px!important;border:1.5px solid #dde4ea!important;border-radius:6px!important;font-family:'Open Sans',sans-serif!important;font-size:15px!important;color:#333!important;background:#fff!important;box-shadow:none!important}
body.csc-component-site .csc-wpforms-embed textarea{min-height:120px}
body.csc-component-site .csc-wpforms-embed .wpforms-submit-container{padding-top:4px!important}
body.csc-component-site .csc-wpforms-embed button.wpforms-submit{border:0!important;border-radius:30px!important;background:#57b378!important;color:#fff!important;padding:14px 28px!important;font-family:'Assistant',sans-serif!important;font-size:13px!important;font-weight:700!important;letter-spacing:2px!important;text-transform:uppercase!important;box-shadow:none!important}
body.csc-component-site .csc-wpforms-embed button.wpforms-submit:hover{background:#236a43!important}


/* v1.0.1: force the componentized page canvas to the full viewport width.
   Divi can retain width/max-width rules on outer page-builder wrappers even when
   individual source sections are fullwidth. Neutralize those wrappers once, globally. */
body.csc-component-site,
body.csc-component-site #page-container,
body.csc-component-site #et-boc,
body.csc-component-site #et-main-area,
body.csc-component-site #main-content,
body.csc-component-site #main-content > .container,
body.csc-component-site #left-area,
body.csc-component-site article[id^="post-"],
body.csc-component-site .entry-content,
body.csc-component-site .et-l--post,
body.csc-component-site .et-l--post > .et_builder_inner_content,
body.csc-component-site .et_builder_inner_content {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
  box-sizing: border-box !important;
}
body.csc-component-site #sidebar { display:none !important; }
body.csc-component-site .csc-shell,
body.csc-component-site .csc-shell.et_pb_section,
body.csc-component-site .csc-shell > .cs_source_section,
body.csc-component-site .csc-source-module,
body.csc-component-site .csc-module-inner,
body.csc-component-site .csc-source-content {
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}

/* v1.0.2: render global navigation/footer as source DOM, outside Divi layout contexts. */
body.csc-component-site .csc-global-header {
  position: relative !important;
  z-index: 2147483000 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  pointer-events: none;
}
body.csc-component-site .csc-global-header #main-header,
body.csc-component-site .csc-global-header #memo-mobile-nav {
  pointer-events: auto;
}
body.csc-component-site .csc-global-header #main-header {
  z-index: 2147483001 !important;
  isolation: isolate;
}
body.csc-component-site .csc-global-header #memo-mobile-nav {
  z-index: 2147483002 !important;
}
body.csc-component-site .csc-global-footer {
  position: relative;
  z-index: 2;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Keep all five footer menus on one desktop row while preserving the original mobile stack. */
@media screen and (min-width: 1025px) {
  body.csc-component-site .csc-global-footer .footer-inner {
    display: grid !important;
    grid-template-columns: minmax(240px, 26%) minmax(0, 1fr) !important;
    column-gap: 34px !important;
    align-items: start !important;
    width: 90% !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
  }
  body.csc-component-site .csc-global-footer .footer-brand {
    min-width: 0 !important;
    width: auto !important;
    padding-right: 20px !important;
  }
  body.csc-component-site .csc-global-footer .footer-nav-group {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 28px !important;
    padding: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
  }
  body.csc-component-site .csc-global-footer .footer-col {
    min-width: 0 !important;
    width: auto !important;
  }
  body.csc-component-site .csc-global-footer .footer-widget-title,
  body.csc-component-site .csc-global-footer .footer-widget-list a {
    white-space: normal;
  }
}

/* v1.0.3: definitive global footer layout.
   The footer is an editable global component, but it must break out of any
   remaining Divi parent width and place brand + all five menu groups on one row. */
body.csc-component-site .csc-global-footer,
body.csc-component-site .csc-global-footer #main-footer,
body.csc-component-site .csc-global-footer #footer-bottom {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

@media screen and (min-width: 1025px) {
  body.csc-component-site .csc-global-footer #main-footer > .footer-inner {
    display: grid !important;
    grid-template-columns: minmax(230px,1.35fr) repeat(5,minmax(145px,1fr)) !important;
    gap: clamp(20px,2.2vw,36px) !important;
    align-items: start !important;
    width: min(94vw, 1450px) !important;
    max-width: 1450px !important;
    margin: 0 auto !important;
    padding: 72px 0 42px !important;
  }
  body.csc-component-site .csc-global-footer .footer-brand {
    grid-column: 1 !important;
    width: auto !important;
    min-width: 0 !important;
    padding-right: 10px !important;
  }
  /* Flatten the nav wrapper so each footer column participates in the same
     six-column grid as the brand block. */
  body.csc-component-site .csc-global-footer .footer-nav-group {
    display: contents !important;
  }
  body.csc-component-site .csc-global-footer .footer-col {
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body.csc-component-site .csc-global-footer .footer-widget-title {
    white-space: nowrap !important;
  }
  body.csc-component-site .csc-global-footer .footer-widget-list a {
    white-space: normal !important;
  }
  body.csc-component-site .csc-global-footer .footer-social-icons {
    display:flex !important;
    gap:10px !important;
    align-items:center !important;
  }
}


/* v1.0.4: the global wrapper class attributes are now emitted as valid HTML.
   Previous releases accidentally output backslash-escaped quotes in the class
   attribute, so none of the .csc-global-footer rules above could ever match.
   Keep this final footer block explicit and source-safe now that the wrapper
   selector is real. */
body.csc-component-site .csc-global-footer {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  clear:both !important;
}
body.csc-component-site .csc-global-footer #main-footer,
body.csc-component-site .csc-global-footer #footer-bottom {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
@media screen and (min-width:1025px) {
  body.csc-component-site .csc-global-footer #main-footer > .footer-inner {
    display:grid !important;
    grid-template-columns:minmax(230px,1.35fr) repeat(5,minmax(130px,1fr)) !important;
    gap:clamp(18px,2vw,34px) !important;
    align-items:start !important;
    width:90% !important;
    max-width:1400px !important;
    margin:0 auto !important;
    padding:72px 0 42px !important;
  }
  body.csc-component-site .csc-global-footer .footer-nav-group {
    display:contents !important;
  }
  body.csc-component-site .csc-global-footer .footer-brand,
  body.csc-component-site .csc-global-footer .footer-col {
    min-width:0 !important;
    width:auto !important;
  }
  body.csc-component-site .csc-global-footer .footer-brand {
    padding-right:12px !important;
  }
  body.csc-component-site .csc-global-footer .footer-widget-title {
    white-space:nowrap !important;
  }
}


/* v1.0.5: mobile header viewport anchoring.
   WordPress leaves body.admin-bar on the page even when its toolbar is hidden at
   narrow widths in some desktop/responsive previews. The old 46px admin-bar
   offset therefore created a false strip of page content above the fixed header.
   Public mobile visitors have no admin bar, so anchor the CleanSlate mobile
   header to the true viewport top and keep the mobile menu immediately below it. */
@media screen and (max-width: 782px) {
  body.csc-component-site .csc-global-header #main-header,
  body.csc-component-site.admin-bar .csc-global-header #main-header {
    top: 0 !important;
  }
  body.csc-component-site .csc-global-header #memo-mobile-nav,
  body.csc-component-site.admin-bar .csc-global-header #memo-mobile-nav {
    top: 80px !important;
    max-height: calc(100vh - 80px) !important;
  }
}

/* v1.0.6: keep the native WordPress admin toolbar and all of its dropdowns above
   the CleanSlate fixed header. The public site header intentionally has a very
   high z-index, so logged-in WordPress menus need an explicit higher stacking
   layer. This changes only the admin toolbar; visitors are unaffected. */
body.admin-bar #wpadminbar {
  z-index: 2147483647 !important;
}
body.admin-bar #wpadminbar .ab-top-menu,
body.admin-bar #wpadminbar .ab-sub-wrapper,
body.admin-bar #wpadminbar .ab-submenu {
  z-index: 2147483647 !important;
}


/* v1.0.7: post-build cosmetic QA fixes.
   These are component/page-family corrections and do not require rebuilding pages. */

/* COBRA: source lists already draw their own green dot. Divi/WordPress must not add
   a second native list marker. Applies to the assessment cards and AWS credential lists. */
body.csc-page-cobra .cobra-type-list,
body.csc-page-cobra .aws-cred-list {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
body.csc-page-cobra .cobra-type-list > li,
body.csc-page-cobra .aws-cred-list > li {
  list-style: none !important;
}
body.csc-page-cobra .cobra-type-list > li::marker,
body.csc-page-cobra .aws-cred-list > li::marker {
  content: '' !important;
  font-size: 0 !important;
}

/* COBRA first-call 3-up: remove the extra teal top rule from each card. The
   section divider above already supplies the visual rule. */
body.csc-page-cobra .memo-first-call-card {
  border-top: 0 !important;
}

/* COBRA WPForms assessment dropdown: restore a visible native dropdown affordance
   and enough vertical/right-side room for the full selected label. */
body.csc-page-cobra .csc-wpforms-embed select,
body.csc-page-cobra .csc-wpforms-embed select.wpforms-field-large,
body.csc-page-cobra .csc-wpforms-embed .wpforms-field-select select {
  min-height: 50px !important;
  height: 50px !important;
  line-height: 1.35 !important;
  padding: 0 44px 0 16px !important;
  background-color: #fff !important;
  background-image: none !important;
  -webkit-appearance: menulist !important;
  appearance: auto !important;
  text-overflow: ellipsis !important;
  overflow: visible !important;
}

/* Helpful Articles: the global page-width reset must not strip semantic card
   padding. Keep the source card inset exactly where the design expects it. */
body.csc-page-helpful-articles .memo-insight-card {
  padding: 26px 24px !important;
}

/* Article family: fixed global navigation overlays the article hero. Give the
   breadcrumb a deliberate gap below the menu rather than letting it sit underneath. */
body.csc-component-site.article-page .article-hero {
  padding-top: 124px !important;
}
@media screen and (max-width: 767px) {
  body.csc-component-site.article-page .article-hero {
    padding-top: 108px !important;
  }
}

/* v1.3.0 Structured V2 Lab
   These lab sections use the same proven Divi structure as the working proof:
   normal Section > Row > Column > regular custom module. Neutralize only the
   structural wrappers so the existing CleanSlate source surface can fill the canvas. */
body.csc-editable-v2-lab .csc-v2-lab-shell,
body.csc-editable-v2-lab .csc-v2-lab-row,
body.csc-editable-v2-lab .csc-v2-lab-row > .et_pb_column,
body.csc-editable-v2-lab .cs_editable_home_hero_v2,
body.csc-editable-v2-lab .cs_editable_scale_process_v2,
body.csc-editable-v2-lab .csc-editable-v2-inner {
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}
body.csc-editable-v2-lab .csc-v2-lab-shell,
body.csc-editable-v2-lab .csc-v2-lab-row { padding-top:0 !important; padding-bottom:0 !important; }
body.csc-editable-v2-lab .csc-hero-v2-surface { width:100% !important; max-width:none !important; margin:0 !important; }
body.csc-editable-v2-lab .csc-scale-v2-surface { width:100% !important; max-width:none !important; margin:0 !important; }

/* v1.4.0 Native Divi Lab: no custom module overlay. Every visible content
   item is a stock Divi module, styled to approximate the approved Home design. */
body.csc-native-divi-lab .csc-native-hero {
  background-color:#033d5b !important;
  background-size:cover !important;
  background-position:center !important;
  position:relative;
  overflow:hidden;
}
body.csc-native-divi-lab .csc-native-hero:before{content:"";position:absolute;inset:0;background:rgba(0,45,70,.50);pointer-events:none}
body.csc-native-divi-lab .csc-native-hero-row,
body.csc-native-divi-lab .csc-native-card-row{position:relative;z-index:2}
body.csc-native-divi-lab .csc-native-hero-copy{padding-top:18px}
body.csc-native-divi-lab .csc-native-eyebrow p{color:#50c878!important;font-weight:700!important;letter-spacing:.34em!important;font-size:14px!important;margin-bottom:28px!important}
body.csc-native-divi-lab .csc-native-title h1{color:#fff!important;font-family:Assistant,Arial,sans-serif!important;font-size:58px!important;line-height:1.16!important;font-weight:800!important;margin:0 0 28px!important}
body.csc-native-divi-lab .csc-native-powered p{color:#c7d1d9!important;font-size:17px!important;letter-spacing:.03em!important;margin-bottom:26px!important}
body.csc-native-divi-lab .csc-native-powered strong{color:#fff}
body.csc-native-divi-lab .csc-native-btn{display:inline-block!important;margin-right:14px!important;margin-bottom:8px!important}
body.csc-native-divi-lab .csc-native-btn .et_pb_button{border-radius:999px!important;letter-spacing:.22em!important;font-size:13px!important;font-weight:700!important;padding:10px 22px!important}
body.csc-native-divi-lab .csc-native-btn-green .et_pb_button{background:#2f9155!important;border-color:#2f9155!important;color:#fff!important}
body.csc-native-divi-lab .csc-native-btn-outline .et_pb_button{background:transparent!important;border:2px solid #fff!important;color:#fff!important}
body.csc-native-divi-lab .csc-native-aws-card{background:rgba(0,25,45,.68)!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:10px!important;padding:26px 28px!important;align-self:center;text-align:center}
body.csc-native-divi-lab .csc-native-aws-img img{max-width:98px!important}
body.csc-native-divi-lab .csc-native-aws-title h3{color:#fff!important;font-size:17px!important;margin-top:12px!important}
body.csc-native-divi-lab .csc-native-aws-sub p{color:#afbdc8!important;font-size:13px!important}
body.csc-native-divi-lab .csc-native-aws-link{border-top:1px solid rgba(255,255,255,.18);padding-top:12px;margin-top:12px}
body.csc-native-divi-lab .csc-native-aws-link a{color:#58c98a!important;font-weight:700!important}
body.csc-native-divi-lab .csc-native-card-row{margin-top:54px!important;transform:translateY(58px)}
body.csc-native-divi-lab .csc-native-hero-card{min-height:180px;background:rgba(5,47,70,.62);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:24px;text-align:center;backdrop-filter:blur(4px)}
body.csc-native-divi-lab .csc-native-hero-card h3{color:#fff!important;font-size:22px!important}
body.csc-native-divi-lab .csc-native-hero-card p{color:#c5d1da!important;font-size:14px!important}
body.csc-native-divi-lab .csc-native-hero-card .kicker{color:#55c889!important;font-size:11px!important;font-weight:700!important;letter-spacing:.28em!important}
body.csc-native-divi-lab .csc-native-card-active{background:rgba(61,89,106,.70)}
body.csc-native-divi-lab .csc-native-scale{background:#eef4f9!important}
body.csc-native-divi-lab .csc-native-scale-heading{text-align:center!important}
body.csc-native-divi-lab .csc-native-scale-kicker p{font-size:12px!important;font-weight:700!important;letter-spacing:.33em!important;color:#89a0b1!important}
body.csc-native-divi-lab .csc-native-scale-title h2{font-size:36px!important;color:#005071!important;font-weight:800!important}
body.csc-native-divi-lab .csc-native-scale-title span{color:#0a8da0}
body.csc-native-divi-lab .csc-native-scale-sub p{font-size:17px!important;color:#718493!important}
body.csc-native-divi-lab .csc-native-scale-row{margin-top:42px!important}
body.csc-native-divi-lab .csc-native-phase{text-align:center!important;padding:0 18px!important}
body.csc-native-divi-lab .csc-native-phase .et_pb_text_inner{display:flex;flex-direction:column;align-items:center}
body.csc-native-divi-lab .csc-native-phase .phase-icon{width:190px;height:190px;border:2px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:38px;background:#fff;margin-bottom:18px}
body.csc-native-divi-lab .csc-native-phase h3{font-size:16px!important;letter-spacing:.18em!important;margin-bottom:10px!important}
body.csc-native-divi-lab .csc-native-phase p{font-size:16px!important;color:#617685!important;line-height:1.5!important}
body.csc-native-divi-lab .csc-native-phase .phase-pill{border:2px solid currentColor;border-radius:20px;padding:12px 20px;font-size:12px;font-weight:700;margin-top:18px;min-width:190px}
body.csc-native-divi-lab .csc-native-assess{color:#24a15d}.csc-native-divi-lab .csc-native-activate{color:#176bd1}.csc-native-divi-lab .csc-native-evolve{color:#7050c8}
body.csc-native-divi-lab .csc-native-scale-tagline{text-align:center;border-top:1px solid #d8e2e9;margin-top:40px;padding-top:26px}
body.csc-native-divi-lab .csc-native-scale-tagline p{color:#93a8b6!important}
@media(max-width:767px){
 body.csc-native-divi-lab .csc-native-hero{padding-top:55px!important;padding-bottom:75px!important}
 body.csc-native-divi-lab .csc-native-title h1{font-size:38px!important;text-align:center!important}
 body.csc-native-divi-lab .csc-native-eyebrow,body.csc-native-divi-lab .csc-native-powered{text-align:center!important}
 body.csc-native-divi-lab .csc-native-btn{display:block!important;margin:10px auto!important;max-width:320px!important;text-align:center!important}
 body.csc-native-divi-lab .csc-native-aws-card{margin-top:36px!important}
 body.csc-native-divi-lab .csc-native-card-row{transform:none;margin-top:30px!important}
 body.csc-native-divi-lab .csc-native-hero-card{margin-bottom:14px!important}
 body.csc-native-divi-lab .csc-native-scale-title h2{font-size:30px!important}
 body.csc-native-divi-lab .csc-native-phase{margin-bottom:34px!important}
}
