/* ==========================================================================
   Golden Hearth Care - Custom Luxury Styling v3
   Typography: quintessentially.com | Hero: knightsbridgecircle.com
   ========================================================================== */

html { scroll-behavior: smooth; }


/* ==========================================================================
   1. TYPOGRAPHY - Caslon-inspired (quintessentially.com)
   ========================================================================== */

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-weight: 300 !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
  letter-spacing: 0.01em !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

/* ALL headings site-wide — Libre Caslon Display only, override Astra's Cormorant Garamond */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.elementor-widget-heading .elementor-heading-title,
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6,
.entry-content :where(h1,h2,h3,h4,h5,h6),
.site-title, .site-title a,
#content h1, #content h2, #content h3, #content h4, #content h5, #content h6,
#content .elementor-heading-title {
  font-family: 'Libre Caslon Display', 'Georgia', serif !important;
  font-weight: 400 !important;
  letter-spacing: 0.03em !important;
  line-height: 1.3 !important;
}

h1, #content h1 { line-height: 1.2 !important; }
h1.elementor-heading-title[class*="elementor-size"] { line-height: inherit !important; }
h2, #content h2 { letter-spacing: 0.05em !important; }

#content .elementor-widget-text-editor,
#content .elementor-widget-text-editor p,
#content .elementor-text-editor p {
  font-family: 'Inter', sans-serif !important;
  font-weight: 300 !important;
  line-height: 1.85 !important;
  letter-spacing: 0.015em !important;
}


/* ==========================================================================
   2. HEADER - Transparent, overlaying hero (both desktop & mobile)
   ========================================================================== */

/* --- DESKTOP HEADER --- */
.elementor-element-2cceee3,
.elementor-element-2cceee3.e-con,
.elementor-element-2cceee3.e-con-boxed {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 100 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

.elementor-element-2cceee3 > .e-con-inner,
.elementor-element-19e59b5,
.elementor-element-19a0036,
.elementor-element-dcdb347 {
  background: transparent !important;
  background-color: transparent !important;
}

/* Not sticky - scrolls with page */
.elementor-element-2cceee3.elementor-sticky--active {
  position: absolute !important;
  background: transparent !important;
  background-color: transparent !important;
}

.elementor-element-2cceee3.elementor-sticky--effects {
  position: absolute !important;
  box-shadow: none !important;
  background: transparent !important;
  background-color: transparent !important;
}

.elementor-element-2cceee3.elementor-sticky__spacer {
  display: none !important;
}

/* HOME button - no border */
.elementor-element-2cceee3 .hfe-nav-menu .menu-item.current-menu-item > .hfe-menu-item,
.elementor-element-2cceee3 .hfe-nav-menu .hfe-menu-item {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Hide duplicate Private Inquiry TEXT in desktop nav */
.elementor-element-2cceee3 #menu-item-5712 {
  display: none !important;
}

/* Desktop nav - white text on transparent header */
@media (min-width: 768px) {
  .elementor-element-2cceee3 .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 5px !important;
  }

  /* More top padding for breathing room */
  .elementor-element-2cceee3 {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }

  .elementor-element-2cceee3 .hfe-nav-menu .hfe-menu-item {
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 10px 16px !important;
    white-space: nowrap !important;
    color: #ffffff !important;
  }

  .elementor-element-2cceee3 .hfe-nav-menu .hfe-menu-item:hover {
    color: #cccccc !important;
  }

  .elementor-element-2cceee3 .hfe-menu-toggle.sub-arrow i,
  .elementor-element-2cceee3 .hfe-menu-toggle.sub-arrow svg {
    color: #ffffff !important;
    fill: #ffffff !important;
  }

  /* Services dropdown - gold text, dark bg */
  .elementor-element-2cceee3 .hfe-nav-menu .sub-menu {
    background: #1a1a1a !important;
    border: none !important;
    min-width: 320px !important;
  }

  .elementor-element-2cceee3 .hfe-nav-menu .sub-menu .hfe-sub-menu-item {
    color: #b8965a !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    padding: 12px 20px !important;
  }

  .elementor-element-2cceee3 .hfe-nav-menu .sub-menu .hfe-sub-menu-item:hover {
    color: #1a1a1a !important;
    background: #ffffff !important;
  }

  /* CTA button - white bg, gold text, no border */
  .elementor-element-2cceee3 .elementor-button,
  .elementor-element-2cceee3 .elementor-button .elementor-button-text,
  .elementor-element-2cceee3 .elementor-button span {
    color: #b8965a !important;
  }

  .elementor-element-2cceee3 .elementor-button {
    font-size: 12px !important;
    padding: 12px 28px !important;
    white-space: nowrap !important;
    border-radius: 0 !important;
    border: none !important;
    background: #ffffff !important;
    letter-spacing: 0.12em !important;
  }

  .elementor-element-2cceee3 .elementor-button:hover,
  .elementor-element-2cceee3 .elementor-button:hover .elementor-button-text,
  .elementor-element-2cceee3 .elementor-button:hover span {
    color: #8a7040 !important;
    background: #f5f5f5 !important;
  }

  .elementor-element-19e59b5 {
    margin-right: 20px !important;
  }
}


