/*
Theme Name:   Intuitive Life Coach Divi Child
Theme URI:    https://www.elegantthemes.com/gallery/divi/
Description:  Divi child theme for Intuitive Life Coach, LLC — warm green & gold brand system, coaching-specific components, and scroll animation utilities. Built for Sherri-Ann Grant-Clarke.
Author:       Unique Web Designer
Author URI:   https://intuitivelifecoachllc.net
Template:     Divi
Version:      2.5.0
License:      GNU General Public License v2 or later
Text Domain:  ilc-divi-child
*/

/* ==========================================================================
   1. BRAND VARIABLES  —  warm sage-green + soft gold + cream
   ========================================================================== */
:root {
  --ilc-green:        #3E6B52;   /* forest sage — primary */
  --ilc-green-dark:   #2B4A39;   /* deep pine — hovers / dark accents */
  --ilc-green-soft:   #6E9B7E;   /* muted sage — secondary text on dark */
  --ilc-sage-tint:    #E6EFE7;   /* pale sage section wash */
  --ilc-gold:         #C9A961;   /* warm gold — spiritual accent */
  --ilc-gold-dark:    #A9873F;
  --ilc-cream:        #F7F5EF;   /* warm off-white background */
  --ilc-charcoal:     #26302A;   /* warm near-black — dark sections / headings */
  --ilc-text:         #444d47;   /* warm gray-green body text (darker = more readable) */

  --ilc-font-heading: 'Cormorant Garamond', serif;
  --ilc-font-body:    'Poppins', sans-serif;
  --ilc-font-script:  'Dancing Script', cursive;

  --ilc-ease:      cubic-bezier(0.19, 1, 0.22, 1);    /* expo-out — slow, calm settle */
  --ilc-ease-soft: cubic-bezier(0.34, 1.15, 0.42, 1); /* soft overshoot */
  --ilc-speed: 1.15s;
}

/* ==========================================================================
   2. GLOBAL TYPOGRAPHY
   ========================================================================== */
body,
body #page-container,
.et_pb_module,
.et_pb_text,
.et_pb_blurb_description,
p, li, td, input, textarea, select, label {
  font-family: var(--ilc-font-body) !important;
  color: var(--ilc-text);
}

body {
  background-color: var(--ilc-cream);
  font-size: 17px;
  line-height: 1.85;
}

/* Comfortable, readable body copy (~14pt) */
.et_pb_text p,
.et_pb_blurb_description {
  font-size: 17px !important;
  line-height: 1.85;
}
/* Lists get the larger size too, but without !important so component lists
   (pricing, book list, focus columns) keep their tuned sizes. */
.et_pb_text li { font-size: 17px; line-height: 1.8; }

h1, h2, h3, h4,
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3, .et_pb_module h4,
.et_pb_slide_title, .et_pb_fullwidth_header_title {
  font-family: var(--ilc-font-heading) !important;
  color: var(--ilc-charcoal);
  letter-spacing: 0.005em;
  font-weight: 600 !important;
  line-height: 1.18;
}

h1, .et_pb_module h1 { font-size: clamp(2.4rem, 4.4vw, 3.7rem) !important; }
h2, .et_pb_module h2 { font-size: clamp(2rem, 3.2vw, 2.9rem) !important; }
h3, .et_pb_module h3 { font-size: clamp(1.5rem, 2.2vw, 2rem) !important; }

/* Colour touches so text isn't one flat tone */
strong, b { color: var(--ilc-green-dark); font-weight: 600; }
h1 em, h2 em, h3 em, h4 em {
  font-style: italic;
  color: var(--ilc-green);
  -webkit-text-fill-color: var(--ilc-green);
}
ul li::marker, ol li::marker { color: var(--ilc-green); }
::selection { background: var(--ilc-green); color: #ffffff; }

/* Uppercase spaced sub-labels */
h5, h6,
.et_pb_module h5, .et_pb_module h6 {
  font-family: var(--ilc-font-body) !important;
  text-transform: uppercase;
  letter-spacing: 0.25em;
  color: var(--ilc-green);
  font-weight: 500;
}

/* Elegant italic accent line — class: ilc-accent-text */
.ilc-accent-text,
.ilc-accent-text p {
  font-family: var(--ilc-font-heading) !important;
  font-style: italic;
  font-weight: 500;
  font-size: 1.42em;
  line-height: 1.55;
  letter-spacing: 0.01em;
  color: var(--ilc-green-dark);
}

/* Letter-spaced eyebrow label with a small botanical sprig — class: ilc-eyebrow */
.ilc-eyebrow,
.ilc-eyebrow p, .ilc-eyebrow h1, .ilc-eyebrow h2,
.ilc-eyebrow h3, .ilc-eyebrow h4, .ilc-eyebrow h5, .ilc-eyebrow h6 {
  font-family: var(--ilc-font-body) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.28em !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  color: var(--ilc-green) !important;
}
.ilc-eyebrow .et_pb_text_inner { display: inline-flex; align-items: center; gap: 10px; }
.ilc-eyebrow .et_pb_text_inner::before {
  content: "";
  width: 20px; height: 16px; flex: 0 0 auto;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233E6B52' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M12 21 V9'/%3E%3Cpath d='M12 13 C 8 13, 5 10, 5 6 C 9 6, 12 9, 12 13 Z' fill='%23C9A961' stroke='none'/%3E%3Cpath d='M12 11 C 16 11, 19 8, 19 4 C 15 4, 12 7, 12 11 Z' fill='%233E6B52' stroke='none'/%3E%3C/svg%3E") no-repeat center / contain;
}
/* Eyebrow-lines: centered variant just centers the sprig + text */
.ilc-eyebrow-lines .et_pb_text_inner { justify-content: center; }

/* Signature — handwritten cursive, smaller (like a real signature). High
   specificity so Divi's 17px paragraph rule can't shrink it. Works whether
   ilc-signature is on the module (meet-your-coach) or the <p> (agreement). */
.ilc-signature,
.ilc-signature .et_pb_text_inner p,
.et_pb_text p.ilc-signature,
.et_pb_text .ilc-signature,
.ilc-signature p {
  font-family: var(--ilc-font-script) !important;
  font-style: normal !important;
  font-weight: 600 !important;
  font-size: 2.4rem !important;
  color: var(--ilc-green) !important;
  line-height: 1.15;
}

/* Byline / role line (e.g. "Your Intuitive Coach") — plain label, no leaf icon */
.ilc-role,
.ilc-role p {
  font-family: var(--ilc-font-body) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.26em !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  color: var(--ilc-green) !important;
  margin: 0 !important;
}
.ilc-role .et_pb_text_inner::before { content: none !important; }

a { color: var(--ilc-green); transition: color 0.3s ease; }
a:hover { color: var(--ilc-gold-dark); }

/* ==========================================================================
   3. BUTTONS  (Divi buttons, site-wide + WooCommerce)
   ========================================================================== */
.et_pb_button,
body .et_pb_button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  font-family: var(--ilc-font-body) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  color: var(--ilc-charcoal) !important;
  background-color: var(--ilc-gold) !important;   /* unified: same as the footer Subscribe button */
  border: 1px solid var(--ilc-gold) !important;
  border-radius: 40px !important;
  padding: 0.95em 2.4em !important;
  transition: all 0.35s var(--ilc-ease) !important;
}

.et_pb_button:hover,
body .et_pb_button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
  background-color: var(--ilc-gold-dark) !important;
  border-color: var(--ilc-gold-dark) !important;
  color: #ffffff !important;
  padding: 0.95em 2.4em !important;
  box-shadow: 0 10px 24px rgba(169, 135, 63, 0.38);
  transform: translateY(-2px);
}

/* Hide Divi's default button hover arrow */
.et_pb_button:after,
body .et_pb_button:after { display: none !important; }

/* Gold button — class: ilc-btn-gold */
.ilc-btn-gold.et_pb_button,
.ilc-btn-gold .et_pb_button {
  background-color: var(--ilc-gold) !important;
  border-color: var(--ilc-gold) !important;
  color: var(--ilc-charcoal) !important;
}
.ilc-btn-gold.et_pb_button:hover,
.ilc-btn-gold .et_pb_button:hover {
  background-color: var(--ilc-gold-dark) !important;
  border-color: var(--ilc-gold-dark) !important;
  color: #ffffff !important;
}

/* Ghost / outline button — class: ilc-btn-ghost */
.ilc-btn-ghost.et_pb_button,
.ilc-btn-ghost .et_pb_button {
  background-color: transparent !important;
  color: var(--ilc-green-dark) !important;
  border: 1px solid var(--ilc-green) !important;
}
.ilc-btn-ghost.et_pb_button:hover,
.ilc-btn-ghost .et_pb_button:hover {
  background-color: var(--ilc-green) !important;
  color: #ffffff !important;
}

/* Light ghost button for dark sections — class: ilc-btn-light */
.ilc-btn-light.et_pb_button,
.ilc-btn-light .et_pb_button {
  background-color: transparent !important;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,0.6) !important;
}
.ilc-btn-light.et_pb_button:hover,
.ilc-btn-light .et_pb_button:hover {
  background-color: #ffffff !important;
  color: var(--ilc-green-dark) !important;
  border-color: #ffffff !important;
}

/* ==========================================================================
   4. SECTION HELPERS
   ========================================================================== */
/* Assign to a Divi Section */
.ilc-section-tint  { background-color: var(--ilc-sage-tint) !important; }
.ilc-section-cream { background-color: var(--ilc-cream) !important; }

