/**
 * LD Schools Theme — Main Stylesheet
 */

/* ==========================================================================
   Reset & Variables
   ========================================================================== */
*, *::before, *::after {
    box-sizing: border-box;
}

:root {
    --ldst-primary: #FF4760;
    --ldst-primary-dark: #D2001C;
    --ldst-primary-light: #FFF0F1;
    --ldst-primary-hover: #F12C46;
    --ldst-accent: #FF6430;
    --ldst-accent-light: #FFF3ED;
    --ldst-success: #198754;
    --ldst-warning: #FFC107;
    --ldst-danger: #BC2D3B;
    /* V2 look & feel — soft navy/slate palette (promoted site-wide 2026-07) */
    --ldst-ink: #1B293E;
    --ldst-text: #334155;
    --ldst-text-light: #64748B;
    --ldst-text-muted: #94A3B8;
    --ldst-border: #E7ECF2;
    --ldst-bg: #F8FAFC;
    --ldst-bg-soft: #FFF1F3;
    --ldst-bg-dark: #1D262E;
    --ldst-white: #fff;
    --ldst-shadow: 0 6px 18px rgba(27, 41, 62, 0.06);
    --ldst-shadow-lg: 0 12px 34px rgba(27, 41, 62, 0.09);
    --ldst-radius: 12px;
    --ldst-radius-lg: 16px;
    --ldst-radius-xl: 24px;
    --ldst-transition: 0.2s ease;
    --ldst-font: 'Source Sans 3', 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    /* V2 headings: Satoshi everywhere (was Libre Baskerville serif) */
    --ldst-font-heading: 'Satoshi', 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* V2 heading treatment applied to every heading site-wide */
h1, h2, h3, h4, h5, h6 { color: var(--ldst-ink); letter-spacing: -0.01em; }
.ldst-section-title, .ldst-hero-title { letter-spacing: -0.015em; }

body {
    font-family: var(--ldst-font);
    color: var(--ldst-text);
    background: var(--ldst-white);
    line-height: 1.6;
    margin: 0;
    -webkit-font-smoothing: antialiased;
}

a {
    color: var(--ldst-primary);
    text-decoration: none;
    transition: color var(--ldst-transition);
}

a:hover {
    color: var(--ldst-primary-dark);
}

img {
    max-width: 100%;
    height: auto;
}

/* ==========================================================================
   Layout
   ========================================================================== */
.ldst-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.ldst-content-area {
    padding: 40px 20px;
    min-height: 400px;
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.ldst-btn {
    display: inline-block;
    padding: 10px 24px;
    border: 2px solid transparent;
    border-radius: var(--ldst-radius);
    font-size: 14px;
    font-weight: 600;
    font-family: var(--ldst-font);
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    transition: all var(--ldst-transition);
    line-height: 1.4;
}

.ldst-btn-lg {
    padding: 14px 32px;
    font-size: 16px;
}

.ldst-btn-primary {
    background: var(--ldst-primary);
    color: var(--ldst-white);
    border-color: var(--ldst-primary);
}

.ldst-btn-primary:hover {
    background: var(--ldst-primary-dark);
    border-color: var(--ldst-primary-dark);
    color: var(--ldst-white);
    transform: translateY(-1px);
}

.ldst-btn-outline {
    background: transparent;
    color: var(--ldst-primary);
    border-color: var(--ldst-primary);
}

.ldst-btn-outline:hover {
    background: var(--ldst-primary);
    color: var(--ldst-white);
}

/* ==========================================================================
   Header
   ========================================================================== */
.ldst-header {
    background: var(--ldst-white);
    border-bottom: 1px solid var(--ldst-border);
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.ldst-header .ldst-header-inner {
    max-width: 1400px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 80px;
    gap: 20px;
}

/* Logo */
.ldst-logo {
    /* Must be allowed to shrink: the wordmark is 1148x143, so max-height:50px
       renders it ~401px wide — wider than a phone once the toggle and padding
       are counted. flex-shrink lets it give way; max-width:100% on the img
       then scales it down proportionally. */
    flex: 0 1 auto;
    min-width: 0;
}

.ldst-logo a,
.ldst-site-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--ldst-primary);
    text-decoration: none;
}

.ldst-logo img {
    max-height: 50px;
    max-width: 100%;
    width: auto;
    height: auto;
    display: block;
}

/* Navigation */
.ldst-nav {
    flex: 1;
    display: flex;
    justify-content: flex-end;
}

.ldst-nav-list {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: flex-end;
}

.ldst-nav-list li a {
    display: block;
    padding: 8px 10px;
    font-size: 13.5px;
    font-weight: 400;
    color: var(--ldst-text);
    border-radius: 0;
    transition: color var(--ldst-transition);
    position: relative;
    white-space: nowrap;
}

.ldst-nav-list li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 10px;
    right: 10px;
    height: 2px;
    background: var(--ldst-primary);
    transform: scaleX(0);
    transition: transform 0.25s ease;
}

.ldst-nav-list li a:hover::after,
.ldst-nav-list li.current-menu-item a::after {
    transform: scaleX(1);
}

.ldst-nav-list li a:hover,
.ldst-nav-list li.current-menu-item a {
    color: var(--ldst-primary);
}

/* Contact button in nav */
.ldst-nav-list li:last-child a {
    background: var(--ldst-primary);
    color: var(--ldst-white);
    border-radius: var(--ldst-radius);
    padding: 8px 18px;
    font-weight: 600;
    margin-left: 4px;
}

.ldst-nav-list li:last-child a::after {
    display: none;
}

.ldst-nav-list li:last-child a:hover {
    background: var(--ldst-primary-hover);
    color: var(--ldst-white);
}

/* Wider screens — restore comfortable spacing */
@media (min-width: 1300px) {
    .ldst-nav-list li a {
        padding: 8px 14px;
        font-size: 14.5px;
    }

    .ldst-nav-list li:last-child a {
        padding: 8px 22px;
    }
}

/* Mobile menu toggle */
.ldst-menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    flex: 0 0 auto;
}

.ldst-hamburger {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--ldst-text);
    position: relative;
}

.ldst-hamburger::before,
.ldst-hamburger::after {
    content: '';
    display: block;
    width: 24px;
    height: 2px;
    background: var(--ldst-text);
    position: absolute;
    left: 0;
}

.ldst-hamburger::before { top: -7px; }
.ldst-hamburger::after { top: 7px; }

/* Dropdown submenus (Resources > Data Sources, Account > Log In/Out) */
.ldst-has-submenu {
    position: relative;
}

.ldst-caret {
    font-size: 0.7em;
    margin-left: 2px;
    vertical-align: middle;
}

