/*
Theme Name: Divi Child
Theme URL: http://ceemiagency.com
Description: Divi Child
Theme Author: John Kennedy
Author URL: http://yourdomain.com
Template: Divi
Version: 2.0.8.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1
Text Domain: divi-child
*/

/* ===== hero text clearance (from migration fixes - KEEP) ===== */
.home .et_pb_section_1 { padding-top: 120px !important; }

/* ===== blurb styling (KEEP) ===== */
.et_pb_blurb .et_pb_blurb_content,
.et_pb_blurb .et_pb_blurb_description {
  text-align: center !important;
}
.et_pb_blurb .et_pb_module_header,
.et_pb_blurb h4,
.et_pb_blurb h4 span {
  text-align: center !important;
  font-weight: 800 !important;
  letter-spacing: 0.3px;
  color: #000b47 !important;
}

/* ===== navy headings (KEEP) ===== */
#main-content .et_pb_section:not(.et_pb_with_background) .et_pb_text.et_pb_bg_layout_light .et_pb_text_inner h2 {
  color: #000b47 !important;
}
#main-content .et_pb_section:not(.et_pb_with_background) .et_pb_text h3 {
  color: #000b47 !important;
}

/* ===== hero text shadow (KEEP) ===== */
#main-content .et_pb_section.et_pb_with_background h1,
#main-content .et_pb_section.et_pb_with_background h2,
#main-content .et_pb_section.et_pb_with_background h3,
#main-content .et_pb_section.et_pb_with_background .et_pb_text p,
#main-content .et_pb_section.et_pb_with_background .et_pb_text .et_pb_text_inner h1 {
  text-shadow: 2px 2px 6px rgba(0, 5, 33, 0.65), 0 0 20px rgba(0, 5, 33, 0.35) !important;
}

/* ===== HEADER: one coherent block, written once ===== */
/* Resting header: fixed height, everything vertically centered */
#main-header .container {
  display: flex;
  align-items: center;
  min-height: 97px;
}
#main-header .logo_container {
  display: flex;
  align-items: center;
  height: 97px !important;
}
#main-header #logo {
  max-height: 78px !important;
  margin: 0;
}
#et-top-navigation {
  display: flex !important;
  align-items: center !important;
  padding-top: 0 !important;
  float: right;
  margin-left: auto;
}
#et-top-navigation nav { display: flex; align-items: center; }
#top-menu { display: flex; align-items: center; }
#top-menu > li > a {
  padding-bottom: 0 !important;
  font-size: 15px;
}

/* Shrunken (scrolled) header: same centering, smaller */
#main-header.et-fixed-header .container,
#main-header.et-fixed-header .logo_container {
  min-height: 70px;
  height: 70px !important;
}
#main-header.et-fixed-header #logo {
  max-height: 54px !important;
}

/* aoc-active-menu: light blue for current page + hover, readable on navy */
#top-menu li.current-menu-item > a,
#top-menu li.current_page_item > a,
#top-menu li.current-menu-ancestor > a {
  color: #7EB6FF !important;
}
#top-menu li a:hover {
  color: #A8CFFF !important;
  opacity: 1 !important;
}

/* aoc-blog-text-color: dark blue clean text on blog and post archives */
.single-post #main-content,
.single-post #main-content p,
.single-post #main-content h1,
.single-post #main-content h2,
.single-post #main-content h3,
.blog #main-content,
.blog #main-content p,
.blog #main-content h1,
.blog #main-content h2,
.blog #main-content h3,
.archive #main-content,
.archive #main-content p,
.archive #main-content h1,
.archive #main-content h2,
.archive #main-content h3,
.category #main-content,
.category #main-content p,
.category #main-content h1,
.category #main-content h2,
.category #main-content h3 {
  color: #000b47 !important;
  text-shadow: none !important;
}

/* aoc-typography-v2: bigger body and headers site-wide */
#main-content p, #main-content li {
  font-size: 17px !important;
  line-height: 1.75 !important;
}
#main-content h2 { font-size: 30px !important; }
#main-content h3 { font-size: 25px !important; }
#main-content h4 { font-size: 21px !important; }

/* shadows: homepage hero only, everywhere else clean */
body:not(.home) #main-content .et_pb_section.et_pb_with_background h1,
body:not(.home) #main-content .et_pb_section.et_pb_with_background h2,
body:not(.home) #main-content .et_pb_section.et_pb_with_background h3,
body:not(.home) #main-content .et_pb_section.et_pb_with_background .et_pb_text p {
  text-shadow: none !important;
}