.ilc-section-dark { background-color: var(--ilc-charcoal) !important; }
.ilc-section-dark h1, .ilc-section-dark h2, .ilc-section-dark h3,
.ilc-section-dark h4, .ilc-section-dark p, .ilc-section-dark li {
  color: #ffffff !important;
}
.ilc-section-dark strong, .ilc-section-dark b { color: var(--ilc-gold) !important; }
.ilc-section-dark h5, .ilc-section-dark h6 { color: var(--ilc-gold) !important; }
.ilc-section-dark .ilc-accent-text p { color: #d9e4dc !important; }

/* Thin gold divider — class: ilc-divider */
.ilc-divider { border-top: 1px solid var(--ilc-gold) !important; opacity: 0.5; }

/* ==========================================================================
   5. ENTRANCE ANIMATIONS  (scroll-triggered)
   --------------------------------------------------------------------------
   Assign one class to any Divi section / row / module:
     ilc-fade-up · ilc-fade-down · ilc-fade-left · ilc-fade-right
     ilc-fade-in · ilc-zoom-in · ilc-blur-in · ilc-reveal-up
   Optional delay:  ilc-delay-1 … ilc-delay-6  (0.15s steps)
   Add ilc-stagger to a ROW to auto-stagger its columns/modules.
   ========================================================================== */
html.ilc-js .ilc-fade-up,
html.ilc-js .ilc-fade-down,
html.ilc-js .ilc-fade-left,
html.ilc-js .ilc-fade-right,
html.ilc-js .ilc-fade-in,
html.ilc-js .ilc-zoom-in,
html.ilc-js .ilc-blur-in,
html.ilc-js .ilc-reveal-up {
  opacity: 0;
  transition:
    opacity var(--ilc-speed) var(--ilc-ease),
    transform var(--ilc-speed) var(--ilc-ease),
    filter var(--ilc-speed) var(--ilc-ease),
    -webkit-mask-position var(--ilc-speed) var(--ilc-ease),
    mask-position var(--ilc-speed) var(--ilc-ease);
  will-change: opacity, transform, filter;
}
/* Gentle "rise + grow" — a calm bloom rather than a slide */
html.ilc-js .ilc-fade-up    { transform: translateY(34px) scale(0.985); }
html.ilc-js .ilc-fade-down  { transform: translateY(-34px) scale(0.985); }
html.ilc-js .ilc-fade-left  { transform: translateX(-40px) scale(0.99); }
html.ilc-js .ilc-fade-right { transform: translateX(40px) scale(0.99); }
html.ilc-js .ilc-fade-in    { transform: scale(0.97); }
html.ilc-js .ilc-zoom-in    { transform: scale(0.9); }
html.ilc-js .ilc-blur-in    { filter: blur(10px); transform: scale(1.04); }
/* Soft mask wipe from the bottom (not a hard clip-path curtain) */
html.ilc-js .ilc-reveal-up  {
  transform: translateY(18px);
  -webkit-mask-image: linear-gradient(to top, transparent 0%, #000 55%);
          mask-image: linear-gradient(to top, transparent 0%, #000 55%);
  -webkit-mask-size: 100% 250%; mask-size: 100% 250%;
  -webkit-mask-position: 0 100%; mask-position: 0 100%;
}
/* "grow" variants use the soft-overshoot ease for a living, organic feel */
html.ilc-js .ilc-fade-up.ilc-visible,
html.ilc-js .ilc-fade-in.ilc-visible,
html.ilc-js .ilc-zoom-in.ilc-visible { transition-timing-function: var(--ilc-ease-soft); }

html.ilc-js .ilc-visible {
  opacity: 1 !important;
  transform: none !important;
  filter: blur(0) !important;
  -webkit-mask-position: 0 0 !important;
          mask-position: 0 0 !important;
}

/* Softer, wave-like stagger (0.12s steps) */
.ilc-delay-1 { transition-delay: 0.12s !important; }
.ilc-delay-2 { transition-delay: 0.24s !important; }
.ilc-delay-3 { transition-delay: 0.36s !important; }
.ilc-delay-4 { transition-delay: 0.48s !important; }
.ilc-delay-5 { transition-delay: 0.60s !important; }
.ilc-delay-6 { transition-delay: 0.72s !important; }

/* ==========================================================================
   6. HOVER ANIMATIONS
   ========================================================================== */
.ilc-hover-lift {
  transition: transform 0.55s var(--ilc-ease), box-shadow 0.55s var(--ilc-ease) !important;
}
.ilc-hover-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(62, 107, 82, 0.18);
}

.ilc-hover-zoom { overflow: hidden !important; }
.ilc-hover-zoom img,
.ilc-hover-zoom .et_pb_image_wrap img { transition: transform 0.8s var(--ilc-ease) !important; }
.ilc-hover-zoom:hover img,
.ilc-hover-zoom:hover .et_pb_image_wrap img { transform: scale(1.07); }

.ilc-hover-glow {
  transition: box-shadow 0.4s ease, border-color 0.4s ease !important;
  border: 1px solid transparent;
}
.ilc-hover-glow:hover {
  border-color: var(--ilc-gold);
  box-shadow: 0 0 0 1px var(--ilc-gold), 0 12px 32px rgba(201, 169, 97, 0.25);
}

.ilc-hover-shine { position: relative; overflow: hidden !important; }
.ilc-hover-shine::before {
  content: ''; position: absolute; top: 0; left: -80%;
  width: 50%; height: 100%;
  background: linear-gradient(105deg, transparent 0%, rgba(255,255,255,0.45) 50%, transparent 100%);
  transform: skewX(-20deg); transition: left 0.75s var(--ilc-ease); z-index: 2; pointer-events: none;
}
.ilc-hover-shine:hover::before { left: 130%; }

/* ==========================================================================
   7. FULL-WIDTH LAYOUT — no sidebars anywhere (site-wide)
   ========================================================================== */
#sidebar,
.et_pb_widget_area,
#main-content .container #sidebar { display: none !important; }

#left-area { width: 100% !important; padding: 0 !important; float: none !important; }

#main-content .container,
.container.et_menu_container,
.et_pb_row {
  width: 90% !important;
  max-width: 1240px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
body.et_right_sidebar #main-content .container,
body.et_left_sidebar #main-content .container {
  width: 90% !important; max-width: 1240px !important;
}
.woocommerce #left-area, .woocommerce-page #left-area { width: 100% !important; }
.woocommerce-page #sidebar, .woocommerce #sidebar { display: none !important; }

/* ==========================================================================
   8. HEADER / NAVIGATION
   SECTION → ilc-header · ROW → ilc-header-row · LOGO → ilc-header-logo
   MENU → ilc-header-menu · CTA → ilc-header-cta
   ========================================================================== */
.ilc-header {
  background: var(--ilc-cream) !important;
  border-bottom: 1px solid rgba(62, 107, 82, 0.14);
  z-index: 99999;
  transition: box-shadow 0.4s var(--ilc-ease), border-color 0.4s var(--ilc-ease), background-color 0.4s var(--ilc-ease);
}
/* Stuck state — Divi native sticky adds .et_pb_sticky; the JS also adds .ilc-scrolled */
.ilc-header.et_pb_sticky,
.ilc-header.ilc-scrolled {
  box-shadow: 0 6px 22px rgba(38, 48, 42, 0.10);
  border-bottom-color: rgba(201, 169, 97, 0.3);
  background: rgba(247, 245, 239, 0.96) !important;
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
/* CSS-sticky fallback on the Theme Builder header wrapper (in case native
   sticky is off): keeps it pinned without needing a re-import. */
.et-l--header { position: -webkit-sticky; position: sticky; top: 0; z-index: 99999; }

.ilc-header .ilc-header-row {
  display: flex; align-items: center;
  padding: 14px 0 !important;
  transition: padding 0.4s var(--ilc-ease);
}
.ilc-header.et_pb_sticky .ilc-header-row,
.ilc-header.ilc-scrolled .ilc-header-row { padding: 8px 0 !important; }
.ilc-header .ilc-header-row .et_pb_column { margin-bottom: 0 !important; align-self: center; }

.ilc-header-logo { margin-bottom: 0 !important; }
.ilc-header-logo img {
  max-width: 190px; max-height: 58px; width: auto;
  transition: max-width 0.4s var(--ilc-ease), max-height 0.4s var(--ilc-ease);
}
.ilc-header.et_pb_sticky .ilc-header-logo img,
.ilc-header.ilc-scrolled .ilc-header-logo img { max-width: 150px; max-height: 48px; }

.ilc-header .et_pb_menu { background: transparent !important; margin-bottom: 0 !important; }
.ilc-header .et_pb_menu .et-menu > li > a {
  font-family: var(--ilc-font-body) !important;
  font-size: 12.5px !important; font-weight: 500 !important;
  text-transform: uppercase !important; letter-spacing: 1.4px !important;
  color: var(--ilc-charcoal) !important;
  padding: 8px 16px !important; border-radius: 30px;
  transition: color 0.3s ease, background-color 0.3s var(--ilc-ease);
}
.ilc-header .et_pb_menu .et-menu > li > a::after { display: none !important; }
.ilc-header .et_pb_menu .et-menu > li > a:hover,
.ilc-header .et_pb_menu .et-menu > li.current-menu-item > a {
  color: var(--ilc-green) !important; opacity: 1 !important;
  background: var(--ilc-sage-tint);
}

.ilc-header .et_pb_menu .sub-menu {
  background: #ffffff !important;
  border: 1px solid var(--ilc-sage-tint) !important;
  border-top: 2px solid var(--ilc-gold) !important;
  box-shadow: 0 16px 36px rgba(38, 48, 42, 0.12);
}
.ilc-header .et_pb_menu .sub-menu li a { color: var(--ilc-charcoal) !important; }
.ilc-header .et_pb_menu .sub-menu li a:hover { color: var(--ilc-green) !important; }

.ilc-header-cta.et_pb_button, a.ilc-header-cta.et_pb_button {
  font-size: 12px !important; padding: 0.7em 1.7em !important; display: inline-block;
}
.ilc-header-cta.et_pb_button:hover { padding: 0.7em 1.7em !important; transform: translateY(-1px); }
.ilc-header .et_pb_button_module_wrapper { margin-bottom: 0 !important; }
.ilc-header .ilc-header-account, .ilc-header .ilc-header-account .et_pb_text_inner { text-align: right; }

.ilc-header .mobile_menu_bar:before { color: var(--ilc-green) !important; }
.ilc-header .et_mobile_menu {
  background: var(--ilc-cream) !important;
  border-top: 2px solid var(--ilc-gold) !important;
}
.ilc-header .et_mobile_menu li a {
  font-family: var(--ilc-font-body) !important;
  text-transform: uppercase; letter-spacing: 1.4px;
  font-size: 13px !important; color: var(--ilc-charcoal) !important;
}
@media (max-width: 980px) {
  /* Row 1: logo centered.  Row 2: Book a Session + hamburger together.
     #page-container raises specificity above Divi's responsive column rules. */
  #page-container .ilc-header .ilc-header-row {
    display: flex !important; flex-wrap: wrap !important; align-items: center !important;
    justify-content: space-between !important; row-gap: 8px !important; column-gap: 10px !important;
    width: 90% !important; margin: 0 auto !important; padding: 10px 0 !important;
  }
  #page-container .ilc-header .ilc-header-row > .et_pb_column { margin: 0 !important; }
  /* Row 1 — logo takes the whole first line, centered */
  #page-container .ilc-header-logo-col {
    flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; order: 1 !important; text-align: center !important;
  }
  #page-container .ilc-header-logo, #page-container .ilc-header-logo .et_pb_image { text-align: center !important; }
  #page-container .ilc-header-logo img { margin: 0 auto !important; max-width: 185px !important; max-height: 52px !important; }
  /* Row 2 left — Book a Session (space-between on the row pins it left, hamburger right) */
  #page-container .ilc-header-cta-col {
    flex: 0 0 auto !important; width: auto !important; max-width: none !important; order: 2 !important; margin: 0 !important;
  }
  #page-container .ilc-header-cta.et_pb_button {
    display: inline-block !important; font-size: 11.5px !important; padding: 0.6em 1.4em !important; letter-spacing: 1.2px !important; white-space: nowrap !important;
  }
  /* Row 2 right — hamburger; force its nav to shrink to the icon (was grabbing a full row) */
  #page-container .ilc-header-menu-col {
    flex: 0 0 auto !important; width: auto !important; max-width: none !important; min-width: 0 !important; margin: 0 !important; order: 3 !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
  }
  #page-container .ilc-header-menu-col .et_pb_menu,
  #page-container .ilc-header-menu-col .et_pb_menu_inner_container,
  #page-container .ilc-header-menu-col .et_pb_menu__wrap,
  #page-container .ilc-header-menu-col .et_mobile_nav_menu {
    width: auto !important; min-width: 0 !important; max-width: none !important; float: none !important; margin: 0 !important;
  }
  #page-container .ilc-header-menu-col .et_pb_menu__menu { display: none !important; }
  #page-container .ilc-header-menu-col .et_mobile_nav_menu { display: block !important; }
  #page-container .ilc-header-menu-col .mobile_menu_bar { display: block !important; position: relative !important; top: auto !important; margin: 0 !important; }
  #page-container .ilc-header-menu-col .mobile_menu_bar:before { display: block !important; position: relative !important; color: var(--ilc-green) !important; }
  /* The OPEN dropdown must be a proper wide panel, not squeezed into the tiny
     hamburger column. Anchor it to the menu column and give it real width. */
  #page-container .ilc-header-menu-col { position: relative !important; }
  #page-container .ilc-header-menu-col .et_mobile_menu {
    position: absolute !important; top: 100% !important; right: 0 !important; left: auto !important;
    width: 80vw !important; max-width: 320px !important; min-width: 240px !important;
    padding: 6px 0 !important; z-index: 99999 !important;
    box-shadow: 0 16px 36px rgba(38,48,42,0.16) !important;
  }
  #page-container .ilc-header-menu-col .et_mobile_menu li { width: 100% !important; }
  #page-container .ilc-header-menu-col .et_mobile_menu li a {
    white-space: normal !important; text-align: left !important;
    padding: 12px 20px !important; width: auto !important;
  }
}

/* ==========================================================================
   9. HERO
   ========================================================================== */
.ilc-hero {
  position: relative; overflow: hidden;
  background-color: var(--ilc-sage-tint);
  background-image:
    radial-gradient(55% 65% at 85% 12%, rgba(62, 107, 82, 0.14) 0%, rgba(62, 107, 82, 0) 62%),
    radial-gradient(45% 60% at 6% 92%, rgba(201, 169, 97, 0.14) 0%, rgba(201, 169, 97, 0) 62%);
}
.ilc-hero.ilc-section-dark {
  background-color: var(--ilc-charcoal);
  background-image:
    radial-gradient(55% 65% at 85% 12%, rgba(110, 155, 126, 0.22) 0%, rgba(110, 155, 126, 0) 62%),
    radial-gradient(45% 60% at 6% 92%, rgba(201, 169, 97, 0.18) 0%, rgba(201, 169, 97, 0) 62%);
}
.ilc-hero h1 { line-height: 1.1 !important; }

/* Full-bleed background hero (home) */
.ilc-hero-bg { min-height: 74vh; display: flex; align-items: center; background-color: var(--ilc-charcoal); }
.ilc-hero-bg > .et_pb_row { width: 90% !important; }
/* Center the hero CTAs side by side */
.ilc-hero-bg .et_pb_column { text-align: center !important; }
.ilc-hero-bg .et_pb_button_module_wrapper,
.ilc-hero-bg .et_pb_button_module_wrapper.et_pb_button_alignment_center {
  display: inline-block !important; float: none !important; margin: 12px 6px 0 !important;
}
@media (max-width: 767px) {
  /* Push hero content up toward the top rather than vertically centered */
  .ilc-hero-bg { min-height: 74vh; align-items: flex-start !important; }
  .ilc-hero-bg > .et_pb_row { margin-top: 7vh !important; }
}

/* Consistent vertical spacing across CONTENT sections on EVERY page.
   Scoped to .et-l--post so it never touches the header/footer templates.
   Hero, page banner, and CTA bands keep their own intentional spacing. */
.et-l--post .et_pb_section:not(.ilc-hero-bg):not(.ilc-hero-split):not(.ilc-cta-band):not(.ilc-page-banner) {
  padding-top: 96px !important;
  padding-bottom: 96px !important;
}
@media (max-width: 767px) {
  .et-l--post .et_pb_section:not(.ilc-hero-bg):not(.ilc-hero-split):not(.ilc-cta-band):not(.ilc-page-banner) {
    padding-top: 60px !important; padding-bottom: 60px !important;
  }
}

/* Eyebrow reads gold on dark sections/hero */
.ilc-section-dark .ilc-eyebrow, .ilc-section-dark .ilc-eyebrow p { color: var(--ilc-gold) !important; }
.ilc-section-dark .ilc-eyebrow .et_pb_text_inner::before { filter: brightness(1.6) saturate(0.7); }