.ldst-nav-list .ldst-submenu {
    list-style: none;
    margin: 0;
    padding: 6px 0;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 190px;
    background: var(--ldst-white);
    border: 1px solid var(--ldst-border);
    border-radius: var(--ldst-radius);
    box-shadow: var(--ldst-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
    z-index: 200;
}

.ldst-has-submenu:hover > .ldst-submenu,
.ldst-has-submenu:focus-within > .ldst-submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* High-specificity reset so submenu links don't inherit the Contact-button
   (:last-child) styling or the underline animation. */
.ldst-nav-list li .ldst-submenu li a {
    display: block;
    padding: 9px 18px;
    margin: 0;
    background: none;
    color: var(--ldst-text);
    border-radius: 0;
    font-weight: 400;
    white-space: nowrap;
}

.ldst-nav-list li .ldst-submenu li a::after {
    display: none;
}

.ldst-nav-list li .ldst-submenu li a:hover {
    background: rgba(0, 0, 0, 0.04);
    color: var(--ldst-primary);
}

/* ==========================================================================
   Footer
   ========================================================================== */
/* Footer — light "V2" design (Figma 2026-07). Was dark; now light to match. */
.ldst-footer {
    background: #F8FAFC;
    color: #43566B;
    padding: 56px 0 0;
    margin-top: 0;
    border-top: 1px solid #E7ECF2;
}

.ldst-footer a {
    color: #43566B;
    text-decoration: none;
}

.ldst-footer a:hover {
    color: var(--ldst-primary);
}

.ldst-footer-cols {
    display: grid;
    /* Columns 1 and 4 hold the two prose paragraphs — equal ratios so both
       wrap at the same measure (~303px). Their max-width:360px never binds
       here; the column is the real constraint. */
    grid-template-columns: 1.4fr 1fr 1fr 1.4fr;
    gap: 40px;
}

.ldst-footer-about .ldst-footer-brand {
    font-size: 20px;
    font-weight: 800;
    color: #1B293E;
    display: block;
    margin-bottom: 12px;
}

/* Footer logo: standard dark wordmark, reads on the light footer. */
.ldst-footer .custom-logo,
.ldst-footer .custom-logo-link img {
    max-width: 230px;
    height: auto;
    display: block;
    margin-bottom: 14px;
}

.ldst-footer-desc {
    font-size: 14px;
    margin: 0 0 16px;
    line-height: 1.65;
    color: #64748B;
    max-width: 360px;
}

/* Social icons (render only when real URLs are supplied via ldst_footer_socials) */
.ldst-footer-social {
    list-style: none; margin: 0; padding: 0; display: flex; gap: 10px;
}
.ldst-footer-social .ldst-soc {
    width: 36px; height: 36px; border-radius: 50%;
    background: var(--ldst-primary); color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    transition: transform var(--ldst-transition), background var(--ldst-transition);
}
.ldst-footer-social .ldst-soc:hover { background: var(--ldst-primary-dark); color:#fff; transform: translateY(-2px); }

.ldst-footer-col h4 {
    color: var(--ldst-primary);
    margin: 0 0 15px;
    font-size: 16px;
    font-weight: 800;
}

.ldst-footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ldst-footer-links li {
    margin-bottom: 10px;
}

.ldst-footer-links li a {
    font-size: 14px;
}

.ldst-footer-contact {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ldst-footer-contact li {
    margin-bottom: 12px;
    font-size: 14px;
    display: flex;
    gap: 8px;
    align-items: flex-start;
    line-height: 1.5;
}

.ldst-footer-contact li .ldst-icon {
    flex-shrink: 0;
    color: var(--ldst-primary);
}

.ldst-footer-contact strong { color: #1B293E; }
/* Size, leading and wrap width match .ldst-footer-desc. Alignment is left
   to inherit (initial value: start) on both. */
.ldst-footer-disclaimer { margin: 16px 0 0; font-size: 14px; font-style: normal; color: #64748B; line-height: 1.65; max-width: 360px; }

/* Footer search + auth column */
.ldst-footer-search {
    display: flex; align-items: center; gap: 6px;
    background: #fff; border: 1px solid #E7ECF2; border-radius: 999px;
    padding: 5px 6px 5px 16px; max-width: 300px; margin-bottom: 16px;
}
.ldst-footer-search input {
    border: 0; outline: none; background: transparent; flex: 1; min-width: 0;
    font-size: 14px; color: #1B293E; font-family: var(--ldst-font);
}
.ldst-footer-search button {
    flex: 0 0 auto; width: 34px; height: 34px; border: 0; border-radius: 50%;
    background: var(--ldst-primary); color: #fff; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.ldst-footer-search button:hover { background: var(--ldst-primary-dark); }
.ldst-footer-auth { display: flex; gap: 10px; flex-wrap: wrap; }
.ldst-footer-auth .ldst-btn { padding: 9px 22px; }
.ldst-footer .ldst-btn-ghost { background: #fff; color: #1B293E; border-color: #E7ECF2; }
.ldst-footer .ldst-btn-ghost:hover { border-color: var(--ldst-primary); color: var(--ldst-primary); }

.ldst-footer-bottom {
    border-top: 1px solid #E7ECF2;
    padding: 20px 0;
    margin-top: 44px;
    text-align: center;
    font-size: 13px;
    color: #64748B;
}

.ldst-footer-legal {
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 18px;
}

.ldst-footer-legal li {
    margin: 0;
}

.ldst-footer-legal li a {
    color: inherit;
    text-decoration: none;
}

.ldst-footer-legal li a:hover {
    color: var(--ldst-primary);
    text-decoration: underline;
}

/* ==========================================================================
   School page — premium year gating (free = latest year only)
   ========================================================================== */
.ldst-year-lock-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    background: var(--ldst-bg, #f4f7f6);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-left: 4px solid var(--ldst-primary, #2e7d6b);
    border-radius: 10px;
    padding: 16px 20px;
    margin: 0 0 24px;
}

.ldst-year-lock-text {
    font-size: 15px;
    line-height: 1.45;
}

.ldst-year-lock-text strong {
    display: block;
    margin-bottom: 2px;
}

.ldst-data-table .ldst-locked-col {
    color: var(--ldst-muted, #6b7280);
    white-space: nowrap;
}

.ldst-lock-ico {
    font-size: 0.85em;
}

.ldst-data-table .ldst-locked-cell {
    text-align: center;
    background: repeating-linear-gradient(
        45deg,
        rgba(0, 0, 0, 0.02),
        rgba(0, 0, 0, 0.02) 6px,
        rgba(0, 0, 0, 0.05) 6px,
        rgba(0, 0, 0, 0.05) 12px
    );
}

.ldst-locked-val {
    display: inline-block;
    filter: blur(2px);
    letter-spacing: 2px;
    color: var(--ldst-muted, #9ca3af);
    user-select: none;
}

/* ==========================================================================
   Homepage — Hero
   ========================================================================== */
.ldst-hero {
    background: var(--ldst-bg);
    color: var(--ldst-text);
    padding: 70px 0 60px;
    position: relative;
    overflow: hidden;
}

.ldst-hero-inner {
    max-width: 860px;
    margin: 0 auto;
    text-align: center;
}

.ldst-hero-subtitle {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--ldst-primary);
    margin: 0 0 14px;
}

.ldst-hero-title {
    font-family: var(--ldst-font-heading);
    font-size: 50px;
    font-weight: 800;
    text-transform: capitalize;
    margin: 0 auto 16px;
    line-height: 1.1;
    max-width: 860px;
    color: var(--ldst-text);
}

.ldst-hero-title .ldst-highlight {
    color: var(--ldst-primary);
    position: relative;
    white-space: nowrap;
}

.ldst-hero-desc {
    font-size: 19px;
    color: var(--ldst-text-light);
    max-width: 600px;
    margin: 0 auto 40px;
    line-height: 1.6;
}

.ldst-hero-visual {
    position: relative;
    max-width: 640px;
    margin: 16px auto 0;
    z-index: 2;
}

.ldst-hero-image {
    max-width: 440px;
    height: auto;
    position: relative;
    z-index: 2;
    margin: 0 auto;
    display: block;
}

/* Blob is an accent BEHIND and smaller than the student (v1: girl is larger) */
.ldst-hero-blob {
    position: absolute;
    width: 360px;
    max-width: 80%;
    height: auto;
    top: 48%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}

/* Floating decorative icons around the hero image */
.ldst-hero-float {
    position: absolute;
    z-index: 3;
    width: 64px;
    height: 64px;
    animation: ldst-float 4s ease-in-out infinite;
    filter: drop-shadow(0 6px 12px rgba(0,0,0,0.12));
}

.ldst-float-1 { top: 14%; left: 3%;   animation-delay: 0s; }
.ldst-float-2 { top: 10%; right: 5%;  animation-delay: 0.6s; }
.ldst-float-3 { top: 40%; left: -4%;  animation-delay: 1.2s; }
.ldst-float-4 { top: 36%; right: -5%; animation-delay: 1.8s; }
.ldst-float-5 { bottom: 18%; left: 0%; animation-delay: 2.4s; }
.ldst-float-6 { bottom: 12%; right: 0%; animation-delay: 3.0s; }
.ldst-float-7 { top: 62%; right: 6%; animation-delay: 2.0s; }
.ldst-hero-hat { width: 86px; height: 86px; bottom: 4%; left: 6%; animation-delay: 1.4s; }

@keyframes ldst-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

.ldst-hero-search {
    max-width: 680px;
    margin: 6px auto 0;
    position: relative;
    z-index: 4;
}

.ldst-hero-search .ldst-search-inline {
    display: flex;
    align-items: center;
    background: var(--ldst-bg-dark);
    border-radius: 50px;
    box-shadow: var(--ldst-shadow-lg);
    overflow: hidden;
    border: none;
    padding: 6px 6px 6px 10px;
    margin-top: -10px;
}

.ldst-hero-search .ldst-search-inline input {
    flex: 1;
    border: none;
    padding: 14px 20px;
    font-size: 15px;
    font-family: var(--ldst-font);
    outline: none;
    background: transparent;
    color: #fff;
}

.ldst-hero-search .ldst-search-inline input::placeholder {
    color: rgba(255, 255, 255, 0.6);
}

.ldst-hero-search .ldst-search-inline button {
    background: var(--ldst-primary);
    color: var(--ldst-white);
    border: none;
    width: 52px;
    height: 46px;
    border-radius: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--ldst-transition);
    flex-shrink: 0;
}

.ldst-hero-search .ldst-search-inline button:hover {
    background: var(--ldst-primary-hover);
}

.ldst-hero-source {
    font-size: 12px;
    color: var(--ldst-text-muted);
    margin: 16px auto 0;
    max-width: 680px;
    line-height: 1.5;
}

/* Homepage — "Why Choose Us" Features */
.ldst-why-section {
    padding: 70px 0;
}

.ldst-section-header {
    text-align: center;
    margin-bottom: 50px;
}

.ldst-section-label {
    font-size: 16px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--ldst-primary);
    margin: 0 0 10px;
}

.ldst-section-title {
    font-family: var(--ldst-font-heading);
    font-size: clamp(30px, 4vw, 46px);
    font-weight: 800;
    text-transform: capitalize;
    color: var(--ldst-text);
    margin: 0;
    line-height: 1.15;
}

.ldst-section-title .ldst-highlight {
    color: var(--ldst-primary);
}

.ldst-features-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
}

.ldst-feature {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    text-align: left;
    padding: 20px;
    border-radius: var(--ldst-radius);
    transition: background var(--ldst-transition);
}

.ldst-feature:hover {
    background: var(--ldst-bg);
}

.ldst-feature-icon {
    flex-shrink: 0;
    width: 88px;
    height: 88px;
}

.ldst-feature-icon img {
    width: 88px;
    height: 88px;
    object-fit: contain;
}

.ldst-feature h3 {
    font-family: var(--ldst-font-heading);
    font-size: 19px;
    color: var(--ldst-text);
    margin: 0 0 8px;
    font-weight: 600;
    text-transform: capitalize;
    line-height: 1.4;
}

.ldst-feature p {
    font-size: 15px;
    color: var(--ldst-text-light);
    margin: 0;
    line-height: 1.6;
}

/* Homepage — CTA Banner */
.ldst-cta-banner {
    background: var(--ldst-primary);
    padding: 80px 0;
    position: relative;
    /* Modern soft shadow to lift the band off the page */
    box-shadow: 0 14px 34px rgba(20, 28, 38, 0.14);
}
/* Centered downward triangle ("arrow" divider, echoing the v1 design) */
.ldst-cta-banner::after {
    content: "";
    position: absolute;
    bottom: -22px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 26px solid transparent;
    border-right: 26px solid transparent;
    border-top: 22px solid var(--ldst-primary);
    z-index: 2;
}

.ldst-cta-banner-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
}

.ldst-cta-banner h2 {
    font-family: var(--ldst-font-heading);
    font-size: clamp(28px, 3.6vw, 44px);
    font-weight: 800;
    text-transform: capitalize;
    color: var(--ldst-white);
    margin: 0;
    line-height: 1.15;
    text-align: left;
    flex: 1;
}

.ldst-cta-banner .ldst-btn {
    background: var(--ldst-white);
    color: var(--ldst-primary);
    border-color: var(--ldst-white);
    white-space: nowrap;
    font-size: 15px;
    flex-shrink: 0;
}

.ldst-cta-banner .ldst-btn:hover {
    background: var(--ldst-primary-hover);
    color: var(--ldst-white);
    border-color: var(--ldst-primary-hover);
}

/* Homepage — About Us Section */
.ldst-about-section {
    padding: 70px 0;
    margin-bottom: -72px;
}

.ldst-about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
}

.ldst-about-image img {
    width: 100%;
    height: auto;
    display: block;
}

.ldst-about-content .ldst-section-label {
    text-align: left;
}

.ldst-about-content .ldst-section-title {
    text-align: left;
    margin-bottom: 15px;
}

.ldst-about-content p {
    color: var(--ldst-text-light);
    line-height: 1.7;
    margin-bottom: 20px;
}

/* Homepage — Scorecard Preview */
.ldst-scorecard-section {
    background: #EFEFEF;
    padding: 80px 0;
    position: relative;
    overflow: hidden;
}

.ldst-scorecard-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
}

.ldst-scorecard-info .ldst-section-label {
    text-align: left;
    color: var(--ldst-primary);
}

.ldst-scorecard-info .ldst-section-title {
    text-align: left;
    color: var(--ldst-text);
    margin-bottom: 15px;
}

.ldst-scorecard-info p {
    color: var(--ldst-text-light);
    line-height: 1.7;
    margin-bottom: 25px;
}

.ldst-scorecard-info .ldst-btn {
    background: var(--ldst-primary);
    color: var(--ldst-white);
    border-color: var(--ldst-primary);
}

.ldst-scorecard-info .ldst-btn:hover {
    background: var(--ldst-primary-hover);
    color: var(--ldst-white);
}

.ldst-scorecard-bars {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ldst-bar-item h4 {
    font-family: var(--ldst-font-heading);
    font-size: 16px;
    font-weight: 600;
    text-transform: capitalize;
    color: var(--ldst-text);
    margin: 0 0 8px;
}

.ldst-progress-track {
    width: 100%;
    height: 16px;
    background: var(--ldst-bg);
    border-radius: 50px;
    overflow: hidden;
    position: relative;
}

/* Starts at 0; JS sets the target width on scroll-in to animate the fill (v1 behavior) */
.ldst-progress-value {
    height: 100%;
    width: 0;
    background: var(--ldst-primary);
    border-radius: 50px;
    transition: width 1.4s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.ldst-bar-pct {
    font-size: 12px;
    color: var(--ldst-text-muted);
    margin-top: 4px;
    text-align: right;
}

/* Homepage — Stats Bar */
.ldst-stats-bar {
    background: var(--ldst-bg);
    padding: 40px 0;
}

.ldst-stats-bar-inner {
    display: flex;
    justify-content: center;
    gap: 60px;
}

.ldst-stat-item {
    text-align: center;
}

.ldst-stat-number {
    display: block;
    font-size: 36px;
    font-weight: 700;
    color: var(--ldst-primary);
}

.ldst-stat-text {
    font-size: 14px;
    color: var(--ldst-text-light);
}

/* Homepage — CTA */
.ldst-home-cta {
    padding: 60px 0;
    text-align: center;
}

.ldst-home-cta h2 {
    font-family: var(--ldst-font-heading);
    font-size: 28px;
    color: var(--ldst-text);
    margin: 0 0 10px;
}

.ldst-home-cta p {
    color: var(--ldst-text-light);
    max-width: 500px;
    margin: 0 auto 25px;
}

/* ==========================================================================
   Single School — Banner
   ========================================================================== */
.ldst-page-banner {
    background: var(--ldst-primary);
    color: var(--ldst-white);
    padding: 45px 0;
    text-align: center;
}

.ldst-page-banner h1 {
    font-family: var(--ldst-font-heading);
    font-size: 32px;
    margin: 0 0 8px;
}

.ldst-page-banner p {
    font-size: 16px;
    opacity: 0.9;
    margin: 0;
}

.ldst-school-banner {
    background: var(--ldst-primary);
    color: var(--ldst-white);
    padding: 40px 0;
    text-align: center;
}

.ldst-school-banner-title {
    font-family: var(--ldst-font-heading);
    font-size: 34px;
    font-weight: 700;
    color: var(--ldst-white);
    margin: 0 0 8px;
}

.ldst-school-banner-desc {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.9);
    max-width: 650px;
    margin: 0 auto;
    line-height: 1.5;
}

/* Breadcrumb */
.ldst-breadcrumb {
    margin-bottom: 15px;
}

.ldst-back-link {
    color: var(--ldst-primary);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.ldst-back-link:hover {
    color: var(--ldst-primary-dark);
    text-decoration: underline;
}

.ldst-school-name {
    font-family: var(--ldst-font-heading);
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--ldst-text);
}

.ldst-school-intro {
    font-size: 16px;
    line-height: 1.6;
    color: var(--ldst-text-light);
    max-width: 760px;
    margin: 0 0 18px;
}

/* H2 wrapper around accordion triggers — heading semantics, no visual change */
.ldst-accordion-heading {
    margin: 0;
    font: inherit;
}

/* SVG icons in contact list */
.ldst-contact-item .ldst-icon {
    color: var(--ldst-primary);
}

.ldst-contact-item .ldst-icon svg {
    vertical-align: middle;
}

/* Single School — Header Grid */
.ldst-school-header {
    padding: 30px 0;
}

.ldst-school-header-grid {
    display: grid;
    grid-template-columns: 7fr 5fr;
    gap: 30px;
}

/* Two columns — a single column left a lot of dead space to the right of
   the school profile. The rows are conditional (ranking status, median
   income and the TEA link may not render), so the grid flows whatever is
   present instead of assuming a fixed count. */
.ldst-info-list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 32px;
}

.ldst-info-list li {
    padding: 6px 0;
    font-size: 14px;
    border-bottom: 1px solid var(--ldst-border);
    min-width: 0;
    overflow-wrap: anywhere;
}

/* The TEA link closes the block rather than being a data point — keep it
   full width on its own row, with no rule under it. */
.ldst-info-list li.ldst-info-link {
    grid-column: 1 / -1;
    border-bottom: none;
}

.ldst-info-list li strong {
    color: var(--ldst-text);
}

@media (max-width: 768px) {
    .ldst-info-list {
        grid-template-columns: minmax(0, 1fr);
    }
}

.ldst-contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.ldst-contact-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    font-size: 14px;
}

.ldst-icon {
    font-size: 16px;
    width: 24px;
    text-align: center;
}

.ldst-school-image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--ldst-radius-lg);
    box-shadow: var(--ldst-shadow);
}