/* --- MOBILE HEADER --- transparent, overlay on hero, NO black background */
.elementor-element-0a1dd84,
.elementor-element-0a1dd84.e-con,
.elementor-element-0a1dd84.e-con-boxed,
.elementor-element-0a1dd84.e-flex,
.elementor-element-0a1dd84.e-con.e-parent,
div.elementor-element.elementor-element-0a1dd84 {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 100 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* All child containers inside mobile header - transparent */
.elementor-element-0a1dd84 > .e-con-inner,
.elementor-element-0a1dd84 .e-con-inner,
.elementor-element-bdb3fc8,
.elementor-element-bdb3fc8.e-con,
div.elementor-element.elementor-element-bdb3fc8,
.elementor-element-166e2be,
.elementor-element-166e2be.e-con,
div.elementor-element.elementor-element-166e2be {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

.elementor-element-0a1dd84.elementor-sticky--active,
div.elementor-element.elementor-element-0a1dd84.elementor-sticky--active {
  position: absolute !important;
  background: transparent !important;
  background-color: transparent !important;
}

.elementor-element-0a1dd84.elementor-sticky--effects {
  position: absolute !important;
  background: transparent !important;
  background-color: transparent !important;
}

.elementor-element-0a1dd84.elementor-sticky__spacer {
  display: none !important;
}

/* Extra: remove the sticky spacer duplicate that Elementor creates */
div[data-id="0a1dd84"].elementor-sticky__spacer {
  display: none !important;
}


/* ==========================================================================
   3. MOBILE MENU FLYOUT - black text, clean, larger font
   ========================================================================== */

.hfe-flyout-content .hfe-nav-menu .hfe-menu-item,
.hfe-flyout-content .hfe-nav-menu .hfe-sub-menu-item {
  color: #1a1a1a !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

/* Services dropdown in flyout - dark bg, gold text, matches desktop */
.hfe-flyout-content .hfe-nav-menu .sub-menu {
  background: #1a1a1a !important;
  padding: 10px 20px !important;
  margin: 5px 0 !important;
  border: none !important;
}

.hfe-flyout-content .hfe-nav-menu .sub-menu .hfe-sub-menu-item {
  color: #b8965a !important;
  font-size: 13px !important;
  white-space: nowrap !important;
  border-bottom: 1px solid rgba(255,255,255,0.1) !important;
  padding: 12px 0 !important;
}

.hfe-flyout-content .hfe-nav-menu .sub-menu .hfe-sub-menu-item:hover {
  color: #d4b278 !important;
}

/* Services arrow - no border/box */
.hfe-flyout-content .hfe-menu-toggle.sub-arrow,
.hfe-flyout-content .hfe-has-submenu-container .sub-arrow {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

.hfe-flyout-content .hfe-menu-toggle.sub-arrow i,
.hfe-flyout-content .hfe-menu-toggle.sub-arrow svg {
  border: none !important;
  outline: none !important;
}

/* RESTORE Private Inquiry in mobile menu */
.elementor-element-0a1dd84 #menu-item-5712 {
  display: block !important;
}

/* Private Inquiry CTA in mobile menu - gold underline style */
.hfe-flyout-content .hfe-menu-item.elementor-button {
  border: none !important;
  background: transparent !important;
  padding-left: 0 !important;
  color: #1a1a1a !important;
  font-size: 16px !important;
  border-bottom: 2px solid #b8965a !important;
  border-radius: 0 !important;
  display: inline-block !important;
  padding-bottom: 8px !important;
}


/* ==========================================================================
   4. HERO SECTION - Full screen, immersive, gradient overlay
   ========================================================================== */

/* Hero container - full viewport */
.elementor-element-ac6bd36 {
  position: relative !important;
  min-height: 100vh !important;
}

/* Dark gradient overlay for text readability */
.elementor-element-ac6bd36::after {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.4) 0%,
    rgba(0, 0, 0, 0.1) 40%,
    rgba(0, 0, 0, 0.1) 60%,
    rgba(0, 0, 0, 0.45) 100%
  ) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}

/* Content above overlay */
.elementor-element-ac6bd36 > .e-con-inner {
  position: relative !important;
  z-index: 2 !important;
}

/* Hero text - white, Caslon serif, slightly stronger weight */
.elementor-element-ac6bd36 .elementor-heading-title {
  font-family: 'Libre Caslon Display', 'Georgia', serif !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.01em !important;
  color: #ffffff !important;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.25) !important;
}

.elementor-element-ac6bd36 p,
.elementor-element-ac6bd36 span,
.elementor-element-ac6bd36 .elementor-text-editor,
.elementor-element-ac6bd36 .elementor-text-editor p {
  color: #ffffff !important;
}

/* Hero CTA - larger text, more letter-spacing, thicker gold line */
.elementor-element-ac6bd36 .elementor-button,
.elementor-element-6082180 .elementor-button {
  padding: 14px 36px !important;
  border: none !important;
  border-bottom: 3px solid #b8965a !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  letter-spacing: 0.2em !important;
  font-weight: 500 !important;
  font-family: 'Inter', sans-serif !important;
  background: transparent !important;
  color: #ffffff !important;
  padding-bottom: 10px !important;
  margin-top: 30px !important;
}

/* DESKTOP hero */
@media (min-width: 768px) {
  .elementor-element-ac6bd36 {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .elementor-element-ac6bd36 .elementor-heading-title {
    font-size: 3.2rem !important;
    max-width: 700px !important;
    text-align: center !important;
    margin: 0 auto !important;
  }

  .elementor-element-ac6bd36 > .e-con-inner {
    max-width: 800px !important;
    margin: 0 auto !important;
    text-align: center !important;
  }
}

/* MOBILE hero - full screen, text + CTA always visible */
@media (max-width: 767px) {
  .elementor-element-ac6bd36 {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    min-height: 100svh !important;
    min-height: 100vh !important; /* fallback for older browsers */
    padding-bottom: 0 !important;
  }

  @supports (min-height: 100svh) {
    .elementor-element-ac6bd36 {
      min-height: 100svh !important;
    }
  }

  .elementor-element-ac6bd36 > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    padding: 0 24px !important;
    width: 100% !important;
    min-height: auto !important;
    padding-top: 120px !important;
    padding-bottom: 50px !important;
    box-sizing: border-box !important;
  }

  .elementor-element-ac6bd36 .elementor-heading-title {
    font-size: 2.2rem !important;
    line-height: 1.3 !important;
    text-align: center !important;
    font-weight: 400 !important;
    margin-bottom: 30px !important;
  }

  .elementor-element-ac6bd36 .elementor-button,
  .elementor-element-6082180 .elementor-button {
    font-size: 13px !important;
    letter-spacing: 0.18em !important;
    margin-top: 20px !important;
  }
}

/* TABLET hero */
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-element-ac6bd36 .elementor-heading-title {
    font-size: 2.4rem !important;
    max-width: 550px !important;
  }
}


