/*
 * LSC — assets/css/custom.css
 * All site styles (layout, components, animations, responsive).
 * Generated for lsc-starter v6.0.0 (Elementor Free compatible)
 *
 * Table of Contents
 * ----------------------------------------------------------
 *  1.  CSS Custom Properties (Design Tokens)
 *  2.  Reset & Base
 *  3.  Typography
 *  4.  Layout Utilities
 *  5.  Buttons
 *  6.  Header & Top Bar
 *  7.  Navigation & Hamburger
 *  8.  Hero (Photo + Gradient variants)
 *  9.  Page Hero (Inner pages)
 * 10.  Wave Dividers
 * 11.  Section Wrappers & Eyebrows
 * 12.  Service Cards Grid
 * 13.  Service Detail (Alternating)
 * 14.  About / Bio Grid
 * 15.  Process Grid
 * 16.  Testimonials
 * 17.  CTA Banner
 * 18.  Contact Grid & Info Card
 * 19.  Approach Cards & Values Grid
 * 20.  FAQ Accordion
 * 21.  Blog Grid & Cards
 * 22.  Pagination
 * 23.  Search Bar
 * 24.  404 / No Results
 * 25.  Footer
 * 26.  FAB (Floating Action Button)
 * 27.  Animations
 * 28.  Daily Quote Shortcode
 * 29.  Admin canvas
 * 30.  Responsive Overrides
 * 31.  Print Styles
 * 32.  Elementor Free Compatibility (v6)
 * ----------------------------------------------------------
 */

/* ==========================================================================
   1. CSS Custom Properties
   ========================================================================== */

:root {
  /* Colour Scheme A — Standing Strong (Teal / Blue-Grey) */
  --lsc-primary:        #2a6e8f;
  --lsc-primary-dark:   #1d4f6b;
  --lsc-primary-light:  #5a9dbe;
  --lsc-accent:         #c4873a;
  --lsc-accent-dark:    #a86a28;
  --lsc-dark:           #1a2f3d;
  --lsc-mid:            #3b5a6e;
  --lsc-light-bg:       #f0f7fc;
  --lsc-card-bg:        #ffffff;
  --lsc-text:           #2c3e50;
  --lsc-text-light:     #5b7085;
  --lsc-white:          #ffffff;
  --lsc-off-white:      #f9fafb;
  --lsc-border:         #d0e2ed;

  /* Gradients */
  --lsc-gradient-hero:  linear-gradient(135deg, #1d4f6b 0%, #2a6e8f 50%, #3b8fb3 100%);
  --lsc-gradient-cta:   linear-gradient(135deg, rgba(26,47,61,0.88) 0%, rgba(42,110,143,0.72) 100%);

  /* Typography */
  --lsc-font-heading:   'Forum', Georgia, serif;
  --lsc-font-body:      'Lato', 'Helvetica Neue', Arial, sans-serif;

  /* Spacing */
  --lsc-space-xs:   0.5rem;    /*  8px */
  --lsc-space-sm:   1rem;      /* 16px */
  --lsc-space-md:   1.5rem;    /* 24px */
  --lsc-space-lg:   2.5rem;    /* 40px */
  --lsc-space-xl:   4rem;      /* 64px */
  --lsc-space-2xl:  6rem;      /* 96px */
  --lsc-space-3xl:  8rem;      /* 128px */

  /* Layout */
  --lsc-content-width: 1200px;
  --lsc-wide-width:    1400px;

  /* Shadows */
  --lsc-shadow-sm:  0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
  --lsc-shadow-md:  0 4px 16px rgba(0,0,0,.10);
  --lsc-shadow-lg:  0 8px 40px rgba(0,0,0,.14);
  --lsc-shadow-xl:  0 20px 60px rgba(0,0,0,.18);

  /* Radius */
  --lsc-radius-sm:  4px;
  --lsc-radius-md:  10px;
  --lsc-radius-lg:  20px;
  --lsc-radius-xl:  32px;
  --lsc-radius-full: 9999px;

  /* Transitions */
  --lsc-trans-fast:  150ms ease;
  --lsc-trans-base:  250ms ease;
  --lsc-trans-slow:  400ms ease;

  /* Header */
  --lsc-header-h:    72px;
  --lsc-topbar-h:    0px;
}

/* Colour Scheme B — Golden Leaf (Green / Earthy) */
.lsc-scheme--golden-leaf {
  --lsc-primary:       #2a7d4f;
  --lsc-primary-dark:  #1d5a38;
  --lsc-primary-light: #4dab72;
  --lsc-accent:        #c8a84e;
  --lsc-accent-dark:   #a88638;
  --lsc-dark:          #1a3024;
  --lsc-mid:           #3b6b50;
  --lsc-light-bg:      #f0faf4;
  --lsc-border:        #c5ddd0;
  --lsc-gradient-hero: linear-gradient(135deg, #1d5a38 0%, #2a7d4f 50%, #3da66a 100%);
  --lsc-gradient-cta:  linear-gradient(135deg, rgba(26,48,36,0.88) 0%, rgba(42,125,79,0.72) 100%);
}

/* ==========================================================================
   2. Reset & Base
   ========================================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--lsc-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7;
  color: var(--lsc-text);
  background-color: var(--lsc-white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img,
video {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--lsc-primary);
  text-decoration: none;
  transition: color var(--lsc-trans-fast);
}

a:hover,
a:focus-visible {
  color: var(--lsc-primary-dark);
  text-decoration: underline;
}

:focus-visible {
  outline: 2px solid var(--lsc-accent);
  outline-offset: 3px;
  border-radius: var(--lsc-radius-sm);
}

ul, ol {
  list-style: none;
}

button {
  cursor: pointer;
  border: none;
  background: none;
  font-family: inherit;
}

/* Skip link */
.skip-to-content {
  position: absolute;
  top: -100%;
  left: var(--lsc-space-sm);
  z-index: 10001;
  padding: var(--lsc-space-xs) var(--lsc-space-md);
  background: var(--lsc-accent);
  color: var(--lsc-white);
  border-radius: 0 0 var(--lsc-radius-sm) var(--lsc-radius-sm);
  font-weight: 700;
  font-size: .875rem;
  transition: top var(--lsc-trans-fast);
}

.skip-to-content:focus {
  top: 0;
  text-decoration: none;
  color: var(--lsc-white);
}

/* ==========================================================================
   3. Typography
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--lsc-font-heading);
  font-weight: 400;
  line-height: 1.25;
  color: var(--lsc-dark);
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.5rem); }
h3 { font-size: clamp(1.25rem, 2.5vw, 1.875rem); }
h4 { font-size: clamp(1.1rem, 2vw, 1.375rem); }

p { margin-bottom: 1rem; }
p:last-child { margin-bottom: 0; }

strong, b { font-weight: 700; }
em, i { font-style: italic; }

blockquote {
  border-left: 4px solid var(--lsc-primary);
  padding-left: var(--lsc-space-md);
  margin: var(--lsc-space-lg) 0;
  font-style: italic;
  color: var(--lsc-text-light);
}

/* ==========================================================================
   4. Layout Utilities
   ========================================================================== */

.lsc-container {
  width: 100%;
  max-width: var(--lsc-content-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--lsc-space-lg);
  padding-right: var(--lsc-space-lg);
}

.lsc-container--wide {
  max-width: var(--lsc-wide-width);
}

.lsc-section {
  padding-top: var(--lsc-space-xl);
  padding-bottom: var(--lsc-space-xl);
}

.lsc-section--alt {
  background-color: var(--lsc-light-bg);
}

.lsc-section--dark {
  background-color: var(--lsc-dark);
  color: var(--lsc-white);
}

.lsc-section--dark h1,
.lsc-section--dark h2,
.lsc-section--dark h3,
.lsc-section--dark h4 {
  color: var(--lsc-white);
}

.lsc-section--quote {
  background: var(--lsc-gradient-hero);
  color: var(--lsc-white);
}

.lsc-section--dots {
  background-image: url('../svg/dots-pattern.svg');
  background-repeat: repeat;
}

/* ==========================================================================
   5. Buttons
   ========================================================================== */

.lsc-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .75rem 1.75rem;
  border-radius: var(--lsc-radius-full);
  font-family: var(--lsc-font-body);
  font-size: .9375rem;
  font-weight: 700;
  letter-spacing: .025em;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color var(--lsc-trans-base), color var(--lsc-trans-base), box-shadow var(--lsc-trans-base), transform var(--lsc-trans-fast);
  border: 2px solid transparent;
  cursor: pointer;
  white-space: nowrap;
}

.lsc-btn:hover { transform: translateY(-2px); }
.lsc-btn:active { transform: translateY(0); }

.lsc-btn--accent {
  background-color: var(--lsc-accent);
  color: var(--lsc-white);
  border-color: var(--lsc-accent);
  box-shadow: 0 4px 15px rgba(196,135,58,.4);
}

.lsc-btn--accent:hover {
  background-color: var(--lsc-accent-dark);
  border-color: var(--lsc-accent-dark);
  color: var(--lsc-white);
  text-decoration: none;
  box-shadow: 0 6px 20px rgba(196,135,58,.5);
}

.lsc-btn--primary {
  background-color: var(--lsc-primary);
  color: var(--lsc-white);
  border-color: var(--lsc-primary);
}

.lsc-btn--primary:hover {
  background-color: var(--lsc-primary-dark);
  border-color: var(--lsc-primary-dark);
  color: var(--lsc-white);
  text-decoration: none;
}

.lsc-btn--ghost {
  background-color: rgba(255,255,255,.15);
  color: var(--lsc-white);
  border-color: rgba(255,255,255,.7);
  backdrop-filter: blur(4px);
}

.lsc-btn--ghost:hover {
  background-color: rgba(255,255,255,.28);
  color: var(--lsc-white);
  text-decoration: none;
}

.lsc-btn--outline {
  background-color: transparent;
  color: var(--lsc-primary);
  border-color: var(--lsc-primary);
}

.lsc-btn--outline:hover {
  background-color: var(--lsc-primary);
  color: var(--lsc-white);
  text-decoration: none;
}

.lsc-btn--outline-dark {
  background-color: transparent;
  color: var(--lsc-dark);
  border-color: var(--lsc-dark);
}

.lsc-btn--outline-dark:hover {
  background-color: var(--lsc-dark);
  color: var(--lsc-white);
  text-decoration: none;
}

.lsc-btn--sm {
  padding: .5rem 1.25rem;
  font-size: .875rem;
}

/* ==========================================================================
   6. Header & Top Bar
   ========================================================================== */

#lsc-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  transition: box-shadow var(--lsc-trans-base), background-color var(--lsc-trans-base);
}

/* Top bar */
.lsc-topbar {
  background-color: var(--lsc-dark);
  height: var(--lsc-topbar-h);
  overflow: hidden;
  transition: height var(--lsc-trans-base), opacity var(--lsc-trans-base);
}

#lsc-header.scrolled .lsc-topbar {
  height: 0;
  opacity: 0;
}

.lsc-topbar__inner {
  max-width: var(--lsc-content-width);
  margin: 0 auto;
  padding: 0 var(--lsc-space-lg);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.lsc-topbar__contact {
  display: flex;
  align-items: center;
  gap: var(--lsc-space-md);
}

.lsc-topbar__link {
  color: rgba(255,255,255,.8);
  font-size: .8125rem;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  text-decoration: none;
  transition: color var(--lsc-trans-fast);
}

.lsc-topbar__link:hover { color: var(--lsc-white); }

.lsc-topbar__link .material-symbols-outlined {
  font-size: 1rem;
  vertical-align: middle;
}

.lsc-topbar__book {
  padding: .2rem 1rem;
  font-size: .8125rem;
}

/* Main nav bar */
.lsc-nav {
  background-color: var(--lsc-white);
  height: var(--lsc-header-h);
  border-bottom: 1px solid var(--lsc-border);
  transition: box-shadow var(--lsc-trans-base);
}

#lsc-header.scrolled .lsc-nav {
  box-shadow: var(--lsc-shadow-md);
}

.lsc-nav__inner {
  max-width: var(--lsc-content-width);
  margin: 0 auto;
  padding: 0 var(--lsc-space-lg);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Logo / Brand */
.lsc-header__brand {
  flex-shrink: 0;
}

.lsc-header__site-name {
  text-decoration: none;
}

.lsc-logo {
  font-family: 'Forum', serif;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--lsc-primary-dark);
  letter-spacing: 0.02em;
}

.lsc-logo__accent {
  color: var(--lsc-accent);
  font-weight: 400;
}

/* Nav menu */
.lsc-nav__list {
  display: flex;
  align-items: center;
  gap: .25rem;
}

.lsc-nav__list > li > a {
  display: block;
  padding: .5rem .875rem;
  color: var(--lsc-dark);
  font-weight: 700;
  font-size: .9375rem;
  letter-spacing: .01em;
  border-radius: var(--lsc-radius-sm);
  text-decoration: none;
  transition: color var(--lsc-trans-fast), background-color var(--lsc-trans-fast);
}

.lsc-nav__list > li > a:hover,
.lsc-nav__list > li.current-menu-item > a,
.lsc-nav__list > li.current-page-ancestor > a {
  color: var(--lsc-primary);
  background-color: var(--lsc-light-bg);
}

/* Book CTA in nav */
.lsc-nav__list > li.menu-item-book > a,
.lsc-nav__cta-item > a.lsc-nav__cta {
  background-color: var(--lsc-accent);
  color: var(--lsc-white) !important;
  padding: .45rem 1.25rem !important;
  border-radius: var(--lsc-radius-full) !important;
  margin-left: .625rem;
  font-weight: 700;
  letter-spacing: .02em;
}