/* Branded fallback when no Street View photo is available */
.ldst-school-photo-placeholder {
    width: 100%;
    aspect-ratio: 640 / 420;
    border-radius: var(--ldst-radius-lg);
    box-shadow: var(--ldst-shadow);
    background: linear-gradient(135deg, var(--ldst-primary), var(--ldst-primary-hover));
    color: rgba(255, 255, 255, 0.95);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    text-align: center;
    padding: 24px;
}

.ldst-placeholder-name {
    font-family: var(--ldst-font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 1.3;
    max-width: 90%;
}

/* ==========================================================================
   Single School — 3 Metric Circles
   ========================================================================== */
.ldst-metrics-section {
    padding: 30px 0;
    background: var(--ldst-bg);
}

.ldst-metrics-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.ldst-metric {
    text-align: center;
}

.ldst-metric-circle {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: var(--ldst-primary);
    color: var(--ldst-white);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    box-shadow: var(--ldst-shadow);
}

.ldst-metric-value {
    font-size: 32px;
    font-weight: 700;
}

.ldst-metric-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--ldst-text);
}

/* Rating circle colors */
.ldst-rating-green {
    background: var(--ldst-success);
}

.ldst-rating-yellow {
    background: var(--ldst-warning);
    color: var(--ldst-text);
}

.ldst-rating-not-rated {
    background: #adb5bd;
}

.ldst-rating-other {
    background: var(--ldst-accent);
}

/* Overall SPED Support Score circle — colored by percentile band (Siva 2026-07):
   90%+ green, 80–89.9% yellow, below 80% orange, no percentile = neutral. */
.ldst-metric-circle.ldst-score-green  { background: var(--ldst-success); }
.ldst-metric-circle.ldst-score-yellow { background: var(--ldst-warning); color: var(--ldst-ink); }
.ldst-metric-circle.ldst-score-orange { background: #F97316; }
.ldst-metric-circle.ldst-score-neutral { background: #94A3B8; }

/* "/100" suffix on scores */
.ldst-metric-value .ldst-out-of { font-size: 0.5em; font-weight: 600; opacity: 0.82; }
.ldst-stat-number .ldst-out-of { font-size: 0.5em; font-weight: 600; color: var(--ldst-text-muted); }

/* ==========================================================================
   Single School — 6 Stat Boxes
   ========================================================================== */
.ldst-stats-section {
    padding: 30px 0;
}

.ldst-stats-title {
    font-family: var(--ldst-font-heading);
    font-size: clamp(20px, 2.4vw, 26px);
    font-weight: 700;
    color: var(--ldst-text);
    margin: 0 0 16px;
    line-height: 1.2;
}

.ldst-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.ldst-stat-box {
    background: var(--ldst-white);
    border: 1px solid var(--ldst-border);
    border-radius: var(--ldst-radius);
    padding: 25px 15px;
    text-align: center;
    box-shadow: var(--ldst-shadow);
}

.ldst-stat-number {
    font-size: 28px;
    font-weight: 700;
    color: var(--ldst-primary);
    margin-bottom: 5px;
}

.ldst-stat-label {
    font-size: 13px;
    color: var(--ldst-text-light);
    font-weight: 500;
}

/* ==========================================================================
   Single School — Accordion
   ========================================================================== */
.ldst-accordion-section {
    padding: 30px 0 50px;
}

.ldst-accordion-panel {
    border: 1px solid var(--ldst-border);
    border-radius: var(--ldst-radius);
    margin-bottom: 8px;
    overflow: hidden;
}

.ldst-accordion-trigger {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    background: var(--ldst-bg);
    border: none;
    cursor: pointer;
    font-size: 15px;
    font-weight: 600;
    color: var(--ldst-text);
    text-align: left;
    font-family: var(--ldst-font);
    transition: background var(--ldst-transition);
}

.ldst-accordion-trigger:hover {
    background: var(--ldst-primary-light);
}

.ldst-accordion-icon {
    font-size: 14px;
    transition: transform var(--ldst-transition);
}

.ldst-accordion-panel.open .ldst-accordion-icon {
    transform: rotate(90deg);
}

.ldst-accordion-body {
    border-top: 1px solid var(--ldst-border);
}

/* Data tables */
.ldst-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.ldst-data-table thead th {
    background: var(--ldst-primary);
    color: var(--ldst-white);
    padding: 10px 12px;
    font-weight: 600;
    text-align: center;
}

.ldst-data-table thead th.ldst-label-col {
    text-align: left;
    width: 55%;
}

.ldst-data-table thead th.ldst-year-col {
    width: 15%;
    min-width: 80px;
}

.ldst-data-table tbody td {
    padding: 8px 12px;
    border-bottom: 1px solid var(--ldst-border);
}

.ldst-data-table tbody td.ldst-label-col {
    font-weight: 500;
    color: var(--ldst-text);
}

.ldst-data-table tbody td.ldst-value-col {
    text-align: center;
    color: var(--ldst-text-light);
}

.ldst-data-table tbody tr:nth-child(even) {
    background: rgba(0, 0, 0, 0.02);
}

.ldst-data-table tbody tr:last-child td {
    border-bottom: none;
}

/* ==========================================================================
   CTA Section
   ========================================================================== */
.ldst-cta-section {
    background: var(--ldst-primary-light);
    padding: 40px 0;
    text-align: center;
}

.ldst-cta-section h2 {
    font-size: 24px;
    color: var(--ldst-ink);
    margin: 0 0 8px;
}

.ldst-cta-section p {
    color: var(--ldst-text-light);
    margin: 0 0 20px;
}

/* ==========================================================================
   Subscribe Page — Pricing Cards
   ========================================================================== */
.ldst-subscribe-page {
    padding: 40px 20px;
}

.ldst-pricing-header {
    text-align: center;
    margin-bottom: 40px;
}

.ldst-pricing-header h1 {
    font-size: 30px;
    color: var(--ldst-ink);
    margin: 0 0 10px;
}

.ldst-pricing-cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
    max-width: 700px;
    margin: 0 auto;
}

.ldst-pricing-card {
    border: 2px solid var(--ldst-border);
    border-radius: var(--ldst-radius-lg);
    padding: 30px;
    text-align: center;
    position: relative;
    transition: box-shadow var(--ldst-transition);
}

.ldst-pricing-card:hover {
    box-shadow: var(--ldst-shadow-lg);
}

.ldst-pricing-featured {
    border-color: var(--ldst-primary);
}

.ldst-pricing-badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--ldst-accent);
    color: var(--ldst-white);
    padding: 4px 16px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
}

.ldst-pricing-name {
    font-size: 18px;
    font-weight: 600;
    color: var(--ldst-text);
    margin-bottom: 10px;
}

.ldst-price-amount {
    font-size: 42px;
    font-weight: 700;
    color: var(--ldst-primary);
}

.ldst-price-period {
    font-size: 16px;
    color: var(--ldst-text-light);
}

.ldst-pricing-savings {
    color: var(--ldst-success);
    font-size: 13px;
    font-weight: 600;
    margin-top: 5px;
}

.ldst-pricing-features {
    list-style: none;
    padding: 0;
    margin: 20px 0;
    text-align: left;
}

.ldst-pricing-features li {
    padding: 6px 0;
    font-size: 14px;
    color: var(--ldst-text-light);
}

.ldst-pricing-features li::before {
    content: '✓ ';
    color: var(--ldst-success);
    font-weight: 700;
}

.ldst-subscribe-active {
    text-align: center;
    padding: 40px 0;
}

/* ==========================================================================
   Blog / Posts
   ========================================================================== */
.ldst-page-title {
    font-size: 28px;
    color: var(--ldst-ink);
    margin: 0 0 25px;
}

.ldst-posts-list {
    display: grid;
    gap: 25px;
}

.ldst-post-card {
    display: flex;
    gap: 20px;
    background: var(--ldst-white);
    border: 1px solid var(--ldst-border);
    border-radius: var(--ldst-radius);
    overflow: hidden;
    transition: box-shadow var(--ldst-transition);
}

.ldst-post-card:hover {
    box-shadow: var(--ldst-shadow);
}

.ldst-post-thumb {
    flex-shrink: 0;
    width: 200px;
}

.ldst-post-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ldst-post-content {
    padding: 20px;
    flex: 1;
}

.ldst-post-title {
    font-size: 18px;
    margin: 0 0 8px;
}

.ldst-post-title a {
    color: var(--ldst-text);
}

.ldst-post-title a:hover {
    color: var(--ldst-primary);
}

.ldst-post-meta {
    font-size: 13px;
    color: var(--ldst-text-muted);
    margin-bottom: 8px;
}

.ldst-post-excerpt {
    font-size: 14px;
    color: var(--ldst-text-light);
}

