/*
Theme Name: Lilo Child
Theme URI: https://lilo.qodeinteractive.com/
Description: A child theme of Lilo Theme
Author: Mikado Themes
Author URI: http://themeforest.net/user/mikado-themes
Version: 1.0.0
Text Domain: lilo
Template: lilo
*/

/*
 * HTML page backdrop only: flat wash behind the boxed site.
 * Keep site content, wrapper, and Visual Composer rows untouched.
 */
html,
body {
  background-color: #f4efe7;
  background-image: none;
}

:root {
  --sos-color-bg: #f4efe7;
  --sos-color-surface: #fbf7f0;
  --sos-color-text: #4d4438;
  --sos-color-heading: #3f352a;
  --sos-color-accent: #8c6f4f;
  --sos-color-accent-2: #b89a74;
  --sos-color-accent-soft: #e4d8c6;
  --sos-color-border: #d8cbb8;
  --sos-color-quote: #3d6864;
  --sos-space-section-y: clamp(56px, 6vw, 96px);
  --sos-space-content-y: clamp(28px, 3.2vw, 52px);
  --sos-gutter-x: clamp(20px, 5vw, 40px);
  --sos-radius-md: 12px;
  --sos-shadow-card: 0 10px 28px rgba(79, 64, 46, 0.16);
}

.sos-skip-link {
  position: absolute;
  top: -48px;
  left: 12px;
  z-index: 100000;
  background: #5b4732;
  color: #fff;
  padding: 10px 14px;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
}

.sos-skip-link:focus {
  top: 12px;
}

.mkdf-content {
  color: var(--sos-color-text);
}

h1, h2, h3, h4, h5, h6,
.mkdf-title-holder .mkdf-title-wrapper .mkdf-page-title,
.mkdf-title-holder .mkdf-title-wrapper .mkdf-page-subtitle {
  color: var(--sos-color-heading);
}

h1,
h2,
h3 {
  line-height: 1.2;
}

p,
li {
  line-height: 1.6;
}

.mkdf-btn.mkdf-btn-solid,
input.wpcf7-form-control.wpcf7-submit {
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(83, 197, 181, 0.24);
}

.mkdf-team-holder .mkdf-team-image img,
.mkdf-image-gallery .mkdf-ig-image img,
.wpb_single_image img {
  border-radius: var(--sos-radius-md);
}

.mkdf-paspartu-enabled .mkdf-wrapper {
  background-color: transparent;
}

/*
 * Boxed layout (forced sitewide in functions.php): outer wrapper stays clear so
 * the HTML/body page backdrop shows in the side margins only.
 */
body.mkdf-boxed .mkdf-wrapper,
body.mkdf-boxed[class*="page-id-"] .mkdf-wrapper {
  background-color: transparent !important;
  background-image: none !important;
}

/*
 * Boxed shell: make the inner column fluid with a minimum side gutter so the
 * page backdrop is visible on every viewport (not only screens wider than
 * 1300px). Lilo locks the inner column to fixed pixel widths (1150 / 1440 etc.)
 * which fill narrower viewports edge-to-edge -- that's why the earthy backdrop
 * was invisible on a typical laptop. Capping the inner at the viewport minus
 * a small gutter restores visible side margins at all sizes while preserving
 * the Lilo grid up to its 1440 max.
 */
body.mkdf-boxed .mkdf-wrapper .mkdf-wrapper-inner,
body.mkdf-boxed .mkdf-footer-inner {
  width: min(1440px, calc(100% - 32px)) !important;
  max-width: min(1440px, calc(100% - 32px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

/*
 * Boxed sticky/fixed header: center with a stable width (use 100%, not 100vw, so
 * scrollbar appearance does not shift the bar while scrolling). Let the theme
 * handle show/hide via transform only — no clip-path.
 */
body.mkdf-boxed .mkdf-page-header .mkdf-sticky-header,
body.mkdf-boxed .mkdf-page-header .mkdf-fixed-wrapper.fixed {
  width: min(1440px, calc(100% - 32px)) !important;
  max-width: min(1440px, calc(100% - 32px)) !important;
  left: 0 !important;
  right: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

/*
 * Home hero (Cutie Pies): left-align copy block + position like the Lilo demo.
 * RS fullwidth mode expands the module to 100vw while the site uses a boxed column
 * (max 1440px). Pin title / subtitle / CTA to the boxed gutter only on rs-layer-wrap
 * (not the inner rs-layer — doubling left on both pushed copy off-screen on wide viewports).
 */
#rev_slider_1_1_wrapper rs-layer-wrap:has([id$="-layer-1"]),
#rev_slider_1_1_wrapper rs-layer-wrap:has([id$="-layer-2"]),
#rev_slider_1_1_wrapper rs-layer-wrap:has([id$="-layer-3"]),
#rev_slider_1_1_wrapper rs-slide [id$="-layer-1"],
#rev_slider_1_1_wrapper rs-slide [id$="-layer-2"],
#rev_slider_1_1_wrapper rs-slide [id$="-layer-3"],
#rev_slider_1_1_wrapper rs-slide [id$="-layer-1"] *,
#rev_slider_1_1_wrapper rs-slide [id$="-layer-2"] *,
#rev_slider_1_1_wrapper rs-slide [id$="-layer-3"] * {
  text-align: left !important;
}

#rev_slider_1_1_wrapper rs-slide [id$="-layer-1"],
#rev_slider_1_1_wrapper rs-slide [id$="-layer-2"],
#rev_slider_1_1_wrapper rs-slide [id$="-layer-3"] {
  left: 0 !important;
  right: auto !important;
  margin-left: 0 !important;
  transform: none !important;
}

#rev_slider_1_1_wrapper rs-layer-wrap:has([id$="-layer-1"]),
#rev_slider_1_1_wrapper rs-layer-wrap:has([id$="-layer-2"]),
#rev_slider_1_1_wrapper rs-layer-wrap:has([id$="-layer-3"]) {
  --sos-hero-copy-gutter: max(var(--sos-gutter-x), env(safe-area-inset-left, 0px));
  left: calc(
    (100vw - min(1440px, 100vw - 32px)) / 2 + var(--sos-hero-copy-gutter)
  ) !important;
  right: auto !important;
  margin-left: 0 !important;
  transform: none !important;
  max-width: calc(
    min(1440px, 100vw - 32px) - 2 * var(--sos-hero-copy-gutter)
  ) !important;
  box-sizing: border-box;
}

@media only screen and (min-width: 1025px) {
  #rev_slider_1_1_wrapper rs-layer-wrap:has([id$="-layer-1"]),
  #rev_slider_1_1_wrapper rs-layer-wrap:has([id$="-layer-2"]),
  #rev_slider_1_1_wrapper rs-layer-wrap:has([id$="-layer-3"]) {
    --sos-hero-copy-gutter: max(48px, var(--sos-gutter-x), env(safe-area-inset-left, 0px));
  }
}

#rev_slider_1_1_forcefullwidth {
  overflow-x: clip;
}

a,
p a {
  color: var(--sos-color-accent);
}

/*
 * Parent modules.css sets p a:hover to Lilo pink (#ff6f96), which beats a generic
 * a:hover rule. Use the same dark brown as main-menu link text (--sos-color-heading).
 */
a:hover,
a:focus,
p a:hover,
p a:focus,
h1 a:hover,
h2 a:hover,
h3 a:hover,
h4 a:hover,
h5 a:hover,
h6 a:hover,
.mkdf-content a:hover,
.mkdf-content a:focus,
.mkdf-content p a:hover,
.wpb_text_column a:hover,
.wpb_text_column a:focus,
.mkdf-title-holder .mkdf-breadcrumbs a:hover,
.mkdf-title-holder .mkdf-breadcrumbs a:focus {
  color: var(--sos-color-heading);
}

.mkdf-btn.mkdf-btn-solid,
input.wpcf7-form-control.wpcf7-submit {
  background-color: var(--sos-color-accent) !important;
  border-color: var(--sos-color-accent) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(140, 111, 79, 0.24);
}

.mkdf-btn.mkdf-btn-solid:hover,
.mkdf-btn.mkdf-btn-solid:focus,
input.wpcf7-form-control.wpcf7-submit:hover,
input.wpcf7-form-control.wpcf7-submit:focus {
  background-color: #755b40 !important;
  border-color: #755b40 !important;
}

/*
 * Back-to-top: parent theme + style_dynamic still use the Lilo demo pink on the icon ring.
 * Match the same earthy accent as primary buttons and links.
 */
#mkdf-back-to-top .mkdf-icon-stack-outer {
  border-color: var(--sos-color-accent) !important;
  background-color: rgba(140, 111, 79, 0.12) !important;
}

#mkdf-back-to-top .mkdf-icon-stack-outer .mkdf-icon-stack {
  color: #fff !important;
  background-color: var(--sos-color-accent) !important;
  border-color: var(--sos-color-accent) !important;
}

#mkdf-back-to-top:hover .mkdf-icon-stack-outer .mkdf-icon-stack {
  background-color: #755b40 !important;
  border-color: #755b40 !important;
}

#mkdf-back-to-top .mkdf-back-to-top-inner,
#mkdf-back-to-top .mkdf-back-to-top-icon-back,
#mkdf-back-to-top .mkdf-back-to-top-icon-back i {
  color: #fff !important;
}

/*
 * Image / tile hover shaders: parent + style_dynamic use Lilo demo pink on :after overlays.
 * Match gallery lightbox hover (mkdf-image-hover-shader) and the same pattern elsewhere.
 */
