/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.2
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* ===== Anchor scroll offsets =====
   The header is sticky, so an anchored element would land underneath it.
   --sticky-h tracks the real rendered header height per breakpoint:
     desktop        12px+12px padding + 60px logo            = 84px
     <=960px        10px+10px padding + 50px logo            = 70px
     <=767px        + the 38px terracotta top bar (mobile)   = 108px
   Every anchor target then stops 20px BELOW the header's bottom edge.
   These are FALLBACKS — smilestones-sticky-header-var.php measures the header
   at runtime and overwrites --sticky-h, so the offset stays correct whatever is
   actually visible (top bar shown/hidden, logo size, wrapped header).
   scroll-padding-top on the scrollport is the single source of the offset and
   covers every anchor, including any added later. */
:root { --sticky-h: 84px; --anchor-gap: 20px; }
@media (max-width: 960px) { :root { --sticky-h: 70px; } }
@media (max-width: 767px) { :root { --sticky-h: 108px; } }

html {
  scroll-padding-top: calc(var(--sticky-h) + var(--anchor-gap));
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* NOTE: scroll-padding-top (scrollport) and scroll-margin-top (target) ADD
   together, so the offset must live in exactly ONE of them. scroll-padding-top
   above is the single source of truth — it covers every anchor automatically.
   scroll-margin-top below is used ONLY to shift a target, never to re-apply the
   header offset. */

/* Services page, stacked layout only: the row stacks [image panel, text], so a
   plain row-top landing puts the 300px photo under the header and pushes the
   heading off-screen. Pull the landing down past the panel so the chip icon and
   title sit at the top instead. -(panel 300px + row gap 28px). */
@media (max-width: 860px) {
  #center, #in-home, #in-school, #in-daycare, #group-therapy {
    scroll-margin-top: calc(-1 * (300px + 28px));
  }
}

/* ===== Smilestones ABA brand rules (cross-cutting, from source site) ===== */

/* Emphasis words inside headings: terracotta, upright, bold */
h1 em, h2 em, h3 em, h4 em {
  font-style: normal;
  font-weight: 700;
  color: #C57E61;
}

/* Careers section sits on terracotta: its emphasis flips to cream */
.s-careers-title em {
  color: #FAF8F4;
}

/* Insurance logo marquee: seamless loop + edge fade (matches source ticker) */
.s-ins-ticker {
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.s-ins-track {
  animation: ins-scroll 46s linear infinite;
}
.s-ins-ticker:hover .s-ins-track {
  animation-play-state: paused;
}
@keyframes ins-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .s-ins-ticker { -webkit-mask-image: none; mask-image: none; }
  .s-ins-track { animation: none; }
}

/* Careers pebbles: square-ish organic stones with a hand-placed tilt (static cluster) */
.s-pebble-navy, .s-pebble-slate, .s-pebble-sage, .s-pebble-sand { aspect-ratio: 1 / 0.92; }
.s-pebble-navy  { transform: rotate(-4deg); }
.s-pebble-slate { transform: rotate(3deg); }
.s-pebble-sage  { transform: rotate(-2deg); }
.s-pebble-sand  { transform: rotate(5deg); }
.s-pebble-navy  .s-pebble-navy-t  { transform: rotate(4deg); }
.s-pebble-slate .s-pebble-slate-t { transform: rotate(-3deg); }
.s-pebble-sage  .s-pebble-sage-t  { transform: rotate(2deg); }
.s-pebble-sand  .s-pebble-sand-t  { transform: rotate(-5deg); }

/* Header: terracotta top bar is mobile-only; inline call link is desktop-only.
   !important needed: Elementor's atomic base CSS (display:flex) loads after this file. */