/* ==========================================================================
   5. VISUAL BREAK IMAGE
   ========================================================================== */

.gh-visual-break {
  width: 100%;
  overflow: hidden;
  margin: 0;
  padding: 0;
}

.gh-visual-break img {
  width: 100%;
  height: auto;
  display: block;
}


/* ==========================================================================
   6. SECTION SPACING - Consistent vertical rhythm
   ========================================================================== */

/* DESKTOP: 100px top / 100px bottom for all main sections */
@media (min-width: 768px) {
  .elementor-12 > .elementor-element.e-con.e-parent {
    padding-top: 100px !important;
    padding-bottom: 100px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /* Hero section - no padding override (uses 100vh) */
  .elementor-element-ac6bd36 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  /* About section inner container */
  .elementor-element-2e96104 .elementor-heading-title { letter-spacing: 0.08em !important; margin-bottom: 40px !important; }
  .elementor-element-2e96104 > .e-con-inner { max-width: 900px !important; margin: 0 auto !important; }

  .elementor-element-168bd90 .elementor-heading-title { letter-spacing: 0.08em !important; }

  /* Our Values section (eb0e528) - remove excess top padding (dark gap) */
  .elementor-12 > .elementor-element.elementor-element-eb0e528.e-con.e-parent {
    padding-top: 0 !important;
    padding-bottom: 60px !important;
  }

  .elementor-element-eb0e528 .elementor-heading-title { letter-spacing: 0.08em !important; }

  /* Space between Our Values and Note from Founder */
  .elementor-element-8722369 { margin-top: 80px !important; }
  .elementor-element-8722369 .elementor-heading-title { letter-spacing: 0.08em !important; }
  #how .elementor-heading-title { letter-spacing: 0.08em !important; }
  #scope .elementor-heading-title { letter-spacing: 0.08em !important; }
}

/* MOBILE: 60px top / 60px bottom for all main sections */
@media (max-width: 767px) {
  .elementor-12 > .elementor-element.e-con.e-parent {
    padding-top: 60px !important;
    /*padding-bottom: 60px !important;*/
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .elementor-73 .elementor-element.elementor-element-6bf7a19, .elementor-73 .elementor-element.elementor-element-dcdb347, .elementor-73 .elementor-element.elementor-element-19a0036 {
      display: none !important;
  }

  /* Hero section - no padding override */
  .elementor-element-ac6bd36 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  /* Our Values section (eb0e528) - remove excess top padding (dark gap) */
  .elementor-12 > .elementor-element.elementor-element-eb0e528.e-con.e-parent {
    padding-top: 0 !important;
    padding-bottom: 60px !important;
  }

  /* Space between Our Values and Note from Founder on mobile */
  .elementor-element-8722369 { margin-top: 60px !important; }
}

#how { scroll-margin-top: 30px; }
#scope { scroll-margin-top: 30px; }


/* ==========================================================================
   7. PRIVACY SECTION - refined, understated text
   ========================================================================== */

/* Privacy checkbox - main line */
.elementor-form .elementor-field-type-acceptance .elementor-field-label,
.elementor-form .elementor-acceptance-field label {
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  color: #1a1a1a !important;
  line-height: 1.7 !important;
}

/* Supporting privacy text - softer, smaller, grey */
.gh-privacy-sub {
  display: block !important;
  font-size: 13px !important;
  color: #999999 !important;
  font-weight: 300 !important;
  line-height: 2 !important;
  margin-top: 6px !important;
}


/* ==========================================================================
   8. LEGAL PAGES - clean separate layout, NO hero
   ========================================================================== */

.legal-page .elementor-element-ac6bd36,
.page-id-65 .elementor-element-ac6bd36,
.page-id-5722 .elementor-element-ac6bd36,
.page-id-5725 .elementor-element-ac6bd36 {
  display: none !important;
}

.legal-page #content .elementor-widget-text-editor,
.legal-page #content .elementor-widget-text-editor p,
.page-id-65 #content .elementor-widget-text-editor,
.page-id-65 #content .elementor-widget-text-editor p,
.page-id-5722 #content .elementor-widget-text-editor,
.page-id-5722 #content .elementor-widget-text-editor p,
.page-id-5725 #content .elementor-widget-text-editor,
.page-id-5725 #content .elementor-widget-text-editor p {
  font-size: 14px !important;
  line-height: 2.1 !important;
  color: #555555 !important;
  font-weight: 300 !important;
}

.legal-page #content .elementor-heading-title,
.page-id-65 #content .elementor-heading-title,
.page-id-5722 #content .elementor-heading-title,
.page-id-5725 #content .elementor-heading-title {
  font-weight: 400 !important;
  font-size: clamp(1.2rem, 2vw, 1.5rem) !important;
  letter-spacing: 0.02em !important;
}