.lsc-nav__list > li.menu-item-book > a:hover,
.lsc-nav__cta-item > a.lsc-nav__cta:hover {
  background-color: var(--lsc-accent-dark) !important;
  color: var(--lsc-white) !important;
}

/* Close button — mobile only, hidden on desktop */
.lsc-nav__close { display: none; }

/* ---- Dropdown sub-menu (desktop) ---- */
.lsc-nav__list > li {
  position: relative;
}

/* Chevron indicator on parent items */
.lsc-nav__list > li.menu-item-has-children > a {
  display: flex;
  align-items: center;
  gap: .2rem;
}

.lsc-nav__list > li.menu-item-has-children > a::after {
  content: 'expand_more';
  font-family: 'Material Symbols Outlined';
  font-size: 1.1rem;
  line-height: 1;
  font-weight: 300;
  transition: transform var(--lsc-trans-fast);
  flex-shrink: 0;
}

.lsc-nav__list > li.menu-item-has-children:hover > a::after,
.lsc-nav__list > li.menu-item-has-children.is-dropdown-open > a::after {
  transform: rotate(180deg);
}

/* Sub-menu panel */
.lsc-nav__list .sub-menu {
  position: absolute;
  /* No gap — padding-top creates visual space while keeping hover contiguous */
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--lsc-white);
  border-radius: var(--lsc-radius-md);
  box-shadow: 0 8px 32px rgba(26,47,61,.13);
  border: 1px solid var(--lsc-border);
  list-style: none;
  /* Extra padding-top bridges the visual gap without a hover dead-zone */
  padding: .75rem 0 .5rem;
  margin: 0;
  z-index: 1001;
  /* Animation — hidden by default */
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity 220ms ease, transform 220ms cubic-bezier(.4,0,.2,1);
}

/* Small caret tip */
.lsc-nav__list .sub-menu::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 20px;
  width: 11px;
  height: 11px;
  background: var(--lsc-white);
  border-top: 1px solid var(--lsc-border);
  border-left: 1px solid var(--lsc-border);
  transform: rotate(45deg);
}

/* Show on hover (desktop) */
.lsc-nav__list > li.menu-item-has-children:hover > .sub-menu {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* Sub-menu links */
.lsc-nav__list .sub-menu li {
  list-style: none;
}

.lsc-nav__list .sub-menu a {
  display: block;
  padding: .55rem 1.25rem;
  color: var(--lsc-dark);
  font-size: .9rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  border-left: 3px solid transparent;
  transition: color var(--lsc-trans-fast), background-color var(--lsc-trans-fast), border-color var(--lsc-trans-fast), padding-left var(--lsc-trans-fast);
}

.lsc-nav__list .sub-menu a:hover,
.lsc-nav__list .sub-menu li.current-menu-item > a {
  color: var(--lsc-primary);
  background-color: var(--lsc-light-bg);
  border-left-color: var(--lsc-primary);
  padding-left: 1.5rem;
}

/* Hamburger */
.lsc-nav__hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 8px;
  border-radius: var(--lsc-radius-sm);
  background: none;
  border: none;
  cursor: pointer;
  transition: background-color var(--lsc-trans-fast);
}

.lsc-nav__hamburger:hover { background-color: var(--lsc-light-bg); }

.lsc-hamburger__bar {
  display: block;
  width: 22px;
  height: 2px;
  background-color: var(--lsc-dark);
  border-radius: 2px;
  transition: transform var(--lsc-trans-base), opacity var(--lsc-trans-base), width var(--lsc-trans-base);
  transform-origin: center;
}

.lsc-nav__hamburger.is-active .lsc-hamburger__bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.lsc-nav__hamburger.is-active .lsc-hamburger__bar:nth-child(2) {
  opacity: 0;
  width: 0;
}

.lsc-nav__hamburger.is-active .lsc-hamburger__bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Body offset for fixed header */
body {
  padding-top: calc(var(--lsc-header-h) + var(--lsc-topbar-h));
}

body.scrolled,
.admin-bar body {
  /* avoid double offset — handled via JS */
}

/* ==========================================================================
   7. Navigation & Hamburger (mobile) — see section 30 for breakpoint
   ========================================================================== */

/* (Mobile overrides in section 30) */

/* ==========================================================================
   8. Hero — Photo & Gradient
   ========================================================================== */

/* Mobile hero — hidden on desktop, shown on mobile */
.lsc-mobile-hero { display: none; }

.lsc-hero {
  position: relative;
  min-height: 500px; /* fallback only — above-fold wrapper controls actual height */
  display: flex;
  align-items: center;
  overflow: hidden;
  /* Pull hero flush against the fixed header — cancel the body padding-top offset */
  margin-top: calc(-1 * (var(--lsc-header-h) + var(--lsc-topbar-h)));
  padding-top: calc(var(--lsc-header-h) + var(--lsc-topbar-h));
}

/* ── Above-fold viewport wrapper (desktop hero + highlight strip) ── */
.lsc-above-fold {
  display: flex;
  flex-direction: column;
  height: 100vh;
  /* cancel body padding-top so wrapper starts at top of viewport */
  margin-top: calc(-1 * (var(--lsc-header-h) + var(--lsc-topbar-h)));
  overflow: hidden;
}

.lsc-above-fold .lsc-hero {
  flex: 1 1 0;
  min-height: 0;
  /* wrapper handles the offset — reset hero's own negative margin */
  margin-top: 0;
  padding-top: var(--lsc-header-h);
}

.lsc-above-fold .lsc-highlight-strip {
  flex: 0 0 160px;
}

.lsc-hero--photo {
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}

.lsc-hero--gradient {
  background: var(--lsc-gradient-hero);
}

.lsc-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(26,47,61,.82) 0%,
    rgba(42,110,143,.60) 55%,
    rgba(26,47,61,.45) 100%
  );
  z-index: 1;
}

/* Animated blob behind hero text */
.lsc-hero__blob {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}

.lsc-hero__content {
  position: relative;
  z-index: 3;
  padding-top: var(--lsc-space-xl);
  /* Extra bottom padding so trust bar (≈60px) never overlaps the content */
  padding-bottom: calc(var(--lsc-space-xl) + 4rem);
}

.lsc-hero__text { max-width: 680px; }

.lsc-hero__heading {
  font-family: var(--lsc-font-heading);
  font-size: clamp(2.2rem, 5.5vw, 4rem);
  font-weight: 400;
  color: var(--lsc-white);
  line-height: 1.15;
  text-shadow: 0 2px 12px rgba(0,0,0,.3);
  margin-bottom: 1.25rem;
}

.lsc-hero__subtitle {
  font-size: clamp(1rem, 2vw, 1.2rem);
  color: rgba(255,255,255,.9);
  font-weight: 300;
  margin-bottom: var(--lsc-space-lg);
  max-width: 540px;
}

.lsc-hero__btns {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lsc-space-sm);
  margin-bottom: var(--lsc-space-xl);
}

/* Trust bar — pinned to the bottom of the hero */
.lsc-hero__trust-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 3;
  border-top: 1px solid rgba(255,255,255,.18);
  background: color-mix(in srgb, var(--lsc-primary-dark) 88%, transparent);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: var(--lsc-space-sm) 0;
}

.lsc-trust-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--lsc-space-md) var(--lsc-space-lg);
  list-style: none;
}

.lsc-trust-item {
  display: flex;
  align-items: center;
  gap: .4rem;
  color: rgba(255,255,255,.92);
  font-size: .875rem;
  font-weight: 600;
  white-space: nowrap;
}

.lsc-trust-item .material-symbols-outlined {
  font-size: 1.15rem;
  color: var(--lsc-accent);
}

/* Scroll indicator */
.lsc-hero__scroll-indicator {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .25rem;
  color: rgba(255,255,255,.6);
  font-size: .75rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  animation: lscBounce 2s ease-in-out infinite;
}

.lsc-hero__scroll-indicator .material-symbols-outlined {
  font-size: 1.5rem;
}

@keyframes lscBounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(6px); }
}

/* ==========================================================================
   8b. Service Highlight Strip (3 columns below hero)
   ========================================================================== */

.lsc-highlight-strip {
  width: 100%;
}

.lsc-highlight-strip__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  height: 100%;
  /* Single gradient spanning all three columns — dark edges, lighter centre */
  background: linear-gradient(
    90deg,
    var(--lsc-dark)         0%,
    var(--lsc-primary)     50%,
    var(--lsc-dark)        100%
  );
}

.lsc-highlight-col {
  position: relative;
  display: flex;
  align-items: stretch;
  /* transparent so the grid gradient shows through */
  background: transparent;
  overflow: hidden;
}

.lsc-highlight-col__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 100%;
  padding: 0 var(--lsc-space-lg);
  gap: .375rem;
}

.lsc-highlight-col__title {
  font-family: var(--lsc-font-heading);
  font-size: clamp(1rem, 1.6vw, 1.375rem);
  font-weight: 400;
  color: var(--lsc-white);
  margin: 0;
  line-height: 1.2;
}

.lsc-highlight-col__desc {
  font-size: .875rem;
  color: rgba(255,255,255,.78);
  line-height: 1.5;
  margin: 0;
}

/* Column dividers */
.lsc-highlight-col + .lsc-highlight-col {
  border-left: 1px solid rgba(255,255,255,.2);
}

@media (max-width: 768px) {
  /* On mobile the above-fold wrapper is irrelevant — mobile hero replaces both */
  .lsc-above-fold {
    display: none;
  }
}

/* ==========================================================================
   9. Page Hero (Inner pages)
   ========================================================================== */

.lsc-page-hero {
  position: relative;
  /* Cancel body padding-top so hero sits flush under the fixed header */
  margin-top: calc(-1 * (var(--lsc-header-h) + var(--lsc-topbar-h)));
  padding: calc(var(--lsc-header-h) + var(--lsc-topbar-h) + var(--lsc-space-xl) + 2rem) 0 var(--lsc-space-xl);
  background: var(--lsc-gradient-hero);
  overflow: hidden;
}

.lsc-page-hero--photo {
  background-size: cover;
  background-position: center;
}

.lsc-page-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(26,47,61,.80) 0%,
    rgba(42,110,143,.60) 100%
  );
  z-index: 1;
}

.lsc-page-hero__content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 760px;
}

.lsc-page-hero__eyebrow {
  display: inline-block;
  color: var(--lsc-accent);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: .75rem;
}

.lsc-page-hero__title {
  font-family: var(--lsc-font-heading);
  font-size: clamp(1.8rem, 4.5vw, 3rem);
  color: var(--lsc-white);
  margin-bottom: 1rem;
}

.lsc-page-hero__subtitle {
  color: rgba(255,255,255,.85);
  font-size: 1.0625rem;
  font-weight: 300;
  margin: 0;
}

/* Breadcrumb */
.lsc-breadcrumb {
  font-size: .8125rem;
  color: rgba(255,255,255,.7);
  margin-bottom: 1rem;
}

.lsc-breadcrumb a {
  color: rgba(255,255,255,.7);
  text-decoration: none;
}

.lsc-breadcrumb a:hover { color: var(--lsc-white); }

/* ==========================================================================
   10. Wave Dividers
   ========================================================================== */

.lsc-wave-divider {
  display: block;
  line-height: 0;
  overflow: hidden;
}

.lsc-wave-divider svg {
  display: block;
  width: 100%;
  height: auto;
}

.lsc-wave-divider--below-hero {
  margin-top: -2px;
}

/* ==========================================================================
   11. Section Wrappers & Eyebrows
   ========================================================================== */

.lsc-section-header {
  margin-bottom: var(--lsc-space-xl);
}

.lsc-section-eyebrow {
  display: inline-block;
  margin: 0 0 .75rem;
  font-size: .8125rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lsc-primary);
}

.lsc-section-eyebrow--light {
  color: rgba(255,255,255,.88);
}

.lsc-section-title {
  font-family: var(--lsc-font-heading);
  font-size: clamp(1.7rem, 3.5vw, 2.5rem);
  color: var(--lsc-dark);
  margin-bottom: .75rem;
}

.lsc-section-title--light { color: var(--lsc-white); }

.lsc-section-title--left { text-align: left; }

.lsc-section-desc {
  font-size: 1.0625rem;
  color: var(--lsc-text-light);
  max-width: 620px;
  margin: 0 auto;
}

.lsc-section-footer {
  margin-top: var(--lsc-space-xl);
  text-align: center;
}

/* ==========================================================================
   12. Service Cards Grid
   ========================================================================== */

.lsc-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lsc-space-lg);
}

.lsc-service-card {
  background: var(--lsc-card-bg);
  border-radius: var(--lsc-radius-lg);
  overflow: hidden;
  box-shadow: var(--lsc-shadow-md);
  transition: transform var(--lsc-trans-base), box-shadow var(--lsc-trans-base);
  display: flex;
  flex-direction: column;
}

.lsc-service-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--lsc-shadow-lg);
}

.lsc-service-card__img-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
}

.lsc-service-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms ease;
}

.lsc-service-card:hover .lsc-service-card__img { transform: scale(1.06); }

.lsc-service-card__body {
  padding: var(--lsc-space-md);
  display: flex;
  flex-direction: column;
  flex: 1;
}