@media (min-width: 768px) {
  .s-topbar { display: none !important; }
}
@media (max-width: 767px) {
  .s-btn-call { display: none !important; }
}
/* Keep the primary nav on one line at desktop */
.s-header-inner .elementor-nav-menu { white-space: nowrap; }
.s-btn-call:hover, .s-btn-call:hover span { color: #C57E61; }
.s-btn-getstarted:hover { background-color: #7C90A4; }

/* ===== SVG icon fix: Elementor's e-svg inliner rewrites the root fill="none" to
   fill="currentColor", turning stroke icons into solid blobs. Restore fill:none on
   every stroke-drawn icon (the Texas map icon has no stroke-width attr, so it keeps
   its fill). */
.e-svg-base svg[stroke-width] { fill: none; }

/* SVG wrappers: Elementor inlines the <svg> as an INLINE element, so it sits on
   the wrapper's text baseline and the inherited line-height (1.6) reserves
   descender space below it — pushing the glyph visually above the centre of its
   own box. Making the wrapper a flex box (and zeroing line-height) removes the
   inline baseline entirely so the icon is centred in its box. */
.elementor .e-svg-base {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

/* ===== Card gradients (subtle top-light dome, from source ::before layers) ===== */
.elementor .svc-card { isolation: isolate; }
.svc-card::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(120% 78% at 50% 0%,
    rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.03) 40%,
    rgba(255, 255, 255, 0) 66%, rgba(36, 54, 74, 0.06) 100%);
}
.elementor .s-svc-featured {
  isolation: isolate;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 20px 40px -12px rgba(36, 54, 74, 0.35),
              inset 0 1px 0 rgba(255, 255, 255, 0.45),
              inset 0 -1px 0 rgba(90, 45, 30, 0.35);
}
.s-svc-featured::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(135% 105% at 32% 0%,
    rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.05) 34%,
    rgba(255, 255, 255, 0) 60%, rgba(90, 45, 30, 0.16) 100%);
}
.elementor .s-svc-featured:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 52px -14px rgba(36, 54, 74, 0.40),
              inset 0 1px 0 rgba(255, 255, 255, 0.45),
              inset 0 -1px 0 rgba(90, 45, 30, 0.35);
}

/* ===== Service cards: lift + per-card color fill on hover ===== */
.elementor .svc-card {
  transition: transform 0.3s ease, background-color 0.22s ease, box-shadow 0.22s ease;
}
.elementor .svc-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 26px 50px -22px rgba(36, 54, 74, 0.34);
}
.elementor .svc-title, .elementor .svc-desc, .elementor .svc-li-text,
.elementor .svc-arrow, .elementor .svc-li, .elementor .svc-learn,
.elementor .svc-chip { transition: color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease; }
.svc-card:hover .svc-learn { gap: 11px; }
.svc-learn { transition: gap 0.18s ease, color 0.22s ease; }
.svc-learn .e-svg-base { transition: transform 0.18s ease; }
.svc-card:hover .svc-learn .e-svg-base, .s-svc-featured:hover .s-svc-featured-learn .e-svg-base { transform: translateX(3px); }