.mkdf-image-gallery.mkdf-image-hover-shader .mkdf-ig-image a:after,
.mkdf-image-gallery.mkdf-image-hover-zoom-shader .mkdf-ig-image a:after,
.mkdf-blog-slider-holder .mkdf-item-text-wrapper,
.mkdf-instagram-feed li a:after {
  background-color: rgba(140, 111, 79, 0.85) !important;
}

.mkdf-page-header .mkdf-menu-area,
.mkdf-page-header > .mkdf-sticky-header,
.mkdf-mobile-header .mkdf-mobile-header-inner {
  background-color: var(--sos-color-surface) !important;
}

.mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li > a,
.mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li > a,
.mkdf-mobile-header .mkdf-mobile-nav a {
  color: var(--sos-color-heading) !important;
}

.mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li:hover > a,
.mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li.current-menu-item > a,
.mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li:hover > a,
.mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li.current-menu-item > a {
  color: var(--sos-color-accent) !important;
}

/* Full-width footer band (boxed layout: inner column is narrower than viewport). */
.mkdf-page-footer,
.mkdf-page-footer .mkdf-footer-inner {
  background-color: #32355d;
}

.mkdf-page-footer .mkdf-footer-top-holder {
  background-color: #32355d !important;
}

/*
 * Copyright strip: darker purple band under the main footer, matching the
 * parent Lilo palette and the blue-header gradient (#252849).
 */
.mkdf-page-footer .mkdf-footer-bottom-holder {
  background-color: #252849 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.15);
}

.mkdf-page-footer .mkdf-footer-bottom-holder .mkdf-footer-bottom-inner.mkdf-grid {
  padding: 14px 0;
}

.mkdf-page-footer .mkdf-footer-bottom-holder .mkdf-footer-bottom-inner.mkdf-full-width {
  padding: 14px 40px;
}

.mkdf-page-footer .mkdf-footer-top-holder,
.mkdf-page-footer .mkdf-footer-top-holder a {
  color: rgba(255, 255, 255, 0.92);
}

.mkdf-page-footer .mkdf-footer-bottom-holder,
.mkdf-page-footer .mkdf-footer-bottom-holder a {
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  letter-spacing: 0.02em;
}

.mkdf-page-footer .mkdf-widget-title,
.mkdf-page-footer h1,
.mkdf-page-footer h2,
.mkdf-page-footer h3,
.mkdf-page-footer h4,
.mkdf-page-footer h5,
.mkdf-page-footer h6 {
  color: #fff;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
textarea,
select {
  border-color: var(--sos-color-border);
  background-color: #fffdf8;
  color: var(--sos-color-text);
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
textarea:focus,
select:focus {
  border-color: var(--sos-color-accent);
  box-shadow: 0 0 0 3px rgba(140, 111, 79, 0.14);
}

/* Some inner pages set a solid title background color (yellow/green). */
.mkdf-title-holder {
  background-color: transparent !important;
}

/*
 * Home hero ("Welcome to SOS Preschool"): paint the full grid-section wrapper
 * (not only the inner vc_row) so the image spans the same width as the section.
 * Position is shifted right so the subject sits clear of the left contact form.
 */
.page-id-1819 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405),
.page-id-2056 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405),
.page-id-2066 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405),
body.home .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405) {
  position: relative;
  isolation: isolate;
  /* Alternatives:
   * /wp-content/uploads/sos_outdoors_fence.jpg
   * /wp-content/uploads/sos_outdoors_duplo.jpg
   * /wp-content/uploads/sos_outdoors_wide.jpg
   */
  background-image: image-set(
    url("/wp-content/themes/lilo-child/assets/images/home-hero-preschool.webp") type("image/webp"),
    url("/wp-content/themes/lilo-child/assets/images/home-hero-preschool.jpg") type("image/jpeg")
  ) !important;
  background-size: cover !important;
  background-position: 78% center !important;
  background-repeat: no-repeat !important;
}

.page-id-1819 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
.page-id-2056 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
.page-id-2066 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
body.home .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background: linear-gradient(
    90deg,
    rgba(251, 247, 240, 0.82) 0%,
    rgba(251, 247, 240, 0.55) 42%,
    rgba(251, 247, 240, 0.15) 70%,
    rgba(47, 39, 31, 0.08) 100%
  );
}

.page-id-1819 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405) > .mkdf-row-grid-section,
.page-id-2056 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405) > .mkdf-row-grid-section,
.page-id-2066 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405) > .mkdf-row-grid-section,
body.home .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405) > .mkdf-row-grid-section {
  position: relative;
  z-index: 1;
}

.page-id-1819 .vc_custom_1527690191405,
.page-id-2056 .vc_custom_1527690191405,
.page-id-2066 .vc_custom_1527690191405,
body.home .vc_custom_1527690191405 {
  background-image: none !important;
  background-color: transparent !important;
}

@media only screen and (max-width: 1024px) {
  .page-id-1819 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405),
.page-id-2056 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405),
.page-id-2066 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405),
body.home .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405) {
    background-position: 70% center !important;
  }
}

@media only screen and (max-width: 680px) {
  .page-id-1819 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405),
.page-id-2056 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405),
.page-id-2066 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405),
body.home .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405) {
    background-position: 62% center !important;
  }
}

/* Canonical header logo policy: one dark logo across all header states. */
.mkdf-page-header > div:not(.fixed):not(.mkdf-sticky-header) .mkdf-logo-wrapper .mkdf-dark-logo,
.mkdf-page-header > .fixed .mkdf-logo-wrapper .mkdf-dark-logo,
.mkdf-page-header > .mkdf-sticky-header .mkdf-logo-wrapper .mkdf-dark-logo {
  opacity: 1;
}

.mkdf-page-header > div:not(.fixed):not(.mkdf-sticky-header) .mkdf-logo-wrapper .mkdf-normal-logo,
.mkdf-page-header > div:not(.fixed):not(.mkdf-sticky-header) .mkdf-logo-wrapper .mkdf-light-logo,
.mkdf-page-header > .fixed .mkdf-logo-wrapper .mkdf-normal-logo,
.mkdf-page-header > .fixed .mkdf-logo-wrapper .mkdf-light-logo,
.mkdf-page-header > .mkdf-sticky-header .mkdf-logo-wrapper .mkdf-normal-logo,
.mkdf-page-header > .mkdf-sticky-header .mkdf-logo-wrapper .mkdf-light-logo {
  opacity: 0;
}

/* Slight vertical inset for the logo (stacked normal/dark/light imgs live inside one <a>). */
.mkdf-page-header .mkdf-menu-area .mkdf-logo-wrapper a,
.mkdf-page-header .mkdf-logo-area .mkdf-logo-wrapper a,
.mkdf-sticky-header .mkdf-sticky-holder .mkdf-logo-wrapper a {
  box-sizing: border-box;
  padding-top: 6px;
  padding-bottom: 14px;
}

/*
 * Mobile header logo: parent sets img { height:100% } inside a fixed 70px bar, which
 * overflows and collides with the hero. Sized in the mobile @media block below.
 */

/* Keep header contact details on one line on desktop; allow wrap on narrow viewports. */
@media only screen and (min-width: 1025px) {
  .mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area,
  .mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area a {
    white-space: nowrap;
  }
}

/* Header contact: split "Call us" and number into complementary earthy tones. */
.mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .sos-call-label {
  color: #7a6144 !important;
  font-size: 12px;
  font-weight: 400;
}

.mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .sos-call-number,
.mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .textwidget a.sos-call-number,
.mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .widget.textwidget a.sos-call-number {
  color: #5b4732 !important;
  font-weight: 700;
}

.mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .sos-call-number:hover,
.mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .sos-call-number:focus {
  color: #3f352a !important;
}

/*
 * Fully override leftover pink menu accents from parent theme (active item + underline).
 * Keep hover/active color in the same earthy family as buttons/links.
 */
.mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li.mkdf-active-item > a,
.mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li.mkdf-active-item > a,
.mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li.current-menu-item > a,
.mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li.current-menu-item > a {
  color: var(--sos-color-accent) !important;
}

.mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li > a > span.item_outer:after,
.mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li > a > span.item_outer:after {
  background-color: var(--sos-color-accent) !important;
  height: 4px !important;
}

/* Dropdown nav: remove legacy pink and keep hover/active states earthy. */
.mkdf-page-header .mkdf-drop-down .second .inner ul li a:hover,
.mkdf-page-header .mkdf-drop-down .second .inner ul li.current-menu-ancestor > a,
.mkdf-page-header .mkdf-drop-down .second .inner ul li.current-menu-item > a,
.mkdf-sticky-header .mkdf-drop-down .second .inner ul li a:hover,
.mkdf-sticky-header .mkdf-drop-down .second .inner ul li.current-menu-ancestor > a,
.mkdf-sticky-header .mkdf-drop-down .second .inner ul li.current-menu-item > a {
  color: var(--sos-color-accent) !important;
}

/* Wide-dropdown heading links and underline accents should also match the earthy palette. */
.mkdf-page-header .mkdf-drop-down .wide .second .inner > ul > li > a:hover,
.mkdf-page-header .mkdf-drop-down .wide .second .inner > ul > li.current-menu-ancestor > a,
.mkdf-page-header .mkdf-drop-down .wide .second .inner > ul > li.current-menu-item > a,
.mkdf-sticky-header .mkdf-drop-down .wide .second .inner > ul > li > a:hover,
.mkdf-sticky-header .mkdf-drop-down .wide .second .inner > ul > li.current-menu-ancestor > a,
.mkdf-sticky-header .mkdf-drop-down .wide .second .inner > ul > li.current-menu-item > a {
  color: var(--sos-color-heading) !important;
}