.legal-page #content h3,
.page-id-65 #content h3,
.page-id-5722 #content h3,
.page-id-5725 #content h3 {
  font-size: 1rem !important;
  font-weight: 500 !important;
  color: #444 !important;
  margin-top: 2em !important;
  margin-bottom: 0.8em !important;
}


/* ==========================================================================
   9. FORM STYLING
   ========================================================================== */

.elementor-form .elementor-field-group input,
.elementor-form .elementor-field-group textarea,
.elementor-form .elementor-field-group select {
  font-family: 'Inter', sans-serif !important;
  font-weight: 300 !important;
  font-size: 14px !important;
  border: 1px solid #d4d4d4 !important;
  border-radius: 0 !important;
  padding: 14px 18px !important;
}

.elementor-form .elementor-field-group input:focus,
.elementor-form .elementor-field-group textarea:focus {
  border-color: #1a1a1a !important;
  outline: none !important;
  box-shadow: none !important;
}

.elementor-form .elementor-button[type="submit"] {
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-bottom: 3px solid #b8965a !important;
  border-radius: 0 !important;
  padding: 14px 40px 10px !important;
  background: transparent !important;
  color: #1a1a1a !important;
}


/* ==========================================================================
   10. FOOTER - white text, aligned layout
   ========================================================================== */