/* Hero text must stay readable over the photo: white heading, gold emphasis,
   light subtitle (fixes the dark/green-on-green text). */
.ilc-hero-bg .ilc-display h1,
.ilc-hero-bg h1 { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }
.ilc-hero-bg h1 em,
.ilc-hero-bg .ilc-display h1 em {
  color: var(--ilc-gold) !important; -webkit-text-fill-color: var(--ilc-gold) !important; font-style: italic;
}
.ilc-hero-bg .ilc-accent-text p,
.ilc-hero-bg p { color: #eef3ee !important; }
.ilc-hero-bg .ilc-eyebrow, .ilc-hero-bg .ilc-eyebrow p { color: var(--ilc-gold) !important; }

/* Hero fonts match the rest of the site: serif heading, sans-serif description */
.ilc-hero-bg .ilc-display h1,
.ilc-hero-bg h1 { font-family: var(--ilc-font-heading) !important; }
.ilc-hero-bg .ilc-accent-text,
.ilc-hero-bg .ilc-accent-text p {
  font-family: var(--ilc-font-body) !important;
  font-style: normal !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.75 !important;
  letter-spacing: 0.01em !important;
}

/* Editorial display heading — solid ink with a hand-drawn gold brush underline */
.ilc-display h1, .ilc-display h2 {
  color: var(--ilc-charcoal);
  display: inline-block;
  position: relative;
}
.ilc-display h1::after {
  content: "";
  display: block;
  width: 82px; height: 12px;
  margin: 0.55rem auto 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12'%3E%3Cpath d='M3 8.5 C 28 3, 62 3, 88 6 S 110 9, 117 5' stroke='%23C9A961' stroke-width='3.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / contain;
}
.ilc-page-banner .ilc-display h1::after { width: 96px; }
.ilc-section-dark .ilc-display h1, .ilc-section-dark .ilc-display h2 { color: #ffffff; }

/* Rounded framed image — class: ilc-img-frame */
.ilc-img-frame .et_pb_image_wrap,
.ilc-img-frame img {
  border-radius: 10px; overflow: hidden;
  box-shadow: 0 26px 60px rgba(38, 48, 42, 0.20);
}
/* Soft-rounded corners for animated images */
.ilc-blur-in .et_pb_image_wrap,
.ilc-hover-zoom .et_pb_image_wrap,
.ilc-hover-shine .et_pb_image_wrap { border-radius: 10px; overflow: hidden; }

/* Small pill badge — class: ilc-badge */
.ilc-badge .et_pb_text_inner {
  display: inline-block;
  background: rgba(201, 169, 97, 0.16);
  color: var(--ilc-gold-dark);
  border: 1px solid rgba(201, 169, 97, 0.4);
  border-radius: 40px; padding: 0.4em 1.2em;
  font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
}

/* ==========================================================================
   10. COMPONENT: cards, blurbs, steps
   ========================================================================== */
/* Blurb card — class: ilc-card (add ilc-hover-lift) */
.et_pb_blurb.ilc-card {
  background: #ffffff;
  border: 1px solid var(--ilc-sage-tint);
  border-radius: 12px;
  padding: 2.4rem 2rem !important;
  height: 100%;
}
.et_pb_blurb.ilc-card .et_pb_blurb_container { text-align: left; }
.et_pb_blurb .et_pb_module_header,
.et_pb_blurb .et_pb_module_header a {
  font-family: var(--ilc-font-heading) !important;
  font-size: 24px !important; color: var(--ilc-charcoal) !important;
  letter-spacing: 0.01em; margin-bottom: 0.6rem !important;
}
.et_pb_blurb .et_pb_blurb_description { color: var(--ilc-text); font-size: 15px; line-height: 1.85; }
/* Blurb icon in a soft sage circle */
.et_pb_blurb.ilc-card .et_pb_main_blurb_image {
  width: 62px; height: 62px; line-height: 62px;
  background: var(--ilc-sage-tint); border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 1.1rem;
}
.et_pb_blurb.ilc-card .et-pb-icon { color: var(--ilc-green) !important; }

/* Numbered step card — class: ilc-step (on a blurb or column) */
.ilc-step { position: relative; padding-top: 0.5rem; }
.ilc-step .ilc-step-num {
  font-family: var(--ilc-font-heading);
  font-size: 3rem; font-weight: 600; line-height: 1;
  color: var(--ilc-gold); opacity: 0.9; display: block; margin-bottom: 0.4rem;
}

/* Pull-quote — class: ilc-quote */
.ilc-quote .et_pb_text_inner {
  border-left: 3px solid var(--ilc-gold);
  padding: 0.4rem 0 0.4rem 1.6rem;
  font-family: var(--ilc-font-heading) !important;
  font-style: italic; font-size: 1.5rem; line-height: 1.5;
  color: var(--ilc-green-dark);
}

/* Glowing CTA band — class: ilc-cta-band (add ilc-section-dark) */
.ilc-cta-band {
  background-color: var(--ilc-green-dark) !important;
  background-image:
    radial-gradient(60% 120% at 50% 0%, rgba(201,169,97,0.22) 0%, rgba(201,169,97,0) 60%),
    radial-gradient(50% 100% at 100% 100%, rgba(110,155,126,0.25) 0%, rgba(110,155,126,0) 60%) !important;
}
.ilc-cta-band h1, .ilc-cta-band h2, .ilc-cta-band p { color: #ffffff !important; }

/* ==========================================================================
   11. COMPONENT: pricing cards  — class on a row: ilc-pricing
   ========================================================================== */
.ilc-pricing .et_pb_column {
  background: #ffffff;
  border: 1px solid var(--ilc-sage-tint);
  border-radius: 16px;
  padding: 2.6rem 2.2rem !important;
  text-align: center;
  transition: transform 0.45s var(--ilc-ease), box-shadow 0.45s var(--ilc-ease);
}
.ilc-pricing .et_pb_column:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 50px rgba(38, 48, 42, 0.14);
}
/* Highlighted / featured column — add class ilc-price-featured to the column */
.ilc-pricing .et_pb_column.ilc-price-featured {
  background: var(--ilc-charcoal);
  border-color: var(--ilc-gold);
  box-shadow: 0 24px 50px rgba(38, 48, 42, 0.22);
  position: relative;
}
.ilc-pricing .et_pb_column.ilc-price-featured h1,
.ilc-pricing .et_pb_column.ilc-price-featured h2,
.ilc-pricing .et_pb_column.ilc-price-featured h3,
.ilc-pricing .et_pb_column.ilc-price-featured p,
.ilc-pricing .et_pb_column.ilc-price-featured li { color: #ffffff !important; }
.ilc-pricing .et_pb_column.ilc-price-featured .ilc-price-amt { color: var(--ilc-gold) !important; }
.ilc-pricing .et_pb_column.ilc-price-featured::before {
  content: "Best value"; position: absolute; top: 18px; right: 18px;
  background: var(--ilc-gold); color: var(--ilc-charcoal);
  font-family: var(--ilc-font-body); font-size: 10px; font-weight: 600;
  letter-spacing: 0.15em; text-transform: uppercase; padding: 0.3em 0.9em; border-radius: 30px;
}
.ilc-price-amt, .ilc-price-amt p {
  font-family: var(--ilc-font-heading) !important;
  font-size: 3.4rem !important; font-weight: 600 !important;
  color: var(--ilc-green) !important; line-height: 1; margin: 0.4rem 0 0.2rem;
}
.ilc-price-amt small { font-size: 1rem; color: var(--ilc-text); font-family: var(--ilc-font-body); }
.ilc-price-list ul { list-style: none !important; margin: 1.4rem 0 !important; padding: 0 !important; }
.ilc-price-list li {
  padding: 0.55rem 0 0.55rem 1.8rem !important; position: relative;
  border-bottom: 1px solid rgba(0,0,0,0.05); font-size: 14.5px;
}
.ilc-price-list li::before {
  content: "✓"; position: absolute; left: 0; top: 0.55rem;
  color: var(--ilc-green); font-weight: 700;
}
.ilc-price-featured .ilc-price-list li::before { color: var(--ilc-gold); }

/* ==========================================================================
   12. COMPONENT: Areas of Focus / What to Expect comparison
   Wrap each column with class ilc-focus-col; heading = ilc-focus-head
   ========================================================================== */
.ilc-focus-col {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint);
  border-radius: 14px; padding: 2.4rem 2rem !important; height: 100%;
}
.ilc-focus-col.ilc-focus-alt { background: var(--ilc-sage-tint); border-color: transparent; }
.ilc-focus-head .et_pb_text_inner {
  font-family: var(--ilc-font-body) !important;
  text-transform: uppercase; letter-spacing: 0.22em;
  font-size: 13px; font-weight: 600; color: var(--ilc-gold-dark);
  padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--ilc-gold);
}
.ilc-focus-list ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.ilc-focus-list li {
  position: relative; padding: 0.5rem 0 0.5rem 1.7rem !important; font-size: 15px;
}
.ilc-focus-list li::before {
  content: ""; position: absolute; left: 0; top: 1.05rem;
  width: 7px; height: 7px; border-radius: 50%; background: var(--ilc-green);
}
.ilc-focus-alt .ilc-focus-list li::before { background: var(--ilc-gold-dark); }

/* ==========================================================================
   13. COMPONENT: "What coaching IS / ISN'T"
   Column classes: ilc-is-col (green) / ilc-isnt-col (muted)
   ========================================================================== */
.ilc-is-col, .ilc-isnt-col {
  border-radius: 14px; padding: 2.4rem 2rem !important; height: 100%;
}
.ilc-is-col { background: var(--ilc-green); }
.ilc-is-col h1, .ilc-is-col h2, .ilc-is-col h3, .ilc-is-col p, .ilc-is-col li { color: #ffffff !important; }
.ilc-is-col strong { color: var(--ilc-gold) !important; }
.ilc-isnt-col { background: #ffffff; border: 1px solid var(--ilc-sage-tint); }

/* ==========================================================================
   14. COMPONENT: resource / hotline lists  (Resources page)
   Text module class: ilc-resource-list
   ========================================================================== */
.ilc-resource-list ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.ilc-resource-list li {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-left: 3px solid var(--ilc-green);
  border-radius: 8px; padding: 0.9rem 1.2rem !important; margin: 0 0 0.7rem !important;
  font-size: 14.5px; line-height: 1.6;
}
.ilc-resource-list li strong { color: var(--ilc-charcoal); }
.ilc-resource-list.ilc-emergency li { border-left-color: var(--ilc-gold-dark); }

/* Book list — class: ilc-book-list */
.ilc-book-list ul { list-style: none !important; margin: 0 !important; padding: 0 !important;
  columns: 2; column-gap: 2.4rem; }
.ilc-book-list li {
  break-inside: avoid; padding: 0.5rem 0 0.5rem 1.5rem !important; position: relative;
  font-size: 14.5px; border-bottom: 1px solid rgba(0,0,0,0.05);
}
.ilc-book-list li::before {
  content: "❧"; position: absolute; left: 0; top: 0.5rem; color: var(--ilc-gold); font-size: 13px;
}
@media (max-width: 767px) { .ilc-book-list ul { columns: 1; } }

/* Fine-print disclaimer — class: ilc-disclaimer */
.ilc-disclaimer .et_pb_text_inner,
.ilc-disclaimer p { font-size: 12.5px !important; color: #8a938d !important; line-height: 1.7; font-style: italic; }

/* ==========================================================================
   15. COMPONENT: legal pages (Privacy / Terms)  — section class: ilc-legal
   ========================================================================== */
.ilc-legal { max-width: 860px; margin: 0 auto; }
.ilc-legal h2, .ilc-legal h3 { margin-top: 2.2rem !important; }
.ilc-legal h3 { font-size: 1.5rem !important; color: var(--ilc-green-dark); }
.ilc-legal ul { padding-left: 1.2rem; }
.ilc-legal li { margin-bottom: 0.4rem; }
.ilc-legal .ilc-effective {
  color: var(--ilc-gold-dark); font-weight: 500; letter-spacing: 0.04em; margin-bottom: 2rem;
}
/* Coaching Agreement: fill-in blanks & signature lines */
.ilc-legal .ilc-blank { color: #b7bfb8; letter-spacing: 2px; margin: 0.2rem 0; overflow: hidden; }
.ilc-legal .ilc-sign-line {
  margin-top: 1.6rem; padding-top: 1.2rem; border-top: 1px solid var(--ilc-sage-tint);
  color: var(--ilc-charcoal); font-weight: 500; letter-spacing: 0.03em;
}

/* ==========================================================================
   16. COMPONENT: contact info list  — class: ilc-contact-info
   li classes: ci-phone / ci-mail / ci-loc / ci-clock
   ========================================================================== */
.ilc-contact-info { list-style: none !important; margin: 1.6rem 0 0 !important; padding: 0 !important; }
.ilc-contact-info li {
  display: flex !important; align-items: center; gap: 16px;
  margin: 0 0 1.5rem !important; padding: 0 !important; position: relative;
}
.ilc-contact-info li::before {
  content: ""; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%;
  background-color: var(--ilc-sage-tint);
}
.ilc-contact-info li::after {
  content: ""; position: absolute; left: 0; top: 0; width: 46px; height: 46px;
  background-color: var(--ilc-green);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: 22px 22px; mask-size: 22px 22px;
}
.ilc-contact-info li strong { display: block; color: var(--ilc-charcoal) !important; font-weight: 600; font-size: 15px; margin-bottom: 2px; }
.ilc-contact-info li a, .ilc-contact-info li span { color: var(--ilc-text) !important; font-size: 14.5px; text-decoration: none !important; }
/* Hover: color shift + growing gold underline */
.ilc-contact-info li a {
  position: relative; display: inline-block;
  transition: color 0.3s var(--ilc-ease);
}
.ilc-contact-info li a::after {
  content: ""; position: absolute; left: 0; bottom: -3px; width: 0; height: 1.5px;
  background: var(--ilc-gold); transition: width 0.35s var(--ilc-ease);
}
.ilc-contact-info li a:hover { color: var(--ilc-green) !important; }
.ilc-contact-info li a:hover::after { width: 100%; }
.ilc-contact-info li.ci-phone::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.3 1.4.3 2.4.6 3.6.6.6 0 1 .5 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.4.3 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.3 1.4.3 2.4.6 3.6.6.6 0 1 .5 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.4.3 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z'/%3E%3C/svg%3E");
}
.ilc-contact-info li.ci-mail::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M2 6l10 7 10-7'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M2 6l10 7 10-7'/%3E%3C/svg%3E");
}
.ilc-contact-info li.ci-loc::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
}
.ilc-contact-info li.ci-clock::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}
/* icon glyph vertically centered with its row */
.ilc-contact-info li::after { top: 50%; transform: translateY(-50%); }

/* Contact page — left info column sticks while the form scrolls on the right */
.ilc-contact-row { display: flex !important; align-items: stretch !important; flex-wrap: wrap !important; }
.ilc-contact-row > .et_pb_column { align-self: stretch !important; }
.ilc-contact-left,
.ilc-contact-left.ilc-fade-up { transform: none !important; will-change: auto !important; }

/* Coach photo behind the contact column — cream scrim heavier at the top (where
   the text sits) and lighter toward the bottom so the image shows through the
   otherwise-empty lower area, while every line stays readable. No overflow:hidden
   here (it would break the sticky child); border-radius clips the background. */
.ilc-contact-left {
  border-radius: 18px;
  padding: 2.6rem 2.4rem !important;
  background-image:
    linear-gradient(180deg,
      rgba(247,245,239,0.94) 0%,
      rgba(247,245,239,0.9) 42%,
      rgba(247,245,239,0.55) 100%),
    url('/wp-content/uploads/2026/08/sherri-ann-09.jpg');
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}
.ilc-contact-left > .et_pb_module {
  position: -webkit-sticky !important; position: sticky !important; top: 100px;
}
@media (max-width: 767px) {
  .ilc-contact-row > .et_pb_column { width: 100% !important; }
  .ilc-contact-left > .et_pb_module { position: static !important; }
}

/* ==========================================================================
   17. FORMS — Contact Form 7 + Divi Contact Form
   ========================================================================== */
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea,
.et_pb_contact_form input, .et_pb_contact_form textarea {
  width: 100%; font-family: var(--ilc-font-body) !important; font-size: 15px !important;
  color: var(--ilc-charcoal); background: #ffffff;
  border: 1px solid #d9ddd6; border-radius: 8px;
  padding: 0.9em 1.1em; margin: 0 0 16px;
  transition: border-color 0.35s var(--ilc-ease), box-shadow 0.35s var(--ilc-ease); box-sizing: border-box;
}
.wpcf7 input:focus, .wpcf7 textarea:focus,
.et_pb_contact_form input:focus, .et_pb_contact_form textarea:focus {
  outline: none; border-color: var(--ilc-green);
  box-shadow: 0 0 0 3px rgba(62, 107, 82, 0.15);
}
.wpcf7 ::placeholder { color: #9aa39c; }
.wpcf7 input[type="submit"],
.et_pb_contact_form .et_pb_button {
  font-family: var(--ilc-font-body) !important; font-size: 13px !important; font-weight: 600 !important;
  text-transform: uppercase !important; letter-spacing: 2px !important;
  color: var(--ilc-charcoal) !important; background-color: var(--ilc-gold) !important;
  border: 1px solid var(--ilc-gold) !important; border-radius: 40px !important;
  padding: 0.95em 2.6em !important; cursor: pointer; transition: all 0.35s var(--ilc-ease) !important;
}
.wpcf7 input[type="submit"]:hover {
  background-color: var(--ilc-gold-dark) !important; border-color: var(--ilc-gold-dark) !important;
  color: #ffffff !important; transform: translateY(-2px); box-shadow: 0 12px 26px rgba(169, 135, 63, 0.32);
}
.wpcf7 .wpcf7-not-valid { border-color: #c0392b !important; }
.wpcf7 .wpcf7-not-valid-tip { font-size: 12px; color: #c0392b; margin-top: 4px; }
.wpcf7 .wpcf7-response-output {
  border: 1px solid var(--ilc-green) !important; border-radius: 8px;
  padding: 0.9em 1.2em !important; margin: 1.2em 0 0 !important; font-size: 14px;
  color: var(--ilc-green-dark); background: var(--ilc-sage-tint);
}
/* Floating white form card — class: ilc-form-card */
.ilc-form-card {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint);
  border-radius: 16px; padding: 2.6rem 2.4rem !important;
  box-shadow: 0 24px 50px rgba(38, 48, 42, 0.10);
}
.ilc-form-row { display: flex; gap: 16px; }
.ilc-form-row > p { flex: 1; margin: 0 !important; }
@media (max-width: 640px) { .ilc-form-row { flex-direction: column; gap: 0; } }

/* ==========================================================================
   18. WOOCOMMERCE — booking product & checkout polish
   ========================================================================== */
.woocommerce ul.products li.product {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-radius: 12px;
  overflow: hidden; padding-bottom: 1.2rem !important; text-align: center;
  transition: transform 0.45s var(--ilc-ease), box-shadow 0.45s var(--ilc-ease);
}
.woocommerce ul.products li.product:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(38,48,42,0.14); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--ilc-font-heading) !important; font-size: 22px !important; color: var(--ilc-charcoal) !important;
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price, .woocommerce div.product span.price {
  color: var(--ilc-green-dark) !important; font-family: var(--ilc-font-body) !important; font-weight: 500;
}
.woocommerce .onsale { background: var(--ilc-gold) !important; color: var(--ilc-charcoal) !important; }

/* ==========================================================================
   19. CLIENT PORTAL  — passwordless login + forms area (class: ilc-portal)
   ========================================================================== */
.ilc-portal { max-width: 620px; margin: 0 auto; text-align: center; }
.ilc-portal-card {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-radius: 16px;
  padding: 3rem 2.6rem !important; box-shadow: 0 24px 50px rgba(38, 48, 42, 0.10); text-align: left;
}
.ilc-portal-card h2 { text-align: center; }
.ilc-portal-forms { max-width: 820px; margin: 0 auto; }
.ilc-portal-form-item {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-left: 3px solid var(--ilc-gold);
  border-radius: 10px; padding: 1.2rem 1.5rem; margin-bottom: 1rem;
}
.ilc-portal-form-item .ilc-status {
  font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--ilc-gold-dark); font-weight: 600;
}
.ilc-portal-form-item .ilc-status.done { color: var(--ilc-green); }

/* ==========================================================================
   20. FOOTER
   SECTION → ilc-footer · TOP ROW → ilc-footer-top ilc-stagger ilc-fade-up
   BRAND COL → ilc-footer-brand · LINK COLS → ilc-footer-col
   HEADINGS → ilc-footer-heading · LINK LISTS → ilc-footer-links
   SOCIAL ROW → ilc-footer-social · BOTTOM BAR → ilc-footer-bottom
   ========================================================================== */
.ilc-footer {
  background-color: var(--ilc-green-dark) !important;
  background-image: none !important;
  padding: 6rem 0 2rem !important; position: relative; overflow: visible;
}
/* Organic GREEN wave — the footer's top edge curves up over the page, so it
   blends with ANY section color above it (no fixed cream band). */
.ilc-footer::before {
  content: ''; position: absolute; top: -49px; left: 0; right: 0; height: 50px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 50' preserveAspectRatio='none'%3E%3Cpath d='M0,50 L1440,50 L1440,25 C1160,-2 900,45 720,27 C540,9 260,-2 0,25 Z' fill='%232B4A39'/%3E%3C/svg%3E") no-repeat bottom center / 100% 50px;
  pointer-events: none; z-index: 2;
}
/* Gold leaf sprig accent just below the wave */
.ilc-footer::after {
  content: ''; position: absolute; top: 72px; left: 50%; transform: translateX(-50%);
  width: 24px; height: 24px; z-index: 1; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 C 6 6, 4 14, 12 22 C 20 14, 18 6, 12 2 Z' fill='%23C9A961'/%3E%3Cpath d='M12 5 V 20' stroke='%232B4A39' stroke-width='1.1' fill='none'/%3E%3C/svg%3E") no-repeat center / contain;
}
.ilc-footer-heading,
.ilc-footer-heading .et_pb_text_inner,
.ilc-footer-heading .et_pb_text_inner p {
  font-family: var(--ilc-font-body) !important; text-transform: uppercase !important;
  letter-spacing: 0.24em !important; font-size: 13px !important; font-weight: 700 !important;
  color: var(--ilc-gold) !important;
}
/* Only the heading MODULE carries spacing — stops the inner wrapper and <p>
   from ALSO adding padding/margin (that stacking was the big gap). */
.ilc-footer-heading .et_pb_text_inner,
.ilc-footer-heading .et_pb_text_inner p { margin: 0 !important; padding: 0 !important; }
.ilc-footer-heading { margin: 0 0 0.9rem !important; padding-bottom: 0.5rem !important; position: relative; }

/* Footer columns: size to content and distribute with EQUAL gaps between them,
   and keep modules top-aligned (no stretch gap under the headings). */
.ilc-footer .ilc-footer-top {
  display: flex !important; flex-wrap: wrap !important;
  justify-content: space-between !important; align-items: flex-start !important;
  row-gap: 40px !important;
}
.ilc-footer .ilc-footer-top > .et_pb_column,
.ilc-footer .ilc-footer-top .et_pb_column.ilc-footer-col {
  display: block !important; width: auto !important; max-width: 27% !important;
  margin: 0 !important; flex: 0 1 auto !important; align-self: flex-start !important; height: auto !important;
}
.ilc-footer .ilc-footer-col > .et_pb_module { flex: 0 0 auto !important; height: auto !important; }
.ilc-footer .ilc-footer-heading,
.ilc-footer .ilc-footer-heading .et_pb_text_inner { height: auto !important; min-height: 0 !important; }
.ilc-footer .ilc-footer-heading { margin: 0 0 0.9rem !important; }
@media (max-width: 980px) {
  .ilc-footer .ilc-footer-top { justify-content: flex-start !important; column-gap: 8% !important; }
  .ilc-footer .ilc-footer-top .et_pb_column.ilc-footer-col { max-width: 44% !important; }
}
@media (max-width: 600px) {
  .ilc-footer .ilc-footer-top .et_pb_column.ilc-footer-col { max-width: 100% !important; width: 100% !important; }
}
.ilc-footer-heading::after {
  content: ''; position: absolute; left: 0; bottom: 0; width: 32px; height: 1px;
  background: var(--ilc-green-soft); opacity: 0.6;
}
.ilc-footer-brand img { max-width: 180px; }

/* Divi adds a 1.174% bottom margin to modules in 1/4 columns, which leaves a big
   gap under the footer logo — override it (#page-container beats Divi's selector). */
#page-container .ilc-footer .ilc-footer-brand { margin-bottom: 10px !important; }
.ilc-footer-brand, .ilc-footer-brand p,
.ilc-footer-contact, .ilc-footer-contact p,
.ilc-footer .et_pb_text_inner, .ilc-footer .et_pb_text_inner p,
.ilc-footer p, .ilc-footer li,
.ilc-footer .et_pb_bg_layout_light .et_pb_text_inner {
  font-family: var(--ilc-font-body) !important; font-style: normal;
  font-size: 15px !important; line-height: 1.9; letter-spacing: 0.02em; color: #c3ccc4 !important;
}
/* keep the gold uppercase heading label its own size (overrides the 15px above) */
.ilc-footer-heading, .ilc-footer-heading .et_pb_text_inner, .ilc-footer-heading .et_pb_text_inner p {
  font-size: 13px !important;
}
/* contact block sits under the logo — icon list */
.ilc-footer-contact-wrap { margin-top: 0.6rem; }
.ilc-footer-contact { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.ilc-footer-contact li {
  position: relative; padding: 0 0 0.7rem 30px !important; margin: 0 !important;
  font-size: 15px !important; color: #c3ccc4 !important; border: 0 !important; line-height: 1.5;
}
.ilc-footer-contact li a { font-size: 15px !important; }
.ilc-footer-contact li::before {
  content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px;
  background-color: var(--ilc-gold);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: 18px 18px; mask-size: 18px 18px;
}
.ilc-footer-contact li.fc-phone::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.3 1.1.4 2.4.6 3.6.6.6 0 1 .5 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.4.3 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.3 1.1.4 2.4.6 3.6.6.6 0 1 .5 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.4.3 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z'/%3E%3C/svg%3E");
}
.ilc-footer-contact li.fc-mail::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M2 6l10 7 10-7'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='M2 6l10 7 10-7'/%3E%3C/svg%3E");
}
.ilc-footer-contact li.fc-clock::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