/* Page content */
.ldst-entry-content {
    font-size: 16px;
    line-height: 1.8;
}

.ldst-entry-content h2, .ldst-entry-content h3 {
    font-family: var(--ldst-font-heading);
    color: var(--ldst-ink);
    font-weight: 800;
    letter-spacing: -0.01em;
    margin-top: 34px;
}
.ldst-entry-content h2 { font-size: 1.7rem; }
.ldst-entry-content h3 { font-size: 1.25rem; }

.ldst-entry-content ul, .ldst-entry-content ol {
    padding-left: 25px;
}

.ldst-entry-content a {
    text-decoration: underline;
}

/* 404 */
.ldst-404 {
    text-align: center;
    padding: 80px 20px;
}

.ldst-404 h1 {
    font-size: 36px;
    color: var(--ldst-ink);
}

.ldst-404-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-top: 25px;
}

/* ==========================================================================
   WordPress admin bar offset
   ========================================================================== */
body.admin-bar .ldst-header {
    top: 32px;
}

@media (max-width: 782px) {
    body.admin-bar .ldst-header {
        top: 46px;
    }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 992px) {
    .ldst-school-header-grid {
        grid-template-columns: 1fr;
    }

    .ldst-school-thumb {
        order: -1;
        max-width: 400px;
    }

    .ldst-metrics-row {
        grid-template-columns: repeat(3, 1fr);
        gap: 15px;
    }

    .ldst-metric-circle {
        width: 110px;
        height: 110px;
    }

    .ldst-metric-value {
        font-size: 24px;
    }

    /* Hide floating hero icons on smaller screens */
    .ldst-hero-float {
        display: none;
    }

    /* Stack features 2x2 on tablets */
    .ldst-features-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Header collapses to hamburger at 1024px to support the long nav */
@media (max-width: 1024px) {
    .ldst-menu-toggle {
        display: block;
    }

    /* Tighter gap + a shorter wordmark once the nav collapses to a toggle. */
    .ldst-header .ldst-header-inner {
        gap: 12px;
    }

    .ldst-logo img {
        max-height: 40px;
    }

    .ldst-nav {
        display: none;
        position: absolute;
        top: 80px;
        left: 0;
        right: 0;
        background: var(--ldst-white);
        border-bottom: 1px solid var(--ldst-border);
        box-shadow: var(--ldst-shadow-lg);
        padding: 15px 20px;
        flex: unset;
    }

    .ldst-nav.open {
        display: block;
    }

    .ldst-nav-list {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 0;
    }

    .ldst-nav-list li a {
        padding: 12px 0;
        font-size: 15px;
        border-bottom: 1px solid var(--ldst-border);
    }

    .ldst-nav-list li:last-child a {
        display: inline-block;
        margin: 12px 0 0;
        border-bottom: none;
    }

    /* Submenus expand inline (indented) inside the open mobile panel */
    .ldst-nav-list .ldst-submenu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        border: none;
        border-radius: 0;
        padding: 0 0 0 16px;
        min-width: 0;
    }

    .ldst-nav-list li .ldst-submenu li a {
        padding: 12px 0;
        border-bottom: 1px solid var(--ldst-border);
    }

    .ldst-caret {
        display: none;
    }
}

@media (max-width: 768px) {
    /* Hero */
    .ldst-hero {
        padding: 40px 0;
    }

    .ldst-hero-inner {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .ldst-hero-visual {
        max-width: 280px;
    }

    .ldst-hero-title {
        font-size: 28px;
    }

    .ldst-hero-desc {
        margin-left: auto;
        margin-right: auto;
    }

    .ldst-hero-actions {
        flex-direction: column;
        align-items: center;
    }

    .ldst-hero-search {
        margin-left: auto;
        margin-right: auto;
    }

    /* Features */
    .ldst-features-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    /* CTA Banner */
    .ldst-cta-banner-inner {
        flex-direction: column;
        text-align: center;
    }

    /* About */
    .ldst-about-grid {
        grid-template-columns: 1fr;
    }

    .ldst-about-content .ldst-section-label,
    .ldst-about-content .ldst-section-title {
        text-align: center;
    }

    /* Scorecard */
    .ldst-scorecard-grid {
        grid-template-columns: 1fr;
    }

    .ldst-scorecard-info .ldst-section-label,
    .ldst-scorecard-info .ldst-section-title {
        text-align: center;
    }

    /* Stats */
    .ldst-stats-bar-inner {
        gap: 30px;
    }

    .ldst-stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .ldst-metrics-row {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    /* Data tables */
    .ldst-data-table {
        font-size: 12px;
    }

    .ldst-data-table thead th,
    .ldst-data-table tbody td {
        padding: 6px 8px;
    }

    /* Footer */
    .ldst-footer-cols {
        grid-template-columns: 1fr 1fr;
    }

    /* Pricing */
    .ldst-pricing-cards {
        grid-template-columns: 1fr;
    }

    /* Blog */
    .ldst-post-card {
        flex-direction: column;
    }

    .ldst-post-thumb {
        width: 100%;
        height: 200px;
    }
}

@media (max-width: 480px) {
    .ldst-school-name {
        font-size: 22px;
    }

    .ldst-stats-grid {
        grid-template-columns: 1fr;
    }

    .ldst-footer-cols {
        grid-template-columns: 1fr;
    }

    .ldst-stats-bar-inner {
        flex-direction: column;
        gap: 15px;
    }
}

/* ==========================================================================
   Transition Services Page
   ========================================================================== */
.ldst-transition-page {
    padding: 3rem 0 4rem;
}

.ldst-content-section {
    margin-bottom: 3rem;
}

.ldst-content-section h2 {
    font-size: 1.6rem;
    /* Ink, not coral — headings follow the homepage anchor site-wide.
       Coral is an accent (.ldsh-accent), never a whole heading. */
    color: var(--ldst-ink);
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--ldst-primary-light);
}

.ldst-content-section p {
    color: var(--ldst-text);
    line-height: 1.8;
    margin-bottom: 1rem;
}

.ldst-service-card {
    background: var(--ldst-white);
    border: 1px solid var(--ldst-border);
    border-left: 4px solid var(--ldst-primary);
    border-radius: var(--ldst-radius);
    padding: 1.5rem 2rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--ldst-shadow);
}

.ldst-service-card h3 {
    font-size: 1.2rem;
    /* Ink, matching the homepage anchor. The card keeps its coral left rule
       as the accent. */
    color: var(--ldst-ink);
    margin-bottom: 0.75rem;
}

.ldst-service-card p {
    margin-bottom: 0.75rem;
    line-height: 1.7;
}

.ldst-service-card ul {
    margin: 0.75rem 0 0.75rem 1.5rem;
    padding: 0;
}

.ldst-service-card ul li {
    margin-bottom: 0.5rem;
    line-height: 1.6;
    color: var(--ldst-text);
}

.ldst-transition-cta {
    text-align: center;
    background: var(--ldst-primary-light);
    padding: 3rem 2rem;
    border-radius: var(--ldst-radius-lg);
}

.ldst-transition-cta h2 {
    border-bottom: none !important;
    text-align: center;
}

/* ==========================================================================
   Print
   ========================================================================== */
@media print {
    .ldst-header,
    .ldst-footer,
    .ldst-cta-section,
    .ldst-hero-actions {
        display: none !important;
    }

    .ldst-main {
        padding: 0;
    }

    .ldst-accordion-body {
        display: block !important;
    }

    .ldst-data-table {
        page-break-inside: avoid;
    }
}

/* ==========================================================================
   Explore Schools Page — full-width layout overrides
   ========================================================================== */
.ldst-page-explore {
    /* Remove any default page padding — banner + form are edge-to-edge */
}

.ldst-page-explore .lds-search-wrapper {
    max-width: none;
    padding: 0;
}

.ldst-page-explore .lds-search-banner {
    /* Full-width blue banner — inherits from plugin CSS */
}

.ldst-page-explore .lds-search-form-section {
    max-width: 1200px;
    /* `margin: 0 auto` here was resetting the plugin's margin-top back to 0 —
       shorthand sets all four sides, and this selector is more specific.
       Keep the top gap explicit so the card clears the banner. */
    margin: 30px auto 0;
}

.ldst-page-explore .lds-results-section {
    max-width: 1200px;
    margin: 30px auto;
}

.ldst-page-explore .lds-glossary-section {
    max-width: 1200px;
    margin: 50px auto 0;
    margin-bottom: 50px;
}

/* Compare page — also full-width banner */
.ldst-page-compare .lds-compare-wrapper {
    padding: 0 20px;
}

/* ==========================================================================
   School Detail FAQ Section (paired with FAQPage JSON-LD)
   ========================================================================== */
/* FAQ accordion — one treatment, matching the homepage (the design anchor).
   Used by the FAQ page (.ldst-faq-q / .ldst-faq-a) and the school-page FAQ
   (.ldst-faq-question / .ldst-faq-answer). Both were still on the v1 look:
   #e2e8f0 hairlines, 6px corners, navy fallback. */
.ldst-faq-section {
    padding: 60px 0;
    background: var(--ldst-bg);
}
.ldst-faq-section .ldst-section-title {
    text-align: center;
    margin: 0 0 30px;
    font-size: 28px;
    color: var(--ldst-ink);
}

/* Cards in a stack, like .ldsh-faq-list on the homepage. */
.ldst-faq-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 1.5rem 0 0;
}

.ldst-faq-item {
    background: var(--ldst-white);
    border: 1px solid var(--ldst-border);
    border-radius: var(--ldst-radius);
    padding: 6px 20px;
}

.ldst-faq-item[open] {
    box-shadow: var(--ldst-shadow);
}

/* Question row — both class variants. */
.ldst-faq-question,
.ldst-faq-q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    cursor: pointer;
    list-style: none;
    padding: 16px 0;
    margin: 0;
    font-family: var(--ldst-font-heading);
    font-weight: 700;
    font-size: 1rem;
    color: var(--ldst-ink);
    user-select: none;
    position: static;
}

.ldst-faq-question::-webkit-details-marker,
.ldst-faq-q::-webkit-details-marker { display: none; }

/* Coral chevron in a soft disc — the homepage's .ldsh-faq-chevron. */
.ldst-faq-question::after,
.ldst-faq-q::after {
    content: '';
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    position: static;
    transform: none;
    background: var(--ldst-primary-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%23FF4760' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/13px no-repeat;
    transition: transform var(--ldst-transition);
}

.ldst-faq-item[open] .ldst-faq-question::after,
.ldst-faq-item[open] .ldst-faq-q::after {
    content: '';
    transform: rotate(180deg);
}

/* Keyboard focus reads coral, not the browser's blue outline. */
.ldst-faq-question:focus-visible,
.ldst-faq-q:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--ldst-primary-light);
    border-radius: var(--ldst-radius);
}

.ldst-faq-answer,
.ldst-faq-a {
    padding: 0 0 18px;
    font-size: 0.94rem;
    line-height: 1.6;
    color: var(--ldst-text-light);
}

.ldst-faq-answer p,
.ldst-faq-a p { margin: 0 0 0.75rem; }
.ldst-faq-answer p:last-child,
.ldst-faq-a p:last-child { margin-bottom: 0; }
.ldst-faq-a ul { margin: 0.5rem 0 0.5rem 1.25rem; }

/* ==========================================================================
   Auth — free account registration (page-register.php)
   ========================================================================== */
.ldst-auth-page {
    padding: 60px 20px 80px;
}

.ldst-auth-card {
    max-width: 480px;
    margin: 0 auto;
    background: var(--ldst-white);
    border: 1px solid var(--ldst-border);
    border-radius: var(--ldst-radius);
    box-shadow: var(--ldst-shadow-lg);
    padding: 40px 36px;
}