/* aoc-blurb-no-shadow: service cards always clean, even on homepage */
.et_pb_blurb .et_pb_module_header,
.et_pb_blurb h4,
.et_pb_blurb h4 span,
.et_pb_blurb .et_pb_blurb_description,
.et_pb_blurb .et_pb_blurb_description p {
  text-shadow: none !important;
}

/* aoc-blurb-no-shadow-v2: all heading levels, all pages, kill shadows in blurbs */
#main-content .et_pb_blurb .et_pb_module_header,
#main-content .et_pb_blurb .et_pb_module_header span,
#main-content .et_pb_blurb h1, #main-content .et_pb_blurb h2,
#main-content .et_pb_blurb h3, #main-content .et_pb_blurb h4,
#main-content .et_pb_blurb h3 span, #main-content .et_pb_blurb h4 span,
#main-content .et_pb_blurb .et_pb_blurb_description,
#main-content .et_pb_blurb .et_pb_blurb_description p {
  text-shadow: none !important;
}

/* the section heading above the cards keeps its shadow (it sits on the blue bg) 
   — if you want THAT clean too, tell me */

/* aoc-logo-contain: keep logo fully inside the header band */
#main-header .logo_container {
  overflow: visible;
}
#main-header #logo {
  max-height: 72px !important;
  width: auto;
  position: relative;
  top: 0;
}
#main-header .container {
  align-items: center !important;
}

/* aoc-logo-hammer: force logo to fit, override every Divi script */
#logo, #main-header #logo, .et_header_style_left #logo {
  max-height: 60px !important;
  height: 60px !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
  top: auto !important;
  transform: none !important;
}
.logo_container {
  height: 97px !important;
  display: flex !important;
  align-items: center !important;
  overflow: hidden !important;
}
#main-header.et-fixed-header #logo {
  max-height: 45px !important;
  height: 45px !important;
}

/* aoc-logo-final: nuclear specificity, force logo inside band */
body #main-header .container .logo_container #logo,
body.home #main-header #logo,
html body #logo {
  max-height: 55px !important;
  height: 55px !important;
  width: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  vertical-align: middle;
}
body #main-header .logo_container {
  height: 97px !important;
  line-height: 97px !important;
  overflow: hidden !important;
}
body #main-header.et-fixed-header #logo,
body.home #main-header.et-fixed-header #logo {
  max-height: 42px !important;
  height: 42px !important;
}

/* aoc-prices-layout: prevent title/price overlap on Prices page */
.et_pb_pricing_content_top,
.et_pb_pricing_content,
.et_pb_pricing_title,
.et_pb_pricing_content_wrap {
  overflow: hidden;
}
.et_pb_pricing_content_top .et_pb_pricing_title,
.et_pb_pricing .et_pb_pricing_title {
  float: left;
  max-width: 78% !important;
  clear: left;
}
.et_pb_pricing .et_pb_dollar_sign,
.et_pb_pricing .et_pb_price,
.et_pb_pricing_content_top .et_pb_dollar_sign,
.et_pb_pricing_content_top .et_pb_price {
  float: right;
  clear: right;
}

/* aoc-prices-grid: title left, price right. Matches the ACTUAL page
   structure (text modules in columns), verified from the page source.
   Second selector hits the pricing row even on old cached HTML. */
.aoc-price-col,
.page-id-2550 .et_pb_row_2 .et_pb_column {
  display: grid !important;
  grid-template-columns: 1fr auto;
  column-gap: 24px;
  row-gap: 22px;
  align-items: center;
}
.aoc-price-col .et_pb_module,
.page-id-2550 .et_pb_row_2 .et_pb_column .et_pb_module {
  margin: 0 !important;
}
.aoc-price-col .et_pb_divider,
.page-id-2550 .et_pb_row_2 .et_pb_column .et_pb_divider {
  grid-column: 1 / -1;
}
.aoc-price-col h3,
.page-id-2550 .et_pb_row_2 .et_pb_column h3 {
  font-size: 18px;
  line-height: 1.3em;
}