.ilc-footer-contact li.fc-linkedin::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zM10 9h3.8v1.7h.05c.53-1 1.83-2.05 3.75-2.05 4 0 4.75 2.63 4.75 6.05V21H21v-5.4c0-1.29-.02-2.95-1.8-2.95-1.8 0-2.08 1.4-2.08 2.85V21H13z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zM10 9h3.8v1.7h.05c.53-1 1.83-2.05 3.75-2.05 4 0 4.75 2.63 4.75 6.05V21H21v-5.4c0-1.29-.02-2.95-1.8-2.95-1.8 0-2.08 1.4-2.08 2.85V21H13z'/%3E%3C/svg%3E");
}

.ilc-footer-contact li.fc-youtube::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M23 12s0-3.2-.4-4.7a2.5 2.5 0 0 0-1.8-1.8C19.3 5 12 5 12 5s-7.3 0-8.8.5A2.5 2.5 0 0 0 1.4 7.3C1 8.8 1 12 1 12s0 3.2.4 4.7a2.5 2.5 0 0 0 1.8 1.8C4.7 19 12 19 12 19s7.3 0 8.8-.5a2.5 2.5 0 0 0 1.8-1.8C23 15.2 23 12 23 12zM9.75 15.02V8.98L15.5 12l-5.75 3.02z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M23 12s0-3.2-.4-4.7a2.5 2.5 0 0 0-1.8-1.8C19.3 5 12 5 12 5s-7.3 0-8.8.5A2.5 2.5 0 0 0 1.4 7.3C1 8.8 1 12 1 12s0 3.2.4 4.7a2.5 2.5 0 0 0 1.8 1.8C4.7 19 12 19 12 19s7.3 0 8.8-.5a2.5 2.5 0 0 0 1.8-1.8C23 15.2 23 12 23 12zM9.75 15.02V8.98L15.5 12l-5.75 3.02z'/%3E%3C/svg%3E");
}
.ilc-footer .ilc-footer-heading .et_pb_text_inner p { color: var(--ilc-gold) !important; }
.ilc-footer .ilc-signature, .ilc-footer .ilc-signature p { color: var(--ilc-gold) !important; }