footer .elementor-heading-title,
footer .elementor-widget-heading .elementor-heading-title,
footer h1, footer h2, footer h3, footer h4, footer h5, footer h6,
footer .elementor-widget-text-editor,
footer .elementor-widget-text-editor p,
footer .elementor-text-editor p,
footer a,
footer span,
footer .elementor-icon-list-text,
footer .elementor-widget-container {
  color: #ffffff !important;
}

footer a:hover {
  color: #cccccc !important;
}

/* Remove underlines from footer links and headings */
footer a,
footer .elementor-heading-title a,
footer .elementor-widget-heading a,
footer .elementor-widget-text-editor a,
footer .elementor-heading-title,
footer .elementor-widget-heading .elementor-heading-title {
  text-decoration: none !important;
  border-bottom: none !important;
}

/* Footer fonts - consistent Inter everywhere, override any serif */
footer .elementor-heading-title,
footer .elementor-widget-heading .elementor-heading-title,
footer h1, footer h2, footer h3, footer h4, footer h5, footer h6,
footer .elementor-widget-text-editor,
footer .elementor-widget-text-editor p,
footer .elementor-text-editor p,
footer .e-n-accordion-item-title-text {
  font-family: 'Inter', sans-serif !important;
}

/* "Follow us on social" - Inter, not serif */
.elementor-element-0075e01 .elementor-heading-title {
  font-family: 'Inter', sans-serif !important;
  font-weight: 300 !important;
  font-size: 15px !important;
}