/* aoc-logo-fit: logo fully inside the navy bar, vertically centered */
html body #main-header .logo_container {
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
}
html body #main-header .container .logo_container #logo,
html body #main-header #logo {
  max-height: 60px !important;
  height: auto !important;
  width: auto !important;
  margin: 0 !important;
}
html body #main-header.et-fixed-header .container .logo_container #logo,
html body #main-header.et-fixed-header #logo {
  max-height: 46px !important;
}

/* aoc-logo-final: overrides the legacy min-height 140/110/90 rules wherever cached */
html body #main-header #logo,
html body #main-header.et-fixed-header #logo,
html body #main-header .container .logo_container #logo {
  min-height: 0 !important;
  max-height: 72px !important;
  height: auto !important;
  width: auto !important;
  transition: none !important;
  margin: 0 !important;
}

/* aoc-header-upscale: 120px header band with 105px logo (desktop) */
@media only screen and (min-width: 981px) {
  html body #main-header,
  html body #main-header .container,
  html body #main-header .logo_container {
    height: 120px !important;
    transition: none !important;
  }
  html body #main-header #logo,
  html body #main-header.et-fixed-header #logo,
  html body #main-header .container .logo_container #logo {
    max-height: 105px !important;
  }
  html body #main-header #et-top-navigation {
    padding-top: 0px !important;
    transition: none !important;
  }
  html body #page-container {
    padding-top: 120px !important;
  }
}

/* aoc-header-145: 145px band at load, logo 140 centered; on scroll band
   eases to 120 and the logo hangs below. Smooth height transition only. */
@media only screen and (min-width: 981px) {
  html body #main-header,
  html body #main-header .container,
  html body #main-header .logo_container {
    height: 145px !important;
    overflow: visible !important;
    transition: height 0.3s ease !important;
  }
  html body #main-header .logo_container {
    align-items: center !important;
  }
  html body #main-header #et-top-navigation {
    padding-top: 0px !important;
  }
  html body #page-container {
    padding-top: 145px !important;
  }
  html body #main-header.et-fixed-header,
  html body #main-header.et-fixed-header .container,
  html body #main-header.et-fixed-header .logo_container {
    height: 120px !important;
  }
  html body #main-header.et-fixed-header .logo_container {
    align-items: flex-start !important;
  }
}

/* aoc-fixed-final: scrolled state keeps the full 140px badge (overrides old 46px cap) */
@media only screen and (min-width: 981px) {
  html body #main-header.et-fixed-header .container .logo_container #logo,
  html body #main-header.et-fixed-header #logo {
    max-height: 140px !important;
  }
}

/* aoc-logo-140-always: one logo size, load and scroll, no jumps */
@media only screen and (min-width: 981px) {
  html body #main-header #logo,
  html body #main-header.et-fixed-header #logo,
  html body #main-header .container .logo_container #logo,
  html body #main-header.et-fixed-header .container .logo_container #logo {
    max-height: 140px !important;
    position: relative;
    z-index: 100000;
  }
}

/* aoc-header-steady: 145px band always (no shrink on scroll), frosted glass */
@media only screen and (min-width: 981px) {
  html body #main-header,
  html body #main-header.et-fixed-header,
  html body #main-header .container,
  html body #main-header.et-fixed-header .container,
  html body #main-header .logo_container,
  html body #main-header.et-fixed-header .logo_container {
    height: 145px !important;
  }
  html body #main-header,
  html body #main-header.et-fixed-header {
    background-color: rgba(0, 5, 33, 0.75) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }
  html body #main-header.et-fixed-header .logo_container {
    align-items: center !important;
  }
}

/* aoc-header-solid-to-glass: solid navy at top; frosted glass once scrolling; 145px band always */
@media only screen and (min-width: 981px) {
  html body #main-header,
  html body #main-header.et-fixed-header,
  html body #main-header .container,
  html body #main-header.et-fixed-header .container,
  html body #main-header .logo_container,
  html body #main-header.et-fixed-header .logo_container {
    height: 145px !important;
  }
  html body #main-header {
    background-color: rgb(0, 5, 33) !important;
    transition: background-color 0.4s ease !important;
  }
  html body #main-header.et-fixed-header {
    background-color: rgba(0, 5, 33, 0.75) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }
  html body #main-header.et-fixed-header .logo_container {
    align-items: center !important;
  }
}

/* aoc-services-heading: navy, extra-bold, no shadow (homepage services section) */
body.home .et_pb_text_4 h2 {
  color: #000B47 !important;
  text-shadow: none !important;
  font-weight: 800 !important;
}