/* Link lists — Text module links AND Divi Menu module */
.ilc-footer-links ul, .ilc-footer .et_pb_menu ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.ilc-footer-links li, .ilc-footer .et_pb_menu li { margin: 0 0 0.7rem !important; border: 0 !important; padding: 0 !important; }
.ilc-footer-links a, .ilc-footer .et_pb_menu a, .ilc-footer a {
  position: relative; display: inline-block; color: #c3ccc4 !important;
  font-size: 15px !important; letter-spacing: 0.02em; text-decoration: none !important;
  transition: color 0.35s var(--ilc-ease), padding-left 0.35s var(--ilc-ease);
}
.ilc-footer-links a::after, .ilc-footer .et_pb_menu a::after {
  content: ''; position: absolute; left: 0; bottom: -3px; width: 0; height: 1px;
  background: var(--ilc-gold); transition: width 0.4s var(--ilc-ease);
}
.ilc-footer-links a:hover, .ilc-footer .et_pb_menu a:hover, .ilc-footer a:hover { color: #ffffff !important; padding-left: 6px; }
.ilc-footer-links a:hover::after, .ilc-footer .et_pb_menu a:hover::after { width: calc(100% - 6px); }

/* Force Divi Menu module into a clean vertical list */
.ilc-footer .et_pb_menu { background: transparent !important; }
.ilc-footer .et_pb_menu nav > ul, .ilc-footer .et_pb_menu .et-menu.nav { display: block !important; text-align: left !important; }
.ilc-footer .et_pb_menu nav > ul > li, .ilc-footer .et_pb_menu .et-menu > li {
  display: block !important; float: none !important; margin: 0 0 0.7rem !important; padding: 0 !important; border: 0 !important;
}
.ilc-footer .et_mobile_nav_menu, .ilc-footer .et_pb_menu .mobile_nav { display: none !important; }

/* Social icons — sage circles, gold on hover */
.ilc-footer-social .et_pb_social_media_follow_network a.icon {
  width: 40px !important; height: 40px !important;
  background-color: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(110,155,126,0.4) !important; border-radius: 50% !important;
  transition: transform 0.4s var(--ilc-ease), background-color 0.35s var(--ilc-ease), border-color 0.35s var(--ilc-ease) !important;
}
.ilc-footer-social .et_pb_social_media_follow_network a.icon::before {
  color: var(--ilc-green-soft) !important; width: 40px !important; height: 40px !important; line-height: 40px !important; font-size: 16px !important;
  transition: color 0.35s var(--ilc-ease);
}
.ilc-footer-social .et_pb_social_media_follow_network a.icon:hover {
  background-color: var(--ilc-gold) !important; border-color: var(--ilc-gold) !important; transform: translateY(-4px);
}
.ilc-footer-social .et_pb_social_media_follow_network a.icon:hover::before { color: var(--ilc-charcoal) !important; }
.ilc-footer .ilc-footer-social a, .ilc-footer .ilc-footer-social a:hover { padding-left: 0 !important; }
.ilc-footer .ilc-footer-social a::after { display: none !important; }

/* Bottom bar */
.ilc-footer-bottom { padding-top: 1rem !important; border-top: 1px solid rgba(255,255,255,0.08); margin-top: 2rem; }
.ilc-footer-bottom, .ilc-footer-bottom p { color: rgba(195,204,196,0.7) !important; font-size: 12.5px !important; letter-spacing: 0.05em; }
.ilc-footer-bottom a { color: rgba(195,204,196,0.85) !important; }
.ilc-footer-bottom a:hover { color: var(--ilc-gold) !important; }
#footer-bottom { display: none !important; }

@media (max-width: 767px) {
  .ilc-footer { padding-top: 4rem !important; }
  .ilc-book-list ul { columns: 1; }
}

/* Footer menu must stay visible on mobile (Divi hides it behind a hamburger) */
@media (max-width: 980px) {
  .ilc-footer .et_pb_menu__menu { display: block !important; }
  .ilc-footer .et_pb_menu__menu nav, .ilc-footer .et_pb_menu__menu nav > ul {
    display: block !important; opacity: 1 !important; visibility: visible !important;
  }
  .ilc-footer .et_pb_menu__menu nav > ul > li { display: block !important; float: none !important; text-align: left !important; }
  .ilc-footer .et_mobile_nav_menu, .ilc-footer .et_pb_menu .mobile_nav, .ilc-footer .et_pb_menu .et_mobile_menu { display: none !important; }
}

/* ==========================================================================
   21. PAGE HEADER BANNER  — reusable inner-page hero (class: ilc-page-banner)
   ========================================================================== */
.ilc-page-banner {
  background-color: var(--ilc-sage-tint);
  background-image:
    radial-gradient(50% 90% at 82% 0%, rgba(62,107,82,0.12) 0%, rgba(62,107,82,0) 60%),
    radial-gradient(46% 80% at 10% 110%, rgba(201,169,97,0.14) 0%, rgba(201,169,97,0) 62%);
  text-align: center;
  position: relative; overflow: hidden;
}
/* Organic white wave into the content section below */
.ilc-page-banner::after {
  content: ""; position: absolute; bottom: -1px; left: 0; right: 0; height: 48px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 48' preserveAspectRatio='none'%3E%3Cpath d='M0,48 L1440,48 L1440,20 C1160,-10 900,40 720,22 C540,4 260,-8 0,22 Z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat bottom center / 100% 48px;
  pointer-events: none;
}
.ilc-page-banner h1 { margin-bottom: 0.4rem; }
.ilc-page-banner .ilc-accent-text p { font-size: 1.2em; }

/* Signature: hero image breathes with a slow, gentle float */
@keyframes ilcFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
.ilc-hero .ilc-img-frame.ilc-visible { animation: ilcFloat 7.5s ease-in-out 1.2s infinite; }

/* ==========================================================================
   22. TRUST / STATS ROW  — row class: ilc-stats  (reference credibility band)
   Each column: number text = ilc-stat-num, label text below
   ========================================================================== */
.ilc-stats { align-items: stretch; }
.ilc-stats .et_pb_column {
  text-align: center; padding: 1.4rem 1rem !important; position: relative;
}
.ilc-stats .et_pb_column:not(:last-child)::after {
  content: ""; position: absolute; right: 0; top: 22%; height: 56%; width: 1px;
  background: var(--ilc-gold); opacity: 0.4;
}
.ilc-stat-num, .ilc-stat-num p {
  font-family: var(--ilc-font-heading) !important; font-weight: 600 !important;
  font-size: 2.9rem !important; line-height: 1; color: var(--ilc-green) !important; margin: 0 0 0.3rem;
}
.ilc-section-dark .ilc-stat-num, .ilc-section-dark .ilc-stat-num p { color: var(--ilc-gold) !important; }
.ilc-stat-label, .ilc-stat-label p {
  font-family: var(--ilc-font-body) !important; text-transform: uppercase;
  letter-spacing: 0.16em; font-size: 12px !important; font-weight: 500; color: var(--ilc-text) !important; margin: 0;
}
.ilc-section-dark .ilc-stat-label p { color: #c3ccc4 !important; }
@media (max-width: 767px) {
  .ilc-stats .et_pb_column:not(:last-child)::after { display: none; }
}

/* ==========================================================================
   23. EMOTIONAL HOOK  — section class: ilc-hook  (reference pain-point band)
   ========================================================================== */
.ilc-hook .ilc-hook-lead .et_pb_text_inner,
.ilc-hook .ilc-hook-lead p {
  font-family: var(--ilc-font-heading) !important; font-style: italic;
  font-size: clamp(1.6rem, 3vw, 2.4rem) !important; line-height: 1.35;
  color: var(--ilc-green-dark);
}
.ilc-section-dark.ilc-hook .ilc-hook-lead p { color: #eef3ee; }

/* ==========================================================================
   24. ICON PILLARS  — row class: ilc-pillars  (reference 3-column benefits)
   Use Divi Blurb modules with an icon; columns center automatically.
   ========================================================================== */
.ilc-pillars .et_pb_blurb {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-radius: 14px;
  padding: 2.6rem 1.8rem !important; height: 100%; text-align: center;
  transition: transform 0.45s var(--ilc-ease), box-shadow 0.45s var(--ilc-ease);
}
.ilc-pillars .et_pb_blurb:hover { transform: translateY(-8px); box-shadow: 0 22px 44px rgba(38,48,42,0.14); }
.ilc-pillars .et_pb_blurb .et_pb_main_blurb_image { margin-bottom: 1.1rem; }
.ilc-pillars .et_pb_blurb .et-pb-icon {
  color: var(--ilc-green) !important; width: 74px; height: 74px; font-size: 40px !important; line-height: 74px !important;
  background: var(--ilc-sage-tint); border-radius: 50%; display: inline-block;
}
.ilc-pillars .et_pb_blurb .et_pb_blurb_container { text-align: center; }
.ilc-pillars .et_pb_module_header { font-size: 1.6rem !important; }

/* ==========================================================================
   25. SCENARIO LIST  — "Who I help" chips (text module class: ilc-scenario-list)
   ========================================================================== */
.ilc-scenario-list ul {
  list-style: none !important; margin: 0 !important; padding: 0 !important;
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: center;
}
.ilc-scenario-list li {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint);
  border-radius: 40px; padding: 0.55rem 1.3rem !important; font-size: 14px;
  color: var(--ilc-charcoal); box-shadow: 0 4px 14px rgba(38,48,42,0.05);
  transition: transform 0.3s var(--ilc-ease), border-color 0.3s ease;
}
.ilc-scenario-list li:hover { transform: translateY(-3px); border-color: var(--ilc-gold); }

/* ==========================================================================
   26. METHODOLOGY ROWS  — "How we create change" (blurb class: ilc-method-item)
   Icon-left, text-right horizontal rows.
   ========================================================================== */
.ilc-method-item.et_pb_blurb {
  display: flex; text-align: left; gap: 1.4rem;
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-left: 3px solid var(--ilc-gold);
  border-radius: 12px; padding: 1.6rem 1.8rem !important; margin-bottom: 1rem; height: 100%;
}
.ilc-method-item.et_pb_blurb .et_pb_main_blurb_image { margin: 0; flex: 0 0 auto; }
.ilc-method-item .et-pb-icon {
  color: var(--ilc-green) !important; background: var(--ilc-sage-tint);
  width: 58px; height: 58px; line-height: 58px !important; font-size: 30px !important; border-radius: 50%; display: inline-block;
}
.ilc-method-item .et_pb_blurb_container { text-align: left; padding-top: 0.2rem; }
.ilc-method-item .et_pb_module_header { font-size: 1.4rem !important; margin-bottom: 0.3rem !important; }

/* ==========================================================================
   27. TESTIMONIALS  — row class: ilc-testimonials (placeholder-ready)
   Each column: text module class ilc-testimonial with <p> quote, <cite> name
   ========================================================================== */
.ilc-testimonial .et_pb_text_inner {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-radius: 14px;
  padding: 2.4rem 2rem 2rem !important; height: 100%; position: relative;
  box-shadow: 0 12px 30px rgba(38,48,42,0.06);
}
.ilc-testimonial .et_pb_text_inner::before {
  content: "\201C"; font-family: var(--ilc-font-heading); font-size: 4.5rem; line-height: 1;
  color: var(--ilc-gold); opacity: 0.5; position: absolute; top: 8px; left: 18px;
}
.ilc-testimonial p { font-family: var(--ilc-font-heading) !important; font-style: italic; font-size: 1.25rem; line-height: 1.5; color: var(--ilc-green-dark); position: relative; }
.ilc-testimonial cite {
  display: block; margin-top: 1.2rem; font-family: var(--ilc-font-body); font-style: normal;
  font-weight: 600; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ilc-gold-dark);
}
.ilc-testimonial cite span { display: block; text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--ilc-text); font-size: 13px; margin-top: 2px; }

