/* ============ ASPIRE-HF GLOBAL STYLES ============ */

/* Full-bleed sections, 1140px content wrapper */
.elementor-widget-html section {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}
.elementor-widget-html section > div {
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  box-sizing: border-box;
}
.elementor-widget-html,
.elementor-widget-html .elementor-widget-container {
  padding: 0;
  width: 100%;
}
@media (max-width: 767px) {
  .elementor-widget-html section > div {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* Brand tokens */
.asp-sec {
  --navy:#203352; --ocean:#1B4E86; --royal:#117DC6; --cyan:#00B2D9;
  --coral:#E8735A; --aqua:#E6F4F7; --brass:#C99A4A; --offwhite:#F2EFE8;
  --tbc:#E26D6D;
  font-family:"Omnes","Nunito Sans","Inter","Calibri",ui-sans-serif,system-ui,sans-serif;
  font-size:18px; line-height:1.7; color:var(--navy);
  padding:72px 24px; width:100%;
}
.asp-wrap { max-width:1140px; margin:0 auto; }

/* Typography */
.asp-sec h1,.asp-sec h2,.asp-sec h3 {
  font-family:"Strawford","Calibri",ui-sans-serif,system-ui,sans-serif;
  font-weight:400; letter-spacing:-0.02em; line-height:1.15; margin:0 0 16px;
}
.asp-sec h1{font-size:50px;} .asp-sec h2{font-size:40px;} .asp-sec h3{font-size:26px;}
.asp-lead{font-size:20px; line-height:1.7;}
.asp-accent{font-style:italic; font-weight:500;}
.asp-eyebrow{
  display:block; font-family:"Strawford",sans-serif; font-weight:600;
  font-size:15px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--coral); margin-bottom:16px;
}
.asp-rule{width:96px; height:1px; background:var(--coral); margin:24px 0;}

/* Dark (lightened navy) sections */
.asp-dark{
  background:linear-gradient(135deg,var(--ocean) 0%,var(--royal) 100%);
  color:#fff;
}
.asp-dark h1,.asp-dark h2,.asp-dark h3{color:#fff;}
.asp-dark .asp-accent{color:var(--cyan);}
.asp-dark p{color:rgba(255,255,255,.88);}
.asp-light .asp-accent{color:var(--royal);}
.asp-aqua{background:var(--aqua);}
.asp-offwhite{background:var(--offwhite);}

/* Buttons */
.asp-btn{
  display:inline-block; border-radius:9999px; padding:16px 32px;
  font-size:18px; font-weight:500; text-decoration:none; transition:all .2s;
}
.asp-btn-white{background:#fff; color:var(--navy);}
.asp-btn-white:hover{background:var(--cyan); color:#fff;}
.asp-btn-outline{border:1px solid rgba(255,255,255,.4); color:#fff;}
.asp-btn-outline:hover{border-color:#fff; background:rgba(255,255,255,.08);}
.asp-btn-brass{background:var(--brass); color:#fff;}
.asp-btn-brass:hover{background:#b3863a;}

/* Layout helpers */
.asp-grid2{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
.asp-grid3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px;}
.asp-grid4{display:grid; grid-template-columns:repeat(4,1fr); gap:32px;}
.asp-card{background:#fff; border-radius:20px; padding:40px; box-shadow:0 2px 18px rgba(32,51,82,.07);}

/* Heart bullet list */
.asp-list{list-style:none; margin:0; padding:0;}
.asp-li{display:flex; gap:14px; padding:14px 0; border-bottom:1px solid rgba(32,51,82,.12);}
.asp-heart{flex:0 0 auto; margin-top:6px; width:14px; height:14px; fill:var(--royal);}
.asp-dark .asp-heart{fill:var(--cyan);}
.asp-li strong{font-weight:700;}

/* TBC placeholder text */
.asp-tbc{color:var(--tbc);}
.asp-tbc-box{
  border:1px dashed rgba(226,109,109,.55); background:rgba(226,109,109,.07);
  color:var(--tbc); border-radius:12px; padding:20px;
}

/* Image placeholder */
.asp-img-ph{
  background:rgba(17,125,198,.08); border:1px dashed rgba(17,125,198,.35);
  border-radius:24px; display:flex; align-items:center; justify-content:center;
  color:var(--royal); font-size:16px; text-align:center; padding:24px;
  aspect-ratio:4/5; max-width:420px; margin:0 auto;
}

/* Step cards */
.asp-step-num{
  font-family:"Strawford",sans-serif; font-size:14px; font-weight:600;
  letter-spacing:.3em; color:var(--cyan);
}
.asp-step-meta{
  margin-top:24px; font-size:16px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--coral);
}

/* Value tile icon */
.asp-icon{
  width:64px; height:64px; border-radius:9999px; background:var(--navy);
  color:var(--cyan); display:flex; align-items:center; justify-content:center;
  margin:0 auto 24px;
}
.asp-icon svg{width:28px; height:28px; fill:currentColor;}

/* Responsive */
@media (max-width:1024px){
  .asp-sec{padding:52px 20px;}
  .asp-sec h1{font-size:32px;} .asp-sec h2{font-size:26px;} .asp-sec h3{font-size:22px;}
  .asp-lead{font-size:19px;}
  .asp-grid2,.asp-grid3,.asp-grid4{grid-template-columns:1fr; gap:32px;}
}

/* ============ KILL ALL INTER-SECTION WHITE GAPS ============ */

/* Elementor containers & columns wrapping raw HTML blocks */
.elementor-section.elementor-top-section,
.elementor-section .elementor-container,
.elementor-column,
.elementor-column > .elementor-widget-wrap,
.elementor-widget-html,
.elementor-widget-html > .elementor-widget-container,
.e-con,
.e-con-inner,
.e-con > .e-con-inner {
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  row-gap: 0 !important;
}

/* Elementor adds bottom margin to every widget — remove it */
.elementor-widget:not(:last-child) { margin-bottom: 0 !important; }

/* Empty paragraphs / line breaks auto-inserted between blocks */
.elementor-widget-html p:empty,
.elementor-widget-html br:only-child,
.entry-content p:empty { display: none !important; margin: 0 !important; }

/* Whitespace between inline-block widgets */
.elementor-widget-html { font-size: 0 !important; line-height: 0 !important; }
.elementor-widget-html > section { font-size: 16px; line-height: 1.5; }

/* Page/content wrapper padding */
.page-content, .entry-content, .site-main, .elementor-location-single {
  margin: 0 !important;
  padding: 0 !important;
}