.mkdf-page-header .mkdf-drop-down .wide .second .inner > ul > li > a .item_outer .item_text:after,
.mkdf-page-header .mkdf-drop-down .wide .second .inner > ul > li.current-menu-ancestor > a .item_text:after,
.mkdf-page-header .mkdf-drop-down .wide .second .inner > ul > li.current-menu-item > a .item_text:after,
.mkdf-sticky-header .mkdf-drop-down .wide .second .inner > ul > li > a .item_outer .item_text:after,
.mkdf-sticky-header .mkdf-drop-down .wide .second .inner > ul > li.current-menu-ancestor > a .item_text:after,
.mkdf-sticky-header .mkdf-drop-down .wide .second .inner > ul > li.current-menu-item > a .item_text:after {
  background-color: var(--sos-color-accent-soft) !important;
  height: 4px !important;
}

/* Footer: tighten spacing and align logo / contact / location columns. */
.mkdf-page-footer .mkdf-footer-top-holder .mkdf-footer-top-inner.mkdf-grid {
  padding: 56px 0 46px;
}

.mkdf-page-footer .sos-footer-top-layout {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  row-gap: 28px;
  width: 100%;
}

.mkdf-page-footer .sos-footer-top-layout > .sos-footer-column {
  float: none !important;
  margin: 0;
  min-width: 0;
  box-sizing: border-box;
}

/* Match footer markup (grid-col 3 + 5 + 4), not equal thirds. */
.mkdf-page-footer .sos-footer-top-layout > .sos-footer-brand {
  flex: 0 0 25%;
  max-width: 25%;
}

.mkdf-page-footer .sos-footer-top-layout > .sos-footer-contact {
  flex: 0 0 41.6667%;
  max-width: 41.6667%;
}

.mkdf-page-footer .sos-footer-top-layout > .sos-footer-location {
  flex: 0 0 33.3333%;
  max-width: 33.3333%;
}

.mkdf-page-footer .sos-footer-brand {
  display: flex;
  justify-content: flex-start;
}

.mkdf-page-footer .sos-footer-column .widget {
  margin-bottom: 0;
}

.mkdf-page-footer .sos-footer-logo {
  margin: 0;
}

.mkdf-page-footer .sos-footer-logo img {
  display: block;
  max-width: min(240px, 100%);
  height: auto;
}

/* Match Lilo footer widgets: titles use .mkdf-widget-title-holder + .mkdf-separator in parent CSS. */
.mkdf-page-footer .sos-footer-contact .mkdf-widget-title-holder .mkdf-widget-title,
.mkdf-page-footer .sos-footer-location .mkdf-widget-title-holder .mkdf-widget-title {
  margin: 0;
  white-space: normal;
}

.mkdf-page-footer .sos-footer-column p {
  margin: 0 0 8px;
  line-height: 1.55;
}

.mkdf-page-footer .sos-footer-column p,
.mkdf-page-footer .sos-footer-column a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/*
 * Tablet / mobile: stack footer blocks. Parent Lilo footer-map-responsive still
 * floats grid columns at 681–1024px; flex max-width must use the same selector
 * specificity as the desktop column rules above or phones keep three ~33% cols
 * and the contact/location blocks overlap.
 */
@media only screen and (max-width: 1024px) {
  .mkdf-page-footer .mkdf-footer-top-holder .mkdf-footer-top-inner.mkdf-grid {
    padding: 44px max(16px, env(safe-area-inset-right, 0px)) 38px
      max(16px, env(safe-area-inset-left, 0px));
  }

  .mkdf-page-footer .mkdf-column-content.mkdf-grid-col-3,
  .mkdf-page-footer .mkdf-column-content.mkdf-grid-col-4,
  .mkdf-page-footer .mkdf-column-content.mkdf-grid-col-5 {
    width: 100% !important;
    float: none !important;
  }

  .mkdf-page-footer .sos-footer-top-layout > .sos-footer-column {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  .mkdf-page-footer .sos-footer-contact + .sos-footer-location {
    margin-top: 0;
  }
}

@media only screen and (max-width: 680px) {
  .mkdf-page-footer .mkdf-footer-top-holder .mkdf-footer-top-inner.mkdf-grid {
    padding: 36px max(16px, env(safe-area-inset-right, 0px)) 30px
      max(16px, env(safe-area-inset-left, 0px));
  }

  .mkdf-page-footer .sos-footer-brand {
    justify-content: center;
  }

  .mkdf-page-footer .mkdf-footer-bottom-holder .mkdf-footer-bottom-inner.mkdf-full-width {
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
  }
}

/* Get in Touch (and anywhere [sos_location_map] is used): embed map polish. */
.sos-location-map {
  border-radius: 9px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
  line-height: 0;
}

.sos-location-map iframe {
  min-height: 260px;
}

@media only screen and (max-width: 680px) {
  .sos-location-map iframe {
    min-height: 240px;
  }
}

/*
 * Home "Get in touch" CTA — static block (replaces Revolution Slider home-03-section).
 * Background sits between page cream (#f4efe7) and white content areas.
 */
.sos-home-get-in-touch > .wpb_column > .vc_column-inner {
  min-height: 420px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  padding: 36px var(--sos-gutter-x);
  box-sizing: border-box;
}

/* align-items: center on the column shrinks wpb_wrapper to wrapped text width (~733px). */
.sos-home-get-in-touch > .wpb_column > .vc_column-inner > .wpb_wrapper {
  width: 100%;
  max-width: min(1200px, 100%);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  box-sizing: border-box;
}

.sos-home-get-in-touch .mkdf-section-title-holder.sos-home-get-in-touch__copy {
  width: 100%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

.sos-home-get-in-touch .mkdf-st-title {
  font-size: 50px;
  line-height: 55px;
  font-weight: 600;
  letter-spacing: 0;
  margin: 0;
  overflow-wrap: normal;
  word-break: normal;
}

.sos-home-get-in-touch .mkdf-st-text {
  width: 100%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  text-wrap: pretty;
}

.sos-home-get-in-touch .vc_empty_space {
  height: 20px !important;
}

.sos-home-get-in-touch .mkdf-btn {
  margin: 0;
}

@media only screen and (max-width: 1024px) {
  .sos-home-get-in-touch > .wpb_column > .vc_column-inner {
    min-height: 380px;
    padding: 32px var(--sos-gutter-x);
  }

  .sos-home-get-in-touch .mkdf-st-title {
    font-size: 50px;
    line-height: 55px;
  }
}

@media only screen and (max-width: 768px) {
  .sos-home-get-in-touch > .wpb_column > .vc_column-inner {
    min-height: auto;
    padding: 32px var(--sos-gutter-x);
  }

  .sos-home-get-in-touch .mkdf-st-title {
    font-size: 45px;
    line-height: 50px;
  }

  .sos-home-get-in-touch .mkdf-st-text {
    font-size: 19px !important;
    line-height: 36px !important;
  }
}

@media only screen and (max-width: 680px) {
  .sos-home-get-in-touch > .wpb_column > .vc_column-inner {
    padding: 28px max(16px, env(safe-area-inset-right, 0px)) 28px
      max(16px, env(safe-area-inset-left, 0px));
  }

  .sos-home-get-in-touch .mkdf-st-title {
    font-size: 40px;
    line-height: 42px;
  }

  .sos-home-get-in-touch .mkdf-st-text {
    font-size: 15px !important;
    line-height: 26px !important;
  }
}

/*
 * "Life at SOS Preschool" gallery row (vc_custom_1526476994575):
 * enforce square tiles and consistent masonry columns anywhere this row is reused.
 */
.vc_custom_1526476994575 .mkdf-image-gallery.mkdf-ig-masonry-type .mkdf-ig-masonry.mkdf-ig-four-columns .mkdf-ig-grid-sizer,
.vc_custom_1526476994575 .mkdf-image-gallery.mkdf-ig-masonry-type .mkdf-ig-masonry.mkdf-ig-four-columns > .mkdf-ig-image {
  width: 33.3333% !important;
}

.vc_custom_1526476994575 .mkdf-image-gallery.mkdf-ig-masonry-fixed-type .mkdf-ig-image .mkdf-ig-image-inner,
.vc_custom_1526476994575 .mkdf-image-gallery.mkdf-ig-masonry-fixed-type .mkdf-ig-image .mkdf-ig-image-inner > a {
  display: block;
  width: 100%;
  height: 100%;
}

.vc_custom_1526476994575 .mkdf-image-gallery.mkdf-ig-masonry-fixed-type .mkdf-ig-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media only screen and (max-width: 1024px) {
  .vc_custom_1526476994575 .mkdf-image-gallery.mkdf-ig-masonry-type .mkdf-ig-masonry.mkdf-ig-four-columns .mkdf-ig-grid-sizer,
  .vc_custom_1526476994575 .mkdf-image-gallery.mkdf-ig-masonry-type .mkdf-ig-masonry.mkdf-ig-four-columns > .mkdf-ig-image {
    width: 50% !important;
  }
}

@media only screen and (max-width: 680px) {
  .vc_custom_1526476994575 .mkdf-image-gallery.mkdf-ig-masonry-type .mkdf-ig-masonry.mkdf-ig-four-columns .mkdf-ig-grid-sizer,
  .vc_custom_1526476994575 .mkdf-image-gallery.mkdf-ig-masonry-type .mkdf-ig-masonry.mkdf-ig-four-columns > .mkdf-ig-image {
    width: 100% !important;
  }
}

/* "Explore SOS Preschool" team cards — same square crop for mixed aspect ratios. */
.vc_custom_1526477293384 .mkdf-team-holder .mkdf-team-image {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  min-height: 0;
  /* Keep rounded-corner crop consistent while retaining overlay badge visibility. */
  overflow: hidden;
  border-radius: var(--sos-radius-md);
  position: relative;
}

.vc_custom_1526477293384 .mkdf-team-holder .mkdf-team-image img {
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
  display: block;
}

.vc_custom_1526477293384 .mkdf-team-holder .mkdf-team-position {
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  z-index: 2;
}

/* Keep team cards aligned as text lengths vary across breakpoints. */
.vc_custom_1526477293384 .mkdf-grid-row,
.vc_custom_1526477293384 .vc_row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}

.vc_custom_1526477293384 .wpb_column {
  display: flex;
  align-items: stretch;
}

.vc_custom_1526477293384 .wpb_column .vc_column-inner,
.vc_custom_1526477293384 .wpb_column .wpb_wrapper,
.vc_custom_1526477293384 .wpb_column .mkdf-team-holder,
.vc_custom_1526477293384 .wpb_column .mkdf-team-holder .mkdf-team-inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}