/* ==========================================================================
   28. BLOG CARDS  — row class: ilc-blog (placeholder 3-card grid)
   Blurb modules: image on top via url; class ilc-blog-card
   ========================================================================== */
.ilc-blog-card.et_pb_blurb {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-radius: 14px; overflow: hidden;
  padding: 0 !important; height: 100%; text-align: left;
  transition: transform 0.45s var(--ilc-ease), box-shadow 0.45s var(--ilc-ease);
}
.ilc-blog-card.et_pb_blurb:hover { transform: translateY(-8px); box-shadow: 0 22px 44px rgba(38,48,42,0.14); }
.ilc-blog-card .et_pb_main_blurb_image { margin: 0 !important; }
.ilc-blog-card .et_pb_main_blurb_image img { width: 100%; height: 200px; object-fit: cover; display: block; }
.ilc-blog-card .et_pb_blurb_container { padding: 1.6rem 1.6rem 1.8rem !important; }
.ilc-blog-card .et_pb_module_header { font-size: 1.4rem !important; }
.ilc-blog-card .et_pb_blurb_description { font-size: 14px; }

/* ==========================================================================
   29. FOOTER NEWSLETTER  — column class: ilc-footer-newsletter
   Works with Divi Email Optin OR Contact Form 7.
   ========================================================================== */
.ilc-footer-newsletter input[type="text"],
.ilc-footer-newsletter input[type="email"],
.ilc-footer-newsletter .et_pb_newsletter_field input {
  background: rgba(255,255,255,0.06) !important; border: 1px solid rgba(255,255,255,0.18) !important;
  color: #fff !important; border-radius: 8px !important; padding: 0.8em 1em !important; width: 100%;
  margin-bottom: 12px; box-sizing: border-box;
}
.ilc-footer-newsletter input::placeholder { color: rgba(255,255,255,0.5) !important; }
.ilc-footer-newsletter input:focus { border-color: var(--ilc-gold) !important; background: rgba(255,255,255,0.1) !important; outline: none; }
.ilc-footer-newsletter .et_pb_newsletter_button,
.ilc-footer-newsletter .et_pb_newsletter_button.et_pb_button,
.ilc-footer-newsletter input[type="submit"],
.ilc-footer-newsletter .ilc-news-form button {
  font-family: var(--ilc-font-body); font-size: 13px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 1.6px; cursor: pointer;
  background-color: var(--ilc-gold) !important; border: 1px solid var(--ilc-gold) !important;
  color: var(--ilc-charcoal) !important; width: 100%; text-align: center; border-radius: 40px !important;
  padding: 0.8em 1em !important; transition: all 0.35s var(--ilc-ease);
}
.ilc-footer-newsletter .et_pb_newsletter_button:hover,
.ilc-footer-newsletter input[type="submit"]:hover,
.ilc-footer-newsletter .ilc-news-form button:hover {
  background-color: var(--ilc-gold-dark) !important; border-color: var(--ilc-gold-dark) !important; color: #fff !important;
}
.ilc-footer-newsletter .ilc-news-form { display: block; }
.ilc-footer-newsletter .et_pb_newsletter_description,
.ilc-footer-newsletter .et_pb_newsletter_header { display: none; }
.ilc-footer-newsletter p.et_pb_newsletter_field { margin: 0; }

/* ==========================================================================
   30. WOOCOMMERCE CART / CHECKOUT / ACCOUNT polish
   ========================================================================== */