.ldst-auth-card .ldst-section-label {
    color: var(--ldst-primary);
    text-align: left;
}

.ldst-auth-title {
    font-family: var(--ldst-font-heading);
    font-size: 30px;
    font-weight: 800;
    text-transform: capitalize;
    color: var(--ldst-text);
    margin: 0 0 10px;
}

.ldst-auth-sub {
    color: var(--ldst-text-light);
    margin: 0 0 24px;
    line-height: 1.6;
}

.ldst-auth-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ldst-auth-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ldst-text);
}

.ldst-auth-field small {
    font-weight: 400;
    color: var(--ldst-text-muted);
}

.ldst-auth-field input,
.ldst-auth-field select {
    font-family: var(--ldst-font);
    font-size: 15px;
    font-weight: 400;
    padding: 11px 14px;
    border: 1px solid var(--ldst-border);
    border-radius: var(--ldst-radius);
    background: var(--ldst-white);
    color: var(--ldst-text);
    width: 100%;
}

.ldst-auth-field input:focus,
.ldst-auth-field select:focus {
    outline: none;
    border-color: var(--ldst-primary);
    box-shadow: 0 0 0 2px rgba(255, 71, 96, 0.15);
}

.ldst-auth-hint {
    font-weight: 400;
    color: var(--ldst-text-muted);
    font-size: 12px;
}

.ldst-auth-form .ldst-btn {
    margin-top: 6px;
    justify-content: center;
}

.ldst-auth-error {
    display: none;
    background: #fde8eb;
    color: #b3132b;
    border: 1px solid #f5c2cb;
    border-radius: var(--ldst-radius);
    padding: 10px 14px;
    font-size: 14px;
}

.ldst-auth-alt {
    font-size: 14px;
    color: var(--ldst-text-light);
    margin: 16px 0 0;
    text-align: center;
}

/* Honeypot — visually hidden, off-screen, not display:none (bots skip those) */
.lds-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* ==========================================================================
   Account funnel — home "create an account / subscribe" + school-page CTA
   ========================================================================== */
.ldst-account-funnel {
    background: var(--ldst-bg);
    padding: 70px 0;
}

.ldst-account-funnel-sub {
    color: var(--ldst-text-light);
    margin: 10px auto 0;
    max-width: 600px;
}

.ldst-plans-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 360px));
    gap: 28px;
    justify-content: center;
    align-items: stretch;
    margin-top: 36px;
}

.ldst-plan {
    position: relative;
    background: var(--ldst-white);
    border: 1px solid var(--ldst-border);
    border-radius: var(--ldst-radius-lg);
    box-shadow: var(--ldst-shadow);
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    text-align: left;
}

.ldst-plan-featured {
    border-color: var(--ldst-primary);
    box-shadow: var(--ldst-shadow-lg);
}

.ldst-plan-badge {
    position: absolute;
    top: -12px;
    left: 28px;
    background: var(--ldst-primary);
    color: var(--ldst-white);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 4px 12px;
    border-radius: 50px;
}

.ldst-plan-name {
    font-family: var(--ldst-font-heading);
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 6px;
    color: var(--ldst-text);
}

.ldst-plan-price {
    font-size: 34px;
    font-weight: 800;
    color: var(--ldst-text);
    margin: 0 0 16px;
    line-height: 1;
}

.ldst-plan-price span {
    font-size: 16px;
    font-weight: 600;
    color: var(--ldst-text-light);
}

.ldst-plan-price small {
    display: block;
    font-size: 13px;
    font-weight: 400;
    color: var(--ldst-text-muted);
    margin-top: 4px;
}

.ldst-plan-features {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
    flex: 1;
}

.ldst-plan-features li {
    position: relative;
    padding: 6px 0 6px 26px;
    color: var(--ldst-text-light);
    font-size: 15px;
}

.ldst-plan-features li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--ldst-primary);
    font-weight: 700;
}

.ldst-plan .ldst-btn {
    text-align: center;
}

.ldst-plan-have {
    color: var(--ldst-success);
    font-weight: 600;
    font-size: 15px;
}

/* Footer CTA link */
.ldst-footer-cta {
    margin: 16px 0 0;
}

.ldst-footer-cta a {
    display: inline-block;
    color: var(--ldst-white);
    font-weight: 700;
    border-bottom: 2px solid var(--ldst-primary);
    padding-bottom: 2px;
}

.ldst-footer-cta a:hover {
    color: var(--ldst-primary);
}

/* School-page logged-out CTA band */
.ldst-school-cta {
    background: var(--ldst-bg-dark);
    color: var(--ldst-white);
    padding: 40px 0;
}

.ldst-school-cta-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    flex-wrap: wrap;
}

.ldst-school-cta-text h2 {
    font-family: var(--ldst-font-heading);
    font-size: 24px;
    font-weight: 700;
    color: var(--ldst-white);
    margin: 0 0 6px;
}

.ldst-school-cta-text p {
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
    max-width: 640px;
    line-height: 1.55;
}

.ldst-school-cta-actions {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}

.ldst-school-cta-actions .ldst-btn-outline {
    color: var(--ldst-white);
    border-color: rgba(255, 255, 255, 0.6);
}

.ldst-school-cta-actions .ldst-btn-outline:hover {
    background: var(--ldst-white);
    color: var(--ldst-bg-dark);
    border-color: var(--ldst-white);
}

@media (max-width: 700px) {
    .ldst-plans-grid {
        grid-template-columns: 1fr;
    }
    .ldst-school-cta-inner {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ==========================================================================
   Reusable full-bleed page banner — ldst_page_banner() / "Page with Banner"
   Gradient lives here; each banner only sets --ldst-banner-img inline.
   ========================================================================== */
.ldst-banner {
    background:
        linear-gradient(90deg, rgba(20, 28, 38, 0.78) 0%, rgba(20, 28, 38, 0.50) 45%, rgba(20, 28, 38, 0.05) 80%),
        var(--ldst-banner-img, none) center top / cover no-repeat;
    background-color: var(--ldst-bg-dark);
    color: var(--ldst-white);
    /* Slim header band, matching the exp-schools banner height. Image
       anchored to the top (not centered). */
    display: flex;
    align-items: center;
    min-height: clamp(200px, 26vw, 320px);
    /* Soft bottom shadow for a modern, lifted feel */
    box-shadow: 0 12px 28px rgba(20, 28, 38, 0.18);
    position: relative;
    z-index: 1;
}

.ldst-banner-inner {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 30px;
}

.ldst-banner-heading {
    font-family: var(--ldst-font-heading);
    font-size: clamp(30px, 4vw, 46px);
    font-weight: 800;
    text-transform: capitalize;
    color: var(--ldst-white);
    margin: 0 0 12px;
    line-height: 1.15;
    text-align: left;
}

.ldst-banner-text {
    color: rgba(255, 255, 255, 0.92);
    max-width: 600px;
    margin: 0;
    font-size: 16px;
    line-height: 1.55;
    text-align: left;
}

@media (max-width: 768px) {
    .ldst-banner-inner {
        padding: 48px 20px;
    }
}

/* ==========================================================================
   School Reviews & Ratings (free-account perk)
   ========================================================================== */
.ldst-reviews-section {
    padding: 60px 0;
    background: #fff;
    border-top: 1px solid var(--ldst-border);
}
.ldst-reviews-header {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 28px;
}
.ldst-reviews-header h2 { margin: 0; }
.ldst-reviews-summary {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.ldst-reviews-avg {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--ldst-text);
    line-height: 1;
}
.ldst-reviews-count { color: var(--ldst-text-light); font-size: .95rem; }

/* Shared star glyph color (display + summary) */
.lds-review-stars { color: #F5A623; letter-spacing: 1px; font-size: 1.05rem; }

/* Write-a-review form */
.ldst-review-form {
    background: #FAFAFA;
    border: 1px solid var(--ldst-border);
    border-radius: 10px;
    padding: 24px 26px;
    margin-bottom: 32px;
}
.ldst-review-form h3 { margin: 0 0 14px; font-size: 1.15rem; }
.lds-star-input { display: inline-flex; gap: 4px; margin-bottom: 14px; }
.lds-star-input .lds-star {
    background: none;
    border: 0;
    padding: 0 2px;
    font-size: 1.9rem;
    line-height: 1;
    color: #F5A623;
    cursor: pointer;
    transition: transform .08s ease;
}
.lds-star-input .lds-star:hover { transform: scale(1.12); }
.ldst-review-form textarea {
    width: 100%;
    border: 1px solid var(--ldst-border);
    border-radius: 8px;
    padding: 12px 14px;
    font: inherit;
    color: var(--ldst-text);
    resize: vertical;
    min-height: 96px;
}
.ldst-review-form textarea:focus {
    outline: none;
    border-color: var(--ldst-primary);
    box-shadow: 0 0 0 3px var(--ldst-primary-light);
}
.ldst-review-form-actions {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 14px;
}
.lds-review-msg { font-size: .9rem; }
.lds-review-msg.is-err { color: var(--ldst-primary-dark); }
.lds-review-msg.is-ok { color: #2E7D32; }

/* Logged-out CTA */
.ldst-review-cta {
    background: var(--ldst-primary-light);
    border-radius: 10px;
    padding: 26px 28px;
    margin-bottom: 32px;
}
.ldst-review-cta p { margin: 0 0 16px; color: var(--ldst-text); }
.ldst-review-cta .ldst-review-login {
    margin-left: 16px;
    font-weight: 600;
    color: var(--ldst-primary-dark);
}
.ldst-review-thanks {
    background: #F1F8F1;
    border: 1px solid #CFE7CF;
    border-radius: 8px;
    padding: 14px 18px;
    color: #2E7D32;
    margin-bottom: 28px;
}

/* Reviews list */
.ldst-reviews-list { display: flex; flex-direction: column; gap: 18px; }
.lds-review {
    border: 1px solid var(--ldst-border);
    border-radius: 10px;
    padding: 18px 20px;
}
.lds-review-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}
.lds-review-author { font-weight: 600; color: var(--ldst-text); }
.lds-review-date { color: var(--ldst-text-muted); font-size: .85rem; }
.lds-review-body { margin: 0; color: var(--ldst-text-light); line-height: 1.6; }
.ldst-reviews-empty { color: var(--ldst-text-muted); font-style: italic; }

/* ==========================================================================
   Donations page — donate card
   ========================================================================== */
.ldst-donate-card {
    max-width: 640px;
    margin: 10px auto 60px;
    text-align: center;
    background: var(--ldst-primary-light);
    border: 1px solid var(--ldst-border);
    border-radius: 14px;
    padding: 40px 34px;
}
.ldst-donate-title { margin: 0 0 10px; }
.ldst-donate-sub {
    margin: 0 auto 24px;
    max-width: 460px;
    color: var(--ldst-text-light);
}
.ldst-donate-form { margin: 0 0 18px; }
.ldst-donate-btn {
    font-size: 1.05rem;
    padding: 14px 38px;
}
.ldst-donate-note {
    margin: 0 auto;
    max-width: 480px;
    font-size: .9rem;
    color: var(--ldst-text-muted);
}

/* ==========================================================================
   Blog listing
   ========================================================================== */
.ldst-blog-page { padding-top: 50px; padding-bottom: 60px; }
.ldst-blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 28px;
}
.ldst-blog-card {
    border: 1px solid var(--ldst-border);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    transition: box-shadow .15s ease, transform .15s ease;
}
.ldst-blog-card:hover {
    box-shadow: 0 8px 24px rgba(20, 28, 38, 0.10);
    transform: translateY(-2px);
}
.ldst-blog-card-link { display: block; color: inherit; text-decoration: none; }
.ldst-blog-card-thumb { aspect-ratio: 16 / 9; overflow: hidden; }
.ldst-blog-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ldst-blog-card-body { padding: 20px 22px 24px; }
.ldst-blog-card-date {
    display: block;
    font-size: .8rem;
    color: var(--ldst-text-muted);
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.ldst-blog-card-title { margin: 0 0 10px; font-size: 1.25rem; line-height: 1.3; }
.ldst-blog-card-excerpt { margin: 0 0 14px; color: var(--ldst-text-light); line-height: 1.6; }
.ldst-blog-card-more { font-weight: 600; color: var(--ldst-primary-dark); }

.ldst-blog-pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 44px;
}
.ldst-blog-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    padding: 8px 14px;
    border: 1px solid var(--ldst-border);
    border-radius: 8px;
    color: var(--ldst-text);
    text-decoration: none;
}
.ldst-blog-pagination .page-numbers.current {
    background: var(--ldst-primary);
    border-color: var(--ldst-primary);
    color: #fff;
}
.ldst-blog-pagination a.page-numbers:hover { border-color: var(--ldst-primary); }

.ldst-blog-empty { text-align: center; max-width: 620px; margin: 20px auto 40px; }
.ldst-blog-empty h2 { margin-bottom: 12px; }
.ldst-blog-empty p { color: var(--ldst-text-light); margin-bottom: 22px; }

/* ==========================================================================
   Single post (blog article)
   ========================================================================== */
.ldst-post-hero .ldst-post-cat {
    display: inline-block;
    background: var(--ldst-primary);
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 999px;
    margin-bottom: 14px;
}
.ldst-post-hero-meta {
    margin: 14px 0 0;
    color: rgba(255, 255, 255, 0.85);
    font-size: .95rem;
}
.ldst-single-post { padding-top: 46px; padding-bottom: 60px; }
/* Readable measure for article body */
.ldst-single-post .ldst-entry-content {
    max-width: 720px;
    margin: 0 auto;
    font-size: 1.08rem;
    line-height: 1.75;
    color: var(--ldst-text);
}
.ldst-single-post .ldst-entry-content p { margin: 0 0 1.3em; }
.ldst-single-post .ldst-entry-content h2 { margin: 1.6em 0 .6em; }
.ldst-single-post .ldst-entry-content h3 { margin: 1.4em 0 .5em; }
.ldst-single-post .ldst-entry-content img { height: auto; border-radius: 8px; }

.ldst-post-tags {
    max-width: 720px;
    margin: 26px auto 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.ldst-post-tags li a {
    display: inline-block;
    font-size: .82rem;
    padding: 4px 12px;
    background: var(--ldst-primary-light);
    color: var(--ldst-primary-dark);
    border-radius: 999px;
    text-decoration: none;
}
.ldst-single-footer {
    max-width: 720px;
    margin: 36px auto 0;
}
.ldst-more-posts {
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid var(--ldst-border);
}
.ldst-more-posts-title { margin: 0 0 24px; }

/* ==========================================================================
   Contact page
   ========================================================================== */
.ldst-contact-page { padding-top: 50px; padding-bottom: 64px; }
.ldst-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 48px;
    align-items: start;
}
.ldst-contact-intro .ldst-entry-content { font-size: 1.02rem; line-height: 1.7; }

.lds-contact-form {
    background: #FAFAFA;
    border: 1px solid var(--ldst-border);
    border-radius: 12px;
    padding: 28px 28px 30px;
}
.lds-contact-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.lds-contact-form label {
    display: block;
    margin-bottom: 16px;
}
.lds-contact-form label > span {
    display: block;
    font-size: .9rem;
    font-weight: 600;
    color: var(--ldst-text);
    margin-bottom: 6px;
}
.lds-contact-form input,
.lds-contact-form select,
.lds-contact-form textarea {
    width: 100%;
    border: 1px solid var(--ldst-border);
    border-radius: 8px;
    padding: 11px 13px;
    font: inherit;
    color: var(--ldst-text);
    background: #fff;
}
.lds-contact-form textarea { resize: vertical; min-height: 130px; }
.lds-contact-form input:focus,
.lds-contact-form select:focus,
.lds-contact-form textarea:focus {
    outline: none;
    border-color: var(--ldst-primary);
    box-shadow: 0 0 0 3px var(--ldst-primary-light);
}
/* Honeypot — hidden from humans */
.lds-contact-form .lds-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px; height: 1px;
    opacity: 0;
}
.lds-contact-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 4px;
}
.lds-contact-msg { font-size: .9rem; }
.lds-contact-msg.is-err { color: var(--ldst-primary-dark); }
.lds-contact-thanks {
    background: #F1F8F1;
    border: 1px solid #CFE7CF;
    color: #2E7D32;
    border-radius: 8px;
    padding: 16px 18px;
    margin: 0;
}
@media (max-width: 820px) {
    .ldst-contact-grid { grid-template-columns: 1fr; gap: 32px; }
    .lds-contact-row { grid-template-columns: 1fr; gap: 0; }
}