.vc_custom_1526477293384 .mkdf-team-holder .mkdf-team-info {
  margin-top: 22px;
  flex: 1 1 auto;
}

.vc_custom_1526477293384 .mkdf-team-holder .mkdf-team-info .mkdf-team-name {
  min-height: 2.4em;
}

@media only screen and (max-width: 680px) {
  .vc_custom_1526477293384 .mkdf-team-holder .mkdf-team-info .mkdf-team-name {
    min-height: 0;
  }
}

/* Remove legacy signature image block from imported demo content. */
img[src*="h1-signature.png"] {
  display: none !important;
}

/*
 * Philosophy (page 23): tighten spacing around Mikado blockquote to match Lilo typography demo rhythm.
 * Shortcode: https://lilo.qodeinteractive.com/elements/blockquote/
 */
.page-id-23 .wpb_text_column .mkdf-blockquote-shortcode,
.page-id-65 .wpb_text_column .mkdf-blockquote-shortcode {
  margin: 12px 0 28px;
}

/*
 * Imported SOS inner rows carry large inline top padding from migration shortcode.
 * Normalize globally so content starts closer to the title banner.
 */
.vc_row.vc_custom_sos_inner {
  padding-top: 24px !important;
}

/*
 * Philosophy (page 23): keep explicit override for clarity.
 */
.page-id-23 .vc_row.vc_custom_sos_inner {
  padding-top: 24px !important;
}

/*
 * Who We Are (page 29): gap between intro copy and team member cards below.
 */
.page-id-29 .mkdf-row-grid-section-wrapper:has(.vc_custom_sos_who_intro)
  + .mkdf-row-grid-section-wrapper:has(.vc_custom_sos_who_team),
.page-who-we-are .mkdf-row-grid-section-wrapper:has(.vc_custom_sos_who_intro)
  + .mkdf-row-grid-section-wrapper:has(.vc_custom_sos_who_team) {
  margin-top: clamp(48px, 6vw, 80px);
}

.page-id-29 .vc_row.vc_custom_sos_who_intro,
.page-who-we-are .vc_row.vc_custom_sos_who_intro {
  padding-bottom: clamp(32px, 4vw, 56px) !important;
}

/*
 * Educational Program: VC rows often use theme "center" alignment
 * (mkdf-content-aligment-center → text-align: center). A max-width on only the
 * first <p> still leaves that block box left-aligned in the row, so headings
 * and body look staggered. Constrain and center the whole text wrapper, then
 * keep copy left-aligned for reading.
 */
.page-id-1809 .wpb_text_column > .wpb_wrapper {
  max-width: 48em;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.page-id-1809 .wpb_text_column .wpb_wrapper > h2:first-of-type {
  margin-top: 0;
  margin-bottom: 0.4em;
}

.page-id-1809 .wpb_text_column .wpb_wrapper > p:first-of-type {
  margin-bottom: 1.1em;
  line-height: 1.65;
}

.page-id-1809 .wpb_text_column .wpb_wrapper > h2:nth-of-type(2) {
  margin-top: 1.75em;
}

.page-id-1809 .wpb_text_column img.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
  border-radius: 12px;
  box-shadow: 0 10px 28px rgba(50, 53, 93, 0.14);
}

/*
 * Same pattern anywhere the row wrapper is "center" but the column is prose:
 * center the column as a block; do not inherit centered text on paragraphs.
 */