/* aoc-services-heading-v2: ID-strength selector — kills the Divi #page-container shadow rule */
html body.home #page-container .et_pb_text_4 .et_pb_text_inner h1,
html body.home #page-container .et_pb_text_4 .et_pb_text_inner h2,
html body.home #page-container .et_pb_text_4 .et_pb_text_inner h3 {
  color: #000B47 !important;
  text-shadow: none !important;
  font-weight: 800 !important;
}

/* aoc-prices-intro: bold intro heading with breathing room before the price list */
html body.page-id-2550 #page-container .et_pb_text_0 h2 {
  font-weight: 800 !important;
  margin-bottom: 55px !important;
}

/* aoc-coupons-intro: bold welcome text above the coupons */
html body.page-id-2794 #page-container .et_pb_text_0 h3 {
  font-weight: 800 !important;
}

/* aoc-footer-contact: phone + email links light blue for readability */
html body .et-l--footer a[href^="tel:"],
html body .et-l--footer a[href^="mailto:"],
html body #main-footer a[href^="tel:"],
html body #main-footer a[href^="mailto:"] {
  color: #9CC7FF !important;
}

/* aoc-glass-anywhere: frosted header on scroll via our own watcher (works on all pages) */
@media only screen and (min-width: 981px) {
  body.aoc-scrolled #main-header {
    background-color: rgba(0, 5, 33, 0.75) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }
}

/* aoc-prices-bold: bold price values on the price list */
html body.page-id-2550 #page-container .aoc-price-col .et_pb_text p {
  font-weight: 800 !important;
}

/* aoc-contact-sidebar: readable labels + links on Schedule/Contact sidebars and footer */
html body.page-id-2826 #page-container .et_pb_column_1_3 h4,
html body.page-id-2826 #page-container .et_pb_column_1_3 h4 span,
html body.page-id-217 #page-container .et_pb_column_1_3 h4,
html body.page-id-217 #page-container .et_pb_column_1_3 h4 span,
html body #main-footer h4, html body #main-footer h4 span,
html body .et-l--footer h4, html body .et-l--footer h4 span {
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
html body.page-id-2826 #page-container .et_pb_column_1_3 a[href^="tel:"],
html body.page-id-2826 #page-container .et_pb_column_1_3 a[href^="mailto:"],
html body.page-id-217 #page-container .et_pb_column_1_3 a[href^="tel:"],
html body.page-id-217 #page-container .et_pb_column_1_3 a[href^="mailto:"] {
  color: #9CC7FF !important;
  -webkit-text-fill-color: #9CC7FF !important;
}

/* aoc-sidebar-links-v2: ALL sidebar links light blue (incl. maps address), kill stuck transition */
html body.page-id-217 #page-container .et_pb_column_1_3 a,
html body.page-id-2826 #page-container .et_pb_column_1_3 a {
  color: #9CC7FF !important;
  -webkit-text-fill-color: #9CC7FF !important;
  transition: none !important;
}

/* aoc-sidebar-links-v2: ALL sidebar links light blue (incl. maps address), kill stuck transition */
html body.page-id-217 #page-container .et_pb_column_1_3 a,
html body.page-id-2826 #page-container .et_pb_column_1_3 a {
  color: #9CC7FF !important;
  -webkit-text-fill-color: #9CC7FF !important;
  transition: none !important;
}

/* aoc-blog-cards: blog index as cards + tidy recent posts sidebar */
body.blog #left-area article.et_pb_post {
  background: #F6F9FE;
  border: 1px solid #D8E2F2;
  border-radius: 10px;
  padding: 26px 30px;
  margin-bottom: 42px;
  box-shadow: 0 2px 10px rgba(0, 11, 71, 0.07);
}
body.blog #left-area article.et_pb_post .entry-featured-image-url,
body.blog #left-area article.et_pb_post img {
  border-radius: 8px;
  overflow: hidden;
}
body.blog #left-area article.et_pb_post h2.entry-title {
  margin-top: 14px;
  font-weight: 800;
}
#sidebar .et_pb_widget:has(li) {
  background: #F6F9FE;
  border: 1px solid #D8E2F2;
  border-radius: 10px;
  padding: 18px 22px;
}
#sidebar .et_pb_widget li {
  padding: 12px 0;
  border-bottom: 1px solid #D8E2F2;
  line-height: 1.4;
}
#sidebar .et_pb_widget li:last-child { border-bottom: none; }