.woocommerce-cart .cart_totals, .woocommerce-checkout .woocommerce-checkout-review-order {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-radius: 14px; padding: 1.6rem !important;
}
.woocommerce table.shop_table {
  border: 1px solid var(--ilc-sage-tint) !important; border-radius: 12px !important; overflow: hidden;
}
.woocommerce table.shop_table th { background: var(--ilc-sage-tint) !important; color: var(--ilc-charcoal) !important; font-family: var(--ilc-font-body) !important; }
.woocommerce .woocommerce-info, .woocommerce-message {
  border-top-color: var(--ilc-green) !important;
}
.woocommerce .woocommerce-info::before, .woocommerce-message::before { color: var(--ilc-green) !important; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
  border: 1px solid #d9ddd6 !important; border-radius: 8px !important; padding: 0.7em 0.9em !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  border: 1px solid var(--ilc-sage-tint); border-radius: 12px; overflow: hidden; list-style: none; padding: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a { color: var(--ilc-charcoal) !important; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--ilc-green) !important; font-weight: 600; }

/* Thank-you / order confirmation extras */
.ilc-thankyou { text-align: center; }
.ilc-thankyou .ilc-thankyou-icon {
  width: 84px; height: 84px; border-radius: 50%; background: var(--ilc-sage-tint);
  display: inline-flex; align-items: center; justify-content: center; margin: 0 auto 1.4rem;
  color: var(--ilc-green); font-size: 40px;
}

/* ==========================================================================
   31. SESSION PRICING CARDS (Book A Session — [ilc_sessions], from products)
   ========================================================================== */
.ilc-plans {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; gap: 28px;
}
.ilc-plan {
  position: relative; display: flex; flex-direction: column; text-align: center;
  width: 340px; max-width: 100%;
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-radius: 18px;
  padding: 2.6rem 2.2rem;
  box-shadow: 0 14px 36px rgba(38, 48, 42, 0.07);
  transition: transform 0.45s var(--ilc-ease), box-shadow 0.45s var(--ilc-ease);
}
.ilc-plan:hover { transform: translateY(-6px); box-shadow: 0 24px 50px rgba(38, 48, 42, 0.14); }
.ilc-plan-featured {
  border: 2px solid var(--ilc-green);
  box-shadow: 0 24px 55px rgba(38, 48, 42, 0.16);
}
.ilc-plan-badge {
  position: absolute; top: -15px; left: 50%; transform: translateX(-50%);
  background: var(--ilc-green); color: #ffffff;
  font-family: var(--ilc-font-body); text-transform: uppercase; letter-spacing: 0.14em;
  font-size: 11px; font-weight: 600; padding: 0.5em 1.3em; border-radius: 40px; white-space: nowrap;
}
.ilc-plan-name {
  font-family: var(--ilc-font-heading) !important; font-size: 1.7rem !important;
  color: var(--ilc-charcoal); letter-spacing: 0.02em; margin: 0 0 0.5rem;
}
.ilc-plan-price,
.ilc-plan-price .amount,
.ilc-plan-price .woocommerce-Price-amount {
  font-family: var(--ilc-font-heading) !important; font-size: 3rem !important; font-weight: 700 !important;
  color: var(--ilc-green) !important; line-height: 1; margin: 0.2rem 0;
}
.ilc-plan-price del,
.ilc-plan-price del .amount { color: #9aa39c !important; font-size: 1.3rem !important; }
.ilc-plan-price ins { text-decoration: none; }
.ilc-plan-sub { color: var(--ilc-text); font-size: 16px !important; margin: 0.5rem 0 1.5rem !important; }
.ilc-plan-features { list-style: none; margin: 0 0 1.8rem; padding: 0; text-align: left; }
.ilc-plan-features li {
  position: relative; padding: 0.6rem 0 0.6rem 1.9rem; font-size: 15.5px; color: var(--ilc-text);
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.ilc-plan-features li:last-child { border-bottom: 0; }
.ilc-plan-features li::before {
  content: ""; position: absolute; left: 0; top: 0.72rem; width: 16px; height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233E6B52' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center / contain;
}
.ilc-plan-btn.et_pb_button { margin-top: auto; width: 100%; text-align: center; }
.ilc-plan-btn.et_pb_button:after { display: none !important; }
@media (max-width: 767px) { .ilc-plan { width: 100%; } }

/* ==========================================================================
   32. ELEGANCE REFINEMENTS
   ========================================================================== */

/* Heading fonts — enforce the serif consistently across every heading/label */
h1, h2, h3, h4,
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3, .et_pb_module h4,
.ilc-plan-name, .ilc-cred-abbr, .ilc-price-amt,
.et_pb_blurb .et_pb_module_header {
  font-family: var(--ilc-font-heading) !important;
}

/* 1:1 Coaching — make the two focus columns EQUAL height and aligned */
.ilc-focus-row {
  display: flex !important; align-items: stretch !important; flex-wrap: wrap !important;
}
.ilc-focus-row > .et_pb_column { align-self: stretch !important; }
.ilc-focus-row .ilc-focus-col { height: auto; display: flex; flex-direction: column; }
@media (max-width: 767px) { .ilc-focus-row > .et_pb_column { width: 100% !important; } }

/* Meet Your Coach — elegant credential cards */
.ilc-creds {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 0.5rem;
}
.ilc-cred {
  display: flex; flex-direction: column; gap: 0.5rem; text-align: center;
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-top: 3px solid var(--ilc-gold);
  border-radius: 14px; padding: 2rem 1.4rem;
  box-shadow: 0 12px 30px rgba(38, 48, 42, 0.06);
  transition: transform 0.45s var(--ilc-ease), box-shadow 0.45s var(--ilc-ease);
}
.ilc-cred:hover { transform: translateY(-6px); box-shadow: 0 22px 46px rgba(62, 107, 82, 0.16); }
.ilc-cred-abbr {
  font-family: var(--ilc-font-heading) !important; font-size: 1.9rem; font-weight: 600;
  color: var(--ilc-green); line-height: 1.1;
}
.ilc-cred-inst { font-size: 14px; color: var(--ilc-text); line-height: 1.5; }
@media (max-width: 900px) { .ilc-creds { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .ilc-creds { grid-template-columns: 1fr; } }

/* Resources — cleaner two-column cards with hover + gold accent */
.ilc-resource-list ul { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ilc-resource-list li {
  margin: 0 !important; padding: 1rem 1.2rem !important; line-height: 1.55;
  transition: transform 0.35s var(--ilc-ease), box-shadow 0.35s var(--ilc-ease), border-left-color 0.35s ease;
}
.ilc-resource-list li:hover {
  transform: translateY(-3px); box-shadow: 0 14px 30px rgba(38, 48, 42, 0.10);
  border-left-color: var(--ilc-gold) !important;
}
.ilc-resource-list li strong { color: var(--ilc-green-dark); }
@media (max-width: 700px) { .ilc-resource-list ul { grid-template-columns: 1fr; } }

/* Recommended reading — refined book list */
.ilc-book-list ul { column-gap: 3rem; }
.ilc-book-list li { padding: 0.6rem 0 0.6rem 1.7rem !important; line-height: 1.5; }
.ilc-book-list li::before { top: 0.65rem; color: var(--ilc-gold); }

/* Books read as an elegant reading list — clearly distinct from the resource cards */
.ilc-book-list li {
  font-family: var(--ilc-font-heading) !important;
  font-style: italic;
  font-size: 18px !important;
  color: var(--ilc-green-dark) !important;
  border-bottom-color: rgba(201, 169, 97, 0.28) !important;
  letter-spacing: 0.01em;
}
.ilc-book-list li::before { content: "\275E"; color: var(--ilc-gold); font-style: normal; }

/* Book a Session — a touch more elegant */
.ilc-plan { padding: 2.8rem 2.2rem; }
.ilc-plan-name { letter-spacing: 0.01em; position: relative; }
.ilc-plan-name::after {
  content: ""; display: block; width: 44px; height: 2px; margin: 0.7rem auto 0;
  background: var(--ilc-gold); opacity: 0.75;
}

/* Meet Your Coach — the left image keeps its natural size and STICKS while the
   right-hand text scrolls, until the section ends. */
.ilc-about-row {
  display: flex !important; align-items: stretch !important; flex-wrap: wrap !important;
}
/* Column stretches to the text height so the image has room to stick */
.ilc-about-row > .et_pb_column { align-self: stretch !important; }
/* The image column must not carry a transform/will-change or sticky breaks */
.ilc-about-img,
.ilc-about-img.ilc-fade-up {
  display: block !important; transform: none !important; will-change: auto !important; height: auto;
}
.ilc-about-img .et_pb_image { margin: 0 !important; }
.ilc-about-img .ilc-img-frame {
  position: -webkit-sticky !important; position: sticky !important; top: 100px;
  width: 100%; margin: 0 !important;
}
.ilc-about-img .ilc-img-frame .et_pb_image_wrap { display: block; width: 100%; }
.ilc-about-img .ilc-img-frame img { width: 100%; height: auto; display: block; }

/* Signature + role at the end of the About text, kept tight together */
.ilc-about-row .ilc-signature { margin: 1.3rem 0 0 !important; }
.ilc-about-row .ilc-signature .et_pb_text_inner p,
.ilc-about-row .ilc-signature p { text-align: left; margin: 0 !important; }
.ilc-about-row .ilc-role { margin: 0.25rem 0 0 !important; }
.ilc-about-row .ilc-role .et_pb_text_inner p,
.ilc-about-row .ilc-role p { text-align: left; margin: 0 !important; }

@media (max-width: 767px) {
  .ilc-about-row > .et_pb_column { width: 100% !important; }
  .ilc-about-img .ilc-img-frame { position: static !important; }  /* no sticky on mobile */
}

/* Pricing detail — at-a-glance figures + the exact wording (1:1 + Book a Session) */
.ilc-pricing-detail {
  background: #ffffff; border: 1px solid var(--ilc-sage-tint); border-radius: 16px;
  padding: 2.6rem 2.4rem; box-shadow: 0 16px 40px rgba(38, 48, 42, 0.07); text-align: left;
}
.ilc-pd-offers {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
  padding-bottom: 1.8rem; margin-bottom: 1.8rem; border-bottom: 1px solid var(--ilc-sage-tint);
}
.ilc-pd-offer {
  display: flex; flex-direction: column; align-items: center; gap: 0.35rem; text-align: center;
  background: var(--ilc-cream); border: 1px solid var(--ilc-sage-tint); border-radius: 12px;
  padding: 1.6rem 1.3rem;
}
.ilc-pd-offer-alt { border-color: var(--ilc-gold); background: rgba(201, 169, 97, 0.09); }

/* Pricing cards link to Book a Session */
a.ilc-pd-offer { text-decoration: none !important; cursor: pointer; transition: transform .3s var(--ilc-ease), box-shadow .3s var(--ilc-ease), border-color .3s ease; }
a.ilc-pd-offer:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(38,48,42,0.12); border-color: var(--ilc-gold); }
.ilc-pd-cta { text-align: center; margin-top: 1.6rem; }
.ilc-pd-book {
  display: inline-block; font-family: var(--ilc-font-body) !important; font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 2px; color: var(--ilc-charcoal) !important;
  background: var(--ilc-gold); padding: 0.85em 2.2em; border-radius: 40px; text-decoration: none !important;
  transition: background .35s var(--ilc-ease), color .35s var(--ilc-ease), transform .35s var(--ilc-ease);
}
.ilc-pd-book:hover { background: var(--ilc-gold-dark); color: #ffffff !important; transform: translateY(-2px); }
.ilc-pd-offer-name {
  font-family: var(--ilc-font-heading) !important; font-size: 1.4rem; font-weight: 600;
  color: var(--ilc-charcoal); line-height: 1.1;
}
.ilc-pd-offer-meta {
  font-family: var(--ilc-font-body); text-transform: uppercase; letter-spacing: 0.1em;
  font-size: 11.5px; font-weight: 600; color: var(--ilc-gold-dark);
}
.ilc-pd-offer-price {
  font-family: var(--ilc-font-heading) !important; font-size: 2.6rem; font-weight: 600;
  color: var(--ilc-green); line-height: 1; margin-top: 0.2rem;
}
.ilc-pd-text {
  font-size: 16px !important; line-height: 1.85; color: var(--ilc-text);
  margin: 0 !important; text-align: center;
}
@media (max-width: 560px) { .ilc-pd-offers { grid-template-columns: 1fr; } }

/* ==========================================================================
   33. MEDIA ROWS — image + text side by side (Home content, 1:1 intro)
   ========================================================================== */
.ilc-media-row { display: flex !important; align-items: center !important; flex-wrap: wrap !important; }
.ilc-media-row > .et_pb_column { align-self: center !important; }
.ilc-media-img { display: flex !important; }
.ilc-media-img .et_pb_image,
.ilc-media-img .ilc-img-frame { width: 100% !important; margin: 0 !important; }
.ilc-media-img .ilc-img-frame img,
.ilc-media-img img {
  width: 100%; height: auto; display: block; border-radius: 14px;
  box-shadow: 0 24px 55px rgba(38, 48, 42, 0.16);
}
@media (max-width: 767px) {
  .ilc-media-row > .et_pb_column { width: 100% !important; }
  .ilc-media-img { margin-bottom: 26px !important; }
}

/* ==========================================================================
   34. SPLIT HERO (Home) — coach photo left + text right (desktop);
   portrait bg + centered text panel (mobile).
   ========================================================================== */
.ilc-hero-split { background-color: var(--ilc-charcoal) !important; position: relative; overflow: hidden; }
.ilc-hero-split .ilc-hero-row { position: relative; z-index: 2; }

/* Hero typography / colours (formerly carried by .ilc-hero-bg) */
.ilc-hero-split .ilc-display h1,
.ilc-hero-split h1 { color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; font-family: var(--ilc-font-heading) !important; }
.ilc-hero-split h1 em,
.ilc-hero-split .ilc-display h1 em { color: var(--ilc-gold) !important; -webkit-text-fill-color: var(--ilc-gold) !important; font-style: italic; }
.ilc-hero-split .ilc-eyebrow,
.ilc-hero-split .ilc-eyebrow p { color: var(--ilc-gold) !important; }
.ilc-hero-split .ilc-accent-text,
.ilc-hero-split .ilc-accent-text p { color: #eef3ee !important; font-family: var(--ilc-font-body) !important; font-style: normal !important; font-size: 18px !important; font-weight: 400 !important; }

/* Desktop / tablet — coach photo stays in the section background (left);
   text content lives in the RIGHT half so the image stays visible */
@media (min-width: 768px) {
  .ilc-hero-split { min-height: 82vh; display: flex !important; align-items: center !important; }
  .ilc-hero-split::after {
    content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background: linear-gradient(90deg, rgba(38,48,42,0) 40%, rgba(38,48,42,0.45) 66%, rgba(38,48,42,0.82) 100%);
  }
  /* Divi floats columns left, so margin-auto won't move them — use flex on the
     row and push the single text column to the far right. */
  .ilc-hero-split .ilc-hero-row {
    display: flex !important; justify-content: flex-end !important; width: 90% !important; max-width: 1240px !important;
  }
  .ilc-hero-split .ilc-hero-col {
    width: 46% !important; max-width: 46% !important;
    margin: 0 !important; float: none !important;
  }
  .ilc-hero-split .ilc-hero-col .et_pb_text,
  .ilc-hero-split .ilc-hero-col .et_pb_text_inner,
  .ilc-hero-split .ilc-hero-col h1,
  .ilc-hero-split .ilc-hero-col p { text-align: left !important; }
  .ilc-hero-split .ilc-eyebrow .et_pb_text_inner { justify-content: flex-start !important; }
  .ilc-hero-split .ilc-display h1::after { margin-left: 0 !important; margin-right: auto !important; }
  .ilc-hero-split .et_pb_button_module_wrapper {
    text-align: left !important; float: none !important; display: inline-block !important; margin: 14px 12px 0 0 !important;
  }
}

/* Entrance — hero content slides in from the right and fades, staggered */
.ilc-hero-split .ilc-hero-col > .et_pb_module { opacity: 0; animation: ilcHeroIn 1s var(--ilc-ease) forwards; }
.ilc-hero-split .ilc-hero-col > .et_pb_module:nth-child(1) { animation-delay: 0.15s; }
.ilc-hero-split .ilc-hero-col > .et_pb_module:nth-child(2) { animation-delay: 0.30s; }
.ilc-hero-split .ilc-hero-col > .et_pb_module:nth-child(3) { animation-delay: 0.45s; }
.ilc-hero-split .ilc-hero-col > .et_pb_module:nth-child(4) { animation-delay: 0.60s; }
.ilc-hero-split .ilc-hero-col > .et_pb_module:nth-child(5) { animation-delay: 0.72s; }
@keyframes ilcHeroIn { from { opacity: 0; transform: translateX(36px); } to { opacity: 1; transform: none; } }

/* Mobile (phone) — portrait bg image (driven here, so it reliably switches),
   coach photo column hidden, text in a readable panel at the bottom */
@media (max-width: 767px) {
  /* #page-container raises specificity above Divi's generated section bg so the
     phone image reliably replaces the desktop one */
  #page-container .et_pb_section.ilc-hero-split,
  .ilc-hero-split {
    padding-top: 167px !important; padding-bottom: 0 !important;
    display: block !important; text-align: center;
    background-image: linear-gradient(180deg, rgba(38,48,42,0.08) 0%, rgba(38,48,42,0.12) 40%, rgba(38,48,42,0.70) 100%),
                      url('/wp-content/uploads/2026/08/home-hero-1.jpg') !important;
    background-size: cover !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
  }
  .ilc-hero-split .ilc-hero-media { display: none !important; }
  .ilc-hero-split .ilc-hero-row { width: 90% !important; margin: 0 auto 30px !important; display: block !important; }
  .ilc-hero-split .ilc-hero-col {
    width: 100% !important; max-width: 100% !important;
    background: rgba(38, 48, 42, 0.66);
    -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
    border: 1px solid rgba(201, 169, 97, 0.25);
    border-radius: 16px; padding: 20px 18px !important;
  }
  /* smaller text so the panel is shorter and the face stays visible above it */
  #page-container .ilc-hero-split .ilc-display h1 { font-size: 1.95rem !important; }
  #page-container .ilc-hero-split .ilc-accent-text,
  #page-container .ilc-hero-split .ilc-accent-text p { font-size: 15.5px !important; }
  #page-container .ilc-hero-split .ilc-eyebrow,
  #page-container .ilc-hero-split .ilc-eyebrow p { font-size: 11px !important; }
  #page-container .ilc-hero-split .et_pb_button { padding: 0.7em 1.6em !important; font-size: 12px !important; }
  .ilc-hero-split .ilc-hero-col .et_pb_text,
  .ilc-hero-split .ilc-hero-col h1,
  .ilc-hero-split .ilc-hero-col p { text-align: center !important; }
  .ilc-hero-split .ilc-eyebrow .et_pb_text_inner { justify-content: center !important; }
  .ilc-hero-split .et_pb_button_module_wrapper { text-align: center !important; }
  .ilc-hero-split .ilc-hero-col > .et_pb_module { opacity: 1; animation: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ilc-hero-split .ilc-hero-col > .et_pb_module { opacity: 1 !important; animation: none !important; }
}

/* ==========================================================================
   35. QUOTE-OVER-PHOTO FEATURE (1:1 intro) — photo with a quote card
       overlapping its corner, decorative quote mark, hover motion, no shadow
   ========================================================================== */
.ilc-qf {
  position: relative;
  display: flex;
  align-items: stretch;          /* photo matches the card's height — no tan gap */
  justify-content: center;
  padding: 12px 0 20px;
}
/* the photo — cropped to the card height so there's no empty space around it */
.ilc-qf-photo {
  position: relative;
  flex: 0 0 auto;
  width: 40%;
  max-width: 400px;
  border-radius: 22px;
  overflow: hidden;
  z-index: 1;
  transition: transform 0.7s var(--ilc-ease-soft, cubic-bezier(0.19,1,0.22,1));
}
.ilc-qf-photo img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: center 12%;
  transition: transform 0.9s var(--ilc-ease-soft, cubic-bezier(0.19,1,0.22,1));
}
/* quote card — beside the photo, overlapping its edge; content vertically centred */
.ilc-qf-quote {
  position: relative;
  z-index: 2;
  flex: 0 1 600px;
  display: flex; flex-direction: column; justify-content: center;
  margin-left: -70px;            /* overlaps onto the photo's right edge */
  padding: 3.2rem 3.2rem 2.9rem;
  background: var(--ilc-green, #3E6B52);
  border-radius: 22px;
  color: #fff;
  transition: transform 0.7s var(--ilc-ease-soft, cubic-bezier(0.19,1,0.22,1)),
              background-color 0.5s ease;
  overflow: visible;   /* let the corner quote mark show fully */
}
/* Book a Session CTA inside the card */
.ilc-qf-cta {
  display: inline-block; align-self: flex-start; margin-top: 1.7rem;
  font-family: var(--ilc-font-body) !important; font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 2px;
  background: var(--ilc-gold); color: var(--ilc-charcoal) !important;
  padding: 0.85em 2.1em; border-radius: 40px; text-decoration: none;
  transition: background .35s var(--ilc-ease), color .35s var(--ilc-ease), transform .35s var(--ilc-ease);
}
.ilc-qf-cta:hover { background: #ffffff; color: var(--ilc-green-dark) !important; transform: translateY(-2px); }
/* decorative quote mark — top-left corner of the card (sits over the photo edge) */
.ilc-qf-mark {
  position: absolute;
  top: 0.5rem; left: 1.8rem;
  font-family: var(--ilc-font-heading, Georgia, serif);
  font-size: 5.5rem;
  line-height: 1;
  color: var(--ilc-gold, #C9A961);
  opacity: 0.95;
  pointer-events: none;
  transition: transform 0.6s var(--ilc-ease-soft, cubic-bezier(0.19,1,0.22,1)),
              opacity 0.5s ease;
}
.ilc-qf-quote blockquote { margin: 0; }
.ilc-qf-quote blockquote p {
  position: relative;
  font-family: var(--ilc-font-heading, Georgia, serif) !important;
  font-style: italic;
  font-weight: 500;
  font-size: 1.42rem !important;
  line-height: 1.6;
  color: #fff !important;
  margin: 0 !important;
}
/* hover motion — photo eases in, card shifts out, mark blooms */
.ilc-qf:hover .ilc-qf-photo img { transform: scale(1.04); }
.ilc-qf:hover .ilc-qf-quote { transform: translateX(8px); background: var(--ilc-green-dark, #2B4A39); }
.ilc-qf:hover .ilc-qf-mark { transform: translateY(-5px) rotate(-4deg) scale(1.06); opacity: 1; }

@media (max-width: 980px) {
  .ilc-qf { flex-direction: column; align-items: center; }
  .ilc-qf-photo { width: 72%; max-width: 340px; height: 360px; }
  .ilc-qf-quote {
    flex: none; width: 86%; max-width: 520px;
    margin: -52px auto 0;        /* overlaps upward onto the photo when stacked */
  }
  .ilc-qf:hover .ilc-qf-quote { transform: none; }
  .ilc-qf-mark { top: 0.4rem; left: 1.2rem; font-size: 4.6rem; }
  .ilc-qf-cta { align-self: center; }
}
@media (max-width: 767px) {
  .ilc-qf-photo { width: 90%; height: 320px; }
  .ilc-qf-quote { width: 92%; padding: 2.1rem 1.7rem 2rem; }
  .ilc-qf-quote blockquote p { font-size: 1.14rem !important; }
}

/* ==========================================================================
   36. CLIENT PORTAL — passwordless login form
   ========================================================================== */
.ilc-portal-auth { max-width: 420px; margin: 0 auto; text-align: center; }
.ilc-portal-lead { color: var(--ilc-text); font-size: 16px !important; margin: 0 0 1.2rem !important; }
.ilc-portal-form { display: flex; flex-direction: column; gap: 10px; text-align: left; }
.ilc-portal-form label {
  font-family: var(--ilc-font-body) !important;
  text-transform: uppercase; letter-spacing: 1.5px; font-size: 11px; font-weight: 600;
  color: var(--ilc-green-dark); margin-top: 4px;
}
.ilc-portal-form input[type="email"],
.ilc-portal-form input[type="text"] {
  width: 100%; padding: 13px 16px; font-size: 16px !important;
  border: 1px solid rgba(62,107,82,0.28); border-radius: 12px;
  background: #fff; color: var(--ilc-charcoal); transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.ilc-portal-form input:focus {
  outline: none; border-color: var(--ilc-green);
  box-shadow: 0 0 0 3px rgba(62,107,82,0.14);
}
#ilc_code { letter-spacing: 0.4em; font-weight: 600; text-align: center; }
.ilc-portal-form button.et_pb_button { margin-top: 6px; width: 100%; text-align: center; }
.ilc-portal-alt { margin-top: 1rem; font-size: 14px; color: var(--ilc-text); }
.ilc-portal-link {
  background: none; border: 0; padding: 0; cursor: pointer;
  color: var(--ilc-green); font-family: var(--ilc-font-body) !important; font-size: 14px;
  text-decoration: underline; text-underline-offset: 3px;
}
.ilc-portal-link:hover { color: var(--ilc-gold-dark); }
.ilc-portal-notice {
  border-radius: 12px; padding: 12px 16px; margin: 0 0 1.1rem; font-size: 14.5px; line-height: 1.5;
}
.ilc-portal-info  { background: var(--ilc-sage-tint); color: var(--ilc-green-dark); border: 1px solid rgba(62,107,82,0.25); }
.ilc-portal-error { background: #fbeceb; color: #9a3327; border: 1px solid rgba(154,51,39,0.25); }
.ilc-portal-loggedin .ilc-portal-welcome { font-size: 16px !important; margin-bottom: 1rem !important; }
.ilc-portal-loggedin .ilc-btn-ghost {
  background: transparent !important; color: var(--ilc-green-dark) !important;
  border: 1px solid var(--ilc-green) !important;
}
.ilc-portal-loggedin .ilc-btn-ghost:hover {
  background: var(--ilc-green) !important; color: #fff !important; border-color: var(--ilc-green) !important;
}

/* ==========================================================================
   37. CLIENT PORTAL — dashboard + sign-up forms (Agreement / Intake)
   ========================================================================== */
.ilc-portal-dash, .ilc-portal-formwrap { max-width: 780px; margin: 0 auto; }
.ilc-portal-intro { text-align: center; color: var(--ilc-text); margin: 1.6rem 0 1.2rem !important; }

/* 3-step flow */
.ilc-steps3 { list-style: none; margin: 0 auto 2rem; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ilc-step3 {
  display: flex; align-items: center; gap: 16px;
  background: var(--ilc-sage-tint); border: 1px solid transparent; border-radius: 14px; padding: 16px 20px;
  transition: border-color .3s ease, opacity .3s ease;
}
.ilc-step3.is-active { border-color: rgba(201,169,97,.5); background: #fff; box-shadow: 0 10px 26px rgba(38,48,42,.06); }
.ilc-step3.is-done { background: color-mix(in srgb, var(--ilc-sage-tint) 70%, #fff); }
.ilc-step3.is-locked { opacity: .6; }
.ilc-step3-num {
  flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ilc-font-heading) !important; font-size: 1.3rem; font-weight: 600;
  background: var(--ilc-green); color: #fff;
}
.ilc-step3.is-done .ilc-step3-num { background: var(--ilc-green-dark); }
.ilc-step3.is-locked .ilc-step3-num { background: #b7bfb8; font-size: 1rem; }
.ilc-step3-body { flex: 1 1 auto; min-width: 0; }
.ilc-step3-body h3 { margin: 0 0 2px; font-size: 1.2rem; }
.ilc-step3-body p { margin: 0 !important; font-size: 14px !important; color: var(--ilc-text); }
.ilc-step3-action { flex: 0 0 auto; }
.ilc-step3-action .et_pb_button { padding: .55em 1.3em !important; font-size: 11.5px !important; }
.ilc-status-lock { background: #d7dcd7; color: #6a726b; font-size: 12px; text-transform: uppercase; letter-spacing: 1px; font-weight: 600; padding: 6px 14px; border-radius: 30px; }

/* disabled scheduler placeholder */
.ilc-portal-schedule.is-disabled h2 { color: #9aa39c; }
.ilc-sched-locked {
  border: 2px dashed rgba(62,107,82,.25); border-radius: 16px; padding: 40px 24px;
  text-align: center; color: var(--ilc-text); background: repeating-linear-gradient(45deg, transparent, transparent 12px, rgba(62,107,82,.04) 12px, rgba(62,107,82,.04) 24px);
}
.ilc-sched-lockicon { font-size: 2rem; margin-bottom: 8px; opacity: .7; }
.ilc-sched-locked p { margin: 0 !important; font-size: 15px !important; }
@media (max-width: 560px) {
  .ilc-step3 { flex-wrap: wrap; }
  .ilc-step3-body { flex: 1 1 100%; order: 2; margin-top: 6px; }
  .ilc-step3-num { order: 1; }
  .ilc-step3-action { order: 1; margin-left: auto; }
}

/* status chips / form rows */
.ilc-portal-forms { display: flex; flex-direction: column; gap: 12px; margin: 0 auto 2.4rem; }
.ilc-portal-form-item {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  background: var(--ilc-sage-tint); border-radius: 14px; padding: 16px 20px;
}
.ilc-portal-form-item > span:first-child { font-size: 16px; color: var(--ilc-charcoal); }
.ilc-status { font-size: 12px; text-transform: uppercase; letter-spacing: 1.2px; font-weight: 600; padding: 6px 14px; border-radius: 30px; }
.ilc-status-done { background: var(--ilc-green); color: #fff; }
.ilc-form-start.et_pb_button { padding: 0.55em 1.4em !important; font-size: 11.5px !important; }
.ilc-portal-schedule { margin-top: 2.4rem; text-align: center; }
.ilc-portal-schedule h2 { margin-bottom: 1.2rem; }
.ilc-lock { text-align: left; }
.ilc-lock ul { margin: 0.6rem 0 0 1.1rem; }
.ilc-lock li { margin-bottom: 0.4rem; }
.ilc-lock li a { color: var(--ilc-green-dark); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.ilc-lock li a:hover { color: var(--ilc-gold-dark); }

/* form scaffolding */
.ilc-portal-formwrap .ilc-portal-link { display: inline-block; margin-bottom: 1rem; }
.ilc-form-steps { font-size: 14px; letter-spacing: 1px; text-transform: uppercase; color: var(--ilc-green); margin-bottom: 1rem; }
.ilc-form-lead { color: var(--ilc-text); margin: 0 0 1rem !important; }
.ilc-form-note { font-size: 14.5px; color: var(--ilc-green-dark); background: var(--ilc-cream); border-left: 3px solid var(--ilc-gold); padding: 10px 14px; border-radius: 0 8px 8px 0; margin: 1.4rem 0 !important; }
.ilc-field { margin-bottom: 1.1rem; }
.ilc-field label {
  display: block; font-family: var(--ilc-font-body) !important; font-size: 14px; font-weight: 500;
  color: var(--ilc-green-dark); margin-bottom: 6px; line-height: 1.45;
}
.ilc-field input[type="text"], .ilc-field input[type="date"], .ilc-field textarea, .ilc-form input[type="text"] {
  width: 100%; padding: 11px 14px; font-size: 15.5px !important;
  border: 1px solid rgba(62,107,82,0.28); border-radius: 10px; background: #fff; color: var(--ilc-charcoal);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.ilc-field textarea { resize: vertical; line-height: 1.6; }
.ilc-field input:focus, .ilc-field textarea:focus { outline: none; border-color: var(--ilc-green); box-shadow: 0 0 0 3px rgba(62,107,82,0.14); }
.ilc-list7 { display: grid; gap: 8px; }
.ilc-list7-row { display: flex; align-items: center; gap: 10px; }
.ilc-list7-row span { width: 22px; color: var(--ilc-green); font-weight: 600; flex: 0 0 auto; }

/* agreement document text */
.ilc-doc { background: var(--ilc-cream); border: 1px solid rgba(62,107,82,0.14); border-radius: 14px; padding: 1.4rem 1.6rem; margin: 1.2rem 0 1.4rem; }
.ilc-doc p { font-size: 15px !important; line-height: 1.7; margin: 0 0 0.9rem !important; }
.ilc-doc p:last-child { margin-bottom: 0 !important; }
.ilc-doc ul { margin: 0.4rem 0 0 1.1rem; }
.ilc-doc li { font-size: 15px; line-height: 1.6; margin-bottom: 0.5rem; }
.ilc-doc-h { text-align: center; letter-spacing: 1px; margin: 2.2rem 0 0.4rem; }
.ilc-doc-sub { color: var(--ilc-green-dark); margin: 1.2rem 0 0.4rem; }

/* agree checkboxes */
.ilc-check {
  display: flex; gap: 12px; align-items: flex-start;
  background: #fff; border: 1px solid rgba(62,107,82,0.22); border-radius: 12px;
  padding: 14px 16px; margin: 0 0 12px; font-size: 14.5px; line-height: 1.55; color: var(--ilc-charcoal); cursor: pointer;
}
.ilc-check input[type="checkbox"] { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--ilc-green); }
.ilc-sign-row { display: flex; gap: 16px; flex-wrap: wrap; }
.ilc-sign-row .ilc-field { flex: 1 1 220px; }
.ilc-form-actions { display: flex; gap: 12px; justify-content: flex-end; margin-top: 1.6rem; flex-wrap: wrap; }
.ilc-form-actions .ilc-btn-ghost {
  background: transparent !important; color: var(--ilc-green-dark) !important; border: 1px solid var(--ilc-green) !important;
}
@media (max-width: 600px) {
  .ilc-portal-form-item { flex-direction: column; align-items: flex-start; }
  .ilc-form-actions { justify-content: stretch; }
  .ilc-form-actions .et_pb_button { width: 100%; text-align: center; }
}

/* Booking page — annual donation pledge note */
.ilc-pledge .et_pb_text_inner p {
  font-family: var(--ilc-font-heading) !important;
  font-style: italic; font-weight: 500;
  font-size: 1.28rem !important; line-height: 1.6;
  color: var(--ilc-green-dark) !important;
  max-width: 820px; margin: 0 auto !important;
}
.ilc-pledge .et_pb_text_inner p::before { content: "\275D "; color: var(--ilc-gold); font-style: normal; }
.ilc-pledge .et_pb_text_inner p::after  { content: " \275E"; color: var(--ilc-gold); font-style: normal; }

/* Reduced-motion: respect user preference */
@media (prefers-reduced-motion: reduce) {
  html.ilc-js .ilc-fade-up, html.ilc-js .ilc-fade-down, html.ilc-js .ilc-fade-left,
  html.ilc-js .ilc-fade-right, html.ilc-js .ilc-fade-in, html.ilc-js .ilc-zoom-in,
  html.ilc-js .ilc-blur-in, html.ilc-js .ilc-reveal-up {
    opacity: 1 !important; transform: none !important; filter: none !important;
    -webkit-mask-image: none !important; mask-image: none !important; transition: none !important;
  }
  .ilc-hero .ilc-img-frame.ilc-visible { animation: none !important; }
}