.mkdf-row-grid-section-wrapper.mkdf-content-aligment-center .wpb_text_column > .wpb_wrapper {
  max-width: min(48em, 100%);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

/*
 * Header menu spacing/alignment fix after theme update.
 * Keep this desktop-only so mobile header behavior is unchanged.
 */
/* Inner page title banner: full-bleed photo like Lilo demo (background + mobile <img> fallback). */
.mkdf-title-holder.mkdf-has-bg-image {
  position: relative;
  isolation: isolate;
  height: clamp(220px, 30vh, 300px) !important;
  min-height: clamp(220px, 30vh, 300px) !important;
  background-size: cover;
  background-position: center 35%;
  /* Per-page meta can enable parallax; child theme normalizes to scroll (see functions.php). */
  background-attachment: scroll;
}

/*
 * Standard + breadcrumbs stacks H1 then trail. Parent .mkdf-title-holder uses
 * overflow:hidden and table-cell vertical-align:middle, so on short viewports
 * (or multi-line titles) the crumbs sit below the clip edge and disappear.
 */
.mkdf-title-holder.mkdf-standard-with-breadcrumbs-type {
  overflow: visible;
}

.mkdf-title-holder.mkdf-standard-with-breadcrumbs-type.mkdf-has-bg-image {
  height: auto !important;
  min-height: clamp(240px, 34vh, 320px) !important;
}

.mkdf-title-holder.mkdf-standard-with-breadcrumbs-type .mkdf-title-wrapper {
  height: auto !important;
  padding-top: clamp(1rem, 3vh, 2rem);
  padding-bottom: clamp(0.75rem, 2vh, 1.25rem);
  box-sizing: border-box;
}

.mkdf-title-holder.mkdf-standard-with-breadcrumbs-type .mkdf-title-inner {
  vertical-align: top;
}

@media only screen and (min-width: 1025px) {
  /* Desktop: bg on holder; z-index only (title-image is display:none). */
  .mkdf-title-holder.mkdf-has-bg-image .mkdf-title-wrapper {
    position: relative;
    z-index: 1;
  }
}

.mkdf-title-holder.mkdf-has-bg-image .mkdf-title-image img {
  filter: brightness(1.1) contrast(0.94) saturate(0.9);
  object-position: center 35%;
}

/*
 * Inner page title banner (standard + breadcrumbs): theme .mkdf-grid uses fixed
 * pixel widths on small breakpoints (e.g. 300px @ 480px) while this title type
 * also pads 40px each side — crumbs + H1 end up ~220px wide. Use the viewport
 * width here only, tighten type, and let breadcrumbs wrap.
 */
@media only screen and (max-width: 1024px) {
  /*
   * Lilo swaps bg for <img> and absolutely positions .mkdf-title-wrapper.
   * Do not force a short fixed height here — it clips the stacked image + title.
   */
  .mkdf-title-holder.mkdf-has-bg-image {
    height: auto !important;
    min-height: clamp(200px, 34vh, 280px);
  }

  .mkdf-title-holder.mkdf-has-bg-image .mkdf-title-image img {
    width: 100%;
    height: clamp(200px, 34vh, 280px);
    object-fit: cover;
  }

  .mkdf-title-holder.mkdf-has-bg-image .mkdf-title-wrapper {
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    transform: translateY(-50%) !important;
    z-index: 2;
    box-sizing: border-box;
  }

  .mkdf-title-holder.mkdf-has-bg-image .mkdf-title-image {
    position: relative;
    z-index: 1;
  }

  .mkdf-title-holder .mkdf-title-inner .mkdf-grid {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: max(16px, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(16px, env(safe-area-inset-right, 0px)) !important;
    box-sizing: border-box;
  }

  .mkdf-title-holder .mkdf-title-wrapper {
    display: flex;
    align-items: center;
    justify-content: flex-start;
  }

  .mkdf-title-holder .mkdf-title-inner {
    display: block;
    width: 100%;
    height: auto;
  }

  .mkdf-title-holder.mkdf-centered-type .mkdf-title-wrapper {
    justify-content: center;
  }

  .mkdf-title-holder.mkdf-standard-with-breadcrumbs-type .mkdf-page-title {
    font-size: clamp(1.35rem, 4.2vw, 1.85rem);
    line-height: 1.2;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  .mkdf-title-holder.mkdf-standard-with-breadcrumbs-type .mkdf-breadcrumbs {
    font-size: clamp(0.8125rem, 2.8vw, 1rem);
    line-height: 1.45;
    white-space: normal;
  }

  .mkdf-title-holder.mkdf-standard-with-breadcrumbs-type .mkdf-breadcrumbs-info,
  .mkdf-title-holder.mkdf-standard-with-breadcrumbs-type .mkdf-breadcrumbs-info .mkdf-breadcrumbs-holder {
    max-width: 100%;
    box-sizing: border-box;
  }

  .mkdf-title-holder.mkdf-standard-with-breadcrumbs-type .mkdf-breadcrumbs-info .mkdf-breadcrumbs-holder {
    padding: 7px 10px 6px;
  }

  .mkdf-title-holder.mkdf-standard-with-breadcrumbs-type .mkdf-title-info .mkdf-title-info-holder {
    max-width: 100%;
    box-sizing: border-box;
    padding: 2px 10px 0;
  }

  .mkdf-title-holder.mkdf-standard-with-breadcrumbs-type .mkdf-title-info {
    margin-bottom: 8px;
  }

  /* Overlay layout: align to top and grow the band so crumbs are not clipped. */
  .mkdf-title-holder.mkdf-standard-with-breadcrumbs-type.mkdf-has-bg-image {
    overflow: visible;
    min-height: clamp(260px, 42vh, 360px);
  }

  .mkdf-title-holder.mkdf-standard-with-breadcrumbs-type.mkdf-has-bg-image .mkdf-title-image img {
    height: clamp(260px, 42vh, 360px);
  }

  /*
   * Vertically centre title + breadcrumbs in the hero band. flex-start pinned
   * copy under the header (top ≈ 72px); min-height above prevents clipping.
   */
  .mkdf-title-holder.mkdf-standard-with-breadcrumbs-type .mkdf-title-wrapper {
    align-items: center;
    justify-content: center;
    padding-top: 0;
    padding-bottom: 0;
  }
}

@media only screen and (min-width: 1025px) {
  /*
   * Duplicate sticky nav (second copy in the DOM) — hidden sitewide; primary .mkdf-menu-area only.
   */
  .mkdf-page-header > .mkdf-sticky-header {
    display: none !important;
  }

  /*
   * Keep a definite menu band height: Mikado vertically centres the header widget
   * (phone) using :before { height: 100% } on .mkdf-vertical-align-containers; if
   * .mkdf-menu-area is height:auto, percentage heights collapse and the number sits at the top.
   *
   * Do not add vertical padding here: with border-box height:100% on a 100px bar it shrinks
   * the inner column below the logo bitmap height (~88px) and breaks vertical alignment.
   */
  .mkdf-page-header .mkdf-menu-area {
    min-height: 110px;
    height: 110px;
    background-color: var(--sos-color-surface);
  }

  .mkdf-page-header > .mkdf-sticky-header {
    min-height: 110px;
    height: 110px;
  }

  .mkdf-page-header .mkdf-menu-area .mkdf-vertical-align-containers {
    height: 100%;
    padding-top: 0;
    padding-bottom: 0;
    box-sizing: border-box;
  }

  /* menu-left: parent theme hides :before strut on the left column — flex keeps logo + nav centred. */
  .mkdf-page-header .mkdf-menu-area.mkdf-menu-left .mkdf-vertical-align-containers .mkdf-position-left-inner,
  .mkdf-page-header > .mkdf-sticky-header .mkdf-sticky-holder.mkdf-menu-left .mkdf-vertical-align-containers .mkdf-position-left-inner {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    height: 100%;
    box-sizing: border-box;
  }

  .mkdf-page-header > .mkdf-sticky-header .mkdf-sticky-holder .mkdf-vertical-align-containers {
    height: 100%;
    box-sizing: border-box;
  }

  .mkdf-page-header .mkdf-menu-area .mkdf-logo-wrapper a,
  .mkdf-page-header > .mkdf-sticky-header .mkdf-sticky-holder .mkdf-logo-wrapper a {
    max-height: 110px;
  }

  .mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul,
  .mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    height: auto;
    min-height: 100%;
  }

  .mkdf-page-header .mkdf-menu-area.mkdf-menu-left .mkdf-position-left-inner .mkdf-main-menu {
    margin-left: 18px;
  }

  .mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li,
  .mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li {
    float: none;
    height: auto;
    display: flex;
    align-items: center;
  }

  .mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li > a,
  .mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li > a {
    display: inline-flex;
    align-items: center;
    height: auto;
    padding: 10px 12px;
    font-size: 16px;
    color: var(--sos-color-heading);
  }

  .mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li > a > span.item_outer,
  .mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li > a > span.item_outer {
    top: auto;
    transform: none;
    padding: 0;
  }
}

/*
 * Fees page: readable fee grid (replaces legacy fixed-height / overstretched table).
 */
.sos-fee-table-wrap {
  width: 100%;
  max-width: 42rem;
  margin: 1.25rem 0 1.75rem;
  border-radius: var(--sos-radius-md);
  overflow: hidden;
  border: 1px solid var(--sos-color-border);
  box-shadow: var(--sos-shadow-card);
  background: var(--sos-color-surface);
}

table.sos-fee-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 1rem;
  line-height: 1.45;
}

.sos-fee-table thead th {
  padding: 0.65rem 1rem;
  text-align: left;
  font-weight: 700;
  color: var(--sos-color-heading);
  background: var(--sos-color-accent-soft);
  border-bottom: 1px solid var(--sos-color-border);
}

.sos-fee-table thead th:last-child {
  text-align: right;
  width: 6.5rem;
}

.sos-fee-table tbody th,
.sos-fee-table tbody td {
  padding: 0.7rem 1rem;
  vertical-align: top;
  border-bottom: 1px solid rgba(216, 203, 184, 0.65);
}

.sos-fee-table tbody tr:last-child th,
.sos-fee-table tbody tr:last-child td {
  border-bottom: none;
}

.sos-fee-table tbody th[scope="row"] {
  font-weight: 600;
  text-align: left;
  color: var(--sos-color-text);
  background: rgba(250, 244, 232, 0.55);
}

.sos-fee-table tbody td {
  text-align: right;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: var(--sos-color-heading);
}

.sos-fee-table tbody tr:nth-child(even) th[scope="row"] {
  background: rgba(228, 216, 198, 0.35);
}

@media only screen and (max-width: 680px) {
  .sos-fee-table thead th,
  .sos-fee-table tbody th,
  .sos-fee-table tbody td {
    padding: 0.55rem 0.65rem;
    font-size: 0.95rem;
  }
}

/*
 * Fees page: legacy Visual Composer table without .sos-fee-table —
 * drop fixed pixel height/width so it does not stretch full grid width.
 * (page-id-69 matches local migration; page-fees matches slug /enrolments/fees/.)
 */
body.page-id-69 .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table),
body.page-fees .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) {
  width: 100% !important;
  max-width: 42rem;
  height: auto !important;
  margin: 1.25rem 0 1.75rem;
  border-collapse: collapse;
  table-layout: fixed;
  border-radius: var(--sos-radius-md);
  overflow: hidden;
  border: 1px solid var(--sos-color-border);
  box-shadow: var(--sos-shadow-card);
  background: var(--sos-color-surface);
}

body.page-id-69 .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) td,
body.page-fees .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) td {
  width: auto !important;
  padding: 0.7rem 1rem;
  vertical-align: top;
  border-bottom: 1px solid rgba(216, 203, 184, 0.65);
  line-height: 1.45;
}

body.page-id-69 .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) tbody tr:last-child td,
body.page-fees .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) tbody tr:last-child td {
  border-bottom: none;
}

body.page-id-69 .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) td:first-child,
body.page-fees .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) td:first-child {
  font-weight: 600;
  color: var(--sos-color-text);
  background: rgba(250, 244, 232, 0.55);
}

body.page-id-69 .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) td:last-child,
body.page-fees .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) td:last-child {
  text-align: right;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  width: 6.5rem;
  color: var(--sos-color-heading);
}

body.page-id-69 .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) tbody tr:nth-child(even) td:first-child,
body.page-fees .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) tbody tr:nth-child(even) td:first-child {
  background: rgba(228, 216, 198, 0.35);
}

/*
 * Opening hours (page 26): prose left, Mikado working-hours widget right.
 */
body.page-id-26 .vc_row.vc_custom_sos_inner .wpb_text_column .wpb_wrapper > h2,
body.page-opening-hours .vc_row.vc_custom_sos_inner .wpb_text_column .wpb_wrapper > h2 {
  margin: 1.75rem 0 0.5rem;
  font-size: 1.35rem;
  color: var(--sos-color-heading);
}

body.page-id-26 .vc_row.vc_custom_sos_inner .wpb_text_column .wpb_wrapper > h2:first-child,
body.page-opening-hours .vc_row.vc_custom_sos_inner .wpb_text_column .wpb_wrapper > h2:first-child {
  margin-top: 0;
}

body.page-id-26 .vc_row.vc_custom_sos_inner .wpb_text_column .wpb_wrapper > p,
body.page-opening-hours .vc_row.vc_custom_sos_inner .wpb_text_column .wpb_wrapper > p {
  margin-bottom: 0.85rem;
  line-height: 1.65;
  max-width: 38em;
}

body.page-id-26 .mkdf-working-hours-holder,
body.page-opening-hours .mkdf-working-hours-holder {
  margin-top: 0;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  background: var(--sos-color-surface);
  border: 1px solid var(--sos-color-border);
  border-radius: var(--sos-radius-md);
  box-shadow: var(--sos-shadow-card);
}

body.page-id-26 .mkdf-working-hours-holder .mkdf-wh-title,
body.page-opening-hours .mkdf-working-hours-holder .mkdf-wh-title {
  color: var(--sos-color-heading);
  font-size: 1.25rem;
  margin-bottom: 0.35rem;
}

body.page-id-26 .mkdf-working-hours-holder .mkdf-wh-text-holder,
body.page-opening-hours .mkdf-working-hours-holder .mkdf-wh-text-holder {
  margin-bottom: 1rem;
}