/* In-Home: terracotta fill, white text */
.elementor .elementor-element-svc-home:hover { background-color: #D49783; }
.elementor .elementor-element-svc-home:hover .svc-title,
.elementor .elementor-element-svc-home:hover .svc-desc,
.elementor .elementor-element-svc-home:hover .svc-li-text,
.elementor .elementor-element-svc-home:hover .svc-arrow,
.elementor .elementor-element-svc-home:hover .svc-learn { color: #FFFFFF; }
.elementor .elementor-element-svc-home:hover .svc-li { border-color: rgba(255, 255, 255, 0.28); }
.elementor .elementor-element-svc-home:hover .s-svc-home-chip { background-color: #FFFFFF; color: #D49783; }

/* In-School: slate fill, navy text */
.elementor .elementor-element-svc-school:hover { background-color: #8FA2B4; }
.elementor .elementor-element-svc-school:hover .svc-title,
.elementor .elementor-element-svc-school:hover .svc-desc,
.elementor .elementor-element-svc-school:hover .svc-li-text,
.elementor .elementor-element-svc-school:hover .svc-arrow,
.elementor .elementor-element-svc-school:hover .svc-learn { color: #24364A; }
.elementor .elementor-element-svc-school:hover .svc-li { border-color: rgba(36, 54, 74, 0.18); }
.elementor .elementor-element-svc-school:hover .s-svc-school-chip { background-color: #FFFFFF; color: #8FA2B4; }

/* In-Daycare: sage fill, navy text */
.elementor .elementor-element-svc-daycare:hover { background-color: #A5AE9B; }
.elementor .elementor-element-svc-daycare:hover .svc-title,
.elementor .elementor-element-svc-daycare:hover .svc-desc,
.elementor .elementor-element-svc-daycare:hover .svc-li-text,
.elementor .elementor-element-svc-daycare:hover .svc-arrow,
.elementor .elementor-element-svc-daycare:hover .svc-learn { color: #24364A; }
.elementor .elementor-element-svc-daycare:hover .svc-li { border-color: rgba(36, 54, 74, 0.18); }
.elementor .elementor-element-svc-daycare:hover .s-svc-daycare-chip { background-color: #FFFFFF; color: #A5AE9B; }

/* Group Therapy: navy fill, white text */
.elementor .elementor-element-svc-group:hover { background-color: #24364A; }
.elementor .elementor-element-svc-group:hover .svc-title,
.elementor .elementor-element-svc-group:hover .svc-desc,
.elementor .elementor-element-svc-group:hover .svc-li-text,
.elementor .elementor-element-svc-group:hover .svc-arrow,
.elementor .elementor-element-svc-group:hover .svc-learn { color: #FFFFFF; }
.elementor .elementor-element-svc-group:hover .svc-li { border-color: rgba(255, 255, 255, 0.18); }
.elementor .elementor-element-svc-group:hover .s-svc-group-chip { background-color: #FFFFFF; color: #24364A; }

/* ===== About pillar cards: lift + per-card color fill on hover ===== */
.elementor .pillar-card { transition: background-color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease; }
.elementor .pillar-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(36, 54, 74, 0.16); border-color: transparent; }
.elementor .pillar-title, .elementor .pillar-text { transition: color 0.22s ease; }
.elementor .elementor-element-pillar-1:hover { background-color: #D49783; }
.elementor .elementor-element-pillar-1:hover .pillar-title,
.elementor .elementor-element-pillar-1:hover .pillar-text { color: #FFFFFF; }
.elementor .elementor-element-pillar-1:hover .s-pillar-1-chip { background-color: #FFFFFF; color: #D49783; }
.elementor .elementor-element-pillar-2:hover { background-color: #8FA2B4; }
.elementor .elementor-element-pillar-2:hover .pillar-title,
.elementor .elementor-element-pillar-2:hover .pillar-text { color: #24364A; }
.elementor .elementor-element-pillar-2:hover .s-pillar-2-chip { background-color: #FFFFFF; color: #8FA2B4; }
.elementor .elementor-element-pillar-3:hover { background-color: #A5AE9B; }
.elementor .elementor-element-pillar-3:hover .pillar-title,
.elementor .elementor-element-pillar-3:hover .pillar-text { color: #24364A; }
.elementor .elementor-element-pillar-3:hover .s-pillar-3-chip { background-color: #FFFFFF; color: #A5AE9B; }
.elementor .elementor-element-pillar-4:hover { background-color: #24364A; }
.elementor .elementor-element-pillar-4:hover .pillar-title,
.elementor .elementor-element-pillar-4:hover .pillar-text { color: #FFFFFF; }
.elementor .elementor-element-pillar-4:hover .s-pillar-4-chip { background-color: #FFFFFF; color: #24364A; }

/* ===== Button / link hovers (from source) ===== */
.elementor .s-services-cta { transition: background-color 0.18s ease, transform 0.18s ease; }
.elementor .s-services-cta:hover { background-color: #1B2939; transform: translateY(-2px); }
.elementor .s-loc-cta { transition: background-color 0.15s ease; }
.elementor .s-loc-cta:hover { background-color: #A9684E; }
.elementor .s-evalcta-btn1 { transition: background-color 0.15s ease, transform 0.15s ease; }
.elementor .s-evalcta-btn1:hover { background-color: #A9684E; transform: translateY(-1px); }
.elementor .s-evalcta-btn2 { transition: background-color 0.15s ease, transform 0.15s ease; }
.elementor .s-evalcta-btn2:hover { background-color: rgba(36, 54, 74, 0.07); transform: translateY(-1px); }
.elementor .s-careers-cta { transition: background-color 0.15s ease, transform 0.15s ease; }
.elementor .s-careers-cta:hover { background-color: #18283A; transform: translateY(-1px); }
.elementor .s-careers-resume { transition: background-color 0.15s ease, border-color 0.15s ease; }
.elementor .s-careers-resume:hover { background-color: rgba(255, 255, 255, 0.78); border-color: #24364A; }
footer .footer-item a:hover { color: #A9684E; }
/* Footer bottom bar links are underlined in the source (.footer-bottom a) */
.s-footer-bottom a { text-decoration: underline; text-underline-offset: 2px; color: #24364A; }
.s-footer-bottom a:hover { color: #A9684E; }
.s-gs-row-3-value a { transition: color 0.15s ease; }
.s-gs-row-3-value a:hover { color: #C57E61; }
.s-intake-sub a:hover, .s-gs-card-sub a:hover { color: #D49783; }

@media (prefers-reduced-motion: reduce) {
  .elementor .svc-card, .elementor .s-svc-featured, .elementor .pillar-card,
  .elementor .s-services-cta, .elementor .s-evalcta-btn1, .elementor .s-evalcta-btn2,
  .elementor .s-careers-cta { transition: none; }
}

/* ===== WPForms skins (both embeds are form #147) =====
   Frost variant inside the hero card (.s-intake-card), light variant inside the
   contact card (.s-gs-card). Mirrors the source intake form styling. */
.s-intake-card .wpforms-container,
.s-gs-card .wpforms-container { margin: 20px 0 0 !important; }
.s-intake-card .wpforms-field,
.s-gs-card .wpforms-field { padding: 6.5px 0 !important; }
.s-intake-card .wpforms-form label.wpforms-field-label,
.s-gs-card .wpforms-form label.wpforms-field-label {
  display: block; margin: 0 0 6px;
  font-family: 'Poppins', sans-serif; font-size: 12.5px; font-weight: 600;
  color: #24364A; line-height: 1.3;
}
.s-intake-card .wpforms-form .wpforms-required-label,
.s-gs-card .wpforms-form .wpforms-required-label { color: #C57E61; }
.s-intake-card .wpforms-form .wpforms-field-sublabel,
.s-gs-card .wpforms-form .wpforms-field-sublabel { display: none; }

.s-intake-card .wpforms-form input[type=text],
.s-intake-card .wpforms-form input[type=email],
.s-intake-card .wpforms-form input[type=tel],
.s-intake-card .wpforms-form textarea,
.s-gs-card .wpforms-form input[type=text],
.s-gs-card .wpforms-form input[type=email],
.s-gs-card .wpforms-form input[type=tel],
.s-gs-card .wpforms-form textarea {
  width: 100%; max-width: 100%; box-sizing: border-box;
  height: 48px; border-radius: 11px !important; padding: 13px 15px !important;
  font-family: 'Poppins', sans-serif; font-size: 15px; color: #24364A !important;
  box-shadow: none !important;
}
.s-intake-card .wpforms-form textarea,
.s-gs-card .wpforms-form textarea { height: auto; min-height: 104px; line-height: 1.5; resize: vertical; }

/* Frost fields: translucent white over the photo */
.s-intake-card .wpforms-form input[type=text],
.s-intake-card .wpforms-form input[type=email],
.s-intake-card .wpforms-form input[type=tel],
.s-intake-card .wpforms-form textarea {
  background: rgba(255, 255, 255, 0.5) !important;
  border: 1px solid rgba(36, 54, 74, 0.22) !important;
}
.s-intake-card .wpforms-form input:focus,
.s-intake-card .wpforms-form textarea:focus {
  outline: none !important; border-color: #C57E61 !important;
  background: rgba(255, 255, 255, 0.62) !important;
}
/* Light fields: solid white with a soft navy border */
.s-gs-card .wpforms-form input[type=text],
.s-gs-card .wpforms-form input[type=email],
.s-gs-card .wpforms-form input[type=tel],
.s-gs-card .wpforms-form textarea {
  background: #FFFFFF !important;
  border: 1.5px solid rgba(36, 54, 74, 0.18) !important;
}
.s-gs-card .wpforms-form input:focus,
.s-gs-card .wpforms-form textarea:focus {
  outline: none !important; border-color: #C57E61 !important;
}
.s-intake-card .wpforms-form ::placeholder,
.s-gs-card .wpforms-form ::placeholder { color: rgba(36, 54, 74, 0.55); opacity: 1; }

/* SMS consent checkbox row */
.s-intake-card .wpforms-form .wpforms-field-checkbox ul li label,
.s-gs-card .wpforms-form .wpforms-field-checkbox ul li label {
  font-family: 'Poppins', sans-serif; font-size: 11.5px; line-height: 1.45;
  font-weight: 400; color: #36424F;
}
.s-gs-card .wpforms-form .wpforms-field-checkbox ul li label { color: #54606E; }
.s-intake-card .wpforms-form .wpforms-field-checkbox input[type=checkbox],
.s-gs-card .wpforms-form .wpforms-field-checkbox input[type=checkbox] {
  width: 16px; height: 16px; accent-color: #C57E61; margin-top: 2px;
}
.s-intake-card .wpforms-form .wpforms-field-checkbox a,
.s-gs-card .wpforms-form .wpforms-field-checkbox a { color: #24364A; font-weight: 600; text-decoration: underline; }

/* Submit: full-width terracotta pill-corner button */
.s-intake-card .wpforms-form button.wpforms-submit,
.s-gs-card .wpforms-form button.wpforms-submit {
  /* flex-center the label: WPForms sets a fixed 41px button height via
     --wpforms-button-size-height, which fights our 16px padding and pushes the
     text off-center. height:auto + line-height:1 + flex centering fixes it. */
  display: flex; align-items: center; justify-content: center; gap: 10px;
  height: auto !important; line-height: 1 !important;
  width: 100% !important; margin-top: 16px !important;
  background: #C57E61 !important; color: #FFFFFF !important;
  border: none !important; border-radius: 14px !important; padding: 16px !important;
  font-family: 'Inter', sans-serif; font-weight: 700; font-size: 16px;
  cursor: pointer; transition: background 0.15s ease, transform 0.15s ease;
  box-shadow: none !important;
}
.s-intake-card .wpforms-form button.wpforms-submit:hover,
.s-gs-card .wpforms-form button.wpforms-submit:hover {
  background: #A9684E !important; transform: translateY(-1px);
}
.s-intake-card .wpforms-form em.wpforms-error,
.s-gs-card .wpforms-form em.wpforms-error {
  font-family: 'Poppins', sans-serif; font-size: 12px; font-weight: 600;
  font-style: normal; color: #B23B2E;
}
.s-intake-card .wpforms-confirmation-container-full,
.s-gs-card .wpforms-confirmation-container-full {
  background: #A5AE9B; color: #fff; border: none; border-radius: 12px;
  padding: 14px 16px; text-align: center;
  font-family: 'Poppins', sans-serif; font-size: 14px; font-weight: 600;
}

/* ===== Responsive pass — source site's exact breakpoints ===== */

/* Hero stacks below 980px (source: max-980) */
@media (max-width: 980px) {
  .elementor .s-hero { padding: 8px 14px 32px; }
  .elementor .s-hero-card {
    padding: 36px 22px; border-radius: 28px;
    background-image:
      linear-gradient(180deg, rgba(255,255,255,0.86) 0%, rgba(255,255,255,0.66) 45%, rgba(255,255,255,0.40) 100%),
      url('https://djv8fw19f6.wpdns.site/wp-content/uploads/2026/08/hero-light.jpg');
    background-size: auto, cover;
    background-position: 0 0, center 30%;
    background-repeat: repeat, no-repeat;
  }
  .elementor .s-hero-inner { flex-direction: column; gap: 32px; }
  .elementor .s-hero-copy { flex-basis: auto; }
  .elementor .s-hero-title { font-size: clamp(28px, 6.6vw, 36px); }
  .elementor .s-hero-form { max-width: none; flex-basis: auto; width: 100%; }
  .elementor .s-loc-top { flex-direction: column; gap: 28px; }
  .elementor .s-loc-pills { flex-basis: auto; width: 100%; }
}

/* Phone hero refinements (source: max-640) */
@media (max-width: 640px) {
  .elementor .s-hero-title { font-size: clamp(22px, 6vw, 30px); }
  .elementor .s-hero-eyebrow { margin-bottom: 18px; white-space: nowrap; font-size: 12px; }
  .elementor .s-intake-title, .elementor .s-intake-sub { text-align: left; }
}

/* About / Services / Locations / Careers rhythm (source: max-900) */
@media (max-width: 900px) {
  .elementor .s-about { padding-top: 28px; padding-bottom: 28px; }
  .elementor .s-about-grid { flex-direction: column; gap: 32px; }
  .elementor .s-about-panel { flex-basis: auto; width: 100%; }
  .elementor .s-about-pillars { margin-top: 20px; }
  .elementor .pillar-card { width: 100%; }
  .elementor .s-services { padding-top: 40px; }
  .elementor .s-locations { padding-top: 56px; padding-bottom: 56px; }
  .elementor .s-careers { padding-top: 56px; padding-bottom: 40px; min-height: 0; }
  .elementor .s-getstarted { padding-top: 40px; padding-bottom: 40px; }
}

/* Location grid + contact split stack (source: max-860) */
@media (max-width: 860px) {
  .elementor .s-loc-grid { flex-direction: column; }
  .elementor .s-loc-card, .elementor .s-loc-map { flex-basis: auto; width: 100%; }
  .elementor .s-loc-mapcard { display: none; }
  .elementor .s-gs-inner { flex-direction: column; gap: 36px; }
  .elementor .s-gs-intro, .elementor .s-gs-form-col { flex-basis: auto; width: 100%; }
}

/* Eval CTA + Careers stack (source: max-820) */
@media (max-width: 820px) {
  .elementor .s-evalcta { padding: 56px 28px 72px; }
  .elementor .s-evalcta-inner { flex-direction: column; gap: 32px; }
  .elementor .s-evalcta-media, .elementor .s-evalcta-copy { flex-basis: auto; width: 100%; }
  .elementor .s-evalcta-img { height: auto; min-height: 0; object-fit: contain; }
  .elementor .s-careers-inner { flex-direction: column; gap: 36px; }
  .elementor .s-careers-pebbles, .elementor .s-careers-content { flex-basis: auto; width: 100%; }
  .elementor .s-careers-content { order: -1; }
}

/* Insurance ticker compact (source: max-700) */
@media (max-width: 700px) {
  .elementor .s-ins { padding-top: 28px; padding-bottom: 28px; }
  .elementor .s-ins-head { margin-bottom: 24px; }
  .elementor .s-ins-sub { font-size: 16px; }
  .elementor .ins-card { width: 164px; height: 96px; padding: 10px; margin-inline-end: 18px; }
}

/* Featured service + 2x2 grid stack, locations trims (source: max-600) */
@media (max-width: 600px) {
  .elementor .s-svc-featured { flex-direction: column; display: flex; }
  .elementor .s-svc-featured-media { min-height: 220px; flex-basis: auto; width: 100%; }
  .elementor .svc-card { width: 100%; }
  .elementor .s-locations { padding-top: 36px; padding-bottom: 36px; }
  .elementor .s-loc-top { gap: 2px; margin-bottom: 28px; }
  .elementor .s-loc-pills { gap: 10px; }
  .elementor .s-loc-banner { flex-direction: column; gap: 8px; padding: 22px 24px; margin-top: 48px; }
  .elementor .s-loc-banner-div { display: none; }
}

/* Location pills single column (source: max-520) */
@media (max-width: 520px) {
  .elementor .loc-pill { width: 100%; }
}

/* Footer columns (source: max-800 two columns, max-560 single) */
@media (max-width: 800px) {
  .elementor .s-footer-grid { flex-wrap: wrap; gap: 32px; }
  .elementor .s-footer-grid > * { flex: 0 0 calc(50% - 16px) !important; }
}
@media (max-width: 560px) {
  .elementor .s-footer-grid { gap: 30px; margin-bottom: 36px; }
  .elementor .s-footer-grid > * { flex: 0 0 100% !important; }
}

/* ===== Mobile nav dropdown — match the source mobile menu ===== */
/* Desktop nav link hover — terracotta (source .nav-links a:hover).
   Elementor only emits its hover colour for :focus when pointer=none. */
.elementor-element-primary-nav .elementor-nav-menu--main .elementor-item:hover {
  color: #C57E61;
  fill: #C57E61;
}

/* CTA item only exists in the dropdown; hide it in the desktop horizontal menu */
.elementor-nav-menu--main .menu-item-cta { display: none; }

/* Burger goes last in the header row (logo | Get Started | burger), like the source */
@media (max-width: 1024px) {
  .elementor .elementor-element-primary-nav { order: 5; }
  /* Pack phone + Get Started + burger to the right with an 8px gap (match live) */
  .elementor .s-header-inner { justify-content: flex-start; gap: 8px; }
  .elementor .s-header-actions { margin-inline-start: auto; }
}

/* Dropdown panel: white sheet under the header with a soft shadow */
.elementor-element-primary-nav nav.elementor-nav-menu--dropdown {
  background: #FFFFFF;
  border-top: 1px solid rgba(36, 54, 74, 0.06);
  padding: 12px 0 22px;
  box-shadow: 0 24px 40px -20px rgba(36, 54, 74, 0.25);
}
/* Links: inset rows with soft brand hairlines (source .mobile-link) */
.elementor-element-primary-nav .elementor-nav-menu--dropdown a.elementor-item {
  margin: 0 24px;
  padding: 14px 0 !important;
  border-bottom: 1px solid rgba(36, 54, 74, 0.06);
}
/* Dim the page behind the open menu, like the source .mobile-overlay */
body:has(.elementor-element-primary-nav .elementor-menu-toggle.elementor-active)::after {
  content: '';
  position: fixed;
  inset: 0;
  background: rgba(36, 54, 74, 0.5);
  z-index: 99;
}
body:has(.elementor-element-primary-nav .elementor-menu-toggle.elementor-active) .s-topbar {
  filter: brightness(0.7) saturate(0.7);
}
/* "Get Started" row becomes the terracotta CTA button */
.elementor-element-primary-nav .elementor-nav-menu--dropdown .menu-item-cta a {
  display: block;
  margin: 18px 24px 0;
  background: #C57E61 !important;
  color: #FFFFFF !important;
  border-radius: 12px;
  border-bottom: none !important;
  text-align: center;
  font-weight: 700;
  font-size: 16px;
  padding: 15px !important;
}
.elementor-element-primary-nav .elementor-nav-menu--dropdown .menu-item-cta a:hover {
  background: #A9684E !important;
}
/* Burger button: plain icon, no grey box */
.elementor-element-primary-nav .elementor-menu-toggle {
  background: transparent;
  border: none;
  padding: 0;
  width: 44px;
  height: 44px;
}

/* Header compact (source: max-960) */
@media (max-width: 960px) {
  .elementor .s-header-inner { padding: 10px 18px; }
  .elementor .s-brand-logo { height: 50px; }
  .elementor .s-header-actions { gap: 8px; }
  .elementor .s-btn-getstarted { padding-inline-start: 16px; padding-inline-end: 16px; font-size: 14px; }
}

/* ===== Services page (svcp-*) ===== */

/* (anchor offsets are handled globally — see "Anchor scroll offsets" below) */

/* "Our Approach" title emphasis is cream on navy (overrides the terracotta default) */
.s-svcp-approach-title em { color: #FAF8F4; }

/* Trust pill ticker: seamless marquee with edge fades (mirrors source .svc-ticker) */
.s-svcp-ticker {
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
}
.s-svcp-ticker-track { animation: svcp-ticker 32s linear infinite; }
.s-svcp-ticker:hover .s-svcp-ticker-track { animation-play-state: paused; }
@keyframes svcp-ticker {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
/* Pill labels never wrap */
.elementor .svcp-pill-t { white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .s-svcp-ticker { -webkit-mask-image: none; mask-image: none; }
  .s-svcp-ticker-track { animation: none; width: auto; flex-wrap: wrap; justify-content: center; }
  .elementor .e-con.s-svcp-pillset-2 { display: none; }
  .elementor .s-svcp-pillset-1 { flex-wrap: wrap; justify-content: center; }
}

/* Closing CTA hover */
.elementor .s-svcp-cta-btn { transition: background-color 0.15s ease, transform 0.15s ease; }
.elementor .s-svcp-cta-btn:hover { background-color: #A9684E; transform: translateY(-1px); }

/* Services hero stacks like the homepage hero (source: max-980) */
@media (max-width: 980px) {
  .elementor .s-svcp-hero { padding: 8px 14px 32px; }
  .elementor .s-svcp-hero-card {
    padding: 36px 22px; border-radius: 28px;
    background-image:
      linear-gradient(180deg, rgba(255,255,255,0.88) 0%, rgba(255,255,255,0.66) 45%, rgba(255,255,255,0.42) 100%),
      url('https://djv8fw19f6.wpdns.site/wp-content/uploads/2026/08/service-light.jpg');
    background-size: auto, cover;
    background-position: 0 0, center 30%;
    background-repeat: repeat, no-repeat;
  }
  .elementor .s-svcp-hero-inner { min-height: 340px; }
  .elementor .s-svcp-hero-title { font-size: clamp(34px, 8vw, 44px); }
}

/* Service rows stack (source: max-860) */
@media (max-width: 860px) {
  .elementor .svcp-row { flex-direction: column !important; gap: 28px; }
  .elementor .svcp-panel { min-height: 300px; flex-basis: auto; width: 100%; }
  .elementor .s-svcp-approach { border-radius: 24px; }
  .elementor .s-svcp-approach-grid { flex-direction: column; gap: 32px; }
  .elementor .svcp-app-col { flex-basis: auto; width: 100%; }
}

/* Mobile rhythm trims (source: max-767) */
@media (max-width: 767px) {
  .elementor .s-svcp-approach-sec { padding-top: 40px; padding-bottom: 40px; }
  .elementor .s-svcp-rows { padding-top: 32px; padding-bottom: 4px; }
  .elementor .s-svcp-trust { padding-top: 18px; padding-bottom: 18px; }
  .elementor .s-svcp-cta { padding-top: 32px; }
}

/* ===== Contact page (cnt-*) ===== */

/* Info value links hover terracotta (source .cb-info-value a) */
.elementor .cnt-value a { color: #24364A; text-decoration: none; transition: color 0.15s ease; }
.elementor .cnt-value a:hover { color: #C57E61; }

/* Light WPForms skin for the contact card (mirrors the homepage .s-gs-card skin) */
.s-cnt-card .wpforms-container { margin: 20px 0 0 !important; }
.s-cnt-card .wpforms-field { padding: 6.5px 0 !important; }
.s-cnt-card .wpforms-form label.wpforms-field-label {
  display: block; margin: 0 0 6px;
  font-family: 'Poppins', sans-serif; font-size: 12.5px; font-weight: 600;
  color: #24364A; line-height: 1.3;
}
.s-cnt-card .wpforms-form .wpforms-required-label { color: #C57E61; }
.s-cnt-card .wpforms-form .wpforms-field-sublabel { display: none; }
.s-cnt-card .wpforms-form input[type=text],
.s-cnt-card .wpforms-form input[type=email],
.s-cnt-card .wpforms-form input[type=tel],
.s-cnt-card .wpforms-form textarea {
  width: 100%; max-width: 100%; box-sizing: border-box;
  height: 48px; border-radius: 11px !important; padding: 13px 15px !important;
  font-family: 'Poppins', sans-serif; font-size: 15px; color: #24364A !important;
  background: #FFFFFF !important;
  border: 1.5px solid rgba(36, 54, 74, 0.18) !important;
  box-shadow: none !important;
}
.s-cnt-card .wpforms-form textarea { height: auto; min-height: 104px; line-height: 1.5; resize: vertical; }
.s-cnt-card .wpforms-form input:focus,
.s-cnt-card .wpforms-form textarea:focus { outline: none !important; border-color: #C57E61 !important; }
.s-cnt-card .wpforms-form ::placeholder { color: rgba(36, 54, 74, 0.55); opacity: 1; }
.s-cnt-card .wpforms-form .wpforms-field-checkbox ul li label {
  font-family: 'Poppins', sans-serif; font-size: 11.5px; line-height: 1.45;
  font-weight: 400; color: #54606E;
}
.s-cnt-card .wpforms-form .wpforms-field-checkbox input[type=checkbox] {
  width: 16px; height: 16px; accent-color: #C57E61; margin-top: 2px;
}
.s-cnt-card .wpforms-form .wpforms-field-checkbox a { color: #24364A; font-weight: 600; text-decoration: underline; }
.s-cnt-card .wpforms-form button.wpforms-submit {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  height: auto !important; line-height: 1 !important;
  width: 100% !important; margin-top: 16px !important;
  background: #C57E61 !important; color: #FFFFFF !important;
  border: none !important; border-radius: 14px !important; padding: 16px !important;
  font-family: 'Inter', sans-serif; font-weight: 700; font-size: 16px;
  cursor: pointer; transition: background 0.15s ease, transform 0.15s ease;
  box-shadow: none !important;
}
.s-cnt-card .wpforms-form button.wpforms-submit:hover { background: #A9684E !important; transform: translateY(-1px); }
.s-cnt-card .wpforms-form em.wpforms-error {
  font-family: 'Poppins', sans-serif; font-size: 12px; font-weight: 600;
  font-style: normal; color: #B23B2E;
}
.s-cnt-card .wpforms-confirmation-container-full {
  background: #A5AE9B; color: #fff; border: none; border-radius: 12px;
  padding: 14px 16px; text-align: center;
  font-family: 'Poppins', sans-serif; font-size: 14px; font-weight: 600;
}

/* Contact hero stacks like the other page heroes (source: max-980) */
@media (max-width: 980px) {
  .elementor .s-cnt-hero { padding: 8px 14px 32px; }
  .elementor .s-cnt-hero-card {
    padding: 36px 22px; border-radius: 28px;
    background-image:
      linear-gradient(180deg, rgba(255,255,255,0.88) 0%, rgba(255,255,255,0.66) 45%, rgba(255,255,255,0.42) 100%),
      url('https://djv8fw19f6.wpdns.site/wp-content/uploads/2026/08/contact-light.jpg');
    background-size: auto, cover;
    background-position: 0 0, center 30%;
    background-repeat: repeat, no-repeat;
  }
  .elementor .s-cnt-hero-inner { min-height: 340px; }
  .elementor .s-cnt-hero-title { font-size: clamp(34px, 8vw, 44px); }
}

/* Contact split stacks with the FORM first (source: max-860) */
@media (max-width: 860px) {
  .elementor .s-cnt-layout { flex-direction: column; gap: 36px; }
  .elementor .s-cnt-details, .elementor .s-cnt-form { flex-basis: auto; width: 100%; }
  .elementor .s-cnt-form { order: -1; }
}
@media (max-width: 560px) {
  .elementor .s-cnt-card-title, .elementor .s-cnt-card-sub { text-align: left; }
}

/* ===== Style-sweep additions (cross-referenced against the source) ===== */

/* Locations background video: hidden on phones and for reduced motion (source) */
@media (max-width: 767px) {
  .elementor .s-loc-video { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .elementor .s-loc-video { display: none; }
}

/* "View all services" arrow nudges right on hover (source .btn-view-all) */
.s-services-cta .e-svg-base { transition: transform 0.18s ease; }
.s-services-cta:hover .e-svg-base { transform: translateX(3px); }

/* Hero entrance cascade — same soft rise as the source (pure CSS, load-time) */
@keyframes hero-rise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
.s-hero-eyebrow, .s-hero-title, .s-hero-sub, .s-hero-points, .s-hero-form,
.s-svcp-hero-eyebrow, .s-svcp-hero-title, .s-svcp-hero-sub,
.s-cnt-hero-eyebrow, .s-cnt-hero-title, .s-cnt-hero-sub {
  animation: hero-rise 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
.s-hero-eyebrow, .s-svcp-hero-eyebrow, .s-cnt-hero-eyebrow { animation-delay: 0.05s; }
.s-hero-title, .s-svcp-hero-title, .s-cnt-hero-title { animation-delay: 0.13s; }
.s-hero-sub, .s-svcp-hero-sub, .s-cnt-hero-sub { animation-delay: 0.21s; }
.s-hero-points { animation-delay: 0.29s; }
.s-hero-form { animation-delay: 0.37s; }
@media (prefers-reduced-motion: reduce) {
  .s-hero-eyebrow, .s-hero-title, .s-hero-sub, .s-hero-points, .s-hero-form,
  .s-svcp-hero-eyebrow, .s-svcp-hero-title, .s-svcp-hero-sub,
  .s-cnt-hero-eyebrow, .s-cnt-hero-title, .s-cnt-hero-sub { animation: none; }
}

/* Subtle paper-grain texture over the whole page (matches source body::before) */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  opacity: 0.4;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