/* Right column footer links - left align on mobile, smaller consistent font */
footer .elementor-element-dbee820 .elementor-heading-title {
  font-family: 'Inter', sans-serif !important;
  font-weight: 400 !important;
  font-size: 15px !important;
}

/* Copyright - single line on mobile */
.elementor-element-7530fc3 .elementor-heading-title {
  white-space: nowrap !important;
  font-size: 13px !important;
}

/* Footer alignment - match content area width */
footer .e-con.e-parent > .e-con-inner,
footer .e-con-boxed > .e-con-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
}

/* Mobile footer - all columns same left padding */
@media (max-width: 767px) {
  /* Parent container */
  .elementor-element-0d8a34b > .e-con-inner {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  /* Left column (logo, social text, icons) */
  .elementor-element-9dacd94 {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
  }

  /* Middle column (accordion) */
  .elementor-element-378566e {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
  }

  /* Right column (links) - left align on mobile */
  .elementor-element-dbee820 {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    text-align: left !important;
  }

  .elementor-element-dbee820 .elementor-heading-title {
    text-align: left !important;
  }

  /* Logo widget - align left */
  .elementor-element-a81a67a {
    text-align: left !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
  }

  .elementor-element-a81a67a .elementor-widget-container {
    text-align: left !important;
  }

  /* Social icons - align left */
  .elementor-element-f199f90 .elementor-social-icons-wrapper {
    justify-content: flex-start !important;
  }

  /* "Follow us on social" heading - align left */
  .elementor-element-0075e01 {
    text-align: left !important;
    padding-left: 0 !important;
  }

  /* Accordion - remove any extra left padding */
  .elementor-element-9c8c894 {
    padding-left: 0 !important;
    margin-left: 0 !important;
  }

  .elementor-element-9c8c894 .e-n-accordion-item-title {
    padding-left: 0 !important;
  }

  .elementor-12 .elementor-element.elementor-element-cee7eb0 .elementor-heading-title {
    margin-top: 130px;
  }
}

footer .elementor-widget {
  padding-left: 0 !important;
  margin-left: 0 !important;
}

footer .elementor-widget-image,
footer .elementor-widget-text-editor,
footer .elementor-widget-social-icons,
footer .elementor-widget-n-accordion {
  padding-left: 0 !important;
}

/* Social icons alignment */
footer .elementor-social-icons-wrapper {
  justify-content: flex-start !important;
}

/* Accordion closed: white */
footer .e-n-accordion-item-title-text,
footer .e-n-accordion-item-title {
  color: #ffffff !important;
}

/* Accordion open: dark on white */
footer .e-n-accordion-item[open] .e-n-accordion-item-title-text,
footer .e-n-accordion-item[open] .e-n-accordion-item-title {
  color: #1a1a1a !important;
}

footer .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg {
  fill: #1a1a1a !important;
  color: #1a1a1a !important;
}


/* ==========================================================================
   11. HIDE ASTRA SCROLL-TO-TOP ARROW
   ========================================================================== */

#ast-scroll-top {
  display: none !important;
  visibility: hidden !important;
}


/* ==========================================================================
   12. MOBILE HEADER - Logo & Menu Alignment (Services + All Pages)
   ========================================================================== */