body.page-id-26 .mkdf-working-hours-holder .mkdf-wh-text,
body.page-opening-hours .mkdf-working-hours-holder .mkdf-wh-text {
  color: var(--sos-color-text);
  font-size: 0.95rem;
  line-height: 1.45;
}

body.page-id-26 .mkdf-working-hours-holder .mkdf-wh-item,
body.page-opening-hours .mkdf-working-hours-holder .mkdf-wh-item {
  margin-bottom: 0.65rem;
  font-size: 0.98rem;
  color: var(--sos-color-text);
}

body.page-id-26 .mkdf-working-hours-holder .mkdf-wh-delimiter,
body.page-opening-hours .mkdf-working-hours-holder .mkdf-wh-delimiter {
  border-bottom-color: var(--sos-color-border);
}

body.page-id-26 .mkdf-working-hours-holder .mkdf-wh-hours,
body.page-opening-hours .mkdf-working-hours-holder .mkdf-wh-hours {
  color: var(--sos-color-heading);
  font-weight: 600;
}

body.page-id-26 .mkdf-working-hours-holder .mkdf-wh-button,
body.page-opening-hours .mkdf-working-hours-holder .mkdf-wh-button {
  margin-top: 1.25rem;
}

@media only screen and (max-width: 768px) {
  body.page-id-26 .mkdf-working-hours-holder,
  body.page-opening-hours .mkdf-working-hours-holder {
    margin-top: 1.5rem;
  }
}

/*
 * Homepage preview template (template-home-lilo-blue-header.php): restore original Lilo
 * navy header band + light nav (WordPress + Mikado markup — not a static file).
 */
body.sos-lilo-blue-header .mkdf-top-bar,
body.sos-lilo-blue-header .mkdf-top-bar-background {
  background-color: #2f3254 !important;
  background-image: none !important;
}