.lsc-service-card__icon {
  font-size: 2rem;
  color: var(--lsc-primary);
  margin-bottom: .625rem;
}

.lsc-service-card__title {
  font-family: var(--lsc-font-heading);
  font-size: 1.25rem;
  color: var(--lsc-dark);
  margin-bottom: .5rem;
}

.lsc-service-card__desc {
  font-size: .9375rem;
  color: var(--lsc-text-light);
  margin-bottom: auto;
  padding-bottom: var(--lsc-space-sm);
}

.lsc-service-card__link {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  color: var(--lsc-primary);
  font-weight: 700;
  font-size: .875rem;
  letter-spacing: .03em;
  text-decoration: none;
  margin-top: var(--lsc-space-sm);
  transition: gap var(--lsc-trans-fast), color var(--lsc-trans-fast);
}

.lsc-service-card__link:hover {
  color: var(--lsc-accent);
  gap: .6rem;
  text-decoration: none;
}

.lsc-service-card__link .material-symbols-outlined { font-size: 1.1rem; }

/* ==========================================================================
   13. Service Detail (Alternating layout)
   ========================================================================== */

.lsc-service-detail {
  padding: var(--lsc-space-xl) 0;
  border-bottom: 1px solid var(--lsc-border);
}

.lsc-service-detail:last-of-type { border-bottom: none; }

.lsc-service-detail__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--lsc-space-xl);
  align-items: center;
  max-width: var(--lsc-content-width);
  margin: 0 auto;
  padding: 0 var(--lsc-space-lg);
}

.lsc-service-detail--reverse .lsc-service-detail__inner {
  direction: rtl;
}

.lsc-service-detail--reverse .lsc-service-detail__text-col {
  direction: ltr;
  text-align: left;
}

.lsc-service-detail__img-col { overflow: hidden; border-radius: var(--lsc-radius-xl); }

.lsc-service-detail__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--lsc-radius-xl);
  box-shadow: var(--lsc-shadow-lg);
  transition: transform 600ms ease;
}

.lsc-service-detail:hover .lsc-service-detail__img { transform: scale(1.04); }

.lsc-service-detail__badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background-color: var(--lsc-light-bg);
  color: var(--lsc-primary);
  border-radius: var(--lsc-radius-full);
  padding: .35rem 1rem;
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .05em;
  margin-bottom: 1rem;
}

.lsc-service-detail__badge .material-symbols-outlined { font-size: 1.1rem; }

.lsc-service-detail__title {
  font-family: var(--lsc-font-heading);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  color: var(--lsc-dark);
  margin-bottom: 1rem;
}

.lsc-service-detail__desc {
  color: var(--lsc-text-light);
  margin-bottom: 1.25rem;
}

.lsc-service-detail__list {
  list-style: none;
  margin-bottom: var(--lsc-space-md);
}

.lsc-service-detail__list li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  margin-bottom: .6rem;
  font-size: .9375rem;
  color: var(--lsc-text);
}

.lsc-service-detail__list .material-symbols-outlined {
  font-size: 1.1rem;
  color: var(--lsc-primary);
  margin-top: .1rem;
  flex-shrink: 0;
}

/* ---- Service split layout (v2 — image left/right with frame) ---- */
.lsc-svc-section {
  position: relative;
  overflow: hidden;
}

/* Split grid */
.lsc-svc-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--lsc-space-2xl);
  align-items: center;
  position: relative;
  z-index: 1;
}

.lsc-svc-split--reverse .lsc-svc-split__img-col { order: 2; }
.lsc-svc-split--reverse .lsc-svc-split__text-col { order: 1; }

/* Image frame */
.lsc-svc-split__frame {
  position: relative;
  border-radius: var(--lsc-radius-xl);
  overflow: visible;
}

.lsc-svc-split__img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--lsc-radius-xl);
  position: relative;
  z-index: 1;
  box-shadow: var(--lsc-shadow-lg);
  transition: transform 600ms ease;
}

.lsc-svc-section:hover .lsc-svc-split__img { transform: scale(1.03); }

/* Text column */
.lsc-svc-split__text-col {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.lsc-svc-split__badge {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: .4rem;
  border-radius: var(--lsc-radius-full);
  padding: .35rem 1rem;
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .05em;
  margin-bottom: .5rem;
}

.lsc-svc-split__badge .material-symbols-outlined { font-size: 1.1rem; }

.lsc-svc-split__title {
  font-family: var(--lsc-font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2.1rem);
  color: var(--lsc-dark);
  line-height: 1.25;
  margin-bottom: .75rem;
}

.lsc-svc-split__desc {
  font-size: 1.0625rem;
  line-height: 1.85;
  color: var(--lsc-text);
  margin-bottom: .75rem;
}

.lsc-svc-split__list {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--lsc-space-md);
  display: flex;
  flex-direction: column;
  gap: .55rem;
}

.lsc-svc-split__list li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-size: .9375rem;
  color: var(--lsc-text);
  line-height: 1.5;
}

.lsc-svc-split__list .material-symbols-outlined {
  font-size: 1.1rem;
  margin-top: .15rem;
  flex-shrink: 0;
}

/* Responsive */
@media (max-width: 900px) {
  .lsc-svc-split {
    grid-template-columns: 1fr;
    gap: var(--lsc-space-xl);
  }
  .lsc-svc-split--reverse .lsc-svc-split__img-col { order: 0; }
  .lsc-svc-split--reverse .lsc-svc-split__text-col { order: 0; }
  .lsc-svc-split__img { aspect-ratio: 16 / 9; }
}

/* ==========================================================================
   14. About / Bio Grid
   ========================================================================== */

.lsc-about-grid {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: var(--lsc-space-xl);
  align-items: start;
}

.lsc-about-img-wrap {
  position: sticky;
  top: calc(var(--lsc-header-h) + var(--lsc-space-md));
}

.lsc-about-portrait {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: top center;
  border-radius: var(--lsc-radius-xl);
  box-shadow: var(--lsc-shadow-xl);
}

.lsc-about-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: var(--lsc-gradient-hero);
  color: var(--lsc-white);
  border-radius: var(--lsc-radius-full);
  padding: .5rem 1.25rem;
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .05em;
  margin-top: 1.25rem;
}

.lsc-about-badge .material-symbols-outlined { font-size: 1.1rem; }

.lsc-about-creds {
  list-style: none;
  margin: var(--lsc-space-md) 0 var(--lsc-space-lg);
}

.lsc-about-creds li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  margin-bottom: .7rem;
  font-size: .9375rem;
  color: var(--lsc-text);
}

.lsc-about-creds .material-symbols-outlined {
  color: var(--lsc-primary);
  font-size: 1.1rem;
  flex-shrink: 0;
  margin-top: .1rem;
}

/* Bio layout */
.lsc-bio-grid {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: var(--lsc-space-xl);
  align-items: start;
}

.lsc-bio-img-col { position: sticky; top: calc(var(--lsc-header-h) + var(--lsc-space-md)); }

.lsc-bio-img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: top center;
  border-radius: var(--lsc-radius-xl);
  box-shadow: var(--lsc-shadow-xl);
}

.lsc-bio-langs {
  margin-top: var(--lsc-space-md);
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.lsc-bio-langs span {
  background: var(--lsc-light-bg);
  color: var(--lsc-primary-dark);
  padding: .3rem .875rem;
  border-radius: var(--lsc-radius-full);
  font-size: .8125rem;
  font-weight: 700;
}

/* ==========================================================================
   15. Process Grid
   ========================================================================== */

.lsc-process-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lsc-space-lg);
  position: relative;
}

/* Connecting line between steps */
.lsc-process-grid::before {
  content: '';
  position: absolute;
  top: 2.5rem;
  left: calc(16.6% + 1.5rem);
  right: calc(16.6% + 1.5rem);
  height: 2px;
  background: rgba(255,255,255,.2);
  z-index: 0;
}

.lsc-process-step {
  text-align: center;
  position: relative;
  z-index: 1;
  padding: var(--lsc-space-md);
}

.lsc-process-step__num {
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  border: 2px solid rgba(255,255,255,.3);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--lsc-space-md);
  font-family: var(--lsc-font-heading);
  font-size: 1.75rem;
  color: var(--lsc-white);
}

.lsc-process-step__icon {
  display: block;
  font-size: 2rem;
  color: var(--lsc-accent);
  margin-bottom: .625rem;
}

.lsc-process-step__title {
  font-family: var(--lsc-font-heading);
  font-size: 1.25rem;
  color: var(--lsc-white);
  margin-bottom: .5rem;
}

.lsc-process-step__desc {
  color: rgba(255,255,255,.75);
  font-size: .9375rem;
}

/* ==========================================================================
   15b. Therapy Approaches Grid
   ========================================================================== */

.lsc-approaches-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lsc-space-lg);
}

.lsc-approach-card {
  background: var(--lsc-white);
  border: 1px solid var(--lsc-border);
  border-radius: var(--lsc-radius-lg);
  padding: var(--lsc-space-lg);
  transition: box-shadow var(--lsc-transition), transform var(--lsc-transition);
}

.lsc-approach-card:hover {
  box-shadow: var(--lsc-shadow-md);
  transform: translateY(-3px);
}

.lsc-approach-card__icon {
  display: block;
  font-size: 2.25rem;
  color: var(--lsc-primary);
  margin-bottom: var(--lsc-space-sm);
}

.lsc-approach-card__title {
  font-family: var(--lsc-font-heading);
  font-size: 1.125rem;
  color: var(--lsc-dark);
  margin-bottom: .5rem;
}

.lsc-approach-card__desc {
  font-size: .9375rem;
  color: var(--lsc-text-light);
  line-height: 1.65;
}

@media (max-width: 900px) {
  .lsc-approaches-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .lsc-approaches-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   16. Testimonials
   ========================================================================== */

.lsc-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lsc-space-lg);
}

.lsc-testimonial-card {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--lsc-radius-lg);
  padding: var(--lsc-space-lg);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: transform var(--lsc-trans-base), box-shadow var(--lsc-trans-base);
}

/* Fallback for browsers without backdrop-filter */
@supports not (backdrop-filter: blur(1px)) {
  .lsc-testimonial-card { background: rgba(42,110,143,.35); }
}

.lsc-testimonial-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--lsc-shadow-lg);
}

.lsc-testimonial-card__stars {
  color: var(--lsc-accent);
  font-size: 1.1rem;
  letter-spacing: .1em;
  margin-bottom: .75rem;
}

.lsc-testimonial-card__quote {
  font-size: 1rem;
  font-style: italic;
  color: rgba(255,255,255,.9);
  line-height: 1.7;
  margin-bottom: var(--lsc-space-md);
}

.lsc-testimonial-card__footer {
  display: flex;
  align-items: center;
  gap: .75rem;
  border-top: 1px solid rgba(255,255,255,.15);
  padding-top: var(--lsc-space-sm);
}

.lsc-testimonial-card__footer cite {
  font-style: normal;
  font-weight: 700;
  font-size: .875rem;
  color: var(--lsc-white);
}

.lsc-testimonial-card__footer span {
  font-size: .8125rem;
  color: rgba(255,255,255,.6);
}

/* ==========================================================================
   17. CTA Banner
   ========================================================================== */

.lsc-cta-banner {
  position: relative;
  padding: var(--lsc-space-3xl) 0;
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* parallax */
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .lsc-cta-banner { background-attachment: scroll; }
}

.lsc-cta-banner__overlay {
  position: absolute;
  inset: 0;
  background: var(--lsc-gradient-cta);
  z-index: 1;
}

.lsc-cta-banner__content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 700px;
}

.lsc-cta-banner__heading {
  font-family: var(--lsc-font-heading);
  font-size: clamp(1.8rem, 4vw, 3rem);
  color: var(--lsc-white);
  margin-bottom: 1rem;
}

.lsc-cta-banner__sub {
  color: rgba(255,255,255,.85);
  font-size: 1.0625rem;
  margin-bottom: var(--lsc-space-lg);
}

.lsc-cta-banner__btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--lsc-space-sm);
}

/* ==========================================================================
   18. Contact Grid & Info Card
   ========================================================================== */

.lsc-contact-grid {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: var(--lsc-space-xl);
  align-items: start;
}

.lsc-contact-info-card {
  background: var(--lsc-light-bg);
  border-radius: var(--lsc-radius-lg);
  padding: var(--lsc-space-lg);
  border: 1px solid var(--lsc-border);
}

.lsc-contact-info-card h3 {
  font-family: var(--lsc-font-heading);
  font-size: 1.375rem;
  color: var(--lsc-dark);
  margin-bottom: var(--lsc-space-md);
}

.lsc-contact-info-item {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  margin-bottom: var(--lsc-space-sm);
  font-size: .9375rem;
}

.lsc-contact-info-item .material-symbols-outlined {
  color: var(--lsc-primary);
  font-size: 1.25rem;
  flex-shrink: 0;
  margin-top: .1rem;
}

.lsc-contact-info-item a {
  color: var(--lsc-text);
  font-weight: 700;
}

.lsc-contact-info-item a:hover { color: var(--lsc-primary); }

.lsc-hours-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .875rem;
  margin: var(--lsc-space-sm) 0;
}

.lsc-hours-table td { padding: .3rem 0; }
.lsc-hours-table td:last-child { text-align: right; font-weight: 700; }

.lsc-map-placeholder {
  height: 200px;
  border-radius: var(--lsc-radius-md);
  background: var(--lsc-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--lsc-text-light);
  margin-top: var(--lsc-space-md);
  font-size: .875rem;
  overflow: hidden;
}