/* My Account — state selector */
.lds-state-form { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lds-state-form select {
    padding: 7px 10px;
    border: 1px solid var(--ldst-border);
    border-radius: 6px;
    font: inherit;
    background: #fff;
}
.ldst-btn-sm { padding: 7px 16px; font-size: .9rem; }
.lds-state-msg { font-size: .85rem; }
.lds-state-msg.is-ok { color: #2E7D32; }
.lds-state-msg.is-err { color: var(--ldst-primary-dark); }
.ldst-field-hint { margin: 6px 0 0; font-size: .82rem; color: var(--ldst-text-muted); }

/* ==========================================================================
   School follows + alerts
   ========================================================================== */
.ldst-school-follow {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin: 4px 0 20px;
}
.ldst-follow-btn { cursor: pointer; }
.ldst-follow-btn.is-following::before { content: ""; }
.ldst-follow-hint { font-size: .85rem; color: var(--ldst-text-light); }

/* My Account — alerts toggle + followed list */
.ldst-alerts-toggle {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 4px 0 20px;
    font-size: .95rem;
    color: var(--ldst-text);
    max-width: 640px;
}
.ldst-alerts-toggle input { margin-top: 3px; flex: 0 0 auto; }
.lds-alerts-msg { font-size: .82rem; color: #2E7D32; margin-left: 6px; }

.ldst-follow-list { list-style: none; margin: 0; padding: 0; }
.ldst-follow-list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 4px;
    border-bottom: 1px solid var(--ldst-border);
}
.ldst-follow-list li a { font-weight: 600; color: var(--ldst-text); text-decoration: none; }
.ldst-follow-list li a:hover { color: var(--ldst-primary); }
.ldst-follow-loc { font-weight: 400; color: var(--ldst-text-muted); font-size: .85rem; margin-left: 8px; }
.ldst-unfollow {
    background: none;
    border: 0;
    font-size: 1.4rem;
    line-height: 1;
    color: var(--ldst-text-muted);
    cursor: pointer;
    padding: 0 6px;
}
.ldst-unfollow:hover { color: var(--ldst-primary-dark); }
.ldst-follow-empty { color: var(--ldst-text-light); }

/* ==========================================================================
   Login page
   ========================================================================== */
.ldst-login-page { padding: 50px 0 64px; }
.ldst-login-card {
    max-width: 420px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid var(--ldst-border);
    border-radius: 12px;
    padding: 32px 30px 28px;
    box-shadow: 0 6px 22px rgba(20, 28, 38, 0.07);
}
.ldst-login-card #loginform label {
    display: block;
    font-weight: 600;
    font-size: .92rem;
    margin-bottom: 6px;
    color: var(--ldst-text);
}
.ldst-login-card #loginform input[type="text"],
.ldst-login-card #loginform input[type="password"] {
    width: 100%;
    border: 1px solid var(--ldst-border);
    border-radius: 8px;
    padding: 11px 13px;
    font: inherit;
    margin-bottom: 16px;
    box-sizing: border-box;
}
.ldst-login-card #loginform input:focus {
    outline: none;
    border-color: var(--ldst-primary);
    box-shadow: 0 0 0 3px var(--ldst-primary-light);
}
.ldst-login-card .login-remember { font-weight: 400; margin-bottom: 16px; }
.ldst-login-card .login-remember label { display: inline; font-weight: 400; }
.ldst-login-card #wp-submit {
    width: 100%;
    background: var(--ldst-primary);
    color: #fff;
    border: 0;
    border-radius: 8px;
    padding: 12px 20px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
}
.ldst-login-card #wp-submit:hover { background: var(--ldst-primary-hover); }
.ldst-login-links {
    margin-top: 18px;
    text-align: center;
    font-size: .9rem;
    color: var(--ldst-text-muted);
}
.ldst-login-links a { color: var(--ldst-primary-dark); font-weight: 600; }
.ldst-login-error {
    background: #FDECEC;
    border: 1px solid #F5C2C2;
    color: #B32D2E;
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 18px;
    font-size: .9rem;
}

/* ===== v4 content update (2026-06): tagline, FAQ accordion, contact + stat helpers ===== */
.ldst-tagline {
    margin: 4px 0 0;
    font-size: 0.8rem;
    line-height: 1.3;
    color: var(--ldst-text-light);
    max-width: 320px;
}
@media (max-width: 768px) {
    .ldst-tagline { display: none; }
}

/* FAQ accordion styles are unified above (search: FAQ accordion). */

/* Contact block — same treatment as the footer's Get in Touch: icon rail,
   linked address, linked email, upright disclaimer. */
.ldst-contact-details {
    list-style: none;
    margin: 1rem 0 0;
    padding: 0;
}

.ldst-contact-details li {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin-bottom: 12px;
    line-height: 1.5;
    color: var(--ldst-text-light);
}

.ldst-contact-details li .ldst-icon {
    flex-shrink: 0;
    color: var(--ldst-primary);
}

/* The "bullets" are the coral dot .ldst-entry-content ul > li::before draws,
   not a list marker — list-style:none never touched them. The icons are the
   marker here, so drop the dot and its indent. Needs the ul in the selector
   to outrank that rule. */
.ldst-entry-content ul.ldst-contact-details > li {
    padding-left: 0;
    margin-bottom: 12px;
}

.ldst-entry-content ul.ldst-contact-details > li::before {
    content: none;
}

.ldst-contact-details strong {
    color: var(--ldst-ink);
}

.ldst-contact-details a {
    color: var(--ldst-text-light);
    text-decoration: none;
}

.ldst-contact-details a:hover,
.ldst-contact-details a:focus {
    color: var(--ldst-primary);
    text-decoration: underline;
}

/* Upright, not italic — matches .ldst-footer-disclaimer. */
.ldst-contact-disclaimer {
    font-style: normal;
    font-size: 12.5px;
    color: var(--ldst-text-light);
    line-height: 1.55;
    max-width: 420px;
}

.ldst-stat-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 2rem;
}
.ldst-stat-row .ldst-stat {
    flex: 1 1 240px;
    background: var(--ldst-primary-light);
    border-radius: var(--ldst-radius);
    padding: 1.25rem;
    margin: 0;
    color: var(--ldst-text);
}

/* ==========================================================================
   HOMEPAGE "V2" (Figma design, 2026-07)  — all scoped under .ldst-home
   ========================================================================== */
.ldst-home {
    --ldsh-ink: #1B293E;
    --ldsh-body: #43566B;
    --ldsh-muted: #64748B;
    --ldsh-surface: #F8FAFC;
    --ldsh-pink: #FFF1F3;
    --ldsh-line: #E7ECF2;
    --ldsh-r: 16px;
    --ldsh-r-lg: 24px;
    font-family: 'Satoshi', var(--ldst-font);
    color: var(--ldsh-body);
    overflow-x: clip;
}
.ldst-home .ldst-container { max-width: 1240px; }