@media (max-width: 767px) {

  /* --- Mobile header inner: logo left, hamburger right, same level --- */
  .elementor-element-0a1dd84 > .e-con-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 16px 24px !important;
    width: 100% !important;
  }

  /* Logo container - constrain size */
  .elementor-element-0a1dd84 .elementor-widget-image,
  .elementor-element-0a1dd84 .elementor-widget-theme-site-logo {
    max-width: 140px !important;
    flex-shrink: 0 !important;
  }

  .elementor-element-0a1dd84 .elementor-widget-image img,
  .elementor-element-0a1dd84 .elementor-widget-theme-site-logo img {
    max-height: 55px !important;
    width: auto !important;
    object-fit: contain !important;
  }

  /* Site title / text logo - reduce size, widen letter-spacing */
  .elementor-element-0a1dd84 .elementor-widget-heading .elementor-heading-title,
  .elementor-element-0a1dd84 .site-title,
  .elementor-element-0a1dd84 .site-title a {
    font-size: 1.1rem !important;
    letter-spacing: 0.15em !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  /* Child containers inside mobile header - row layout */
  .elementor-element-bdb3fc8,
  .elementor-element-bdb3fc8.e-con,
  .elementor-element-166e2be,
  .elementor-element-166e2be.e-con {
    width: auto !important;
    flex-shrink: 0 !important;
  }

  /* --- Hamburger icon: thicker bars --- */
  .elementor-element-0a1dd84 .hfe-nav-menu__toggle .hfe-nav-menu-icon,
  .elementor-element-0a1dd84 .hfe-flyout-trigger .hfe-hamburger {
    display: flex !important;
    align-items: center !important;
  }

  .elementor-element-0a1dd84 .hfe-nav-menu-icon .navicon,
  .elementor-element-0a1dd84 .hfe-nav-menu-icon .navicon::before,
  .elementor-element-0a1dd84 .hfe-nav-menu-icon .navicon::after {
    height: 3px !important;
    border-radius: 1px !important;
  }

  /* HFE hamburger bar thickness */
  .elementor-element-0a1dd84 .hfe-hamburger .hfe-hamburger-box .hfe-hamburger-inner,
  .elementor-element-0a1dd84 .hfe-hamburger .hfe-hamburger-box .hfe-hamburger-inner::before,
  .elementor-element-0a1dd84 .hfe-hamburger .hfe-hamburger-box .hfe-hamburger-inner::after {
    height: 3px !important;
    border-radius: 1px !important;
  }
}


/* ==========================================================================
   13. SERVICE / INNER PAGES - Mobile Hero Adjustments
   ========================================================================== */

@media (max-width: 767px) {

  /* --- Hero heading widget (cee7eb0): override ALL width constraints --- */
  .elementor-element-cee7eb0,
  .elementor-element-cee7eb0.elementor-widget__width-initial,
  .elementor-element-cee7eb0.elementor-widget-mobile__width-inherit,
  div.elementor-element.elementor-element-cee7eb0,
  .elementor-element[data-id="cee7eb0"] {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
  }

  .elementor-element-cee7eb0 .elementor-heading-title,
  .elementor-element[data-id="cee7eb0"] h1,
  #content .elementor-element-cee7eb0 h1.elementor-heading-title {
    font-size: clamp(1.8rem, 6.5vw, 2.6rem) !important;
    line-height: 1.55 !important;
    letter-spacing: 0.02em !important;
    text-align: center !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* --- Hero inner container: full width, flex layout keeps CTA visible --- */
  body:not(.home) .elementor-element.e-con.e-parent:first-child {
    min-height: 100svh !important;
    min-height: 100vh !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
  }

  @supports (min-height: 100svh) {
    body:not(.home) .elementor-element.e-con.e-parent:first-child {
      min-height: 100svh !important;
    }
  }

  body:not(.home) .elementor-element.e-con.e-parent:first-child > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-end !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 5% !important;
    padding-right: 5% !important;
    padding-top: 120px !important;
    padding-bottom: 50px !important;
    box-sizing: border-box !important;
  }

  /* --- Gold CTA (6082180): wider underline, text stays single line --- */
  .elementor-element-6082180 .elementor-button {
    text-align: center !important;
    border-bottom: 3px solid #b8965a !important;
    background: transparent !important;
    white-space: nowrap !important;
    padding-left: 50px !important;
    padding-right: 50px !important;
  }
}