.lsc-map-placeholder iframe {
  width: 100%;
  height: 100%;
  border: none;
}

/* Quick info grid (3 cards below contact form) */
.lsc-quick-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lsc-space-md);
  margin-top: var(--lsc-space-xl);
}

.lsc-quick-info-card {
  background: var(--lsc-card-bg);
  border-radius: var(--lsc-radius-lg);
  padding: var(--lsc-space-md);
  box-shadow: var(--lsc-shadow-sm);
  border: 1px solid var(--lsc-border);
  text-align: center;
}

.lsc-quick-info-card__icon {
  font-size: 2.5rem;
  color: var(--lsc-primary);
  margin-bottom: .75rem;
}

.lsc-quick-info-card h4 {
  font-size: 1rem;
  margin-bottom: .4rem;
}

.lsc-quick-info-card p {
  font-size: .875rem;
  color: var(--lsc-text-light);
  margin: 0;
}

.lsc-crisis-link {
  color: #c0392b;
  font-weight: 700;
  font-size: 1rem;
}

/* ==========================================================================
   19. Approach Cards & Values Grid
   ========================================================================== */

.lsc-approach-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lsc-space-lg);
}

.lsc-approach-card {
  background: var(--lsc-card-bg);
  border-radius: var(--lsc-radius-lg);
  padding: var(--lsc-space-lg);
  box-shadow: var(--lsc-shadow-md);
  border-top: 4px solid var(--lsc-primary);
  transition: transform var(--lsc-trans-base), box-shadow var(--lsc-trans-base);
}

.lsc-approach-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--lsc-shadow-lg);
}

.lsc-approach-card__icon {
  font-size: 2.25rem;
  color: var(--lsc-primary);
  margin-bottom: .875rem;
}

.lsc-approach-card__title {
  font-family: var(--lsc-font-heading);
  font-size: 1.25rem;
  color: var(--lsc-dark);
  margin-bottom: .625rem;
}

.lsc-approach-card__desc {
  font-size: .9375rem;
  color: var(--lsc-text-light);
  margin: 0;
}

/* Values grid (2×2) */
.lsc-values-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--lsc-space-lg);
}

.lsc-value-item {
  display: flex;
  align-items: flex-start;
  gap: var(--lsc-space-md);
}

.lsc-value-item__icon-box {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: var(--lsc-radius-md);
  background: var(--lsc-light-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--lsc-primary);
  font-size: 1.5rem;
}

.lsc-value-item__title {
  font-family: var(--lsc-font-heading);
  font-size: 1.1875rem;
  color: var(--lsc-dark);
  margin-bottom: .375rem;
}

.lsc-value-item__text {
  font-size: .9375rem;
  color: var(--lsc-text-light);
  margin: 0;
}

/* ==========================================================================
   20. FAQ Accordion
   ========================================================================== */

.lsc-faq-list {
  max-width: 800px;
  margin: 0 auto;
}

.lsc-faq-item {
  border-bottom: 1px solid var(--lsc-border);
}

.lsc-faq-item:first-child { border-top: 1px solid var(--lsc-border); }

.lsc-faq-question {
  list-style: none;
  padding: var(--lsc-space-md) 0;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--lsc-dark);
  user-select: none;
  transition: color var(--lsc-trans-fast);
}

.lsc-faq-question::-webkit-details-marker { display: none; }
.lsc-faq-question::marker { display: none; }

.lsc-faq-question:hover { color: var(--lsc-primary); }

.lsc-faq-question::after {
  content: 'expand_more';
  font-family: 'Material Symbols Outlined';
  font-size: 1.5rem;
  color: var(--lsc-primary);
  transition: transform var(--lsc-trans-base);
  flex-shrink: 0;
}

.lsc-faq-item[open] > .lsc-faq-question::after {
  transform: rotate(-180deg);
}

.lsc-faq-answer {
  padding: 0 0 var(--lsc-space-md);
  color: var(--lsc-text-light);
  font-size: .9375rem;
  line-height: 1.75;
}

/* ==========================================================================
   21. Blog Grid & Cards
   ========================================================================== */

.lsc-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lsc-space-lg);
}

.lsc-blog-card {
  background: var(--lsc-card-bg);
  border-radius: var(--lsc-radius-lg);
  overflow: hidden;
  box-shadow: var(--lsc-shadow-sm);
  border: 1px solid var(--lsc-border);
  transition: box-shadow var(--lsc-trans-base), transform var(--lsc-trans-base);
  display: flex;
  flex-direction: column;
}

.lsc-blog-card:hover {
  box-shadow: var(--lsc-shadow-md);
  transform: translateY(-4px);
}

.lsc-blog-card__thumb {
  display: block;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

.lsc-blog-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms ease;
}

.lsc-blog-card:hover .lsc-blog-card__thumb img { transform: scale(1.05); }

.lsc-blog-card__body {
  padding: var(--lsc-space-md);
  display: flex;
  flex-direction: column;
  flex: 1;
}

.lsc-blog-card__meta {
  font-size: .8125rem;
  color: var(--lsc-text-light);
  margin-bottom: .5rem;
}

.lsc-blog-card__title {
  font-family: var(--lsc-font-heading);
  font-size: 1.1875rem;
  margin-bottom: .625rem;
}

.lsc-blog-card__title a {
  color: var(--lsc-dark);
  text-decoration: none;
}

.lsc-blog-card__title a:hover { color: var(--lsc-primary); }

.lsc-blog-card__excerpt {
  font-size: .9375rem;
  color: var(--lsc-text-light);
  margin-bottom: auto;
  padding-bottom: var(--lsc-space-sm);
}

/* Post single layout */
.lsc-post-layout { max-width: 800px; margin: 0 auto; }

.lsc-entry-content h2,
.lsc-entry-content h3,
.lsc-entry-content h4 { margin: 2rem 0 1rem; }

.lsc-entry-content ul,
.lsc-entry-content ol {
  list-style: disc;
  padding-left: 1.5rem;
  margin-bottom: 1rem;
}

.lsc-entry-content ol { list-style: decimal; }

.lsc-post-footer {
  padding-top: var(--lsc-space-lg);
  border-top: 1px solid var(--lsc-border);
  margin-top: var(--lsc-space-xl);
}

.lsc-post-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  margin-bottom: var(--lsc-space-md);
}

.lsc-tag-link {
  background: var(--lsc-light-bg);
  color: var(--lsc-primary);
  border-radius: var(--lsc-radius-full);
  padding: .25rem .875rem;
  font-size: .8125rem;
  font-weight: 700;
  text-decoration: none;
}

.lsc-tag-link:hover { background: var(--lsc-primary); color: var(--lsc-white); }

.lsc-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--lsc-space-md);
}

.lsc-post-nav a {
  display: flex;
  align-items: center;
  gap: .4rem;
  color: var(--lsc-primary);
  font-weight: 700;
  font-size: .875rem;
  text-decoration: none;
}

.lsc-post-nav__next { justify-content: flex-end; text-align: right; }

/* ==========================================================================
   22. Pagination
   ========================================================================== */

.lsc-pagination {
  display: flex;
  justify-content: center;
  margin-top: var(--lsc-space-xl);
}

.lsc-pagination .nav-links {
  display: flex;
  align-items: center;
  gap: .375rem;
}

.lsc-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 .75rem;
  border-radius: var(--lsc-radius-full);
  font-weight: 700;
  font-size: .9375rem;
  color: var(--lsc-text);
  text-decoration: none;
  border: 1px solid var(--lsc-border);
  transition: background-color var(--lsc-trans-fast), color var(--lsc-trans-fast);
}

.lsc-pagination .page-numbers:hover,
.lsc-pagination .page-numbers.current {
  background-color: var(--lsc-primary);
  color: var(--lsc-white);
  border-color: var(--lsc-primary);
}

/* ==========================================================================
   23. Search Bar
   ========================================================================== */

.lsc-search-bar { max-width: 520px; margin: 0 auto var(--lsc-space-xl); }

.lsc-search-bar .search-form,
.search-form {
  display: flex;
  gap: .5rem;
}

.search-form .search-field {
  flex: 1;
  padding: .75rem 1.25rem;
  border: 1px solid var(--lsc-border);
  border-radius: var(--lsc-radius-full);
  font-family: var(--lsc-font-body);
  font-size: 1rem;
  color: var(--lsc-text);
  outline: none;
  transition: border-color var(--lsc-trans-fast), box-shadow var(--lsc-trans-fast);
}

.search-form .search-field:focus {
  border-color: var(--lsc-primary);
  box-shadow: 0 0 0 3px rgba(42,110,143,.15);
}

.search-form .search-submit {
  padding: .75rem 1.5rem;
  background: var(--lsc-primary);
  color: var(--lsc-white);
  border-radius: var(--lsc-radius-full);
  font-weight: 700;
  font-size: .9375rem;
  border: none;
  cursor: pointer;
  transition: background-color var(--lsc-trans-fast);
}

.search-form .search-submit:hover { background-color: var(--lsc-primary-dark); }

.lsc-search-count {
  text-align: center;
  color: var(--lsc-text-light);
  font-size: .9375rem;
  margin-bottom: var(--lsc-space-lg);
}

/* ==========================================================================
   24. 404 / No Results
   ========================================================================== */

.lsc-no-results,
.lsc-404-icon {
  text-align: center;
  padding: var(--lsc-space-xl) var(--lsc-space-sm);
}

.lsc-no-results h2 { margin-bottom: .75rem; }

.lsc-no-results .search-form { max-width: 450px; margin: var(--lsc-space-md) auto 0; }

/* ==========================================================================
   25. Footer
   ========================================================================== */

#lsc-footer,
.lsc-footer {
  background-color: var(--lsc-dark);
  color: rgba(255,255,255,.75);
  font-size: .9375rem;
}

.lsc-footer-fallback {
  text-align: center;
  padding: var(--lsc-space-lg) var(--lsc-space-sm);
  background-color: var(--lsc-dark);
  color: rgba(255,255,255,.55);
  font-size: .875rem;
}

/* ==========================================================================
   26. FAB (Floating Action Button)
   ========================================================================== */

.lsc-fab {
  position: fixed;
  z-index: 999;
  bottom: 2rem;
  right: 2rem;
}

.lsc-fab--bottom-left { right: auto; left: 2rem; }