body.sos-lilo-blue-header .mkdf-top-bar,
body.sos-lilo-blue-header .mkdf-top-bar a,
body.sos-lilo-blue-header .mkdf-top-bar .widget,
body.sos-lilo-blue-header .mkdf-top-bar .widget a {
  color: rgba(255, 255, 255, 0.9) !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area,
body.sos-lilo-blue-header .mkdf-page-header > .mkdf-sticky-header,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-fixed-wrapper.fixed .mkdf-menu-area,
body.sos-lilo-blue-header .mkdf-mobile-header .mkdf-mobile-header-inner {
  background-color: #252849 !important;
  background-image: linear-gradient(
    180deg,
    #32355d 0%,
    #252849 55%,
    #1e2140 100%
  ) !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li > a,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li > a,
body.sos-lilo-blue-header .mkdf-mobile-header .mkdf-mobile-nav a {
  color: rgba(255, 255, 255, 0.92) !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li:hover > a,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li.current-menu-item > a,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li:hover > a,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li.current-menu-item > a,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li.mkdf-active-item > a,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li.mkdf-active-item > a {
  color: #7fe8dc !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-main-menu > ul > li > a > span.item_outer:after,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-sticky-header .mkdf-main-menu > ul > li > a > span.item_outer:after {
  background-color: #53c5b5 !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .sos-call-label {
  color: rgba(255, 255, 255, 0.72) !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .sos-call-number,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .textwidget a.sos-call-number,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .widget.textwidget a.sos-call-number {
  color: #fff !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .sos-call-number:hover,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-menu-area .mkdf-header-widget-menu-area .sos-call-number:focus {
  color: #b9fff6 !important;
}

/* Light logo on dark bar (invert default child policy for this template only). */
body.sos-lilo-blue-header .mkdf-page-header > div:not(.fixed):not(.mkdf-sticky-header) .mkdf-logo-wrapper .mkdf-light-logo,
body.sos-lilo-blue-header .mkdf-page-header > .fixed .mkdf-logo-wrapper .mkdf-light-logo,
body.sos-lilo-blue-header .mkdf-page-header > .mkdf-sticky-header .mkdf-logo-wrapper .mkdf-light-logo {
  opacity: 1 !important;
}

body.sos-lilo-blue-header .mkdf-page-header > div:not(.fixed):not(.mkdf-sticky-header) .mkdf-logo-wrapper .mkdf-dark-logo,
body.sos-lilo-blue-header .mkdf-page-header > div:not(.fixed):not(.mkdf-sticky-header) .mkdf-logo-wrapper .mkdf-normal-logo,
body.sos-lilo-blue-header .mkdf-page-header > .fixed .mkdf-logo-wrapper .mkdf-dark-logo,
body.sos-lilo-blue-header .mkdf-page-header > .fixed .mkdf-logo-wrapper .mkdf-normal-logo,
body.sos-lilo-blue-header .mkdf-page-header > .mkdf-sticky-header .mkdf-logo-wrapper .mkdf-dark-logo,
body.sos-lilo-blue-header .mkdf-page-header > .mkdf-sticky-header .mkdf-logo-wrapper .mkdf-normal-logo {
  opacity: 0 !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-drop-down .second,
body.sos-lilo-blue-header .mkdf-sticky-header .mkdf-drop-down .second {
  background-color: #fbf7f0 !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-drop-down .second .inner ul li a,
body.sos-lilo-blue-header .mkdf-sticky-header .mkdf-drop-down .second .inner ul li a {
  color: var(--sos-color-heading) !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-drop-down .second .inner ul li a:hover,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-drop-down .second .inner ul li.current-menu-item > a,
body.sos-lilo-blue-header .mkdf-sticky-header .mkdf-drop-down .second .inner ul li a:hover,
body.sos-lilo-blue-header .mkdf-sticky-header .mkdf-drop-down .second .inner ul li.current-menu-item > a {
  color: var(--sos-color-accent) !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-drop-down .wide .second .inner > ul > li > a,
body.sos-lilo-blue-header .mkdf-sticky-header .mkdf-drop-down .wide .second .inner > ul > li > a {
  color: var(--sos-color-heading) !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-drop-down .wide .second .inner > ul > li > a:hover,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-drop-down .wide .second .inner > ul > li.current-menu-item > a,
body.sos-lilo-blue-header .mkdf-sticky-header .mkdf-drop-down .wide .second .inner > ul > li > a:hover,
body.sos-lilo-blue-header .mkdf-sticky-header .mkdf-drop-down .wide .second .inner > ul > li.current-menu-item > a {
  color: var(--sos-color-accent) !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-search-opener,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-search-opener .mkdf-icon-linear-icons,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-side-menu-button-opener,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-side-menu-button-opener .mkdf-icon-linear-icons,
body.sos-lilo-blue-header .mkdf-mobile-header .mkdf-mobile-menu-opener a {
  color: #fff !important;
}

body.sos-lilo-blue-header .mkdf-page-header .mkdf-search-opener:hover,
body.sos-lilo-blue-header .mkdf-page-header .mkdf-side-menu-button-opener:hover,
body.sos-lilo-blue-header .mkdf-mobile-header .mkdf-mobile-menu-opener a:hover {
  color: #7fe8dc !important;
}

/* Same home hero row as front page when duplicated VC markup is present. */
body.sos-lilo-blue-header .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405) {
  background-image: image-set(
    url("/wp-content/themes/lilo-child/assets/images/home-hero-preschool.webp") type("image/webp"),
    url("/wp-content/themes/lilo-child/assets/images/home-hero-preschool.jpg") type("image/jpeg")
  ) !important;
  background-size: cover !important;
  background-position: 78% center !important;
  background-repeat: no-repeat !important;
}

body.sos-lilo-blue-header .vc_custom_1527690191405 {
  background-image: none !important;
  background-color: transparent !important;
}

@media only screen and (max-width: 1024px) {
  body.sos-lilo-blue-header .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405) {
    background-position: 70% center !important;
  }
}

@media only screen and (max-width: 680px) {
  body.sos-lilo-blue-header .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405) {
    background-position: 62% center !important;
  }
}

/*
 * Mobile / tablet scroll overlap fixes (header vs white content band).
 * - Boxed layout uses overflow:hidden on body and inline-block on .mkdf-wrapper,
 *   which breaks iOS scroll compositing and can clip/stutter fixed headers.
 * - Parent .mkdf-grid uses fixed pixel widths wider than the phone viewport.
 * - Sticky mobile header keeps theme pixel widths that do not match the fluid boxed column.
 * - .mkdf-content is white (#fff) with z-index 100; keep header above it when scrolling.
 */
@media only screen and (max-width: 1024px) {
  body.mkdf-boxed {
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  body.mkdf-boxed .mkdf-wrapper {
    display: block;
    width: 100%;
    max-width: 100%;
  }

  body.mkdf-boxed .mkdf-wrapper .mkdf-grid,
  body.mkdf-boxed .mkdf-container-inner,
  body.mkdf-boxed .mkdf-row-grid-section,
  body.mkdf-boxed .mkdf-row-grid-section-wrapper .mkdf-row-grid-section {
    width: 100% !important;
    max-width: min(1440px, calc(100% - 32px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
  }

  .mkdf-page-header,
  .mkdf-page-header .mkdf-sticky-header,
  .mkdf-page-header .mkdf-fixed-wrapper {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .mkdf-content {
    z-index: 1;
    isolation: isolate;
  }
}

/*
 * Sitewide responsive system — aligns with Lilo tiers (1024 / 680 / 480).
 * Targets migrated VC rows, Mikado shortcodes, and parent fixed grid widths.
 */

/* Lilo demo teal blockquotes fail WCAG on white; keep Baloo rhythm, darken copy. */
blockquote,
.mkdf-blockquote-shortcode,
.mkdf-blockquote-shortcode .mkdf-blockquote-text,
.mkdf-blockquote-shortcode .mkdf-blockquote-text span {
  color: var(--sos-color-quote) !important;
}

.mkdf-blockquote-shortcode {
  display: block;
  box-sizing: border-box;
  padding: clamp(16px, 4vw, 24px);
  border-radius: var(--sos-radius-md);
  background: rgba(251, 247, 240, 0.92);
  border: 1px solid rgba(216, 203, 184, 0.65);
}

.mkdf-blockquote-shortcode .mkdf-icon-quotations-holder svg path {
  fill: var(--sos-color-accent-2) !important;
}

.mkdf-blockquote-shortcode .mkdf-blockquote-text {
  display: block;
  padding: 12px 0 0;
  font-size: clamp(1.125rem, 4.2vw, 1.5rem);
  line-height: 1.35;
}

@media only screen and (min-width: 681px) {
  .mkdf-blockquote-shortcode .mkdf-icon-quotations-holder {
    display: inline-block;
    vertical-align: top;
  }

  .mkdf-blockquote-shortcode .mkdf-blockquote-text {
    display: inline-block;
    width: calc(100% - 52px);
    padding: 0 0 0 19px;
    vertical-align: top;
  }
}

/* Media, forms, and tables must never overflow the boxed column. */
.mkdf-content img,
.mkdf-content iframe,
.mkdf-content video,
.mkdf-content table,
.mkdf-content .wpb_single_image img,
.mkdf-content .mkdf-single-image-holder img {
  max-width: 100%;
  height: auto;
}

.mkdf-content .wpcf7-form,
.mkdf-content .fscf-form {
  max-width: 100%;
}

/* Imported rows: shrink demo vertical padding on tablet/phone. */
@media only screen and (max-width: 1024px) {
  .vc_row[class*="vc_custom_"].vc_row-o-full-height,
  .vc_row[class*="vc_custom_"] {
    padding-top: clamp(40px, 8vw, 72px) !important;
    padding-bottom: clamp(32px, 6vw, 56px) !important;
  }

  .vc_row.vc_custom_sos_inner {
    padding-top: clamp(20px, 4vw, 32px) !important;
    padding-bottom: clamp(28px, 5vw, 48px) !important;
  }

  .mkdf-content .vc_empty_space {
    max-height: 48px;
  }

  .mkdf-content .vc_empty_space[style*="height: 4"],
  .mkdf-content .vc_empty_space[style*="height: 5"] {
    height: 28px !important;
  }
}

@media only screen and (max-width: 680px) {
  .vc_row[class*="vc_custom_"] {
    padding-top: clamp(32px, 7vw, 48px) !important;
    padding-bottom: clamp(24px, 5vw, 40px) !important;
  }

  .mkdf-content .vc_empty_space {
    max-height: 32px;
  }
}

/*
 * Mobile/tablet horizontal rhythm + SOS mobile header bar.
 * Parent Lilo locks .mkdf-mobile-header-inner to 70px and uses inline-block :before
 * vertical-align — our logo was taller than the bar and spilled over the hero.
 */
@media only screen and (max-width: 1024px) {
  .mkdf-mobile-header {
    display: block !important;
    position: relative;
    z-index: 300;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: var(--sos-color-surface) !important;
  }

  .mkdf-mobile-header .mkdf-mobile-header-inner {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    min-height: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: max(10px, env(safe-area-inset-top, 0px))
      max(var(--sos-gutter-x), env(safe-area-inset-right, 0px)) 10px
      max(var(--sos-gutter-x), env(safe-area-inset-left, 0px)) !important;
    box-sizing: border-box;
    background-color: var(--sos-color-surface) !important;
    box-shadow: 0 1px 0 rgba(47, 39, 31, 0.1);
    overflow: hidden;
  }

  body.mkdf-boxed .mkdf-mobile-header,
  body.mkdf-boxed .mkdf-mobile-header .mkdf-mobile-header-inner {
    width: 100% !important;
    max-width: min(1440px, calc(100vw - 24px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Disable Mikado table-cell vertical-align :before spacer (pushes logo below the bar). */
  .mkdf-mobile-header .mkdf-position-left:before,
  .mkdf-mobile-header .mkdf-position-right:before,
  .mkdf-mobile-header .mkdf-position-center:before {
    display: none !important;
    height: 0 !important;
    content: none !important;
  }

  .mkdf-mobile-header .mkdf-mobile-header-holder,
  .mkdf-mobile-header .mkdf-mobile-header-holder > .mkdf-grid,
  .mkdf-mobile-header .mkdf-grid {
    height: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  .mkdf-mobile-header .mkdf-mobile-header-holder .mkdf-vertical-align-containers,
  .mkdf-mobile-header .mkdf-mobile-header-holder .mkdf-vertical-align-containers .mkdf-vertical-align-containers {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    height: auto !important;
    min-height: 44px;
    padding: 0 !important;
    float: none !important;
  }

  .mkdf-mobile-header .mkdf-position-left,
  .mkdf-mobile-header .mkdf-position-right {
    position: static !important;
    float: none !important;
    width: auto !important;
    height: auto !important;
    flex: 0 0 auto;
    display: flex !important;
    align-items: center !important;
  }

  .mkdf-mobile-header .mkdf-position-left-inner,
  .mkdf-mobile-header .mkdf-position-right-inner {
    position: static !important;
    top: auto !important;
    display: flex !important;
    align-items: center !important;
    vertical-align: top !important;
    height: auto !important;
    transform: none !important;
  }

  .mkdf-mobile-header .mkdf-mobile-menu-opener {
    float: none !important;
    height: auto !important;
    display: flex !important;
    align-items: center !important;
  }

  .mkdf-mobile-header .mkdf-mobile-menu-opener a {
    display: flex !important;
    align-items: center !important;
    padding: 8px 0 8px 12px !important;
    line-height: 1;
  }

  .mkdf-mobile-header .mkdf-mobile-menu-opener .mkdf-mobile-menu-icon,
  .mkdf-mobile-header .mkdf-mobile-menu-opener .mkdf-icon-font-elegant,
  .mkdf-mobile-header .mkdf-mobile-menu-opener .mkdf-icon-font-elegant:before {
    color: var(--sos-color-heading) !important;
  }

  .mkdf-mobile-header .mkdf-mobile-logo-wrapper a {
    display: flex !important;
    align-items: center !important;
    height: auto !important;
    max-height: 48px !important;
    line-height: 0;
  }

  .mkdf-mobile-header .mkdf-mobile-logo-wrapper img {
    display: block !important;
    height: auto !important;
    max-height: 44px !important;
    width: auto !important;
    max-width: min(180px, 58vw) !important;
    object-fit: contain;
  }

  .mkdf-content .mkdf-full-width-inner,
  .mkdf-content .mkdf-container-inner,
  .mkdf-content .mkdf-content-inner > .mkdf-container > .mkdf-container-inner {
    padding-left: max(var(--sos-gutter-x), env(safe-area-inset-left, 0px)) !important;
    padding-right: max(var(--sos-gutter-x), env(safe-area-inset-right, 0px)) !important;
    box-sizing: border-box;
  }

  body.mkdf-boxed .mkdf-content .mkdf-row-grid-section,
  body.mkdf-boxed .mkdf-content .mkdf-row-grid-section-wrapper .mkdf-row-grid-section {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .mkdf-content .wpb_text_column > .wpb_wrapper {
    padding-left: 0;
    padding-right: 0;
  }

  .mkdf-content .wpb_text_column > .wpb_wrapper ul,
  .mkdf-content .wpb_text_column > .wpb_wrapper ol {
    padding-left: 1.35em;
    margin-left: 0;
  }

  .mkdf-content .wpb_column > .vc_column-inner {
    padding-left: 0;
    padding-right: 0;
  }
}

@media only screen and (max-width: 680px) {
  .mkdf-blockquote-shortcode {
    margin-left: 0;
    margin-right: 0;
  }
}

@media only screen and (max-width: 1024px) {
  .vc_custom_1526477293384 > .wpb_column {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50% !important;
  }
}

@media only screen and (max-width: 680px) {
  .vc_custom_1526477293384 > .wpb_column {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}

/* Home: three values pillars — uniform square photos (replaces theme icon PNGs). */
.vc_custom_1527689446123 .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-icon,
.vc_custom_1527689446123 .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-content {
  vertical-align: top !important;
}

.vc_custom_1527689446123 .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-icon {
  top: 0 !important;
  width: 120px;
  min-width: 120px;
}

.vc_custom_1527689446123 .mkdf-iwt-title {
  margin-top: 0 !important;
}

.vc_custom_1527689446123 .mkdf-iwt-custom-icon {
  display: block;
  width: 120px;
  height: 120px;
  overflow: hidden;
  border-radius: var(--sos-radius-md);
  line-height: 0;
}

.vc_custom_1527689446123 .mkdf-iwt-icon img {
  display: block;
  width: 120px;
  height: 120px;
  max-width: 120px;
  object-fit: cover;
  object-position: center;
  border-radius: var(--sos-radius-md);
}

/* Home: three icon pillars — full-width columns + icon above copy on narrow screens. */
@media only screen and (max-width: 1024px) {
  .vc_custom_1527689446123.vc_row {
    display: flex;
    flex-wrap: wrap;
  }

  .vc_custom_1527689446123 > .wpb_column {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    float: none !important;
    clear: both !important;
  }

  .vc_custom_1527689446123 > .wpb_column + .wpb_column {
    margin-top: clamp(20px, 5vw, 32px);
  }

  .vc_custom_1527689446123 .mkdf-iwt.clearfix::before,
  .vc_custom_1527689446123 .mkdf-iwt.clearfix::after {
    display: none !important;
    content: none !important;
  }

  .vc_custom_1527689446123 .mkdf-iwt,
  .vc_custom_1527689446123 .mkdf-icon-with-text {
    text-align: center;
  }

  .vc_custom_1527689446123 .mkdf-iwt.mkdf-iwt-icon-left {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-items: center !important;
    width: 100% !important;
    max-width: 100%;
  }

  .vc_custom_1527689446123 .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-icon {
    order: 0;
  }

  .vc_custom_1527689446123 .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-content {
    order: 1;
  }

  .vc_custom_1527689446123 .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-icon,
  .vc_custom_1527689446123 .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-content {
    display: block !important;
    width: 100% !important;
    max-width: 100%;
    padding-left: 0 !important;
    box-sizing: border-box;
  }

  .vc_custom_1527689446123 .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-icon {
    width: 88px;
    min-width: 88px;
  }

  .vc_custom_1527689446123 .mkdf-iwt-custom-icon .mkdf-iwt-custom-icon-shape {
    width: 88px !important;
    height: 88px !important;
  }

  .vc_custom_1527689446123 .mkdf-iwt-icon {
    display: block !important;
    margin: 0 auto 12px;
  }

  .vc_custom_1527689446123 .mkdf-iwt-custom-icon {
    width: 88px;
    height: 88px;
    margin-left: auto;
    margin-right: auto;
  }

  .vc_custom_1527689446123 .mkdf-iwt-icon img {
    position: static !important;
    width: 88px;
    height: 88px;
    max-width: 88px;
    margin: 0 auto;
    transform: none !important;
  }

  .vc_custom_1527689446123 .mkdf-iwt-title {
    margin-top: 12px !important;
  }

  .vc_custom_1527689446123 .mkdf-iwt-content,
  .vc_custom_1527689446123 .mkdf-iwt-text {
    padding-left: 0 !important;
  }
}

/* Home: "Oasis" split row — drop asymmetric holder padding on narrow screens. */
@media only screen and (max-width: 680px) {
  .vc_custom_1526476912315 .mkdf-eh-item-content,
  .vc_custom_1526476912315 .mkdf-elements-holder-item-content {
    padding: 12px 0 0 !important;
  }

  .vc_custom_1526476912315 .mkdf-section-title-holder .mkdf-st-title {
    font-size: clamp(1.375rem, 5.5vw, 1.75rem);
    line-height: 1.2;
  }
}

/* Home / preview: contact row over photo — stronger scrim + stack form under copy. */
.page-id-1819 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
.page-id-2056 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
.page-id-2066 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
body.home .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
body.sos-lilo-blue-header .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before {
  background: linear-gradient(
    180deg,
    rgba(251, 247, 240, 0.94) 0%,
    rgba(251, 247, 240, 0.88) 55%,
    rgba(251, 247, 240, 0.72) 100%
  );
}

@media only screen and (max-width: 1024px) {
  .page-id-1819 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
  .page-id-2056 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
  .page-id-2066 .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
  body.home .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before,
  body.sos-lilo-blue-header .mkdf-row-grid-section-wrapper:has(.vc_custom_1527690191405)::before {
    background: linear-gradient(
      180deg,
      rgba(251, 247, 240, 0.96) 0%,
      rgba(251, 247, 240, 0.92) 100%
    );
  }

  .vc_custom_1527690191405 .wpb_column,
  .vc_custom_1527690191405 .mkdf-eh-item-content {
    width: 100% !important;
  }

  .vc_custom_1527690191405 .wpcf7-form,
  .vc_custom_1527690191405 .fscf-form,
  .vc_custom_1527690191405 input,
  .vc_custom_1527690191405 textarea,
  .vc_custom_1527690191405 select {
    max-width: 100%;
    box-sizing: border-box;
  }
}

/* Counter band: 2×2 on tablet, single column on phone. */
@media only screen and (max-width: 1024px) and (min-width: 681px) {
  .vc_custom_1526477088442 > .wpb_column {
    width: 50% !important;
    float: left !important;
  }
}

@media only screen and (max-width: 680px) {
  .vc_custom_1526477088442 > .wpb_column {
    width: 100% !important;
    float: none !important;
  }
}

/* Section titles: fluid type so long headings do not inherit 50px h1 on mobile. */
.mkdf-section-title-holder .mkdf-st-title {
  font-size: clamp(1.5rem, 4.8vw, 2.75rem);
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.mkdf-section-title-holder .mkdf-st-text {
  font-size: clamp(1rem, 2.8vw, 1.125rem);
  line-height: 1.55;
}

.mkdf-title-holder.mkdf-has-bg-image .mkdf-page-title,
.mkdf-title-holder.mkdf-has-bg-image .mkdf-breadcrumbs,
.mkdf-title-holder.mkdf-has-bg-image .mkdf-breadcrumbs a,
.mkdf-title-holder.mkdf-has-bg-image .mkdf-breadcrumbs-holder {
  color: var(--sos-color-heading) !important;
  text-shadow: 0 1px 2px rgba(251, 247, 240, 0.85);
}

@media only screen and (max-width: 680px) {
  .mkdf-title-holder.mkdf-has-bg-image {
    min-height: clamp(200px, 34vh, 260px);
  }

  .mkdf-title-holder.mkdf-has-bg-image .mkdf-title-image img {
    height: clamp(200px, 34vh, 260px);
  }
}

/* Contact Us: map + contact card stack cleanly. */
@media only screen and (max-width: 1024px) {
  .page-contact .vc_custom_1527581919078 > .wpb_column,
  .page-get-in-touch .vc_custom_1527581919078 > .wpb_column,
  .page-id-55 .vc_custom_1527581919078 > .wpb_column,
  .page-id-1813 .vc_custom_1527581919078 > .wpb_column {
    width: 100% !important;
    float: none !important;
  }

  .page-contact .mkdf-google-map-holder,
  .page-get-in-touch .mkdf-google-map-holder,
  .page-id-55 .mkdf-google-map-holder,
  .page-id-1813 .mkdf-google-map-holder,
  .page-contact .sos-location-map iframe,
  .page-get-in-touch .sos-location-map iframe,
  .page-id-55 .sos-location-map iframe,
  .page-id-1813 .sos-location-map iframe {
    min-height: 240px;
    max-height: 360px;
  }
}

/*
 * Inner pages (not home): legacy WYSIWYG floats (alignleft/right, align="…").
 * Keeps side-by-side layout on wide screens; stacks on mobile so lists and
 * bullets are not torn away from their text. Home page VC layouts are unchanged.
 */
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img.alignleft,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img.alignright,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img[align="left"],
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img[align="right"] {
  max-width: min(42%, 320px);
  height: auto;
}

body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img.aligncenter,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img[align="center"] {
  display: block;
  max-width: 100%;
  height: auto;
  margin-left: auto;
  margin-right: auto;
}

body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper > ul,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper > ol,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper > h1,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper > h2,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper > h3,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper > h4,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper > h5,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper > h6,
body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper > table {
  clear: both;
}

body.sos-inner-page .mkdf-page-content-holder img.alignleft,
body.sos-inner-page .mkdf-page-content-holder img.alignright,
body.sos-inner-page .mkdf-page-content-holder img[align="left"],
body.sos-inner-page .mkdf-page-content-holder img[align="right"] {
  max-width: min(42%, 320px);
  height: auto;
}

@media only screen and (max-width: 680px) {
  body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img.alignleft,
  body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img.alignright,
  body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img.aligncenter,
  body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img[align="left"],
  body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img[align="right"],
  body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper img[align="center"],
  body.sos-inner-page .mkdf-page-content-holder img.alignleft,
  body.sos-inner-page .mkdf-page-content-holder img.alignright,
  body.sos-inner-page .mkdf-page-content-holder img.aligncenter,
  body.sos-inner-page .mkdf-page-content-holder img[align="left"],
  body.sos-inner-page .mkdf-page-content-holder img[align="right"],
  body.sos-inner-page .mkdf-page-content-holder img[align="center"] {
    float: none !important;
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 1.25em auto !important;
  }

  body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper p:has(> img.alignleft),
  body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper p:has(> img.alignright),
  body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper p:has(> img[align="left"]),
  body.sos-inner-page .mkdf-content .wpb_text_column > .wpb_wrapper p:has(> img[align="right"]) {
    float: none;
    clear: both;
    margin-bottom: 1em;
  }
}

/* Legacy VC tables (non fee-table) — allow horizontal scroll instead of squashing. */
@media only screen and (max-width: 680px) {
  .mkdf-content .wpb_text_column > .wpb_wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .mkdf-content .wpb_text_column > .wpb_wrapper > table:not(.sos-fee-table) {
    min-width: 280px;
  }
}

/* Parent theme hides content margin on tablet; restore breathing room below mobile header. */
@media only screen and (max-width: 1024px) {
  body:not(.mkdf-content-is-behind-header):not(.error404) .mkdf-content {
    padding-top: 8px;
  }
}

@media only screen and (max-width: 480px) {
  body.mkdf-boxed .mkdf-wrapper .mkdf-wrapper-inner,
  body.mkdf-boxed .mkdf-footer-inner,
  body.mkdf-boxed .mkdf-wrapper .mkdf-grid,
  body.mkdf-boxed .mkdf-container-inner,
  body.mkdf-boxed .mkdf-row-grid-section {
    max-width: calc(100vw - 24px) !important;
  }

}