/* Headings adopt Satoshi (design), overriding the site's serif on the homepage */
.ldst-home h1, .ldst-home h2, .ldst-home h3,
.ldst-home .ldsh-h2, .ldst-home .ldsh-hero-title {
    font-family: 'Satoshi', var(--ldst-font);
    color: var(--ldsh-ink);
    letter-spacing: -0.01em;
}
.ldst-home .ldsh-accent { color: var(--ldst-primary); }
.ldsh-h2 { font-size: clamp(1.8rem, 3.2vw, 2.6rem); font-weight: 800; line-height: 1.12; margin: 0 0 14px; }
.ldsh-lead { font-size: 1.05rem; line-height: 1.6; color: var(--ldsh-muted); max-width: 760px; margin: 0 0 34px; }

/* Button variants used on the homepage */
.ldst-home .ldst-btn-ghost {
    background: #fff; color: var(--ldsh-ink); border-color: var(--ldsh-line);
}
.ldst-home .ldst-btn-ghost:hover { border-color: var(--ldst-primary); color: var(--ldst-primary); }
.ldst-home .ldsh-btn-white { background:#fff; color: var(--ldsh-ink); border-color:#fff; }
.ldst-home .ldsh-btn-white:hover { background:#fff; transform: translateY(-1px); box-shadow: var(--ldst-shadow-lg); }

/* ---------- HERO ---------- */
.ldsh-hero { position: relative; background: linear-gradient(180deg,#fff 0%, var(--ldsh-surface) 100%); padding: 56px 0 0; text-align: center; overflow: hidden; }
.ldsh-hero-inner { position: relative; z-index: 2; }
.ldsh-hero-title { font-size: clamp(2.6rem, 1.82rem + 2.91vw, 3.6rem); font-weight: 900; line-height: 1.1; margin: 0 auto 14px; max-width: 920px; }
.ldsh-hero-title .ldsh-accent { display: inline; }
.ldsh-hero-subhead { max-width: 720px; margin: 0 auto 22px; font-size: 1.15rem; font-weight: 700; color: var(--ldsh-ink); }
.ldsh-hero-desc { max-width: 780px; margin: 0 auto 30px; font-size: 1.05rem; line-height: 1.62; color: var(--ldsh-muted); }
.ldsh-hero-doodle { position: absolute; z-index: 1; width: 110px; opacity: .95; pointer-events: none; }
.ldsh-doodle-bulb { top: 90px; left: 3%; }
.ldsh-doodle-book { top: 100px; right: 3%; width: 130px; }

/* Hero search */
.ldsh-search { background:#fff; border:1px solid var(--ldsh-line); box-shadow: 0 12px 34px rgba(27,41,62,.08); border-radius: var(--ldsh-r-lg); padding: 16px; max-width: 1080px; margin: 0 auto 18px; text-align:left; }
.ldsh-search-fields { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.ldsh-field { display:flex; flex-direction:column; gap:4px; min-width:0; }
.ldsh-field-label { font-size:.72rem; font-weight:700; color: var(--ldsh-ink); text-transform: uppercase; letter-spacing:.03em; }
.ldsh-field input, .ldsh-field select {
    border:1px solid var(--ldsh-line); border-radius:10px; padding:9px 10px; font-size:.9rem; color: var(--ldsh-ink);
    background:#fff; width:100%; font-family: var(--ldst-font); appearance:none;
}
.ldsh-field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position: right 10px center; padding-right:26px; }
.ldsh-field input:focus, .ldsh-field select:focus { outline:none; border-color: var(--ldst-primary); box-shadow:0 0 0 3px var(--ldst-primary-light); }
.ldsh-search-actions { display:flex; align-items:center; gap:14px; margin-top:14px; }
.ldsh-search-btn { display:inline-flex; align-items:center; gap:8px; padding:12px 26px; font-size:15px; }
.ldsh-search-or { color: var(--ldsh-muted); font-size:.9rem; }
.ldsh-hero-source { font-size:.8rem; color: var(--ldsh-muted); max-width: 680px; margin: 0 auto 30px; }
.ldsh-hero-kids { margin: 0 -20px; }
.ldsh-hero-kids img { width:100%; max-width:1100px; height:auto; display:block; margin: 0 auto; }

/* ---------- FEATURED SCHOOLS ---------- */
.ldsh-featured { padding: 64px 0; background: var(--ldsh-surface); }
.ldsh-featured-head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom: 26px; }
.ldsh-featured-head .ldsh-h2 { margin:0; }
.ldsh-featured-note { color: var(--ldsh-muted); font-size:.92rem; margin:0; }
.ldsh-featured-footnote { display:block; margin-top:4px; font-size:.85rem; }
.ldsh-featured-footnote a { color: var(--ldst-primary); font-weight:600; text-decoration:none; }
.ldsh-featured-footnote a:hover { text-decoration:underline; }
.ldsh-badge-star { color: var(--ldst-primary); font-weight:800; margin-left:1px; }
.ldsh-cards { display:grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.ldsh-card { background:#fff; border:1px solid var(--ldsh-line); border-radius: var(--ldsh-r); overflow:hidden; display:flex; flex-direction:column; box-shadow: 0 6px 18px rgba(27,41,62,.05); }
.ldsh-card-media { position:relative; aspect-ratio: 16/10; background:#e2e8f0 center/cover no-repeat; background-image: linear-gradient(135deg,#fecdd3,#fda4af); }
.ldsh-score-badge { position:absolute; top:12px; right:12px; background:#fff; border-radius:12px; padding:5px 10px; box-shadow: var(--ldst-shadow); color: var(--ldst-success); font-weight:800; }
.ldsh-score-badge strong { font-size:1.05rem; }
.ldsh-score-badge small { color: var(--ldsh-muted); font-weight:600; font-size:.7rem; }
.ldsh-card-body { padding: 16px 16px 18px; display:flex; flex-direction:column; gap:8px; flex:1; }
.ldsh-card-title { font-size:1.08rem; font-weight:800; margin:0; line-height:1.2; }
.ldsh-card-title a { color: var(--ldsh-ink); text-decoration:none; }
.ldsh-card-title a:hover { color: var(--ldst-primary); }
.ldsh-card-loc { font-size:.82rem; color: var(--ldsh-muted); margin:0; }
.ldsh-card-pct { color: var(--ldst-primary); font-weight:600; }
.ldsh-card-meta { display:grid; grid-template-columns: 1fr 1fr; gap:6px 12px; margin:4px 0; }
.ldsh-card-meta span { display:block; font-size:.7rem; text-transform:uppercase; letter-spacing:.03em; color: var(--ldsh-muted); }
.ldsh-card-meta strong { font-size:.86rem; color: var(--ldsh-ink); }
.ldsh-card-income { font-size:.78rem; color: var(--ldsh-muted); margin:0; }
.ldsh-card-actions { display:flex; gap:8px; margin-top:auto; padding-top:6px; }
.ldsh-card-actions .ldst-btn { flex:1; }

/* ---------- FEATURES + CTA ---------- */
.ldsh-features { padding: 74px 0; }
.ldsh-features > .ldst-container > .ldsh-h2,
.ldsh-features > .ldst-container > .ldsh-lead { text-align:center; margin-left:auto; margin-right:auto; }
.ldsh-features-grid { display:grid; grid-template-columns: 2fr 1fr; gap: 22px; align-items:stretch; }
.ldsh-features-cards { display:grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ldsh-feature { background:#fff; border:1px solid var(--ldsh-line); border-radius: var(--ldsh-r); padding: 24px; }
.ldsh-feature-icon { width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.ldsh-feature-icon svg { width:26px; height:26px; }
.ldsh-i-red { background: var(--ldst-primary-light); color: var(--ldst-primary); }
.ldsh-i-blue { background:#EAF1FF; color:#3B72E8; }
.ldsh-i-green { background:#E7F7EE; color:#16A34A; }
.ldsh-i-amber { background:#FFF3E0; color:#E8961E; }
.ldsh-feature h3 { font-size:1.15rem; font-weight:800; margin:0 0 8px; color: var(--ldsh-ink); }
.ldsh-feature p { font-size:.9rem; line-height:1.55; color: var(--ldsh-muted); margin:0; }
.ldsh-features-cta { position:relative; overflow:hidden; background: var(--ldst-primary); color:#fff; border-radius: var(--ldsh-r-lg); padding: 28px; display:flex; flex-direction:column; }
.ldsh-features-cta p { font-size:1.05rem; line-height:1.5; font-weight:600; margin:0 0 18px; }
.ldsh-features-cta .ldsh-btn-white { align-self:flex-start; }
.ldsh-features-cta-img { position:absolute; bottom:0; right:0; width: 78%; max-width:280px; z-index:1; }

/* ---------- OUR STORY ---------- */
.ldsh-story { background: var(--ldsh-pink); }
.ldsh-story-inner { text-align:center; padding: 60px 0; }
.ldsh-story-inner .ldsh-h2 { margin-bottom:14px; }
.ldsh-story-lead { margin: 0 auto 10px; }
.ldsh-story-kids img { width:100%; max-width: 920px; height:auto; margin: 10px auto 26px; display:block; }
.ldsh-story-btn { display:inline-block; }

/* ---------- COMPREHENSIVE PROFILES + WEIGHTS ---------- */
.ldsh-profiles { padding: 74px 0; }
.ldsh-profiles-inner { display:grid; grid-template-columns: 1fr 1.05fr; gap: 48px; align-items:center; }
.ldsh-profiles-copy p { color: var(--ldsh-muted); line-height:1.6; margin:0 0 20px; }
.ldsh-checklist { list-style:none; margin:0 0 26px; padding:0; display:grid; gap:12px; }
.ldsh-checklist li { position:relative; padding-left:28px; font-weight:600; color: var(--ldsh-ink); }
.ldsh-checklist li::before { content:""; position:absolute; left:0; top:2px; width:18px; height:18px; border-radius:50%; background:#E7F7EE url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2316A34A' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat; }
.ldsh-profiles-card { background:#fff; border:1px solid var(--ldsh-line); border-radius: var(--ldsh-r-lg); padding: 28px; box-shadow: 0 12px 34px rgba(27,41,62,.06); }
.ldsh-weights-title { font-size:1.05rem; font-weight:800; margin:0 0 18px; color: var(--ldsh-ink); }
.ldsh-bar-row { margin-bottom:16px; }
.ldsh-bar-head { display:flex; justify-content:space-between; font-size:.86rem; margin-bottom:6px; }
.ldsh-bar-head span { color: var(--ldsh-ink); font-weight:600; }
.ldsh-bar-head b { color: var(--ldsh-ink); }
.ldsh-bar-track { height:8px; border-radius:99px; background: var(--ldsh-surface); overflow:hidden; }
.ldsh-bar-fill { display:block; height:100%; border-radius:99px; background: var(--ldst-primary); }
.ldsh-weights-foot { margin: 20px 0 0; font-size:.85rem; }
.ldsh-weights-foot a { color: var(--ldst-primary); font-weight:700; text-decoration:none; }

/* ---------- TESTIMONIALS ---------- */
.ldsh-reviews { padding: 74px 0; background: var(--ldsh-surface); }
.ldsh-reviews > .ldst-container > .ldsh-h2,
.ldsh-reviews > .ldst-container > .ldsh-lead { text-align:center; margin-left:auto; margin-right:auto; }
.ldsh-reviews-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap:20px; }
.ldsh-review-cta { background: var(--ldst-primary); color:#fff; border-radius: var(--ldsh-r); padding:26px; display:flex; flex-direction:column; }
.ldsh-review-cta h3 { color:#fff; font-size:1.25rem; font-weight:800; margin:0 0 10px; }
.ldsh-review-cta p { font-size:.92rem; line-height:1.5; margin:0 0 auto; opacity:.95; }
.ldsh-review-cta .ldsh-btn-white { margin-top:18px; align-self:flex-start; }
.ldsh-review-card { background:#fff; border:1px solid var(--ldsh-line); border-radius: var(--ldsh-r); padding:24px; }
.ldsh-review-stars { color: var(--ldst-primary); letter-spacing:2px; margin-bottom:14px; }
.ldsh-review-quote { color: var(--ldsh-body); line-height:1.55; font-size:.92rem; margin:0 0 14px; }
.ldsh-review-placeholder .ldsh-review-quote { color: var(--ldsh-muted); font-style:italic; }
.ldsh-review-attr { font-size:.82rem; color: var(--ldsh-muted); font-weight:700; margin:0; }

/* ---------- PRICING ---------- */
.ldsh-pricing { position:relative; background: var(--ldsh-pink); padding: 70px 0; overflow:hidden; }
.ldsh-pricing-inner { position:relative; z-index:2; }
.ldsh-pricing-img { position:absolute; bottom:0; right:0; width:30%; max-width:420px; z-index:1; pointer-events:none; }
.ldsh-plans { display:grid; grid-template-columns: repeat(2, minmax(0,340px)); gap:24px; justify-content:start; }
.ldsh-plan { position:relative; background:#fff; border:1px solid var(--ldsh-line); border-radius: var(--ldsh-r-lg); padding: 28px; }
.ldsh-plan-featured { border:2px solid var(--ldst-primary); box-shadow: 0 16px 40px rgba(255,71,96,.14); }
.ldsh-plan-badge { position:absolute; top:-13px; left:28px; background: var(--ldst-primary); color:#fff; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:5px 14px; border-radius:99px; }
.ldsh-plan-kicker { font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color: var(--ldsh-muted); margin:0 0 6px; }
.ldsh-plan-price { font-size:2.4rem; font-weight:900; color: var(--ldsh-ink); margin:0 0 8px; line-height:1; }
.ldsh-plan-price span { font-size:.95rem; font-weight:600; color: var(--ldsh-muted); }
.ldsh-plan-sub { font-size:.9rem; color: var(--ldsh-muted); line-height:1.5; margin:0 0 18px; }
.ldsh-plan-list { list-style:none; margin:0 0 22px; padding:0; display:grid; gap:12px; }
.ldsh-plan-list li { position:relative; padding-left:26px; font-size:.9rem; color: var(--ldsh-ink); }
.ldsh-plan-list li::before { content:""; position:absolute; left:0; top:1px; width:16px; height:16px; border-radius:50%; background:#E7F7EE url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%2316A34A' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat; }
.ldsh-plan-btn { display:block; width:100%; }
.ldsh-plan-have { display:block; text-align:center; color: var(--ldst-success); font-weight:700; font-size:.9rem; }

/* ---------- FAQ ---------- */
.ldsh-faq { padding: 74px 0; }
.ldsh-faq-inner { display:grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items:start; }
.ldsh-faq-copy .ldsh-lead { margin-bottom:26px; }
.ldsh-faq-help { position:relative; overflow:hidden; background: var(--ldst-primary); color:#fff; border-radius: var(--ldsh-r-lg); padding: 26px; min-height: 200px; }
.ldsh-faq-help h3 { color:#fff; font-size:1.4rem; font-weight:800; margin:0 0 10px; }
.ldsh-faq-help p { font-size:.92rem; line-height:1.5; margin:0 0 18px; max-width: 60%; opacity:.95; }
.ldsh-faq-img { position:absolute; bottom:0; right:0; width:150px; max-width:45%; }
.ldsh-faq-list { display:flex; flex-direction:column; gap:14px; }
.ldsh-faq-item { background:#fff; border:1px solid var(--ldsh-line); border-radius: var(--ldsh-r); padding: 6px 20px; }
.ldsh-faq-item summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 0; font-weight:700; color: var(--ldsh-ink); font-size:1rem; }
.ldsh-faq-item summary::-webkit-details-marker { display:none; }
.ldsh-faq-chevron { flex:0 0 auto; width:26px; height:26px; border-radius:50%; background: var(--ldst-primary-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%23FF4760' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/13px no-repeat; transition: transform .2s ease; }
.ldsh-faq-item[open] .ldsh-faq-chevron { transform: rotate(180deg); }
.ldsh-faq-answer { padding: 0 0 18px; color: var(--ldsh-muted); line-height:1.6; font-size:.94rem; }
.ldsh-faq-answer p { margin:0; }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 1024px) {
    .ldsh-cards { grid-template-columns: repeat(2,1fr); }
    .ldsh-reviews-grid { grid-template-columns: repeat(2,1fr); }
    .ldsh-features-grid { grid-template-columns: 1fr; }
    .ldsh-features-cta { flex-direction:row; align-items:center; gap:20px; min-height:200px; }
    .ldsh-features-cta-img { position:static; width:200px; margin-left:auto; }
    .ldsh-profiles-inner, .ldsh-faq-inner { grid-template-columns: 1fr; gap:34px; }
    .ldsh-pricing-img { opacity:.25; }
}
@media (max-width: 760px) {
    .ldsh-search-fields { grid-template-columns: 1fr 1fr; }
    .ldsh-search-actions { flex-wrap:wrap; }
    .ldsh-search-btn, .ldsh-compare-btn { flex:1 1 100%; text-align:center; justify-content:center; }
    .ldsh-search-or { display:none; }
    .ldsh-hero-doodle { display:none; }
    .ldsh-cards, .ldsh-reviews-grid, .ldsh-features-cards, .ldsh-plans { grid-template-columns: 1fr; }
    .ldsh-plans { justify-content:stretch; }
    .ldsh-plan { max-width:none; }
    .ldsh-features-cta { flex-direction:column; align-items:flex-start; }
    .ldsh-features-cta-img { margin: 0 auto; }
    .ldsh-faq-help p { max-width:100%; }
    .ldsh-faq-img { position:static; margin:14px auto 0; display:block; }
    .ldsh-pricing-img { display:none; }
}

/* ==========================================================================
   V2 GLOBAL POLISH — carry the homepage look & feel onto every inner page
   ========================================================================== */

/* Content tables (methodology, FAQ, about, etc.) — soft ROUNDED card with a
   uniform #e7ecf2 border. We explicitly set `border: none` on cells first to
   kill WordPress core's dark (currentColor) cell borders, then add only light
   row separators; the rounded outer border provides the table edges (incl. the
   bottom), so every border matches at #e7ecf2. overflow:hidden clips the corners. */
.ldst-entry-content .wp-block-table,
.ldst-page-content .wp-block-table { margin: 22px 0; }
.ldst-entry-content .wp-block-table table,
.ldst-page-content .wp-block-table table {
    border-collapse: separate; border-spacing: 0; width: 100%;
    border: 1px solid #e7ecf2; border-radius: var(--ldst-radius-lg);
    overflow: hidden; box-shadow: var(--ldst-shadow); background: #fff;
}
.ldst-entry-content .wp-block-table th,
.ldst-page-content .wp-block-table th,
.ldst-entry-content .wp-block-table td,
.ldst-page-content .wp-block-table td {
    border: none; border-bottom: 1px solid #e7ecf2;
    padding: 11px 16px; vertical-align: top;
}
.ldst-entry-content .wp-block-table th,
.ldst-page-content .wp-block-table th {
    background: var(--ldst-primary-light); color: var(--ldst-ink);
    font-weight: 700; text-align: left;
}
.ldst-entry-content .wp-block-table td,
.ldst-page-content .wp-block-table td { color: var(--ldst-text); }
.ldst-entry-content .wp-block-table tr:last-child td,
.ldst-page-content .wp-block-table tr:last-child td { border-bottom: none; }
.ldst-entry-content .wp-block-table tbody tr:nth-child(even) td,
.ldst-page-content .wp-block-table tbody tr:nth-child(even) td { background: var(--ldst-bg); }

/* Content links — coral, no underline until hover (matches homepage) */
.ldst-entry-content a { color: var(--ldst-primary); text-decoration: none; }
.ldst-entry-content a:hover { text-decoration: underline; }

/* Content list bullets — soft coral markers */
.ldst-entry-content ul { list-style: none; padding-left: 0; }
.ldst-entry-content ul > li {
    position: relative; padding-left: 26px; margin-bottom: 10px;
}
.ldst-entry-content ul > li::before {
    content: ""; position: absolute; left: 2px; top: 9px;
    width: 7px; height: 7px; border-radius: 50%; background: var(--ldst-primary);
}

/* Form controls site-wide — rounded, soft border, coral focus ring (V2 fields) */
.ldst-auth-field input, .ldst-auth-field select,
.lds-contact-form input, .lds-contact-form select, .lds-contact-form textarea,
.ldst-review-form textarea, .ldst-review-form input, .ldst-review-form select {
    border: 1px solid var(--ldst-border) !important;
    border-radius: var(--ldst-radius) !important;
    transition: border-color var(--ldst-transition), box-shadow var(--ldst-transition);
}
.ldst-auth-field input:focus, .ldst-auth-field select:focus,
.lds-contact-form input:focus, .lds-contact-form select:focus, .lds-contact-form textarea:focus,
.ldst-review-form textarea:focus, .ldst-review-form input:focus {
    outline: none !important;
    border-color: var(--ldst-primary) !important;
    box-shadow: 0 0 0 3px var(--ldst-primary-light) !important;
}

/* ==========================================================================
   Button color guard — red button always reads white
   ==========================================================================
   Container link rules (`.ldst-footer a`, `.ldst-entry-content a`, …) carry
   higher specificity than the `.ldst-btn-*` classes, so any button dropped
   inside them inherited the container's link color instead of its own. That
   is why the footer's red Login / My Account buttons rendered with dark
   slate text (#43566B) and turned coral-on-coral on hover.

   Restating the button colors with element+class specificity makes the
   button win wherever it is placed. Keep this block LAST in the file.
   -------------------------------------------------------------------------- */
a.ldst-btn.ldst-btn-primary,
a.ldst-btn.ldst-btn-primary:link,
a.ldst-btn.ldst-btn-primary:visited,
a.ldst-btn.ldst-btn-primary:hover,
a.ldst-btn.ldst-btn-primary:focus,
a.ldst-btn.ldst-btn-primary:active {
    color: var(--ldst-white);
}

a.ldst-btn.ldst-btn-outline,
a.ldst-btn.ldst-btn-outline:link,
a.ldst-btn.ldst-btn-outline:visited {
    color: var(--ldst-primary);
}

/* Outline fills coral on hover — text flips to white. */
a.ldst-btn.ldst-btn-outline:hover,
a.ldst-btn.ldst-btn-outline:focus,
a.ldst-btn.ldst-btn-outline:active {
    color: var(--ldst-white);
}

/* Ghost stays a light button with ink text; coral on hover. */
a.ldst-btn.ldst-btn-ghost,
a.ldst-btn.ldst-btn-ghost:link,
a.ldst-btn.ldst-btn-ghost:visited {
    color: #1B293E;
}

a.ldst-btn.ldst-btn-ghost:hover,
a.ldst-btn.ldst-btn-ghost:focus,
a.ldst-btn.ldst-btn-ghost:active {
    color: var(--ldst-primary);
}

/* Reviewer-name consent — the name is published only when this is ticked. */
.ldst-review-consent {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 10px 0 0;
    font-size: 0.85rem;
    color: var(--ldst-text-light);
    cursor: pointer;
}

.ldst-review-consent input {
    margin: 2px 0 0;
    accent-color: var(--ldst-primary);
    flex: 0 0 auto;
}