/* Toggle button */
.lsc-fab__toggle {
  width: 3.75rem;
  height: 3.75rem;
  border-radius: 50%;
  background: var(--lsc-accent);
  color: var(--lsc-white);
  box-shadow: 0 4px 20px color-mix(in srgb, var(--lsc-accent) 55%, transparent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  transition: background-color var(--lsc-trans-base), transform var(--lsc-trans-base), box-shadow var(--lsc-trans-base);
  border: none;
  cursor: pointer;
}

.lsc-fab__toggle:hover {
  background-color: var(--lsc-accent-dark, var(--lsc-primary-dark));
  box-shadow: 0 6px 24px color-mix(in srgb, var(--lsc-accent) 70%, transparent);
  transform: scale(1.05);
}

.lsc-fab--open .lsc-fab__toggle {
  background-color: var(--lsc-primary-dark);
  transform: rotate(45deg);
}

.lsc-fab__icon-open  { display: flex; }
.lsc-fab__icon-close { display: none; }

.lsc-fab--open .lsc-fab__icon-open  { display: none; }
.lsc-fab--open .lsc-fab__icon-close { display: flex; }

/* Actions list */
.lsc-fab__actions {
  position: absolute;
  bottom: 100%;
  right: 0;
  margin-bottom: .75rem;
  display: flex;
  flex-direction: column-reverse;
  gap: .625rem;
  pointer-events: none;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity var(--lsc-trans-base), transform var(--lsc-trans-base);
}

.lsc-fab--open .lsc-fab__actions {
  pointer-events: auto;
  opacity: 1;
  transform: translateY(0);
}

.lsc-fab__action-item {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .625rem;
}

.lsc-fab--bottom-left .lsc-fab__action-item {
  flex-direction: row-reverse;
}

.lsc-fab__action-btn {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: var(--lsc-primary);
  color: var(--lsc-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  text-decoration: none;
  box-shadow: var(--lsc-shadow-md);
  transition: background-color var(--lsc-trans-fast), transform var(--lsc-trans-fast);
  flex-shrink: 0;
}

.lsc-fab__action-btn:hover {
  background-color: var(--lsc-primary-dark);
  color: var(--lsc-white);
  text-decoration: none;
  transform: scale(1.08);
}

.lsc-fab__label {
  background: color-mix(in srgb, var(--lsc-dark) 90%, transparent);
  color: var(--lsc-white);
  font-size: .8125rem;
  font-weight: 700;
  padding: .35rem .875rem;
  border-radius: var(--lsc-radius-full);
  white-space: nowrap;
  backdrop-filter: blur(4px);
  box-shadow: var(--lsc-shadow-sm);
}

/* Hide FAB on mobile if option enabled */
@media (max-width: 767px) {
  .lsc-fab--hide-mobile { display: none; }
}

/* ==========================================================================
   27. Animations
   ========================================================================== */

@media (prefers-reduced-motion: no-preference) {
  .lsc-animate {
    opacity: 0;
    transition-duration: 600ms;
    transition-timing-function: ease;
    transition-property: opacity, transform;
  }

  .lsc-animate--slide-up    { transform: translateY(32px); }
  .lsc-animate--slide-left  { transform: translateX(-32px); }
  .lsc-animate--slide-right { transform: translateX(32px); }
  .lsc-animate--scale       { transform: scale(.94); }

  .lsc-animate.is-visible {
    opacity: 1;
    transform: none;
  }

  /* Stagger children */
  .lsc-animate-stagger > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 500ms ease, transform 500ms ease;
  }

  .lsc-animate-stagger > *.is-visible {
    opacity: 1;
    transform: none;
  }

  /* SVG blob animation */
  @keyframes blobPulse {
    0%, 100% { transform: scale(1) rotate(0deg); }
    33%       { transform: scale(1.05) rotate(3deg); }
    66%       { transform: scale(.97) rotate(-2deg); }
  }

  .lsc-hero__blob svg { animation: blobPulse 12s ease-in-out infinite; }
}

/* ==========================================================================
   28. Daily Quote Shortcode
   ========================================================================== */

.lsc-quote {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  padding: var(--lsc-space-xl) var(--lsc-space-lg);
}

.lsc-quote__text {
  font-family: var(--lsc-font-heading);
  font-size: clamp(1.2rem, 2.5vw, 1.75rem);
  color: var(--lsc-white);
  font-style: italic;
  line-height: 1.5;
  margin-bottom: var(--lsc-space-md);
}

.lsc-quote__author {
  color: rgba(255,255,255,.7);
  font-size: .9375rem;
  font-weight: 700;
  letter-spacing: .05em;
}

/* ==========================================================================
   29. Admin / Canvas
   ========================================================================== */

.lsc-canvas-content,
.lsc-page-content {
  padding-top: var(--lsc-space-xl);
  padding-bottom: var(--lsc-space-xl);
}

.lsc-page-content--front {
  padding-top: 0;
  padding-bottom: 0;
}

.home .lsc-page-content--front > .elementor {
  margin-top: calc(-1 * (var(--lsc-header-h) + var(--lsc-topbar-h)));
}

.home .lsc-page-content--front > .elementor .lsc-above-fold,
.home .lsc-page-content--front > .elementor .lsc-hero {
  margin-top: 0;
}

.home .lsc-page-content--front > .elementor > .lsc-hero,
.home .lsc-page-content--front > .elementor .lsc-above-fold .lsc-hero {
  padding-top: calc(var(--lsc-header-h) + var(--lsc-topbar-h));
}

.home .lsc-page-content--front > .elementor > .e-con:first-child:not(.lsc-hero):not(.lsc-page-hero),
.home .lsc-page-content--front > .elementor > .elementor-element:first-child:not(.lsc-hero):not(.lsc-page-hero),
.home .lsc-page-content--front > .elementor > .elementor-section:first-child:not(.lsc-hero):not(.lsc-page-hero) {
  margin-top: calc(-1 * (var(--lsc-header-h) + var(--lsc-topbar-h)));
  padding-top: calc(var(--lsc-header-h) + var(--lsc-topbar-h));
}

body.lsc-canvas {
  padding-top: 0;
}

/* Color picker field */
.lsc-color-picker-wrap .wp-picker-container { display: inline-block; }

/* Admin tab style */
.lsc-admin-tabs { display: flex; gap: .25rem; margin-bottom: 1.5rem; }
.lsc-admin-tab-panel { display: none; }
.lsc-admin-tab-panel.is-active { display: block; }

/* ==========================================================================
   30. Responsive Overrides
   ========================================================================== */

/* Large screens */
@media (min-width: 1200px) {
  .lsc-services-grid  { grid-template-columns: repeat(3, 1fr); }
  .lsc-testimonials-grid { grid-template-columns: repeat(3, 1fr); }
  .lsc-process-grid   { grid-template-columns: repeat(3, 1fr); }
}

/* Tablets & small desktops */
@media (max-width: 1024px) {
  .lsc-about-grid,
  .lsc-bio-grid {
    grid-template-columns: 300px 1fr;
    gap: var(--lsc-space-lg);
  }

  .lsc-contact-grid {
    grid-template-columns: 1fr;
  }

  .lsc-service-detail__inner {
    gap: var(--lsc-space-lg);
  }
}

/* Medium screens */
@media (max-width: 900px) {
  .lsc-services-grid   { grid-template-columns: repeat(2, 1fr); }
  .lsc-approach-grid  { grid-template-columns: repeat(2, 1fr); }
  .lsc-blog-grid      { grid-template-columns: repeat(2, 1fr); }
  .lsc-testimonials-grid { grid-template-columns: 1fr; max-width: 580px; margin-inline: auto; }

  .lsc-service-detail__inner {
    grid-template-columns: 1fr;
    direction: ltr !important;
  }

  .lsc-service-detail--reverse .lsc-service-detail__inner { direction: ltr; }
}

/* Tablets */
@media (max-width: 768px) {
  :root { --lsc-topbar-h: 0px; /* always hide topbar on mobile */ }

  body { padding-top: var(--lsc-header-h); }

  /* Page hero mobile — only offset by header (no topbar) */
  .lsc-page-hero {
    margin-top: calc(-1 * var(--lsc-header-h));
    padding-top: calc(var(--lsc-header-h) + var(--lsc-space-xl) + 2rem);
  }

  .lsc-topbar { display: none; }

  /* Hamburger appears — must sit above the nav drawer (z-index 999) */
  .lsc-nav__hamburger { display: flex; position: relative; z-index: 1000; }

  /* Sub-menu accordion on mobile */
  .lsc-nav__list > li { position: static; }

  .lsc-nav__list .sub-menu {
    position: static;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    box-shadow: none;
    border: none;
    border-left: 3px solid var(--lsc-primary);
    border-radius: 0;
    padding: .25rem 0;
    margin: .25rem 0 .25rem 1rem;
    background: transparent;
    min-width: 0;
    display: none;
    transition: none;
  }

  .lsc-nav__list .sub-menu::before { display: none; }

  .lsc-nav__list > li.is-dropdown-open > .sub-menu { display: block; }

  .lsc-nav__list .sub-menu a {
    font-size: 1rem;
    padding: .5rem 1rem;
    border-left: none;
    white-space: normal;
  }

  .lsc-nav__list .sub-menu a:hover {
    padding-left: 1rem;
  }

  /* Close button injected inside the drawer */
  .lsc-nav__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--lsc-dark);
    border-radius: var(--lsc-radius-sm);
    transition: background-color var(--lsc-trans-fast);
  }
  .lsc-nav__close:hover { background-color: var(--lsc-light-bg); }
  .lsc-nav__close .lsc-hamburger__bar {
    position: absolute;
    width: 22px;
    background-color: var(--lsc-dark);
  }
  .lsc-nav__close .lsc-hamburger__bar:nth-child(1) { transform: rotate(45deg); }
  .lsc-nav__close .lsc-hamburger__bar:nth-child(2) { transform: rotate(-45deg); }

  /* Mobile nav drawer */
  .lsc-nav__list {
    position: fixed;
    inset: 0;
    background: var(--lsc-white);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: .25rem;
    padding: var(--lsc-space-xl) var(--lsc-space-lg);
    transform: translateX(100%);
    transition: transform var(--lsc-trans-slow);
    overflow-y: auto;
    z-index: 999;
  }

  .lsc-nav__list.is-open {
    transform: translateX(0);
    box-shadow: var(--lsc-shadow-xl);
  }

  body.lsc-nav-open { overflow: hidden; }

  .lsc-nav__list > li > a {
    font-size: 1.25rem;
    padding: .75rem 1.25rem;
  }

  /* Hero — height managed by section 8b media query */
  .lsc-hero__heading { font-size: 2.2rem; }

  /* About / Bio */
  .lsc-about-grid,
  .lsc-bio-grid {
    grid-template-columns: 1fr;
  }

  .lsc-about-img-wrap,
  .lsc-bio-img-col { position: static; }

  .lsc-about-portrait,
  .lsc-bio-img { max-width: 300px; margin: 0 auto; }

  /* Process */
  .lsc-process-grid {
    grid-template-columns: 1fr;
  }

  .lsc-process-grid::before { display: none; }

  /* Values */
  .lsc-values-grid { grid-template-columns: 1fr; }

  /* Blog / services */
  .lsc-services-grid,
  .lsc-blog-grid,
  .lsc-approach-grid { grid-template-columns: 1fr; }

  /* Quick info */
  .lsc-quick-info-grid { grid-template-columns: 1fr; }

  /* CTA */
  .lsc-cta-banner { background-attachment: scroll; }

  /* Container padding */
  .lsc-container { padding-left: var(--lsc-space-md); padding-right: var(--lsc-space-md); }

  /* Sections */
  .lsc-section { padding-top: var(--lsc-space-lg); padding-bottom: var(--lsc-space-lg); }

  /* Blobs hidden on mobile */
  .lsc-hero__blob { display: none; }

  /* ---- Mobile hero swap ---- */

  /* Hide the big photo-background desktop hero */
  .lsc-hero--desktop { display: none; }

  /* Show the mobile hero block */
  .lsc-mobile-hero {
    display: block;
    background: var(--lsc-white);
    /* Offset for fixed nav (no topbar on mobile) */
    margin-top: calc(-1 * var(--lsc-header-h));
  }

  .lsc-mobile-hero__photo-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
  }

  .lsc-mobile-hero__photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
  }

  /* RTC badge overlaid on photo */
  .lsc-mobile-hero__badge {
    position: absolute;
    bottom: var(--lsc-space-sm);
    right: var(--lsc-space-sm);
    background: var(--lsc-primary);
    color: var(--lsc-white);
    border-radius: var(--lsc-radius-full);
    padding: .35rem .85rem;
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .03em;
  }

  .lsc-mobile-hero__badge .material-symbols-outlined {
    font-size: 1rem;
    color: var(--lsc-accent);
  }

  /* Text content block */
  .lsc-mobile-hero__content {
    padding: var(--lsc-space-lg) var(--lsc-space-md);
    text-align: center;
  }

  .lsc-mobile-hero__content .lsc-section-eyebrow {
    margin-bottom: .5rem;
  }

  .lsc-mobile-hero__heading {
    font-family: var(--lsc-font-heading);
    font-size: clamp(1.5rem, 6vw, 2rem);
    font-weight: 400;
    color: var(--lsc-dark);
    line-height: 1.25;
    margin-bottom: var(--lsc-space-md);
  }

  .lsc-mobile-hero__heading em {
    font-style: italic;
    color: var(--lsc-primary);
  }

  /* Trust credential cards */
  .lsc-mobile-hero__trust {
    background: var(--lsc-bg-alt);
    border-top: 3px solid var(--lsc-primary);
    padding: var(--lsc-space-md) var(--lsc-space-md);
  }

  .lsc-mobile-trust-list {
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .625rem;
  }

  .lsc-mobile-trust-item {
    background: var(--lsc-white);
    border-radius: var(--lsc-radius-md);
    border: 1px solid var(--lsc-border);
    padding: .75rem .875rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .8125rem;
    font-weight: 600;
    color: var(--lsc-dark);
    line-height: 1.3;
    box-shadow: var(--lsc-shadow-sm);
  }

  .lsc-mobile-trust-item .material-symbols-outlined {
    font-size: 1.25rem;
    color: var(--lsc-primary);
    flex-shrink: 0;
  }

  /* Disable Lato 300 weight on mobile (loaded conditionally) */
}

/* Small phones — trust items stack to single column */
@media (max-width: 480px) {
  .lsc-mobile-trust-list { grid-template-columns: 1fr; }
  .lsc-hero__btns { flex-direction: column; }
  .lsc-hero__btns .lsc-btn { width: 100%; justify-content: center; }
  .lsc-post-nav { grid-template-columns: 1fr; }
}

/* ==========================================================================
   31. Print Styles
   ========================================================================== */

@media print {
  #lsc-header,
  .lsc-topbar,
  .lsc-nav,
  .lsc-fab,
  .lsc-hero__scroll-indicator,
  .lsc-cta-banner__overlay,
  .lsc-wave-divider {
    display: none !important;
  }

  body {
    padding-top: 0;
    font-size: 12pt;
    color: #000;
    background: #fff;
  }

  a { color: var(--lsc-primary); text-decoration: underline; }

  .lsc-hero,
  .lsc-cta-banner {
    background-attachment: scroll;
    min-height: auto;
    padding: 2rem 0;
  }

  .lsc-service-detail__inner,
  .lsc-contact-grid,
  .lsc-blog-grid {
    grid-template-columns: 1fr;
  }
}


/* ============================================================
   SECTION 20 — PROGRAMS PAGE  (template-programs.php)
   ============================================================ */

/* --- Overview cards grid --- */
.lsc-programs-overview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--lsc-space-lg);
  margin-top: var(--lsc-space-xl);
}

.lsc-program-overview-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: var(--lsc-white);
  border-radius: var(--lsc-radius-lg);
  box-shadow: var(--lsc-shadow-sm);
  padding: var(--lsc-space-xl) var(--lsc-space-lg);
  text-decoration: none;
  color: var(--lsc-text);
  transition: transform var(--lsc-trans-base), box-shadow var(--lsc-trans-base);
  gap: var(--lsc-space-sm);
  overflow: hidden;
}

.lsc-program-overview-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--lsc-shadow-lg);
  text-decoration: none;
  color: var(--lsc-text);
}

.lsc-program-overview-card__icon {
  font-size: 2.5rem;
  display: block;
  line-height: 1;
  margin-top: var(--lsc-space-sm);
}

.lsc-program-overview-card__badge {
  display: inline-block;
  color: var(--lsc-white);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .25rem .75rem;
  border-radius: var(--lsc-radius-full);
  margin-top: .25rem;
}

.lsc-program-overview-card__title {
  font-family: var(--lsc-font-heading);
  font-size: clamp(1.1rem, 1.5vw, 1.35rem);
  color: var(--lsc-dark);
  margin: 0;
  line-height: 1.25;
}

.lsc-program-overview-card__tagline {
  font-size: .9375rem;
  color: var(--lsc-text-light);
  line-height: 1.5;
  flex: 1;
  margin: 0;
}

.lsc-program-overview-card__link {
  display: flex;
  align-items: center;
  gap: .3rem;
  font-size: .875rem;
  font-weight: 700;
  color: var(--lsc-primary);
  margin-top: auto;
  padding-top: var(--lsc-space-sm);
}

/* --- Program detail blocks --- */
.lsc-program-detail__inner {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.lsc-program-detail__header {
  display: flex;
  align-items: flex-start;
  gap: var(--lsc-space-lg);
  margin-bottom: var(--lsc-space-xl);
  flex-wrap: wrap;
}

.lsc-program-detail__icon {
  font-size: 3.5rem;
  flex-shrink: 0;
  margin-top: .3rem;
}

.lsc-program-detail__session-badge {
  display: inline-block;
  color: var(--lsc-white);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .25rem .875rem;
  border-radius: var(--lsc-radius-full);
  margin-bottom: .5rem;
}

.lsc-program-detail__title {
  font-family: var(--lsc-font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2.25rem);
  color: var(--lsc-dark);
  margin: 0;
}

.lsc-program-detail__body {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: var(--lsc-space-xxl);
  align-items: start;
}

.lsc-program-detail__desc p {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--lsc-text);
  margin-bottom: var(--lsc-space-md);
}

.lsc-program-detail__note {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  background: var(--lsc-bg-alt);
  border-radius: var(--lsc-radius-md);
  padding: var(--lsc-space-md) var(--lsc-space-lg);
  font-size: .9375rem;
  color: var(--lsc-text-light);
  margin-bottom: var(--lsc-space-lg) !important;
}

.lsc-program-detail__note .material-symbols-outlined {
  font-size: 1.25rem;
  flex-shrink: 0;
  color: var(--lsc-primary);
  margin-top: .1rem;
}

/* --- Syllabus list --- */
.lsc-program-detail__syllabus {
  background: var(--lsc-white);
  border-radius: var(--lsc-radius-lg);
  box-shadow: var(--lsc-shadow-sm);
  padding: var(--lsc-space-xl);
}

.lsc-section--alt .lsc-program-detail__syllabus {
  background: var(--lsc-bg);
}

.lsc-program-detail__syllabus-title {
  font-family: var(--lsc-font-heading);
  font-size: 1.125rem;
  color: var(--lsc-dark);
  margin-bottom: var(--lsc-space-md);
  letter-spacing: .02em;
}

.lsc-program-syllabus-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem 1.25rem;
  counter-reset: syllabus;
}

.lsc-program-syllabus-item {
  display: flex;
  align-items: flex-start;
  gap: .875rem;
  font-size: .9375rem;
  color: var(--lsc-text);
  line-height: 1.5;
}

.lsc-program-syllabus-item__num {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  color: var(--lsc-white);
  font-size: .75rem;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: .1rem;
}

.lsc-program-syllabus-item__text {
  flex: 1;
}

/* --- Programs: card image header --- */
.lsc-program-overview-card__img {
  /* pull flush to card edges, cancel card padding on all three sides */
  margin: calc(var(--lsc-space-xl) * -1) calc(var(--lsc-space-lg) * -1) var(--lsc-space-md);
  /* force width to fill the card even inside a flex column */
  width: calc(100% + calc(var(--lsc-space-lg) * 2));
  height: 180px;
  flex-shrink: 0;
  overflow: hidden;
  align-self: stretch;
}

.lsc-program-overview-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .4s ease;
}

.lsc-program-overview-card:hover .lsc-program-overview-card__img img {
  transform: scale(1.05);
}

/* --- Programs: nature background scene --- */
.lsc-prog-scene {
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
}

.lsc-prog-scene__overlay {
  position: absolute;
  inset: 0;
  background: rgba(240, 247, 252, 0.92);
  z-index: 0;
  pointer-events: none;
}

.lsc-section--alt .lsc-prog-scene__overlay {
  background: rgba(255, 255, 255, 0.93);
}

.lsc-prog-scene .lsc-container {
  position: relative;
  z-index: 1;
}

/* ============================================================
   SECTION 21 — AREA OF FOCUS PAGE  (template-area-of-focus.php)
   ============================================================ */

/* --- Intro grid: description + signs --- */
.lsc-focus-intro-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: var(--lsc-space-xxl);
  align-items: start;
}

.lsc-focus-intro-desc .lsc-section-title {
  margin-top: var(--lsc-space-sm);
}

.lsc-focus-intro-desc p {
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--lsc-text);
}

/* --- Signs checklist card --- */
.lsc-focus-signs__card {
  background: var(--lsc-white);
  border-radius: var(--lsc-radius-lg);
  border-top: 4px solid var(--lsc-primary);
  box-shadow: var(--lsc-shadow-md);
  padding: var(--lsc-space-xl);
}

.lsc-focus-signs__title {
  font-family: var(--lsc-font-heading);
  font-size: 1.1rem;
  color: var(--lsc-dark);
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: var(--lsc-space-md);
}

.lsc-focus-signs__title .material-symbols-outlined {
  font-size: 1.5rem;
}

.lsc-focus-signs__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .625rem;
}

.lsc-focus-signs__item {
  display: flex;
  align-items: flex-start;
  gap: .625rem;
  font-size: .9375rem;
  color: var(--lsc-text);
  line-height: 1.5;
}

.lsc-focus-signs__item .material-symbols-outlined {
  font-size: 1.125rem;
  flex-shrink: 0;
  margin-top: .15rem;
}

/* --- What to Expect block --- */
.lsc-focus-expect {
  display: flex;
  align-items: flex-start;
  gap: var(--lsc-space-xl);
  background: var(--lsc-white);
  border-radius: var(--lsc-radius-lg);
  box-shadow: var(--lsc-shadow-md);
  padding: var(--lsc-space-xl) var(--lsc-space-xxl);
  flex-wrap: wrap;
}

.lsc-focus-expect__icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 50%;
  flex-shrink: 0;
  color: var(--lsc-white);
}

.lsc-focus-expect__icon-wrap .material-symbols-outlined {
  font-size: 2.25rem;
}

.lsc-focus-expect__content {
  flex: 1;
  min-width: 260px;
}

.lsc-focus-expect__content p {
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--lsc-text);
  margin-bottom: var(--lsc-space-lg);
}

/* --- Related programs strip --- */
.lsc-focus-programs-strip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lsc-space-md);
  margin-top: var(--lsc-space-lg);
  justify-content: center;
}

.lsc-focus-program-chip {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: var(--lsc-white);
  border: 2px solid var(--lsc-primary-light);
  color: var(--lsc-primary-dark);
  border-radius: var(--lsc-radius-full);
  padding: .625rem 1.5rem;
  font-size: .9375rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color var(--lsc-trans-fast), border-color var(--lsc-trans-fast);
}

.lsc-focus-program-chip:hover {
  background: var(--lsc-primary);
  border-color: var(--lsc-primary);
  color: var(--lsc-white);
  text-decoration: none;
}

.lsc-focus-program-chip--all {
  background: var(--lsc-primary);
  border-color: var(--lsc-primary);
  color: var(--lsc-white);
}

.lsc-focus-program-chip--all:hover {
  background: var(--lsc-primary-dark);
  border-color: var(--lsc-primary-dark);
}

.lsc-focus-program-chip .material-symbols-outlined {
  font-size: 1.1rem;
}

/* ==========================================================================
   Area of Focus — Enhanced Visual Sections (v2)
   ========================================================================== */

/* ---- Intro Split (Section 2) ---- */
.lsc-focus-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--lsc-space-2xl);
  align-items: center;
}

.lsc-focus-split__frame {
  position: relative;
  border-radius: var(--lsc-radius-xl);
  overflow: visible;
}

.lsc-focus-split__img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--lsc-radius-xl);
  position: relative;
  z-index: 1;
  box-shadow: var(--lsc-shadow-lg);
}

.lsc-focus-split__accent-block {
  position: absolute;
  inset: 0;
  border-radius: var(--lsc-radius-xl);
  opacity: 0.15;
  transform: translate(16px, 16px);
  z-index: 0;
}

.lsc-focus-split__deco-dots {
  position: absolute;
  bottom: -20px;
  left: -20px;
  width: 90px;
  color: var(--lsc-accent, #c4873a);
  opacity: 0.3;
  z-index: 2;
}

.lsc-focus-split__text-col {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.lsc-focus-split__desc {
  font-size: 1.0625rem;
  line-height: 1.85;
  color: var(--lsc-text);
  margin-bottom: var(--lsc-space-sm);
}

.lsc-focus-split__cta { align-self: flex-start; margin-top: var(--lsc-space-xs); }

/* ---- Signs Grid (Section 2b) ---- */
.lsc-focus-signs-section {
  background: var(--lsc-light-bg);
  position: relative;
  overflow: hidden;
}

.lsc-focus-signs-blob {
  position: absolute;
  width: 420px;
  height: 420px;
  pointer-events: none;
}

.lsc-focus-signs-blob--tl {
  top: -120px;
  left: -120px;
  color: var(--lsc-primary, #2a6e8f);
  opacity: 0.05;
}

.lsc-focus-signs-blob--br {
  bottom: -100px;
  right: -80px;
  color: var(--lsc-accent, #c4873a);
  opacity: 0.06;
}

.lsc-focus-signs-header {
  display: flex;
  align-items: center;
  gap: var(--lsc-space-md);
  margin-bottom: var(--lsc-space-xl);
}

.lsc-focus-signs-header__icon {
  font-size: 3rem;
  flex-shrink: 0;
}

.lsc-focus-signs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--lsc-space-md);
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
  z-index: 1;
}

.lsc-focus-signs-grid__item {
  display: flex;
  align-items: flex-start;
  gap: var(--lsc-space-sm);
  background: var(--lsc-white);
  padding: var(--lsc-space-md) var(--lsc-space-lg);
  border-radius: var(--lsc-radius-md);
  box-shadow: var(--lsc-shadow-sm);
  font-size: .9375rem;
  line-height: 1.55;
  color: var(--lsc-text);
  transition: box-shadow var(--lsc-trans-base), transform var(--lsc-trans-base);
}

.lsc-focus-signs-grid__item:hover {
  box-shadow: var(--lsc-shadow-md);
  transform: translateY(-2px);
}

.lsc-focus-signs-grid__check {
  font-size: 1.25rem;
  flex-shrink: 0;
  margin-top: .1rem;
}

/* ---- Quote Band (Section 2c) ---- */
.lsc-focus-quote-band {
  background: var(--lsc-dark, #1a2f3d);
  padding: var(--lsc-space-2xl) 0;
  position: relative;
  overflow: hidden;
}

.lsc-focus-quote-band__deco {
  position: absolute;
  pointer-events: none;
}

.lsc-focus-quote-band__deco--left {
  left: -80px;
  top: -80px;
  width: 300px;
  color: rgba(255,255,255,.06);
}

.lsc-focus-quote-band__deco--right {
  right: -50px;
  bottom: -60px;
  width: 220px;
  color: var(--lsc-accent, #c4873a);
  opacity: 0.1;
}

.lsc-focus-quote-band__inner {
  position: relative;
  text-align: center;
  max-width: 820px;
  margin: 0 auto;
}

.lsc-focus-quote-band__open-mark {
  display: block;
  font-family: Georgia, serif;
  font-size: 9rem;
  line-height: 0.55;
  color: var(--lsc-accent, #c4873a);
  opacity: 0.35;
  margin-bottom: var(--lsc-space-md);
  user-select: none;
}

.lsc-focus-quote-band__text {
  font-family: var(--lsc-font-heading, 'Forum', Georgia, serif);
  font-size: clamp(1.2rem, 2.2vw, 1.6rem);
  line-height: 1.65;
  color: rgba(255,255,255,.92);
  font-style: italic;
  margin: 0 0 var(--lsc-space-lg) 0;
  border: none;
  padding: 0;
}

.lsc-focus-quote-band__cite {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .9375rem;
  color: rgba(255,255,255,.5);
  font-style: normal;
}

.lsc-focus-quote-band__cite .material-symbols-outlined { font-size: 1rem; }

/* ---- Modalities Section — SVG blob ---- */
.lsc-focus-modalities-section {
  position: relative;
  overflow: hidden;
}

.lsc-focus-modalities-blob {
  position: absolute;
  top: -60px;
  right: -80px;
  width: 480px;
  height: 480px;
  color: var(--lsc-primary, #2a6e8f);
  opacity: 0.04;
  pointer-events: none;
}

.lsc-focus-modalities-section .lsc-container { position: relative; z-index: 1; }

/* ---- Expect Section — side image ---- */
.lsc-focus-expect-wrap {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: var(--lsc-space-xl);
  align-items: center;
}

.lsc-focus-expect-img {
  position: relative;
}

.lsc-focus-expect-img__photo {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--lsc-radius-xl);
  box-shadow: var(--lsc-shadow-lg);
  position: relative;
  z-index: 1;
}

.lsc-focus-expect-img__accent {
  position: absolute;
  inset: 0;
  border-radius: var(--lsc-radius-xl);
  opacity: 0.12;
  transform: translate(-14px, 14px);
  z-index: 0;
}

/* ============================================================
   RESPONSIVE — Area of Focus Enhanced
   ============================================================ */
@media (max-width: 900px) {
  .lsc-focus-split,
  .lsc-focus-expect-wrap { grid-template-columns: 1fr; gap: var(--lsc-space-xl); }
  .lsc-focus-split__img { aspect-ratio: 16 / 9; }
  .lsc-focus-expect-img { display: none; }
  .lsc-focus-signs-grid { grid-template-columns: 1fr; }
  .lsc-focus-signs-header { align-items: flex-start; }
  .lsc-focus-signs-header__icon { font-size: 2rem; margin-top: .2rem; }
  .lsc-focus-quote-band__open-mark { font-size: 6rem; }
}

/* ============================================================
   RESPONSIVE — Programs + Area of Focus
   ============================================================ */

@media (max-width: 1024px) {
  .lsc-programs-overview-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .lsc-program-detail__body {
    grid-template-columns: 1fr;
  }

  .lsc-focus-intro-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .lsc-programs-overview-grid {
    grid-template-columns: 1fr;
  }

  .lsc-program-detail__header {
    gap: var(--lsc-space-md);
  }

  .lsc-program-syllabus-list {
    grid-template-columns: 1fr;
  }

  .lsc-program-detail__syllabus {
    padding: var(--lsc-space-lg);
  }

  .lsc-focus-expect {
    padding: var(--lsc-space-lg);
    flex-direction: column;
    gap: var(--lsc-space-lg);
  }

  .lsc-focus-expect__icon-wrap {
    width: 3.5rem;
    height: 3.5rem;
  }

  .lsc-focus-programs-strip {
    flex-direction: column;
    align-items: stretch;
  }

  .lsc-focus-program-chip {
    justify-content: center;
  }
}


/* ============================================================
   INDIVIDUAL PROGRAM PAGES
   (template-program-cbt, -mindfulness, -recovery)
   ============================================================ */

/* --- Hero extras --- */
.lsc-prog-hero__overlay {
  background: rgba(10, 28, 42, 0.62);
}

.lsc-prog-hero__icon {
  font-size: 3.5rem;
  display: block;
  margin-bottom: .75rem;
}

.lsc-prog-hero__badge {
  display: inline-block;
  color: var(--lsc-white);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .3rem 1rem;
  border-radius: var(--lsc-radius-full);
  margin-bottom: 1rem;
}

.lsc-prog-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 1.5rem;
}

.lsc-prog-hero__crumb {
  color: rgba(255, 255, 255, .68);
  text-decoration: none;
  transition: color var(--lsc-trans-fast);
}

.lsc-prog-hero__crumb:hover { color: var(--lsc-white); text-decoration: underline; }

/* --- About split (desc + facts card) --- */
.lsc-prog-about {
  display: grid;
  grid-template-columns: 1.15fr 0.9fr;
  gap: var(--lsc-space-2xl);
  align-items: start;
}

.lsc-prog-about__text p {
  font-size: 1.0625rem;
  line-height: 1.8;
  color: var(--lsc-text);
  margin-bottom: var(--lsc-space-md);
}

.lsc-prog-about__text .lsc-section-eyebrow,
.lsc-prog-about__text .lsc-section-title {
  text-align: left;
}

.lsc-prog-about__text .lsc-section-title {
  margin-bottom: var(--lsc-space-lg);
}

/* --- Facts card --- */
.lsc-prog-facts-card {
  background: var(--lsc-white);
  border-radius: var(--lsc-radius-xl);
  box-shadow: var(--lsc-shadow-lg);
  overflow: hidden;
  position: sticky;
  top: 2rem;
}

.lsc-prog-facts-card__photo {
  position: relative;
  height: 220px;
  overflow: hidden;
}

.lsc-prog-facts-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}

.lsc-prog-facts-card:hover .lsc-prog-facts-card__photo img {
  transform: scale(1.04);
}

.lsc-prog-facts-card__photo-badge {
  position: absolute;
  bottom: -1.25rem;
  right: 1.5rem;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--lsc-shadow-md);
}

.lsc-prog-facts-card__photo-badge .material-symbols-outlined {
  font-size: 1.4rem;
  color: var(--lsc-white);
}

.lsc-prog-facts-card__list {
  list-style: none;
  padding: calc(var(--lsc-space-xl) + 1rem) var(--lsc-space-lg) var(--lsc-space-lg);
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.lsc-prog-facts-card__item {
  display: flex;
  align-items: center;
  gap: .75rem;
}

.lsc-prog-facts-card__item .material-symbols-outlined {
  font-size: 1.3rem;
  flex-shrink: 0;
}

.lsc-prog-facts-card__item strong {
  display: block;
  font-size: .8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--lsc-text-light);
  margin-bottom: .15rem;
}

.lsc-prog-facts-card__item > div {
  font-size: .9375rem;
  color: var(--lsc-text);
  line-height: 1.4;
}

/* --- Syllabus section on nature bg --- */
.lsc-prog-syl-section .lsc-section-header { margin-bottom: var(--lsc-space-xl); }

.lsc-prog-syl-card {
  background: var(--lsc-white);
  border-radius: var(--lsc-radius-xl);
  box-shadow: var(--lsc-shadow-xl);
  padding: var(--lsc-space-xl) var(--lsc-space-2xl);
}

.lsc-prog-syl-card .lsc-program-syllabus-list {
  margin-bottom: var(--lsc-space-xl);
}

.lsc-prog-syl-card__footer {
  border-top: 1px solid var(--lsc-border);
  padding-top: var(--lsc-space-lg);
  display: flex;
  justify-content: center;
}

/* --- Related programs grid (2-col) --- */
.lsc-prog-related-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--lsc-space-lg);
  margin-top: var(--lsc-space-xl);
}

/* --- Responsive --- */
@media (max-width: 900px) {
  .lsc-prog-about {
    grid-template-columns: 1fr;
  }

  .lsc-prog-facts-card {
    position: static;
  }

  .lsc-prog-related-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .lsc-prog-syl-card {
    padding: var(--lsc-space-lg) var(--lsc-space-md);
  }
}


/* ============================================================
   ABOUT PAGE — NEW LAYOUT
   ============================================================ */

/* --- Section 1: Full-height hero with edge-bleed portrait --- */
.lsc-about-hero {
  display: grid;
  grid-template-columns: 1fr 42%;
  min-height: 100vh;
  overflow: hidden;
  background: var(--lsc-dark);
  /* Pull flush against fixed header — cancel the body padding-top offset */
  margin-top: calc(-1 * (var(--lsc-header-h) + var(--lsc-topbar-h)));
}

/* photo column — no container, bleeds to the page left edge */
.lsc-about-hero__photo-col {
  position: relative;
  overflow: hidden;
}

.lsc-about-hero__photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* overlay — kept for potential future use */
.lsc-about-hero__photo-fade {
  position: absolute;
  inset: 0;
  background: transparent;
}

/* info panel — vertically centred, padded */
.lsc-about-hero__info {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--lsc-space-xl) clamp(2rem, 5vw, 5rem);
  background: var(--lsc-dark);
}

.lsc-about-hero__inner {
  max-width: 520px;
  margin: 0 auto;
  text-align: center;
}

.lsc-about-hero__name {
  font-size: clamp(2.25rem, 4.5vw, 3.5rem);
  font-weight: 700;
  color: var(--lsc-white);
  line-height: 1.1;
  margin: 0 0 .5rem;
}

.lsc-about-hero__title {
  font-size: 2.0625rem;
  font-weight: 500;
  color: var(--lsc-accent);
  margin: 0 0 1.5rem;
  letter-spacing: .01em;
  line-height: 1.25;
}

/* Preserve accent colour when inside a dark section */
.lsc-section--dark .lsc-about-hero__title {
  color: var(--lsc-accent);
}

.lsc-about-hero__divider {
  width: 3rem;
  height: 3px;
  background: var(--lsc-accent);
  border-radius: 2px;
  margin: 0 auto 1.75rem;
}

.lsc-about-hero__creds {
  list-style: none;
  margin: 0 auto 2rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .9rem;
}

.lsc-about-hero__creds li {
  display: flex;
  align-items: center;
  gap: .75rem;
  font-size: .9375rem;
  color: rgba(255,255,255,.82);
  font-weight: 400;
}

.lsc-about-hero__creds li .material-symbols-outlined {
  font-size: 1.25rem;
  color: var(--lsc-accent);
  flex-shrink: 0;
}

/* --- Section 2: Story section --- */
.lsc-about-story {
  position: relative;
  padding: var(--lsc-space-xxl, 6rem) 0;
  background: var(--lsc-white);
  overflow: hidden;
}

.lsc-about-story__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

.lsc-about-story__blob {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.lsc-about-story__deco-quote {
  position: absolute;
  top: -1rem;
  left: -1rem;
  width: 18rem;
  height: auto;
  opacity: 1;
}

.lsc-about-story__inner {
  position: relative;
  z-index: 1;
}

.lsc-about-story__header {
  text-align: left;
  margin-bottom: 3.5rem;
}

.lsc-about-story__eyebrow {
  display: inline-block;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lsc-accent);
  margin-bottom: .75rem;
}

.lsc-about-story__heading {
  font-size: clamp(1.75rem, 3.5vw, 2.75rem);
  font-weight: 700;
  color: var(--lsc-dark);
  margin: 0;
  line-height: 1.2;
}

.lsc-about-story__body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

.lsc-about-story__col p {
  font-size: 1.0625rem;
  line-height: 1.85;
  color: var(--lsc-text-muted);
  margin: 0 0 1.375rem;
}

.lsc-about-story__lead {
  font-size: 1.1875rem !important;
  font-weight: 500;
  color: var(--lsc-dark) !important;
  line-height: 1.7 !important;
  padding-bottom: .25rem;
  border-bottom: 2px solid color-mix(in srgb, var(--lsc-primary) 20%, transparent);
  margin-bottom: 1.75rem !important;
}

.lsc-about-story__pullquote {
  margin: 1.5rem 0 0;
  padding: 1.5rem 1.75rem;
  background: color-mix(in srgb, var(--lsc-primary) 7%, transparent);
  border-left: 4px solid var(--lsc-primary);
  border-radius: 0 .75rem .75rem 0;
}

.lsc-about-story__pullquote p {
  font-size: 1.0625rem !important;
  font-style: italic;
  font-weight: 500;
  color: var(--lsc-dark) !important;
  margin: 0 0 .5rem !important;
  line-height: 1.65 !important;
}

.lsc-about-story__pullquote cite {
  font-size: .875rem;
  font-style: normal;
  font-weight: 600;
  color: var(--lsc-primary);
  letter-spacing: .02em;
}

/* --- Section 2: Zigzag approach --- */
.lsc-section-lead {
  max-width: 640px;
  margin: .5rem auto 0;
  font-size: 1.0625rem;
  color: var(--lsc-text-muted);
  text-align: center;
  line-height: 1.7;
}

.lsc-zigzag {
  display: flex;
  flex-direction: column;
  gap: var(--lsc-space-xl);
  margin-top: var(--lsc-space-xl);
}

.lsc-zigzag__row {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: var(--lsc-space-xl);
  align-items: center;
}

.lsc-zigzag__row--reverse {
  grid-template-columns: 1fr 260px;
}

.lsc-zigzag__row--reverse .lsc-zigzag__icon-panel {
  order: 2;
}

.lsc-zigzag__row--reverse .lsc-zigzag__text-panel {
  order: 1;
}

.lsc-zigzag__icon-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1;
  max-width: 260px;
  border-radius: 1.5rem;
  background: color-mix(in srgb, var(--zz-color, var(--lsc-primary)) 10%, transparent);
  border: 2px solid color-mix(in srgb, var(--zz-color, var(--lsc-primary)) 25%, transparent);
}

.lsc-zigzag__icon {
  font-size: 5rem;
  color: var(--zz-color, var(--lsc-primary));
}

.lsc-zigzag__tag {
  display: inline-block;
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: .5rem;
}

.lsc-zigzag__title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--lsc-dark);
  margin: 0 0 .75rem;
}

.lsc-zigzag__body {
  color: var(--lsc-text-muted);
  line-height: 1.75;
  margin: 0 0 1.25rem;
}

.lsc-zigzag__points {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}

.lsc-zigzag__points li {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .9375rem;
  color: var(--lsc-dark);
}

.lsc-zigzag__points li .material-symbols-outlined {
  font-size: 1.15rem;
  flex-shrink: 0;
}

/* --- Section 3: Practice horizontal rows --- */
.lsc-practice-rows {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: var(--lsc-space-xl);
}

.lsc-practice-row {
  display: flex;
  gap: var(--lsc-space-lg);
  align-items: flex-start;
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--lsc-border);
}

.lsc-practice-row:first-child {
  border-top: 1px solid var(--lsc-border);
}

.lsc-practice-row__icon-wrap {
  flex-shrink: 0;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: .875rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lsc-practice-row__icon-wrap .material-symbols-outlined {
  font-size: 1.65rem;
}

.lsc-practice-row__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--lsc-dark);
  margin: 0 0 .35rem;
}

.lsc-practice-row__desc {
  font-size: .9375rem;
  color: var(--lsc-text-muted);
  line-height: 1.7;
  margin: 0;
}

/* --- Section 4: Beliefs grid (dark bg) --- */
.lsc-beliefs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--lsc-space-lg);
  margin-top: var(--lsc-space-xl);
}

.lsc-belief-card {
  background: color-mix(in srgb, var(--lsc-white) 6%, transparent);
  border: 1px solid color-mix(in srgb, var(--lsc-white) 12%, transparent);
  border-radius: 1rem;
  padding: 2rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.lsc-belief-card__icon {
  font-size: 2.25rem;
  color: var(--lsc-accent);
}

.lsc-belief-card__quote {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--lsc-white);
  line-height: 1.5;
  margin: 0;
  font-style: normal;
}

.lsc-belief-card__sub {
  font-size: .9375rem;
  color: var(--lsc-light-muted, rgba(255,255,255,.65));
  line-height: 1.7;
  margin: 0;
}

/* --- Section 5: Training timeline --- */
.lsc-timeline {
  position: relative;
  margin-top: var(--lsc-space-xl);
  padding-left: 3.5rem;
}

.lsc-timeline::before {
  content: '';
  position: absolute;
  left: 1.3125rem;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--lsc-border);
}

.lsc-timeline__item {
  position: relative;
  display: flex;
  gap: var(--lsc-space-lg);
  padding-bottom: var(--lsc-space-xl);
}

.lsc-timeline__item:last-child {
  padding-bottom: 0;
}

.lsc-timeline__marker {
  position: absolute;
  left: -3.5rem;
  top: 0;
  width: 2.625rem;
  height: 2.625rem;
  border-radius: 50%;
  background: color-mix(in srgb, var(--tl-color, var(--lsc-primary)) 12%, var(--lsc-white));
  border: 2px solid var(--tl-color, var(--lsc-primary));
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
}

.lsc-timeline__marker .material-symbols-outlined {
  font-size: 1.15rem;
  color: var(--tl-color, var(--lsc-primary));
}

.lsc-timeline__year {
  display: inline-block;
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .05em;
  margin-bottom: .25rem;
}

.lsc-timeline__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--lsc-dark);
  margin: 0 0 .25rem;
}

.lsc-timeline__org {
  font-size: .9rem;
  color: var(--lsc-text-muted);
  margin: 0;
}

/* --- Section 6: Credential logos --- */
.lsc-cred-logos-section {
  text-align: center;
}

.lsc-cred-logos {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lsc-space-lg);
  justify-content: center;
  align-items: center;
  margin-top: var(--lsc-space-lg);
}

.lsc-cred-logo {
  display: flex;
  align-items: center;
  justify-content: center;
}

.lsc-cred-logo__img {
  display: block;
  max-height: 80px;
  width: auto;
  max-width: 160px;
  object-fit: contain;
  filter: grayscale(30%);
  opacity: .85;
  transition: filter var(--lsc-trans-fast), opacity var(--lsc-trans-fast);
}

.lsc-cred-logo a:hover .lsc-cred-logo__img,
.lsc-cred-logo__img:hover {
  filter: grayscale(0%);
  opacity: 1;
}

/* ============================================================
   ABOUT PAGE — RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .lsc-about-hero {
    grid-template-columns: 1fr 38%;
  }
  .lsc-about-hero__title {
    font-size: 1.75rem;
  }
  .lsc-about-story__body {
    grid-template-columns: 1fr;
  }
  .lsc-zigzag__row,
  .lsc-zigzag__row--reverse {
    grid-template-columns: 200px 1fr;
  }
  .lsc-zigzag__row--reverse {
    grid-template-columns: 1fr 200px;
  }
}

@media (max-width: 768px) {
  .lsc-about-hero {
    display: flex;
    flex-direction: column-reverse;
    min-height: auto;
  }
  .lsc-about-hero__title {
    font-size: 1.5rem;
  }
  .lsc-about-hero__photo-col {
    height: 75vw;
    min-height: 320px;
    max-height: 480px;
  }
  .lsc-about-hero__photo-col .lsc-about-hero__photo {
    object-position: center 20%;
  }
  .lsc-about-hero__info {
    padding: var(--lsc-space-xl) var(--lsc-space-lg);
  }
  .lsc-about-story {
    padding: var(--lsc-space-xl) 0;
  }
  .lsc-about-story__body {
    grid-template-columns: 1fr;
  }
  .lsc-zigzag__row,
  .lsc-zigzag__row--reverse {
    grid-template-columns: 1fr;
  }
  .lsc-zigzag__row--reverse .lsc-zigzag__icon-panel,
  .lsc-zigzag__row--reverse .lsc-zigzag__text-panel {
    order: unset;
  }
  .lsc-zigzag__icon-panel {
    max-width: 120px;
    margin: 0 auto;
    aspect-ratio: 1;
  }
  .lsc-zigzag__icon {
    font-size: 3rem;
  }
  .lsc-beliefs-grid {
    grid-template-columns: 1fr;
  }
  .lsc-timeline {
    padding-left: 2.75rem;
  }
  .lsc-timeline__marker {
    left: -2.75rem;
    width: 2rem;
    height: 2rem;
  }
  .lsc-timeline__marker .material-symbols-outlined {
    font-size: .95rem;
  }
}


/* ==========================================================================
   32. Elementor Free Compatibility (v6)
   ========================================================================== */

/*
 * These rules ensure Elementor sections / columns / widgets integrate
 * cleanly with the LSC theme's fixed header, design tokens, and layout.
 * Tested against Elementor Free 4.x.
 */

/* ---- Offset Elementor full-width sections that sit below the fixed header ---- */
.elementor-page .elementor-section-wrap > .elementor-section:first-child,
.elementor-page > .elementor-section:first-child {
  margin-top: 0; /* header offset handled by body padding-top */
}

/* ---- Canvas / Full-Width templates — remove body padding ---- */
body.elementor-template-canvas {
  padding-top: 0 !important;
}

/* ---- Allow Elementor containers to fill their column ---- */
.elementor-widget-wrap,
.elementor-column-wrap {
  width: 100%;
}

/* ---- Elementor inner section inside LSC containers ---- */
.lsc-container .elementor-section,
.lsc-container .e-container,
.lsc-container .e-con {
  padding-left: 0;
  padding-right: 0;
}

/* ---- Make Elementor stretched sections truly full-width ---- */
.elementor-section.elementor-section-stretched {
  left: 0 !important;
  width: 100% !important;
}

/* ---- Normalize Elementor default typography to match LSC tokens ---- */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--lsc-font-heading);
  color: var(--lsc-dark);
}

.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
  font-family: var(--lsc-font-body);
  color: var(--lsc-text);
  line-height: 1.7;
}

/* ---- Let Elementor inner markup inherit wrapper utility classes ---- */
.elementor-widget-heading.lsc-hero__heading .elementor-heading-title,
.elementor-widget-heading.lsc-section-title .elementor-heading-title,
.elementor-widget-heading.lsc-highlight-col__title .elementor-heading-title {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
}

.elementor-widget-text-editor.lsc-section-eyebrow p,
.elementor-widget-text-editor.lsc-section-eyebrow li,
.elementor-widget-text-editor.lsc-hero__subtitle p,
.elementor-widget-text-editor.lsc-hero__subtitle li,
.elementor-widget-text-editor.lsc-section-desc p,
.elementor-widget-text-editor.lsc-section-desc li,
.elementor-widget-text-editor.lsc-highlight-col__desc p,
.elementor-widget-text-editor.lsc-highlight-col__desc li {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
}

.elementor-widget-button.lsc-btn,
.elementor-widget-button.lsc-btn--accent,
.elementor-widget-button.lsc-btn--primary,
.elementor-widget-button.lsc-btn--ghost,
.elementor-widget-button.lsc-btn--outline,
.elementor-widget-button.lsc-btn--outline-dark,
.elementor-widget-button.lsc-btn--sm {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

.elementor-widget-button.lsc-btn .elementor-button-wrapper,
.elementor-widget-button.lsc-btn--accent .elementor-button-wrapper,
.elementor-widget-button.lsc-btn--primary .elementor-button-wrapper,
.elementor-widget-button.lsc-btn--ghost .elementor-button-wrapper,
.elementor-widget-button.lsc-btn--outline .elementor-button-wrapper,
.elementor-widget-button.lsc-btn--outline-dark .elementor-button-wrapper,
.elementor-widget-button.lsc-btn--sm .elementor-button-wrapper {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

.elementor-widget-button.lsc-btn .elementor-button,
.elementor-widget-button.lsc-btn--accent .elementor-button,
.elementor-widget-button.lsc-btn--primary .elementor-button,
.elementor-widget-button.lsc-btn--ghost .elementor-button,
.elementor-widget-button.lsc-btn--outline .elementor-button,
.elementor-widget-button.lsc-btn--outline-dark .elementor-button,
.elementor-widget-button.lsc-btn--sm .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .75rem 1.75rem;
  border-radius: var(--lsc-radius-full);
  font-family: var(--lsc-font-body);
  font-size: .9375rem;
  font-weight: 700;
  letter-spacing: .025em;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color var(--lsc-trans-base), color var(--lsc-trans-base), box-shadow var(--lsc-trans-base), transform var(--lsc-trans-fast);
  border: 2px solid transparent;
  box-shadow: none;
}

.elementor-widget-button.lsc-btn--accent .elementor-button {
  background-color: var(--lsc-accent);
  color: var(--lsc-white);
  border-color: var(--lsc-accent);
  box-shadow: 0 4px 15px rgba(196,135,58,.4);
}

.elementor-widget-button.lsc-btn--accent .elementor-button:hover,
.elementor-widget-button.lsc-btn--accent .elementor-button:focus {
  background-color: var(--lsc-accent-dark);
  border-color: var(--lsc-accent-dark);
  color: var(--lsc-white);
  box-shadow: 0 6px 20px rgba(196,135,58,.5);
  transform: translateY(-2px);
}

.elementor-widget-button.lsc-btn--primary .elementor-button {
  background-color: var(--lsc-primary);
  color: var(--lsc-white);
  border-color: var(--lsc-primary);
}

.elementor-widget-button.lsc-btn--primary .elementor-button:hover,
.elementor-widget-button.lsc-btn--primary .elementor-button:focus {
  background-color: var(--lsc-primary-dark);
  border-color: var(--lsc-primary-dark);
  color: var(--lsc-white);
  transform: translateY(-2px);
}

.elementor-widget-button.lsc-btn--ghost .elementor-button {
  background-color: rgba(255,255,255,.15);
  color: var(--lsc-white);
  border-color: rgba(255,255,255,.7);
  backdrop-filter: blur(4px);
}

.elementor-widget-button.lsc-btn--ghost .elementor-button:hover,
.elementor-widget-button.lsc-btn--ghost .elementor-button:focus {
  background-color: rgba(255,255,255,.28);
  color: var(--lsc-white);
  transform: translateY(-2px);
}

.elementor-widget-button.lsc-btn--outline .elementor-button {
  background-color: transparent;
  color: var(--lsc-primary);
  border-color: var(--lsc-primary);
}

.elementor-widget-button.lsc-btn--outline .elementor-button:hover,
.elementor-widget-button.lsc-btn--outline .elementor-button:focus {
  background-color: var(--lsc-primary);
  color: var(--lsc-white);
  transform: translateY(-2px);
}

.elementor-widget-button.lsc-btn--outline-dark .elementor-button {
  background-color: transparent;
  color: var(--lsc-dark);
  border-color: var(--lsc-dark);
}

.elementor-widget-button.lsc-btn--outline-dark .elementor-button:hover,
.elementor-widget-button.lsc-btn--outline-dark .elementor-button:focus {
  background-color: var(--lsc-dark);
  color: var(--lsc-white);
  transform: translateY(-2px);
}

.elementor-widget-button.lsc-btn--sm .elementor-button {
  padding: .5rem 1.25rem;
  font-size: .875rem;
}

/* ---- Elementor button overrides — use LSC accent ---- */
.elementor-widget-button .elementor-button {
  font-family: var(--lsc-font-body);
  font-weight: 700;
  letter-spacing: .025em;
}

/* ---- Elementor image widget ---- */
.elementor-widget-image img {
  max-width: 100%;
  height: auto;
}

/* ---- Elementor divider ---- */
.elementor-widget-divider {
  --divider-color: var(--lsc-border);
}

/* ---- Elementor icon list ---- */
.elementor-icon-list-icon i,
.elementor-icon-list-icon svg {
  color: var(--lsc-primary);
}

/* ---- Elementor section background overlay (use with brand colours) ---- */
.elementor-background-overlay {
  mix-blend-mode: multiply;
}

/* ---- Responsive: Elementor columns stack naturally on smaller screens ---- */
@media (max-width: 767px) {
  .elementor-column {
    width: 100% !important;
  }
}

/* ---- Elementor admin bar offset ---- */
.admin-bar .elementor-editor-active .elementor-section-stretched {
  margin-top: 0;
}

/* ---- LSC branded colour classes for use in Elementor custom CSS ---- */
.lsc-el-primary   { color: var(--lsc-primary) !important; }
.lsc-el-accent    { color: var(--lsc-accent) !important; }
.lsc-el-dark      { color: var(--lsc-dark) !important; }
.lsc-el-bg-primary { background-color: var(--lsc-primary) !important; }
.lsc-el-bg-accent  { background-color: var(--lsc-accent) !important; }
.lsc-el-bg-light   { background-color: var(--lsc-light-bg) !important; }
.lsc-el-bg-dark    { background-color: var(--lsc-dark) !important; }
