/*
Theme Name: The7 Child
Template: dt-the7
Text Domain: the7-child
*/

/* Add child theme specific base styles here if needed. */

/* Page title spacing */
.page-title {
    margin-bottom: clamp(18px, 1.5vw, 24px);
}

/* Three-column section spacing for Neighborhoods pages */
.sch-three-col {
    margin-top: 48px;
    margin-bottom: 48px;
}

/* Increase gutter between columns on desktop/tablet */
.sch-three-col .sch-neighborhood-setting {
    padding-left: 20px;
    padding-right: 20px;
}

/* Reset to normal spacing on mobile when columns stack */
@media (max-width: 767px) {
    .sch-three-col .wpb_column {
        padding-left: 22px;
        padding-right: 22px;
    }
}

/* Increase gutter between columns on desktop/tablet */
.sch-featured-project-row {
    padding-left: 20px;
    padding-right: 20px;
}

/* Reset to normal spacing on mobile when columns stack */
@media (max-width: 767px) {
    .sch-featured-project-row {
        padding-left: 22px;
        padding-right: 22px;
    }
}

/* Tagline divider: centered text with subtle horizontal lines */
.sch-tagline {
    text-wrap: balance;
}
.sch-tagline .sch-nowrap {
    white-space: nowrap;
}

.sch-tagline-divider {
    text-align: center;
}

.sch-tagline-divider .wpb_wrapper {
    display: inline-block;
    position: relative;
    padding: 0 2.5rem; /* space between text and lines */
}

.sch-tagline-divider .wpb_wrapper:before,
.sch-tagline-divider .wpb_wrapper:after {
    content: "";
    position: absolute;
    top: 50%;
    width: 8rem; /* line length */
    height: 1px; /* hairline */
    opacity: 0.35; /* subtle */
    transform: translateY(-50%);
    background: currentColor; /* inherits text color */
}

.sch-tagline-divider .wpb_wrapper:before {
    right: 100%;
    margin-right: 1.5rem;
}
.sch-tagline-divider .wpb_wrapper:after {
    left: 100%;
    margin-left: 1.5rem;
}

/* Show divider lines only on desktop; hide on tablet & mobile */
@media (max-width: 1024px) {
    .sch-tagline-divider .wpb_wrapper {
        padding: 0; /* remove extra space when lines are hidden */
    }
    .sch-tagline-divider .wpb_wrapper:before,
    .sch-tagline-divider .wpb_wrapper:after {
        content: none;
        display: none;
    }
}

/* === SCH Typography: Default body copy (Medium) === */
.wpb_text_column.wpb_content_element p {
    font-size: 1.1rem;
    line-height: 1.6em;
    font-weight: 400;
}

/* Reset spacing for SEO headlines and apply appropriate bottom margin */
.sch-seo-headline {
    margin: 0 0 1.5rem 0 !important;
    padding: 0 !important;
}

/* Premium italic emphasis for highlighted words */
.sch-emphasis {
    font-style: italic;
    letter-spacing: 0.02em;
}

/* Ensure WP Bakery text columns use SCH scale, not container/global scaling */
.wpb_text_column.wpb_content_element {
    font-size: 1rem; /* anchors rem-based children predictably */
}
/* === SCH Typography: Large text blocks === */
.sch-text-large p,
.wpb_text_column.wpb_content_element.sch-text-large p {
    font-size: 1.3rem;
    line-height: 1.5em;
    font-weight: 400;
}
/* === SCH Typography: Small text blocks === */
.sch-text-small p,
.wpb_text_column.wpb_content_element.sch-text-small p {
    font-size: 1rem;
    line-height: 1.6em;
    font-weight: 400;
}
@media (max-width: 600px) {
    .wpb_text_column.wpb_content_element p {
        font-size: 1rem; /* small on mobile */
        line-height: 1.6em;
    }
}

/* SCH: superscript marks for ®, ™, and small superscripts */
.sch-reg,
.sch-tm,
.sch-sm {
    font-size: 0.6em; /* smaller than surrounding text */
    line-height: 0; /* avoid adding extra line height */
    vertical-align: super; /* superscript position */
    margin-left: 0.08em; /* subtle spacing from preceding text */
    font-weight: inherit; /* follow the surrounding weight */
}
/* Optional: if you need a slightly higher lift, uncomment:
.sch-reg, .sch-tm, .sch-sm { position: relative; top: -0.1em; }
*/

/* In large display H1 titles the 0.6em mark still reads too big, so scale it
   down further. Covers the remodel project page-title H1 (.entry-title) and the
   DreamBook WPBakery <h1>; body-text usage keeps the 0.6em above. */
h1 .sch-reg,
h1 .sch-tm,
h1 .sch-sm {
    font-size: 0.4em;
    position: relative;
    top: -0.3em; /* lift toward the cap height of the large title text */
}

/* === SCH Headings (scoped to WPBakery Text Columns only) === */
/* Desktop defaults */
.wpb_text_column.wpb_content_element h1,
.wpb_text_column.wpb_content_element .sch-h1 {
    /* optional helper class */
    font-family: "Bodoni Moda", serif;
    font-weight: 100; /* requested ultra-light; will fallback if not available */
    line-height: 1.1;
    font-size: 3.4rem; /* desktop */
    text-transform: none;
}

.wpb_text_column.wpb_content_element h2,
.wpb_text_column.wpb_content_element .sch-h2 {
    font-family: "Bodoni Moda", serif;
    font-weight: 100; /* requested ultra-light */
    line-height: 1.2;
    font-size: 1.9rem; /* desktop - reduced for all caps */
    text-transform: none;
}

/* Tagline specific styling - desktop only */
@media (min-width: 1025px) {
    .sch-tagline-divider.sch-tagline h2,
    .sch-tagline-divider .sch-tagline h2 {
        font-size: 2.6rem;
        letter-spacing: 0.03em;
    }
}

/* Tagline specific styling - mobile only */
@media (max-width: 600px) {
    .sch-tagline-divider.sch-tagline h2,
    .sch-tagline-divider .sch-tagline h2 {
        font-size: 2.3rem;
    }
}

.wpb_text_column.wpb_content_element h3,
.wpb_text_column.wpb_content_element .sch-h3 {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 600; /* Semi-Bold */
    line-height: 1.3;
    font-size: 1.7rem; /* desktop */
    text-transform: none;
}

.wpb_text_column.wpb_content_element h4,
.wpb_text_column.wpb_content_element .sch-h4 {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 500; /* Medium */
    line-height: 1.3;
    font-size: 1.5rem; /* desktop */
    text-transform: none;
}

/* Tablet sizes */
@media (max-width: 1024px) {
    .wpb_text_column.wpb_content_element h1,
    .wpb_text_column.wpb_content_element .sch-h1 {
        font-size: 2.75rem;
    }
    .wpb_text_column.wpb_content_element h2,
    .wpb_text_column.wpb_content_element .sch-h2 {
        font-size: 1.9rem;
    }
    .wpb_text_column.wpb_content_element h3,
    .wpb_text_column.wpb_content_element .sch-h3 {
        font-size: 1.5rem;
    }
    .wpb_text_column.wpb_content_element h4,
    .wpb_text_column.wpb_content_element .sch-h4 {
        font-size: 1.4rem;
    }
}

/* Mobile sizes */
@media (max-width: 600px) {
    .wpb_text_column.wpb_content_element h1,
    .wpb_text_column.wpb_content_element .sch-h1 {
        font-size: 2.3rem;
    }
    .wpb_text_column.wpb_content_element h2,
    .wpb_text_column.wpb_content_element .sch-h2 {
        font-size: 1.8rem;
    }
    .wpb_text_column.wpb_content_element h3,
    .wpb_text_column.wpb_content_element .sch-h3 {
        font-size: 1.4rem;
    }
    .wpb_text_column.wpb_content_element h4,
    .wpb_text_column.wpb_content_element .sch-h4 {
        font-size: 1.3rem;
    }
}

/* ===========================
   SCH Quiet Luxury Links
   Scoped to Main Content
   =========================== */

#content.content[role="main"] a {
    color: #1c75bc; /* brand blue (28, 117, 188) */
    text-decoration: underline;
    text-decoration-thickness: 1px; /* hairline underline */
    text-underline-offset: 3px; /* elegant separation */
    text-decoration-color: rgba(15, 59, 116, 0.35); /* subtle brand-blue hint */
    transition:
        text-decoration-color 0.25s ease,
        color 0.25s ease;
}

/* Hover state: slightly stronger underline */
#content.content[role="main"] a:hover {
    text-decoration-color: rgba(15, 59, 116, 0.75);
}

/* Focus state: visible for keyboard users (accessibility) */
#content.content[role="main"] a:focus-visible {
    outline: 2px solid rgba(15, 59, 116, 0.6);
    outline-offset: 3px;
}

/* Optional: suppress underline on buttons styled as links */
#content.content[role="main"] a.vc_btn,
#content.content[role="main"] a.button,
#content.content[role="main"] a.dt-btn,
#content.content[role="main"] a.sch-btn {
    text-decoration: none;
}

/* ===========================
    SCH Testimonial Carousel
    Quiet Luxury: No Wiggles
    =========================== */

.sch-testimonial-carousel,
.sch-testimonial-slide {
    text-align: center;
}

/* --- Desktop: reserve space for tallest testimonial --- */
@media (min-width: 1025px) {
    /* Reserve height at the viewport level to prevent page reflow */
    .sch-testimonial-carousel .slick-list {
        min-height: 250px;
    }

    .sch-testimonial-carousel .sch-testimonial-slide {
        min-height: 250px;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    /* Prevent slick wrappers from fighting the height */
    .sch-testimonial-carousel .ult-item-wrap,
    .sch-testimonial-carousel .slick-slide {
        height: auto !important;
    }

    /* Ensure slick doesn’t collapse container */
    .sch-testimonial-carousel .slick-track {
        display: flex;
        align-items: stretch;
    }
}

/* --- Tablet: slightly tighter, still stable --- */
@media (max-width: 1024px) and (min-width: 601px) {
    .sch-testimonial-carousel .slick-list {
        min-height: 280px;
    }

    .sch-testimonial-carousel .sch-testimonial-slide {
        min-height: 280px;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .sch-testimonial-carousel .slick-track {
        display: flex;
        align-items: stretch;
    }
}

/* --- Mobile: let it flow naturally --- */
@media (max-width: 600px) {
    .sch-testimonial-carousel .slick-list {
        min-height: 470px;
    }
    .sch-testimonial-carousel .sch-testimonial-slide {
        min-height: 470px;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
}

/* Quote line (all caps, airy tracking) */
.sch-testimonial-quote {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: clamp(0.95rem, 1.15vw, 1.15rem);
    line-height: 1.6;
    opacity: 0.85;
    margin-bottom: 1.75rem;
}

/* Name line */
.sch-testimonial-name {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: clamp(0.9rem, 1.05vw, 1rem);
    margin-bottom: 0.5rem;
}

/* Location line */
.sch-testimonial-loc {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: 0.85rem;
    opacity: 0.7;
    margin-bottom: 2rem;
}

/* CTA: “READ MORE” with minimal chevrons */
.sch-testimonial-cta {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 0.85rem;
    text-decoration: none;
    opacity: 0.9;
    transition:
        opacity 0.2s ease,
        transform 0.2s ease;
}

.sch-testimonial-cta:hover {
    opacity: 1;
    transform: translateY(-1px);
}

/* Optional: tighten on mobile */
@media (max-width: 600px) {
    .sch-testimonial-slide {
        padding: 2.25rem 1rem;
    }
    .sch-testimonial-quote {
        letter-spacing: 0.18em;
    }
}

/* ===========================
   SCH Footer (Widget Area)
   =========================== */

#footer {
    background: #003e7e; /* adjust to exact brand blue */
    color: rgba(255, 255, 255, 0.82);
}

/* Constrain width + give breathing room like the reference */
#footer .wf-wrap {
    padding-top: 2.75rem;
    padding-bottom: 2.25rem;
}

/* Titles: uppercase + tracking + light weight */
#footer .widget-title {
    color: rgba(255, 255, 255, 0.95);
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-weight: 600;
    font-size: 1.55rem; /* closer to screenshot */
    margin-bottom: 1.25rem;
    text-align: center;
}

/* Body text alignment + softness */
#footer .widget,
#footer p,
#footer a,
#footer strong {
    color: rgba(255, 255, 255, 0.82);
}

#footer .widget {
    text-align: center;
}

#footer .sch-footer-copy {
    max-width: 420px;
    margin: 0 auto;
    opacity: 0.86;
    line-height: 1.75;
}

/* Footer titles added via Custom HTML */
#footer .sch-footer-title {
    margin: 0 0 1.4rem;
    text-align: center;
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 600;
    font-size: 1.55rem;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: rgba(255, 255, 255, 0.95);
}

/* Clean underline like the reference */
#footer .sch-footer-copy a {
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(255, 255, 255, 0.45);
}

#footer .sch-footer-copy a:hover {
    text-decoration-color: rgba(255, 255, 255, 0.75);
}

/* Contact block spacing + emphasis */
#footer .sch-footer-contact {
    max-width: 420px;
    margin: 0 auto;
    line-height: 1.75;
    opacity: 0.9;
}

#footer .sch-footer-contact strong {
    font-weight: 600;
}

#footer .sch-footer-link {
    display: inline-block;
    margin-top: 0.15rem;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    text-decoration-color: rgba(255, 255, 255, 0.45);
}

#footer .sch-footer-link:hover {
    text-decoration-color: rgba(255, 255, 255, 0.75);
}

/* Small desktop / tablet landscape: allow wrap + tighten spacing */
@media (max-width: 1300px) {
    .sch-footer-badges,
    .sch-footer-affiliations {
        flex-wrap: wrap;
        justify-content: center;
        row-gap: 0.9rem;
        column-gap: 0.9rem;
    }

    /* Slightly smaller tiles so 2 rows still feel intentional */
    .sch-footer-badges img {
        width: 64px;
        height: 64px;
        padding: 6px;
    }

    .sch-footer-affiliations img {
        width: 72px;
        height: 72px;
        padding: 7px;
    }
}

.sch-footer-badges {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
    margin-top: 2.25rem;
}

.sch-footer-badges img {
    width: 70px;
    height: 70px;
    object-fit: contain;
    background: #fff;
    padding: 6px;
    border-radius: 2px;
    opacity: 0.9;
    transition: opacity 0.3s ease;
}

.sch-footer-badges img:hover {
    opacity: 1;
}

.sch-footer-affiliations {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.1rem;
    margin-top: 2.25rem;
}

.sch-footer-affiliations img {
    width: 80px; /* now larger than Houzz badges */
    height: 80px;
    object-fit: contain;
    background: #fff;
    padding: 8px;
    border-radius: 2px;
    opacity: 0.8;
    transition: opacity 0.3s ease;
}

.sch-footer-affiliations img:hover {
    opacity: 0.95;
}

/* Force ideal badge/logo wrap patterns in the problem band */
@media (max-width: 1300px) and (min-width: 1025px) {
    /* 4 badges -> 2 columns = 2+2 */
    .sch-footer-badges {
        display: grid;
        grid-template-columns: repeat(2, max-content);
        justify-content: center;
        gap: 0.9rem;
    }

    /* 5 affiliations -> 3 columns = 3+2 */
    .sch-footer-affiliations {
        display: grid;
        grid-template-columns: repeat(3, max-content);
        justify-content: center;
        gap: 0.9rem;
    }

    /* Keep the tiles from stretching */
    .sch-footer-badges img,
    .sch-footer-affiliations img {
        justify-self: center;
    }
}

/*@media (max-width: 600px) {
    .sch-footer-badges,
    .sch-footer-affiliations {
        flex-wrap: wrap;
        gap: 0.9rem;
    }
}*/

/* ===========================
   Footer vertical dividers – unified height (desktop only)
   =========================== */
/* Give each footer column a little internal gutter so icons never touch dividers */
@media (min-width: 1025px) and (max-width: 1400px) {
    #footer .wf-container-footer .wf-container > .wf-cell {
        padding-left: 18px;
        padding-right: 18px;
        box-sizing: border-box;
    }
}

@media (min-width: 1025px) {
    #footer .wf-container-footer {
        position: relative;
    }

    /* Two dividers at fixed column breakpoints */
    #footer .wf-container-footer:before,
    #footer .wf-container-footer:after {
        content: "";
        position: absolute;
        top: 16%;
        bottom: 12%; /* same height for both lines */
        width: 2px;
        background: rgba(255, 255, 255, 0.22);
        z-index: 0;
        pointer-events: none;
    }

    #footer .wf-container-footer .wf-container {
        position: relative;
        z-index: 1;
    }

    #footer .wf-container-footer:before {
        left: calc(33.333%);
    }
    #footer .wf-container-footer:after {
        left: calc(66.666%);
    }
}

/* Mobile: stack with spacing */
@media (max-width: 1024px) {
    #footer .wf-wrap {
        padding-top: 2.5rem;
        padding-bottom: 2.25rem;
    }
    #footer .widget-title {
        font-size: 1.25rem;
    }
    .sch-footer-badges,
    .sch-footer-affiliations {
        margin-top: 1.5rem;
    }
}

/* ===========================
   Bottom Bar Logo Sizing
   =========================== */
#bottom-bar {
    padding-top: 14px;
    padding-bottom: 32px; /* gives breathing room under logo */
}

#bottom-bar #branding-bottom a {
    display: inline-flex; /* gives us a baseline we can control */
    align-items: baseline;
}

#bottom-bar #branding-bottom img {
    width: 150px; /* target size */
    max-width: 150px;
    height: auto; /* preserve aspect ratio */
    opacity: 0.9; /* subtle softness like reference */
    display: inline-block; /* baseline-capable */
    vertical-align: baseline; /* align to text baseline */
}

@media (max-width: 600px) {
    #bottom-bar #branding-bottom img {
        width: 120px;
        max-width: 120px;
    }
}

/* ===========================
   Mobile Footer Spacing
   =========================== */

@media (max-width: 768px) {
    #footer .widget {
        margin-bottom: 2.75rem;
    }

    /* Remove extra spacing after last widget */
    #footer .widget:last-child {
        margin-bottom: 0;
    }
}

/* ===========================
   Bottom Bar Typography
   =========================== */

#bottom-bar,
#bottom-bar p,
#bottom-bar .wf-float-left,
#bottom-bar .wf-float-right {
    font-size: 0.75rem; /* slightly smaller than footer copy */
    line-height: 1.6;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.75);
}

/* Ensure no default margins cause vertical misalignment */
#bottom-bar p {
    margin: 0;
}

#bottom-bar .wf-container-bottom {
    min-height: 70px; /* prevents jumpiness */
}

#bottom-bar .wf-float-right {
    padding-left: 10px; /* was effectively ~10px, adds +10px more */
}

/* ===========================
   Bottom Bar: true left / center / right alignment
   =========================== */

#bottom-bar .wf-container-bottom {
    display: grid;
    grid-template-columns: 1fr auto 1fr; /* left | logo | right */
    align-items: baseline; /* updated to have logo on baseline instead of 'center' */
    width: 100%;
}

/* Put each item in the correct grid column */
#bottom-bar .wf-float-left {
    grid-column: 1;
    justify-self: start; /* hard-left */
    text-align: left;
}

#bottom-bar #branding-bottom {
    grid-column: 2;
    justify-self: center; /* true center */
}

#bottom-bar .wf-float-right {
    grid-column: 3;
    justify-self: end; /* hard-right */
    text-align: right;
}

/* Neutralize theme float behavior so grid can do its job */
#bottom-bar .wf-float-left,
#bottom-bar .wf-float-right {
    float: none !important;
}

#bottom-bar .wf-wrap {
    padding-left: 20px;
    padding-right: 20px;
}

/* ===========================
   Footer background: subtle premium gradient across footer + bottom bar
   =========================== */
#footer {
    background-image: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.06) 100%
    );
    background-repeat: no-repeat;
    background-size: cover;
}

#bottom-bar {
    background-image: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.08) 100%
    );
    background-repeat: no-repeat;
    background-size: cover;
}

@media (max-width: 600px) {
    #bottom-bar .wf-container-bottom {
        grid-template-columns: 1fr;
        gap: 0.75rem;
        text-align: center;
    }
    #bottom-bar .wf-float-left,
    #bottom-bar #branding-bottom,
    #bottom-bar .wf-float-right {
        grid-column: auto;
        justify-self: center;
        text-align: center;
    }
}

/* ===========================
   SCH Image Card Hover (sharp corners, brand tint, subtle zoom)
   Usage (WPBakery Single Image → Extra class name): sch-image-card
   =========================== */
.sch-image-card .vc_single_image-wrapper {
    position: relative;
    display: inline-block;
    overflow: hidden; /* clip overlay/zoom */
    border-radius: 0; /* sharp corners per brand */
    transform: translateZ(0); /* smoother anim */
}
.sch-image-card .vc_single_image-wrapper img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0; /* ensure image stays square */
    transition:
        transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
        filter 0.45s ease;
    will-change: transform;
}
/* Brand tint overlay (subtle) */
.sch-image-card .vc_single_image-wrapper::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 62, 126, 0.06) 0%,
        /* brand tint faint at top */ rgba(0, 62, 126, 0.14) 100%
            /* slightly stronger at bottom */
    );
    opacity: 0;
    transition: opacity 0.35s ease;
    pointer-events: none;
}

/* Hover/focus treatments (desktop/hover-capable only) */
@media (hover: hover) {
    .sch-image-card .vc_single_image-wrapper:hover::after,
    .sch-image-card .vc_single_image-wrapper:focus-visible::after {
        opacity: 1;
    }
    .sch-image-card .vc_single_image-wrapper:hover img,
    .sch-image-card .vc_single_image-wrapper:focus-visible img {
        transform: scale(1.02); /* slightly reduced zoom */
        filter: contrast(1.03) saturate(1.02);
    }
}

/* Keyboard focus ring for accessibility */
.sch-image-card .vc_single_image-wrapper:focus-visible {
    outline: 2px solid rgba(0, 62, 126, 0.45);
    outline-offset: 2px;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    .sch-image-card .vc_single_image-wrapper img {
        transition: none;
    }
}

/* ===========================
   SCH Responsive Video Embed (centered, 16:9)
   Usage: wrap iframe in <div class="video-container">…</div>
   =========================== */
.video-container {
    position: relative;
    width: min(100%, 1024px); /* cap to your intended max width */
    margin: 0 auto; /* center horizontally */
    aspect-ratio: 16 / 9; /* modern responsive sizing */
    background: #000; /* avoids white flash before load */
}
.video-container iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* Fallback for older browsers without aspect-ratio */
@supports not (aspect-ratio: 16 / 9) {
    .video-container {
        height: 0;
        padding-bottom: 56.25%;
    }
    .video-container iframe {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
    }
}

/* ===========================
   SCH Intro Section (WPBakery)
   =========================== */
/* 1) Background treatment (soft off‑white row) */
.sch-offwhite {
    background: #f1f2f2; /* soft warm neutral */
}

/* Preferred: use this class only on the specific row that needs full‑width bg */
.sch-row-offwhite {
    /*background: #f9f9f8; f1f2f2;*/
    background-color: rgba(147, 146, 130, 0.05); /* 10% Opacity */
}
.sch-row-white {
    background: #fff;
}

/* Content container that aligns with site content width inside full‑width rows */
:root {
    --sch-content-max: 1200px;
}
.sch-container {
    width: min(100%, var(--sch-content-max));
    margin: 0 auto;
    padding-bottom: 30px;
}
/* Remove default inner padding that can double up gutters */
.sch-row-offwhite .vc_column-inner,
.sch-offwhite .vc_column-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Desktop >1300px: align with content above (no outer padding) */
.sch-row-offwhite-col-left {
    padding: 60px 20px 10px 0px;
    margin-top: 20px;
}

.sch-row-offwhite-col-right {
    padding: 60px 0px 10px 20px;
}

/* Between 1220px and 1300px: reduced left padding */
@media (max-width: 1300px) and (min-width: 1221px) {
    .sch-row-offwhite-col-left {
        padding: 60px 15px 10px 30px;
    }

    .sch-row-offwhite-col-right {
        padding: 60px 15px 10px 30px;
    }
}

/* Below 1220px: standard WP Bakery column padding (50px) */
@media (max-width: 1220px) {
    .sch-row-offwhite-col-left {
        padding: 60px 15px 10px 50px;
    }

    .sch-row-offwhite-col-right {
        padding: 60px 15px 10px 50px;
    }
}

/* Mobile: adjust padding for small screens */
@media (max-width: 600px) {
    .sch-row-offwhite-col-left {
        padding: 60px 35px 10px 30px;
    }

    .sch-row-offwhite-col-right {
        padding: 60px 35px 10px 30px;
    }
}

/* 2) Typography hierarchy */
/* Eyebrow (small, uppercase, letter spaced) */
.sch-eyebrow {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 0.82rem;
    line-height: 1.2;
    color: rgba(28, 117, 188, 0.85); /* muted brand blue */
    margin: 0 0 0.6rem;
}
/* Optional gray variant: add sch-eyebrow--gray in addition */
.sch-eyebrow.sch-eyebrow--gray {
    color: rgba(0, 0, 0, 0.55);
}

/* Primary heading (calm serif) – opt-in helper if needed */
.sch-h2-primary {
    font-family: "Bodoni Moda", serif;
    font-weight: 100; /* ultra-light per system */
    line-height: 1.2;
    font-size: 2.3rem; /* desktop default, responsive below */
    margin: 0 0 0.75rem;
}
@media (max-width: 1024px) {
    .sch-h2-primary {
        font-size: 2.1rem;
    }
}
@media (max-width: 600px) {
    .sch-h2-primary {
        font-size: 1.65rem;
    }
}

/* SEO paragraph (lede) */
.sch-lede {
    max-width: 65ch; /* keep to ~3–4 lines */
    font-size: 1.1rem;
    line-height: 1.6em;
    font-weight: 400;
    margin: 0 0 1.25rem;
}
@media (max-width: 600px) {
    .sch-lede {
        font-size: 1rem;
    }
}

/* 3) Video treatment: apply on wrapper around .video-container */
.sch-video {
    width: min(100%, 1024px);
    margin: 1.25rem auto 0;
}
.sch-video .video-container {
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 0;
}
.sch-video-caption {
    text-align: center;
    font-size: 0.9rem;
    color: rgba(0, 0, 0, 0.65);
    margin-top: 0.5rem;
}

/* 4) Subtle divider at bottom of section */
hr.sch-divider,
.sch-row-divider {
    width: 65%;
    height: 1px;
    margin: 2rem auto 0;
    border: 0;
    background: rgba(
        0,
        0,
        0,
        0.15
    ); /* warm gray; adjust to taupe/gold if desired */
}

/* ===========================
   Social Feed Row
   =========================== */

.sch-social-row {
    max-width: 1400px;
    margin: 0 auto;
}

/* Left copy column */
.sch-social-copy h2 {
    margin-bottom: 1rem;
    margin-top: 10px;
}

.sch-social-copy p {
    max-width: 28rem;
    opacity: 0.85;
}

/* Feed alignment */
.sch-social-feed {
    display: flex;
    justify-content: flex-end;
    min-height: 310px;
}

/* Smash Balloon overrides */
.sch-social-feed .sbi_photo_wrap {
    border-radius: 2px;
    overflow: hidden;
}

.sch-social-feed .sbi_photo {
    transition:
        transform 0.35s ease,
        opacity 0.35s ease;
}

.sch-social-feed .sbi_photo:hover {
    transform: scale(1.03);
    opacity: 0.95;
}

@media (max-width: 768px) {
    .sch-social-row {
        flex-direction: column;
    }

    .sch-social-feed {
        margin-top: 2rem;
        justify-content: center;
    }
}

/* ===========================
   Social Icons (Quiet Luxury)
   =========================== */

.sch-social-icons {
    margin-top: 0.5rem;
    display: flex;
    gap: 1.2rem;
}

.sch-social-icons a {
    color: rgba(28, 117, 188, 0.55); /* adjust to brand blue */
    font-size: 1.1rem;
    transition:
        color 0.25s ease,
        transform 0.25s ease;
}

.sch-social-icons a:hover,
.sch-social-icons a:focus {
    color: rgba(20, 40, 80, 0.9);
    transform: translateY(-1px);
}

.sch-social-icons a:focus-visible {
    outline: 2px solid rgba(20, 40, 80, 0.4);
    outline-offset: 3px;
}

/* The el_class "sch-social-icons" is applied to BOTH the inner row and the
   outer wpb_raw_html wrapper, so the wrapper also becomes display:flex and its
   single child .wpb_wrapper (which carries auto side-margins) gets centered —
   pushing the icons to the middle. Keep only the inner div as the flex row;
   de-flex the wrapper so the icons sit flush left. */
.wpb_raw_html.sch-social-icons {
    display: block;
}

/* ===========================
   Email Newsletter Row
   =========================== */

.sch-separator {
    width: 96%;
}

.sch-email-row {
    max-width: 1400px;
    margin: 0 auto;
}

/* Copy column */
.sch-email-copy {
    padding-left: 12px;
}

.sch-email-copy .sch-h2 {
    margin-bottom: 1rem;
}

.sch-email-copy p {
    max-width: 28rem;
    opacity: 0.85;
}

/* Form styling */
/* Constrain to the lead-in copy's width (.sch-connect-vip = 540px) and center
   it, so the form sits directly under the copy instead of spanning full width. */
.sch-email-form #mc_embed_signup {
    margin: 1.75rem auto 0;
    max-width: 540px;
}

.sch-email-form input#mc-embedded-subscribe {
    margin-top: 0;
}

.sch-email-form input[type="email"] {
    width: 100%;
    height: 48px;
    padding: 0 14px;
    border: 1px solid rgba(0, 0, 0, 0.18);
    border-radius: 2px;
    font-size: 1rem;
    outline: none;
}

.sch-email-form input[type="email"]:focus-visible {
    border-color: rgba(15, 59, 116, 0.45);
    outline: 2px solid rgba(15, 59, 116, 0.25);
    outline-offset: 2px;
}

/* Button: quiet luxury (avoid loud orange if possible) */
.sch-email-form input[type="submit"] {
    width: 100%;
    margin-top: 14px;
    height: 52px;
    border-radius: 2px;
    border: 1px solid rgba(15, 59, 116, 0.35);
    background: transparent;
    color: rgba(15, 59, 116, 0.9);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 600;
    transition:
        background 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease;
}

.sch-email-form input[type="submit"]:hover {
    background: rgba(15, 59, 116, 0.92);
    color: #fff;
    border-color: rgba(15, 59, 116, 0.92);
}

/* Mobile spacing */
@media (max-width: 768px) {
    .sch-email-copy {
        margin-bottom: 2rem;
        padding-right: 14px;
    }
    .sch-email-img {
        margin-bottom: 1.25rem;
    }
    /* Connect page only: keep the signup field + button off the screen edges */
    .page-id-2898 .sch-email-form #mc_embed_signup {
        padding-left: 10px;
        padding-right: 10px;
    }
}

/* ===========================
   Generic Button Class
   Same styling as email form button
   Separate from site link styling
   =========================== */

a.sch-btn,
.sch-btn {
    display: inline-block;
    padding: 0 24px;
    height: 52px;
    line-height: 52px;
    border-radius: 2px;
    border: 1px solid rgba(15, 59, 116, 0.35) !important;
    background: transparent !important;
    color: rgba(15, 59, 116, 0.9) !important;
    font-weight: 600;
    font-size: 0.9rem;
    text-align: center;
    text-decoration: none !important;
    text-decoration-thickness: 0 !important;
    text-underline-offset: 0 !important;
    cursor: pointer;
    transition:
        background 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease;
}

a.sch-btn:hover,
.sch-btn:hover {
    background: rgba(15, 59, 116, 0.92) !important;
    color: #fff !important;
    border-color: rgba(15, 59, 116, 0.92) !important;
    text-decoration: none !important;
    text-decoration-color: transparent !important;
}

a.sch-btn:focus-visible,
.sch-btn:focus-visible {
    outline: 2px solid rgba(15, 59, 116, 0.6);
    outline-offset: 3px;
}

/* ========================================
   INTERIOR PAGE HERO
   ======================================== */

/* Hero container - full width, fixed height, positioned beneath nav */
.sch-interior-hero {
    position: relative;
    width: 100%;
    height: clamp(320px, 70vh, 600px);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
    margin: 0;
    padding: 0;
    /* Positioned beneath navigation */
    z-index: 1;
}

/* Dual overlay system - left 33% of image */
/* Primary overlay: Brand blue at 50% opacity */
.sch-interior-hero__overlay-primary {
    position: absolute;
    top: 0;
    left: 0;
    width: 33.333%;
    height: 100%;
    background-color: rgba(0, 62, 126, 0.5);
    z-index: 2;
}

/* Secondary overlay: Dark blue-black at 31% opacity (stacked on top) */
.sch-interior-hero__overlay-secondary {
    position: absolute;
    top: 0;
    left: 0;
    width: 33.333%;
    height: 100%;
    background-color: rgba(0, 8, 22, 0.31);
    z-index: 3;
}

/* Three words container - positioned over left third overlay */
.sch-interior-hero__words {
    position: absolute;
    top: 50%;
    left: 16.666%;
    transform: translate(-50%, -50%);
    z-index: 4;
    width: auto;
    height: auto;
}

/* Base word styling */
.sch-word {
    display: block;
    position: absolute;
    font-family: "Bodoni Moda", serif;
    font-weight: 400;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1;
    white-space: nowrap;
}

/* Top word - larger, closer to middle word, shifted left from center */
.sch-word--top {
    font-size: 2.2rem;
    top: -2.2rem;
    left: 50%;
    transform: translateX(calc(-50% - 125px));
}

/* Middle word - largest, centered (anchor position) */
.sch-word--middle {
    font-size: 3.6rem;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    font-weight: 400;
}

/* Bottom word - larger, shifted right from center */
.sch-word--bottom {
    font-size: 2.4rem;
    top: 3.5rem;
    left: 50%;
    transform: translateX(calc(-50% + 100px));
}

/* Page-specific: Testimonials (id 396) — PROFESSIONAL exceeds the 10-char comfort width; nudge left across all breakpoints */
body.page-id-396 .sch-word--bottom {
    margin-left: -35px;
}

/* Large desktop adjustments (1400px and below) */
@media (max-width: 1400px) {
    .sch-word--top {
        font-size: 1.9rem;
        top: -2rem;
        transform: translateX(calc(-50% - 110px));
    }

    .sch-word--middle {
        font-size: 3.2rem;
    }

    .sch-word--bottom {
        font-size: 2.1rem;
        top: 3.2rem;
        transform: translateX(calc(-50% + 90px));
    }
}

/* Mid-size desktop adjustments (1250px and below) */
@media (max-width: 1250px) {
    .sch-word--top {
        font-size: 1.6rem;
        top: -1.7rem;
        transform: translateX(calc(-50% - 90px));
    }

    .sch-word--middle {
        font-size: 2.6rem;
    }

    .sch-word--bottom {
        font-size: 1.8rem;
        top: 2.6rem;
        transform: translateX(calc(-50% + 70px));
    }
}

/* Tablet adjustments (1024px and below) */
@media (max-width: 1024px) {
    .sch-interior-hero {
        height: clamp(280px, 50vh, 450px);
    }

    .sch-word--top {
        font-size: 1.5rem;
        top: -1.6rem;
        transform: translateX(calc(-50% - 70px));
    }

    .sch-word--middle {
        font-size: 2.4rem;
    }

    .sch-word--bottom {
        font-size: 1.7rem;
        top: 2.2rem;
        transform: translateX(calc(-50% + 60px));
    }
}

/* Mobile adjustments (900px and below) */
@media (max-width: 900px) {
    .sch-interior-hero {
        height: clamp(250px, 45vh, 400px);
    }

    .sch-interior-hero__overlay-primary,
    .sch-interior-hero__overlay-secondary {
        width: 55%;
    }

    .sch-interior-hero__words {
        left: 27.5%;
    }

    .sch-word--top {
        font-size: 1.2rem;
        top: -1.3rem;
        transform: translateX(calc(-50% - 35px));
    }

    .sch-word--middle {
        font-size: 1.8rem;
    }

    .sch-word--bottom {
        font-size: 1.3rem;
        top: 1.6rem;
        transform: translateX(calc(-50% + 30px));
    }
}

/* Extra small mobile adjustments (400px and below) */
@media (max-width: 400px) {
    .sch-word--top {
        font-size: 1rem;
        top: -1.1rem;
        transform: translateX(calc(-50% - 25px));
    }

    .sch-word--middle {
        font-size: 1.5rem;
    }

    .sch-word--bottom {
        font-size: 1.1rem;
        top: 1.4rem;
        transform: translateX(calc(-50% + 20px));
    }
}

/* Lede style (premium editorial opening) */
#content .sch-page-lede {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: clamp(24px, 2.2vw, 36px);
    line-height: 1.28;
    font-weight: 500;
    letter-spacing: -0.01em;
    margin: 0 0 1.25rem;
    color: #1f4f86; /* your brand blue family */
    max-width: 22em;
}

/* ===========================
   SCH Interior Single-Column Content
   Apply .sch-interior-content on the WPBakery Row
   =========================== */

/* 1) Provide breathing room around the content block */
.sch-interior-content {
    padding-top: clamp(24px, 3vw, 48px);
    padding-bottom: clamp(32px, 4vw, 64px);
}

/* 2) Constrain the overall column so the page feels “designed” */
.sch-interior-content > .wpb_column,
.sch-interior-content .wpb_column {
    float: none; /* defensive */
}

/* Most The7/WPB layouts place content in .vc_column-inner */
.sch-interior-content .vc_column-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 3) Reading measure (the most important part) */
.sch-interior-content .wpb_wrapper {
    max-width: 760px; /* premium reading width on desktop */
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
}

/* 4) Section headings cadence */
.sch-interior-content h2,
.sch-interior-content h3,
.sch-interior-content h4 {
    /*margin-top: clamp(34px, 4vw, 60px);
    margin-bottom: clamp(10px, 1.1vw, 18px);*/
    margin-top: 2rem;
    margin-bottom: 0.4rem;
}

/* 6) Consistent vertical rhythm */
.sch-interior-content .wpb_wrapper > *:first-child {
    margin-top: 0;
}
.sch-interior-content .wpb_wrapper > *:last-child {
    margin-bottom: 0;
}

.sch-interior-content p {
    margin: 0 0 1.1rem;
}
.sch-interior-content ul,
.sch-interior-content ol {
    margin: 0 0 1.1rem 1.25rem;
}

/* 7) Images: keep aligned to the text measure and spaced consistently */
.sch-interior-content img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 1.75rem auto;
}

/* Optional: soften inline images with a subtle premium radius */
.sch-interior-content img:not([class*="emoji"]) {
    border-radius: 2px;
}

/* 8) Tablet tuning */
@media (max-width: 1024px) {
    .sch-interior-content .wpb_wrapper {
        max-width: 720px;
        padding-left: 22px;
        padding-right: 22px;
    }
}

/* 9) Mobile tuning */
@media (max-width: 600px) {
    .sch-interior-content {
        padding-top: 22px;
        padding-bottom: 44px;
    }

    .sch-interior-content .wpb_wrapper {
        max-width: 100%;
        padding-left: 18px;
        padding-right: 18px;
    }
}

/* =========================================================
   SCH Awards Page Styles
   - Outer section rows:
     .sch-awards-stats          (section wrapper; optional background / spacing)
     .sch-awards-stats-inner    (inner row/grid container)
     .sch-award-group           (section wrapper for logo + details groups)
     .sch-award-group-inner     (inner row/grid container)
   - Components:
     stat tiles + award tiles
   ========================================================= */

/* ---------- 1) STATS SECTION (numbers at a glance) ---------- */

.sch-awards-stats {
    /* section rhythm */
    padding: clamp(24px, 4vw, 36px) 0;
}

/* =========================================================
   Fix WPBakery 6-column wrap for Awards Stats
   ========================================================= */

/* WPBakery often forces .vc_row to flex; override to grid here */
.vc_row.sch-awards-stats-inner {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: clamp(18px, 2.2vw, 28px);
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Neutralize WPBakery column sizing + gutters inside this grid row */
.vc_row.sch-awards-stats-inner > .wpb_column.vc_column_container {
    width: auto !important; /* stop vc_col-sm-2 forcing 16.666% */
    flex: none !important; /* stop flex sizing */
    padding-left: 0 !important; /* remove 15px gutter */
    padding-right: 0 !important; /* remove 15px gutter */
    margin: 0 !important;
}

/* Pass flex through WPBakery's .vc_column-inner > .wpb_wrapper wrappers
   so the logo and text are actual flex children of the tile.
   Card padding lives here (not on .sch-award-stat) to avoid conflict
   with the grid gutter-removal rule above which uses !important. */
.sch-award-stat > .vc_column-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    flex: 1;
    padding-top: clamp(4px, 0.6vw, 8px) !important;
    padding-bottom: clamp(20px, 2.2vw, 26px) !important;
    padding-left: clamp(14px, 1.6vw, 18px) !important;
    padding-right: clamp(14px, 1.6vw, 18px) !important;
    margin: 0 !important;
    box-sizing: border-box;
}

.sch-award-stat > .vc_column-inner > .wpb_wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    flex: 1;
    padding: 0 !important;
    margin: 0 !important;
}

/* Kill WPBakery's default margin-bottom on image and text modules inside stat tiles */
.sch-award-stat .wpb_single_image,
.sch-award-stat .wpb_text_column {
    margin-top: 24px !important;
    margin-bottom: 0 !important;
}

/* Remove WPBakery inner padding from the text module */
.sch-award-stat .wpb_text_column > .wpb_wrapper {
    padding: 0 !important;
}

/* WPBakery adds vc_box_border_grey to image wrappers — strip the border and padding */
.sch-award-stat .vc_single_image-wrapper.vc_box_border_grey {
    border: none !important;
    padding: 0 !important;
}

/* vc_align_left on wpb_single_image left-aligns the figure — override to center */
.sch-award-stat .wpb_single_image.vc_align_left {
    text-align: center !important;
}
.sch-award-stat .wpb_single_image.vc_align_left .vc_figure {
    float: none !important;
    text-align: center !important;
}

/* Zero out the outer vc_col-sm-12 wrapper that sits between
   .sch-awards-stats and .sch-awards-stats-inner */
.sch-awards-stats > .wpb_column > .vc_column-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.sch-award-stat {
    /* No padding here — it's on .vc_column-inner to avoid conflict
       with the grid gutter-removal rule's !important */
    padding: 0 !important;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 0;
    background: #fff;
    text-align: center;
    display: flex;
    flex-direction: column;
    min-height: 152px;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.025);
    overflow: hidden;
}

/* Big number */
.sch-award-number {
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1;
    font-size: clamp(1.05rem, 1.4vw, 1.45rem);
    color: #003e7e;
    margin: 0 0 8px 0;
}

/* Label under the number */
.sch-award-label {
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    line-height: 1.35;
    font-size: 0.68rem;
    color: rgba(0, 0, 0, 0.48);
    margin: 0;
}

/* ---------- Logo-led stat tiles ---------- */

.sch-award-stat--logo .sch-award-stat-logo {
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    width: 100%;
}

/* WPBakery wraps vc_single_image in figure > .vc_single_image-wrapper;
   constrain those so the 40px zone holds and image centres correctly */
.sch-award-stat--logo .sch-award-stat-logo figure,
.sch-award-stat--logo .sch-award-stat-logo .vc_figure,
.sch-award-stat--logo .sch-award-stat-logo .vc_single_image-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0;
}

.sch-award-stat--logo .sch-award-stat-logo img {
    max-height: 40px;
    max-width: 150px;
    width: auto;
    height: auto;
    display: block;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.9;
}

/* Add sch-award-stat--color-logo to the column el_class to show logo in full color */
.sch-award-stat--color-logo .sch-award-stat-logo img {
    filter: none;
    opacity: 1;
}

/* ---------- Featured awards intro ---------- */

.sch-featured-awards-intro {
    padding-top: clamp(28px, 4vw, 46px);
    padding-bottom: clamp(18px, 2vw, 26px);
}

.sch-section-title {
    margin: 0 0 10px 0;
    text-transform: uppercase;
    font-weight: 600;
    font-size: clamp(1.5rem, 2.2vw, 2rem);
    line-height: 1.1;
    letter-spacing: 0.04em;
    /*color: rgba(0, 0, 0, 0.86); */
}

.sch-section-intro {
    margin: 0;
    max-width: 68ch;
    font-size: 1rem;
    line-height: 1.75;
    color: rgba(0, 0, 0, 0.66);
}

/* ---------- Featured awards grid ---------- */

/* CSS grid — same approach as stats row — prevents WPBakery/The7
   responsive overrides from collapsing columns to full width */
.vc_row.sch-featured-awards-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(18px, 2vw, 28px);
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.vc_row.sch-featured-awards-grid > .wpb_column {
    width: auto !important;
    flex: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
}

/* .sch-interior-content applies padding-left/right: 24px + max-width: 760px
   to ALL .wpb_wrapper elements. Inside a featured award column there are two
   nested .wpb_wrapper elements, so the card receives 48px of left offset while
   the CTA button (in the outer wrapper) only receives 24px — causing ~40px misalignment.
   Reset .wpb_wrapper to full-width flow for this grid. */
.sch-featured-awards-grid .wpb_wrapper {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.sch-featured-awards-grid {
    padding-top: 6px;
    padding-bottom: clamp(24px, 4vw, 46px);
}

/* .vc_column-inner is the true card wrapper — it contains image, text, and button.
   overflow: hidden clips the image flush to the top border-radius. */
.sch-featured-awards-grid > .wpb_column > .vc_column-inner {
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 0;
    background: #fff;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.03);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 0 !important;
}

.sch-featured-award-image {
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0;
    line-height: 0;
}

/* Strip vc_box_border_grey border and padding for featured award images */
.sch-featured-award-image .vc_single_image-wrapper.vc_box_border_grey {
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Enforce a consistent aspect ratio so all image zones are the same height
   regardless of source image dimensions or placeholder state */
.sch-featured-award-image .vc_single_image-wrapper {
    aspect-ratio: 3 / 2;
    overflow: hidden;
    display: block;
    line-height: 0;
    margin: 0 !important;
    padding: 0 !important;
}

/* figure.wpb_wrapper inherits .sch-interior-content .wpb_wrapper spacing — zero it out */
.sch-featured-award-image figure,
.sch-featured-award-image .vc_figure {
    display: block;
    line-height: 0;
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.sch-featured-award-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    margin: 0 !important;
    vertical-align: top;
}

/* Card text area: padding only — visual card is now .vc_column-inner */
.sch-featured-award-card {
    padding: 22px 22px 12px 22px;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    flex: 1;
}

.sch-featured-award-kicker {
    margin: 0 0 10px 0;
    font-size: 0.72rem;
    line-height: 1.2;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.48);
}

.sch-featured-award-title {
    margin: 0 0 12px 0;
    font-size: clamp(1.15rem, 1.45vw, 1.4rem);
    line-height: 1.2;
    text-transform: none;
    letter-spacing: 0.01em;
    font-weight: 600;
    color: rgba(0, 0, 0, 0.88);
}

.sch-featured-award-summary {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.7;
    color: rgba(0, 0, 0, 0.66);
}

/* ---------- Award CTA buttons ---------- */

.sch-featured-award-btn {
    padding: 0 22px 22px 22px;
    margin: 0 !important;
    flex-shrink: 0;
}

.sch-featured-award-btn .vc_general {
    border-width: 1px !important;
    border-color: rgba(0, 0, 0, 0.18) !important;
    color: rgba(0, 0, 0, 0.78) !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    padding: 12px 18px !important;
    background: transparent !important;
}

.sch-featured-award-btn .vc_general:hover {
    background: #0c3f78 !important;
    border-color: #0c3f78 !important;
    color: #fff !important;
}

/* ---------- Archive note ---------- */

.sch-awards-archive-link {
    padding-top: 10px;
    padding-bottom: 10px;
}

.sch-awards-archive-note {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: rgba(0, 0, 0, 0.52);
}

/* ---------- 2) AWARD GROUPS (logo + title + summary + years) ---------- */

.sch-award-group {
    padding: clamp(26px, 4.5vw, 35px) 0;
}

/* Single-column layout: logo above content, both left-aligned */
.sch-award-group-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 clamp(18px, 3vw, 32px);

    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(18px, 2vw, 24px);

    /* left-aligned content */
    text-align: left;
}

/* Logo container */
.sch-award-logo {
    /* logo aligned left to match content */
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;

    /* slight top alignment polish */
    padding-top: 6px;
}

/* Override centering for award images inside .sch-interior-content */
.sch-interior-content .sch-award-logo,
.sch-interior-content .sch-award-logo .wpb_wrapper,
.sch-interior-content .sch-award-logo figure {
    margin-left: 0 !important;
    margin-right: auto !important;
}

/* Reduce spacing between award logo and title */
.sch-interior-content .sch-award-logo {
    margin-bottom: 12px !important;
}

/* Left-align separator to match award content */
.sch-interior-content .sch-award-separator,
.sch-interior-content .sch-award-separator .wpb_wrapper {
    margin-left: 0 !important;
    margin-right: auto !important;
    padding-left: 22px;
}

/* If you place an <img> inside .sch-award-logo */
.sch-award-logo img {
    width: 220px;
    max-width: 100%;
    height: auto;
    display: block;

    /* consistent "logo tile" appearance */
    background: #fff;
    border-radius: 0;
    padding: 10px 10px 10px 0;

    /* black and white filter */
    filter: grayscale(100%);
}

/* Title line */
.sch-award-title {
    margin: 0 0 10px 0;
    line-height: 1.15;
    text-transform: uppercase;

    font-weight: 600;
    font-size: clamp(1.15rem, 1.5vw, 1.45rem);
    color: rgba(0, 0, 0, 0.85);
}

/* Short description under title */
.sch-award-summary {
    margin: 0 0 14px 0;
    line-height: 1.7;

    font-size: 1rem;
    color: rgba(0, 0, 0, 0.68);
    max-width: 70ch;
}

/* Years list: “2024 • 2023 • 2022 …” */
.sch-award-years {
    margin: 0;
    padding: 0;

    /* set as a neat inline wrap list even if it’s plain text */
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;

    font-size: 0.9rem;
    line-height: 1.5;

    color: rgba(0, 0, 0, 0.58);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* If you use <span> inside for each year */
.sch-award-years span {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

/* Add subtle separators if you want (optional) */
.sch-award-years span:not(:last-child)::after {
    content: "•";
    opacity: 0.5;
}

/* Prevent WPBakery clearfix pseudo-elements from acting as phantom grid items */
.sch-awards-stats-inner::before,
.sch-awards-stats-inner::after,
.vc_row.sch-featured-awards-grid::before,
.vc_row.sch-featured-awards-grid::after {
    content: none !important;
    display: none !important;
}

/* ---------- 3) RESPONSIVE BEHAVIOR ---------- */

/* Large tablet / laptop: stats drop to 3 columns sooner */
@media (max-width: 1280px) {
    .vc_row.sch-awards-stats-inner {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 20px;
    }

    .sch-award-stat {
        min-height: 148px;
    }
}

/* Tablets: award groups become stacked with logo above content */
@media (max-width: 900px) {
    .sch-award-group-inner {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .sch-award-logo {
        justify-content: flex-start;
    }

    .sch-award-logo img {
        width: 200px;
    }

    .sch-featured-award-card {
        min-height: auto;
    }

    /* Stack featured award cards to single column on tablet */
    .vc_row.sch-featured-awards-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Mobile: stats become 2 columns; tighter spacing */
@media (max-width: 600px) {
    .sch-awards-stats {
        padding: 22px 0;
    }

    .vc_row.sch-awards-stats-inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .sch-award-stat {
        min-height: 138px;
    }

    .sch-award-stat > .vc_column-inner {
        padding: 18px 12px !important;
    }

    .sch-award-stat--logo .sch-award-stat-logo {
        height: 34px;
        margin-bottom: 14px;
    }

    .sch-award-stat--logo .sch-award-stat-logo img {
        max-height: 32px;
        max-width: 120px;
    }

    .sch-award-number {
        font-size: 1rem;
    }

    .sch-award-label {
        font-size: 0.64rem;
        letter-spacing: 0.12em;
    }

    .sch-award-group {
        padding: 34px 0;
    }

    .sch-award-years {
        font-size: 0.82rem;
        gap: 8px 10px;
    }

    .sch-featured-award-card {
        padding: 18px 18px 16px 18px;
    }

    .sch-featured-award-title {
        font-size: 1.1rem;
    }

    .sch-featured-award-summary {
        font-size: 0.92rem;
    }
}

@media (hover: hover) {
    .sch-award-stat {
        transition:
            transform 0.25s ease,
            box-shadow 0.25s ease;
    }

    .sch-award-stat:hover {
        transform: translateY(-2px);
        box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
    }

    /* Transition the vc_column-inner so image + card move together,
       keeping the borderless image/card join intact */
    .sch-featured-awards-grid > .wpb_column > .vc_column-inner {
        transition:
            transform 0.3s ease,
            box-shadow 0.3s ease;
    }

    .sch-featured-awards-grid > .wpb_column:hover > .vc_column-inner {
        transform: translateY(-3px);
        box-shadow: 0 18px 34px rgba(0, 0, 0, 0.06);
    }
}

/* ========================================
   FEATURED PROJECTS SECTION
   ======================================== */

/* Row container - calm background (matches home video row) */
.sch-neighborhood-projects.sch-projects-feature {
    background-color: rgba(147, 146, 130, 0.05);
}

/* Header section - flush left, site default styling */
.sch-projects-head {
    text-align: left;
}

.sch-projects-head h2 {
    margin: 0;
}

/* Project card container - relative positioning for overlay */
.sch-project-card {
    position: relative;
    width: 100%;
    margin-top: -4px; /* Pulls card up to overlay on image */
}

/* Image containers - large, prominent aspect ratios */
.sch-projects-left .wpb_single_image,
.sch-projects-right .wpb_single_image {
    margin-bottom: 0;
}

.sch-projects-left .vc_single_image-wrapper {
    position: relative;
    aspect-ratio: 4 / 3; /* Larger, more substantial */
    overflow: hidden;
    border: none !important;
    box-shadow: 0 14px 38px rgba(0, 0, 0, 0.14);
}

.sch-projects-right .vc_single_image-wrapper {
    position: relative;
    aspect-ratio: 5 / 4; /* Taller, takes up more vertical space */
    overflow: hidden;
    border: none !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
}

.sch-projects-left .vc_single_image-wrapper img,
.sch-projects-right .vc_single_image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Overlay on Featured Projects images for text legibility */
.sch-projects-mosaic .vc_single_image-wrapper::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.15) 0%,
        rgba(0, 0, 0, 0.35) 100%
    );
    pointer-events: none;
    transition: opacity 0.3s ease;
}

/* Project overlay content - positioned over image */
.sch-project-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: clamp(20px, 3vw, 32px);
    color: #ffffff;
    z-index: 2;
}

/* Feature card (large left) - more prominent text */
.sch-project-card--feature .sch-project-overlay {
    padding: clamp(24px, 4vw, 40px);
}

/* Small cards (right column) - generous spacing between stacked images */
.sch-project-card--small {
    margin-bottom: clamp(28px, 4vw, 40px);
}

.sch-project-card--small:last-child {
    margin-bottom: 0;
}

.sch-project-card--small .sch-project-overlay {
    padding: clamp(16px, 2.5vw, 24px);
}

/* Eyebrow - subtle uppercase label */
.sch-project-eyebrow {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    opacity: 0.9;
    margin-bottom: 6px;
}

.sch-project-card--feature .sch-project-eyebrow {
    font-size: 0.82rem;
    margin-bottom: 8px;
}

/* Project title - confident but not loud */
.sch-project-title {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1.2;
    margin: 0 0 8px 0;
    color: #ffffff;
}

.sch-project-card--feature .sch-project-title {
    font-size: clamp(1.6rem, 2.5vw, 2rem);
    margin-bottom: 10px;
}

.sch-project-card--small .sch-project-title {
    font-size: 1.2rem;
    margin-bottom: 6px;
}

/* Project meta - location and size */
.sch-project-meta {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.4;
    opacity: 0.85;
    margin-bottom: 12px;
}

.sch-project-card--feature .sch-project-meta {
    font-size: 0.95rem;
}

/* View link - understated, editorial */
.sch-project-link {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #ffffff;
    display: inline-block;
    position: relative;
    padding-bottom: 2px;
}

/* Keep the (now <a>) project links white on the dark card overlay — overrides the
   global #content a brand-blue/underline rule, which otherwise wins on specificity.
   Underline is handled by the animated .sch-project-link::after, so none here. */
#content.content[role="main"] a.sch-project-link,
#content.content[role="main"] a.sch-project-link:hover,
#content.content[role="main"] a.sch-project-link:focus {
    color: #ffffff;
    text-decoration: none;
}

.sch-project-card--feature .sch-project-link {
    font-size: 0.9rem;
}

/* Subtle underline that appears on hover */
.sch-project-link::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background-color: #ffffff;
    transition: width 0.3s ease;
}

/* Remove default paragraph margins in overlay */
.sch-project-overlay p {
    margin: 0;
}

/* Footer section - flush left text */
.sch-projects-foot {
    text-align: left;
}

.sch-projects-foot p {
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(0, 0, 0, 0.7);
}

/* Hover effects - subtle and refined */
@media (hover: hover) {
    /* .sch-card-linked is added by sch-project-cards.js to the photo + caption
       so the whole Featured Projects card reads as clickable. */
    .sch-project-card,
    .sch-card-linked {
        cursor: pointer;
    }

    .vc_single_image-wrapper {
        transition:
            transform 0.4s ease,
            box-shadow 0.4s ease;
    }

    .sch-project-card:hover .vc_single_image-wrapper {
        transform: scale(1.02);
        box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18);
    }

    .sch-project-card:hover .vc_single_image-wrapper::after {
        opacity: 0.8;
    }

    /* Underline under "View Project" animates in on hover. .sch-card-hover is
       toggled by sch-project-cards.js across the photo + caption so it fires
       from anywhere on the card; the :hover fallback covers a no-JS load. */
    .sch-project-card:hover .sch-project-link::after,
    .sch-card-hover .sch-project-link::after {
        width: 100%;
    }
}

.sch-footer-buildertrend {
    margin-top: 24px;
    display: flex;
    justify-content: center;
}

.sch-footer-buildertrend img {
    width: 180px; /* was effectively ~120–140 */
    max-width: 100%;
    height: auto;
    opacity: 0.9;
}

/* Tablet adjustments */
@media (max-width: 1024px) {
    .sch-project-title {
        font-size: 1.3rem;
    }

    .sch-project-card--small .sch-project-title {
        font-size: 1.1rem;
    }

    .sch-project-card--small {
        margin-bottom: clamp(24px, 3.5vw, 32px);
    }
}

/* Mobile adjustments */
@media (max-width: 600px) {
    .sch-project-card--small {
        margin-bottom: 24px;
    }
}

/* ========================================
   CTA BAND SECTION
   ======================================== */

/* CTA band container - add vertical breathing room */
.sch-cta-band {
    padding-top: clamp(48px, 6vw, 80px);
    padding-bottom: clamp(48px, 6vw, 80px);
}

/* Lookbook variation - tighter spacing for editorial pages */
.sch-cta-band-lookbook {
    padding-top: clamp(28px, 3vw, 40px);
    padding-bottom: clamp(28px, 3vw, 40px);
}

/* The centered card */
.sch-cta-card {
    max-width: 980px;
    margin: 0 auto;
    padding: clamp(20px, 3vw, 34px);
    background: #fafafa;
    position: relative;
    border-radius: 3px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.06);
}

/* Layout inside the card */
.sch-cta-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
}

/* CTA text (typography system can override as needed) */
.sch-cta-text {
    color: #003e7e;
    margin: 0;
    /* keep this minimal if typography system already sets it */
}

/* =========================
   Corner “bracket” frame
   ========================= */
/* Tune these to taste */
.sch-corner-frame {
    --corner-color: rgba(0, 62, 126, 0.22);
    --corner-thickness: 1px;
    --corner-length: 20px;
}

/* Four corner L-shapes */
.sch-corner-frame::before,
.sch-corner-frame::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

/* Top-left corner */
.sch-corner-frame::before {
    top: 0;
    left: 0;
    width: var(--corner-length);
    height: var(--corner-length);
    border-top: var(--corner-thickness) solid var(--corner-color);
    border-left: var(--corner-thickness) solid var(--corner-color);
}

/* Bottom-right corner */
.sch-corner-frame::after {
    right: 0;
    bottom: 0;
    width: var(--corner-length);
    height: var(--corner-length);
    border-right: var(--corner-thickness) solid var(--corner-color);
    border-bottom: var(--corner-thickness) solid var(--corner-color);
}

/* Top-right and Bottom-left corners removed - only keeping top-left and bottom-right */
/* .sch-corner-frame .sch-cta-content::before,
.sch-corner-frame .sch-cta-content::after {
    content: "";
    position: absolute;
    pointer-events: none;
    width: var(--corner-length);
    height: var(--corner-length);
}

.sch-corner-frame .sch-cta-content::before {
    top: 0;
    right: 0;
    border-top: var(--corner-thickness) solid var(--corner-color);
    border-right: var(--corner-thickness) solid var(--corner-color);
}

.sch-corner-frame .sch-cta-content::after {
    bottom: 0;
    left: 0;
    border-bottom: var(--corner-thickness) solid var(--corner-color);
    border-left: var(--corner-thickness) solid var(--corner-color);
} */

/* Responsive: stack */
@media (max-width: 768px) {
    .sch-cta-band {
        padding-left: clamp(20px, 5vw, 32px);
        padding-right: clamp(20px, 5vw, 32px);
    }

    .sch-cta-content {
        flex-direction: column;
        align-items: flex-start;
    }
    .sch-btn-ghost {
        width: 100%;
        justify-content: center;
    }
}

/* Lookbook page spacing – tailored per section (less “all blocks same”) */
.sch-lookbook-intro {
    padding-top: clamp(36px, 4vw, 72px);
    padding-bottom: clamp(18px, 2.2vw, 34px); /* tighter under intro */
}

/* Keep the intro line feeling editorial, not “body copy wide” */
.sch-lookbook-intro .wpb_column {
    max-width: 620px; /* tighter than 980 */
}

/* Lookbook Download: allow the 12-col WPBakery column to center */
.sch-lookbook-download .wpb_column.vc_col-sm-12 {
    float: none !important;
    width: 100% !important; /* keep it full width so inner max-width works */
    margin-left: auto !important;
    margin-right: auto !important;
}

.sch-lookbook-download {
    padding-top: clamp(22px, 2.6vw, 40px); /* tighter */
    padding-bottom: clamp(34px, 3.6vw, 70px); /* lead into previews */
}

/* Remove bullets on tablet and mobile to prevent text disconnect */
@media (max-width: 1024px) {
    .sch-lookbook-bullets {
        list-style: none;
        padding-left: 0;
        margin-left: 0;
    }
}

/* The preview section was the biggest offender (too much air) */
.sch-lookbook-preview {
    padding-top: clamp(42px, 4vw, 58); /* reduce from ~90 max */
    padding-bottom: clamp(22px, 2.6vw, 8); /* keep momentum */
}

.sch-lookbook-contents {
    padding-top: clamp(
        16px,
        2vw,
        14px
    ); /* captions should “stick” to previews */
    padding-bottom: clamp(44px, 4.5vw, 80px);
}

.sch-lookbook-secondary-cta {
    padding-top: clamp(38px, 4vw, 70px);
    padding-bottom: clamp(44px, 4.5vw, 84px);
}

/* Centered editorial width */
.sch-lookbook-intro .wpb_column,
.sch-lookbook-download .wpb_column,
.sch-lookbook-contents .wpb_column,
.sch-lookbook-secondary-cta .wpb_column {
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
}

/* Make captions feel attached to their images */
.sch-lookbook-contents h3,
.sch-lookbook-contents h4 {
    margin-top: 12px; /* was likely bigger via global rules */
    margin-bottom: 10px;
}

.sch-lookbook-contents p {
    margin-top: 0;
}

/* Card */
.sch-lookbook-card {
    position: relative;
    background: #fff;
    border-radius: 2px;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.08);
    padding: clamp(26px, 3vw, 44px);
    overflow: hidden;
}

/* Corner accents (20% corners) */
.sch-lookbook-card:before,
.sch-lookbook-card:after {
    content: "";
    position: absolute;
    width: 50px;
    height: 50px;
    border: 1px solid rgba(0, 62, 126, 0.25);
    pointer-events: none;
}

.sch-lookbook-card:before {
    top: 0;
    left: 0;
    border-right: none;
    border-bottom: none;
}
.sch-lookbook-card:after {
    bottom: 0;
    right: 0;
    border-left: none;
    border-top: none;
}

/* Inner layout */
.sch-lookbook-card-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: clamp(20px, 3vw, 44px);
    align-items: center;
}

@media (max-width: 900px) {
    .sch-lookbook-card-inner {
        grid-template-columns: 1fr;
        text-align: center;
    }
}

/* Button (outline -> fill on hover) */
.sch-btn.sch-btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 22px;
    border: 1px solid rgba(0, 62, 126, 0.35);
    color: #003e7e;
    background: transparent;
    text-decoration: none;
    transition:
        background 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease;
}

.sch-btn.sch-btn-outline:hover {
    background: #003e7e;
    border-color: #003e7e;
    color: #fff;
}

.sch-lookbook-meta {
    margin-top: 10px;
    opacity: 0.7;
    font-size: 0.85em;
}

/* =========================================================
   SCH Project Page Styles (Individual Project)
   - Section rows:
     .sch-project-dual-media     (Photography | Floor Plan)
     .sch-project-factband       (single-line facts)
     .sch-project-overview       (lede left / features right)
   - Components:
     .sch-project-media-label    (tile label + link)
     .sch-project-backlink       (Back to Gallery link inside features column)
   Notes:
     - Uses existing .sch-page-lede for the lede block (no duplication here)
     - Scoped to sch-project-* to avoid contradicting Awards CSS
   ========================================================= */

/* ---------- 1) DUAL PRIMARY MEDIA (Photography | Floor Plan) ---------- */

/* Equal aspect-ratio tiles: lock album to 585:452 to match floor plan.
   The7 JS sets padding-bottom inline (reflects source image ratio);
   !important overrides it. 77.265% = 452 ÷ 585 × 100. */
.sch-project-dual-media .sch-project-album .project-list-media {
    padding-right: 18px;
}
.sch-project-dual-media .sch-project-album .rollover {
    padding-bottom: 77.265% !important;
    overflow: hidden !important;
}
.sch-project-dual-media .sch-project-album .rollover img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: unset !important;
    object-fit: cover !important;
    object-position: center !important;
}

/* Label + link under each tile */
.sch-project-dual-media .wf-cell .double-width .iso-item .shown {
    margin: 0;
    padding: 0;
}

/*.sch-project-media-label {
    margin-top: 16px;
}*/

.sch-project-album {
    margin: 0;
    padding: 0;
}

.sch-project-media-label p {
    margin: 0;
}

/* Small caps label line */
.sch-project-media-label .sch-project-label {
    margin: 0 0 6px 0;

    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    line-height: 1.2;

    font-size: 0.78rem;
    color: rgba(0, 0, 0, 0.55);
}

/* Quiet-lux link treatment (no bright theme link color) */
.sch-project-media-label a {
    color: rgba(0, 0, 0, 0.82);
    text-decoration: none;
    padding-bottom: 2px;
}

/* ---------- 2) FACT BAND (single line) ---------- */

.sch-project-factband {
    padding: 18px 0 22px 0 !important;
}

.sch-project-factband .sch-project-facts {
    text-align: center;
    letter-spacing: 0.02em;
    line-height: 1.6;

    font-size: 0.95rem;
    color: rgba(0, 0, 0, 0.78);
}

.sch-project-factband .sch-project-facts p {
    margin: 0;
}

/* ---------- 3) OVERVIEW (lede left / features right) ---------- */

.sch-project-overview {
    padding: clamp(16px, 2.5vw, 36px) 0;
}

/* LEFT column uses .sch-page-lede (defined elsewhere)
   You can still add light spacing behavior here without redefining type. */
.sch-project-overview .sch-page-lede p {
    margin-top: 0;
    margin-bottom: 0;
}

/* FEATURES column */
.sch-project-overview .sch-project-features {
    font-size: 1rem;
    line-height: 1.7;
    color: rgba(0, 0, 0, 0.72);
}

/* If you keep a label (optional), keep it quiet like Awards labels */
.sch-project-overview .sch-project-features-title {
    margin: 0 0 10px 0;

    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;

    font-size: 0.78rem;
    color: rgba(0, 0, 0, 0.55);
}

/* Lists: editorial, not “icon list” */
.sch-project-overview .sch-project-features ul {
    margin: 0;
    padding-left: 1.1em;
}

.sch-project-overview .sch-project-features li {
    margin: 0 0 10px 0;
}

.sch-project-overview .sch-project-features li:last-child {
    margin-bottom: 0;
}

/* ---------- 4) BACK TO GALLERY (placed at end of features column) ---------- */

.sch-project-backlink {
    margin-top: 18px;
}

.sch-project-backlink a {
    color: rgba(0, 0, 0, 0.82);
    text-decoration: none;
    padding-bottom: 2px;
}

/* ---------- 5) MOBILE RHYTHM ---------- */

@media (max-width: 768px) {
    .sch-project-dual-media {
        padding: clamp(18px, 5vw, 36px) 0;
    }

    .sch-project-factband .sch-project-facts {
        font-size: 0.9rem;
    }

    /* When columns stack, ensure the lede doesn’t collide with features */
    .sch-project-overview .sch-page-lede {
        margin-bottom: 18px;
    }
}

/* ===========================
   SCH Neighborhoods Carousel — Ritz-Carlton style
   Structure:
     .sch-nc-viewport         — full-width breakout, clips horizontal overflow
       .sch-neighborhoods-carousel
         .sch-nc-track        — Slick target; overflow: visible for peek
           .sch-nc-slide      — fixed-height; image + overlapping card within bounds
         .sch-nc-footer       — text nav (PREVIOUS / counter / NEXT)
   =========================== */

/* ── Intro row: full-width background + top breathing room ───────────── */
.vc_row.sch-nc-intro-row,
.vc_inner.sch-nc-intro-row,
.transparent .vc_row.sch-nc-intro-row,
.transparent .vc_inner.sch-nc-intro-row {
    position: relative;
    padding-top: 64px !important;
    padding-bottom: 35px !important;
}

/* Pseudo-element breaks the background out to 100vw so it matches the
   full-bleed carousel below, even though the row itself is content-width */
.sch-nc-intro-row::before {
    content: "";
    display: block !important; /* override WPBakery clearfix display:table */
    position: absolute;
    inset: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100vw;
    background-color: rgba(147, 146, 130, 0.05);
    z-index: -1;
}

/* ── Intro: eyebrow label ─────────────────────────────────────────────── */
.sch-nc-eyebrow {
    display: block;
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 500;
    font-size: 0.75rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #1c75bc;
    margin-bottom: 1rem;
}

/* ── Intro: h2 size override ──────────────────────────────────────────── */
.sch-nc-intro-left .wpb_text_column.wpb_content_element h2 {
    font-size: 3rem;
    line-height: 1.06;
    margin: 0 !important;
}

@media (max-width: 1024px) {
    .sch-nc-intro-left .wpb_text_column.wpb_content_element h2 {
        font-size: 2.4rem;
    }
}
@media (max-width: 600px) {
    .sch-nc-intro-left .wpb_text_column.wpb_content_element h2 {
        font-size: 2rem;
        margin-bottom: 0.5rem !important;
    }
}

/* ── Intro: right column — flex on inner wrapper, not floated container ── */
.sch-nc-intro-right > .vc_column-inner {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
}

.sch-nc-intro-right .wpb_text_column.wpb_content_element p {
    font-size: 1.05rem;
    line-height: 1.72;
    opacity: 0.76;
    margin: 0;
}

/* ── Carousel row: strip column padding so viewport touches edges ──────── */
.sch-nc-carousel-row .vc_column-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ── Viewport: breaks out to full viewport width, clips horizontal peek ── */
.sch-nc-viewport {
    width: 100vw;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    overflow-x: clip; /* clips without forming a new block formatting context */
    background-color: rgba(147, 146, 130, 0.05);
    padding-bottom: 64px;
}

/* ── Carousel wrapper ─────────────────────────────────────────────────── */
.sch-neighborhoods-carousel {
    position: relative;
}

/* Allow slides to peek — override Slick’s default overflow: hidden */
.sch-neighborhoods-carousel .slick-list {
    overflow: visible !important;
}

/* Slick track: normal flow */
.sch-neighborhoods-carousel .slick-track {
    display: block;
}

/* Slick slide: float + fixed height so card is always in bounds */
.sch-neighborhoods-carousel .slick-slide {
    float: left;
    min-height: 1px;
    height: 680px;
}

.sch-neighborhoods-carousel .slick-initialized .slick-slide {
    display: block;
}

/* ── Slide ────────────────────────────────────────────────────────────── */
.sch-nc-slide {
    position: relative;
    height: 680px; /* image: 0–560px  |  card protrudes from ~380px to 680px */
    outline: none;
    cursor: grab;
}

/* Drag cursor state */
.sch-nc-track.is-grabbing .sch-nc-slide,
.sch-nc-track.is-grabbing {
    cursor: grabbing;
}

/* ── Slide image ──────────────────────────────────────────────────────── */
.sch-nc-slide__img-wrap {
    position: absolute;
    inset: 0 30px 120px 30px; /* 30px side gutters; bottom leaves room for card */
    overflow: hidden;
}

.sch-nc-slide__img-wrap img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

/* ── Inactive slide: dim image, hide card ─────────────────────────────── */
.sch-neighborhoods-carousel
    .slick-slide:not(.slick-center)
    .sch-nc-slide__img-wrap
    img {
    filter: brightness(0.72);
    transition: filter 0.6s ease;
}

.sch-neighborhoods-carousel
    .slick-slide:not(.slick-center)
    .sch-nc-slide__card {
    opacity: 0;
    transform: translateY(6px);
    pointer-events: none;
}

/* ── Active slide: full brightness, card visible ─────────────────────── */
.sch-neighborhoods-carousel
    .slick-slide.slick-center
    .sch-nc-slide__img-wrap
    img {
    filter: brightness(1);
}

.sch-neighborhoods-carousel .slick-slide.slick-center .sch-nc-slide__card {
    opacity: 1;
    transform: translateY(0);
}

/* ── Layout A (default — odd index): image top, card bottom-right ─────
   Already handled by the base .sch-nc-slide__img-wrap and .sch-nc-slide__card
   rules below. No extra overrides needed.                                  */

/* ── Layout B (even index): image pushed down 80px, card top-right ────── */
.sch-nc-slide--b .sch-nc-slide__img-wrap {
    inset: 80px 30px 40px 30px; /* top: 80px, same 560px image height */
}

.sch-nc-slide--b .sch-nc-slide__card {
    top: 30px; /* 80px image offset minus 50px upward shift */
    bottom: auto; /* detach from slide bottom */
}

/* ── Info card: overlaps bottom-right of image ───────────────────────── */
.sch-nc-slide__card {
    position: absolute;
    bottom: 0;
    right: 10px; /* extends 20px past image right edge (image inset 30px) */
    width: 46%;
    min-width: 300px;
    background: #fff;
    padding: 36px 40px 40px;
    z-index: 10;
    outline: 1px solid rgba(28, 117, 188, 0.2);
    outline-offset: 5px;
    /* card top = 680 - card_height; image bottom = 560 → overlap ≈ 140–180px */
    transition:
        opacity 0.5s ease,
        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Overline label */
.sch-nc-slide__label {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 500;
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: #1c75bc;
    margin: 0 0 0.75rem;
}

/* Title — Bodoni ultra-light */
.sch-nc-slide__title {
    font-family: "Bodoni Moda", serif !important;
    font-weight: 100 !important;
    font-size: 1.65rem !important;
    line-height: 1.15 !important;
    letter-spacing: 0.01em;
    color: #003e7e;
    margin: 0 0 1rem !important;
    text-transform: none !important;
}

/* Description — clamped to 4 lines so card stays compact */
.sch-nc-slide__desc {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.9rem;
    line-height: 1.7;
    color: rgba(0, 0, 0, 0.6);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Footer: PREVIOUS  01/04  NEXT ───────────────────────────────────── */
.sch-nc-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    padding: 40px 20px 20px;
}

/* Text-only arrow buttons — no border, no box */
.sch-nc-arrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #003e7e;
    transition: opacity 0.2s ease;
}

.sch-nc-arrow:hover {
    opacity: 0.55;
}

.sch-nc-arrow:focus-visible {
    outline: 2px solid rgba(0, 62, 126, 0.4);
    outline-offset: 4px;
}

/* Short horizontal rule flanking the label */
.sch-nc-arrow__line {
    display: block;
    width: 32px;
    height: 1px;
    background: currentColor;
    flex-shrink: 0;
    transition: width 0.25s ease;
}

.sch-nc-arrow--prev .sch-nc-arrow__line {
    order: -1;
}
.sch-nc-arrow--next .sch-nc-arrow__line {
    order: 1;
}

.sch-nc-arrow:hover .sch-nc-arrow__line {
    width: 52px;
}

/* Counter */
.sch-nc-counter {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.78rem;
    letter-spacing: 0.16em;
    color: #003e7e;
    opacity: 0.5;
    white-space: nowrap;
}

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 1023px) {
    .sch-neighborhoods-carousel .slick-slide {
        height: 560px;
    }
    .sch-nc-slide {
        height: 560px;
    }
    .sch-nc-slide__img-wrap {
        inset: 0 12px 100px 12px;
    }
    .sch-nc-slide__card {
        right: 12px;
        width: 55%;
        padding: 28px 32px 32px;
    }
    .sch-nc-slide__title {
        font-size: 1.4rem !important;
    }

    /* Layout B at tablet: same 80px offset */
    .sch-nc-slide--b .sch-nc-slide__img-wrap {
        inset: 80px 12px 20px 12px;
    }
    .sch-nc-slide--b .sch-nc-slide__card {
        top: 80px;
        bottom: auto;
    }
}

@media (max-width: 767px) {
    /* Switch to stacked layout: image on top, card below, no overlap */
    .sch-neighborhoods-carousel .slick-slide {
        height: auto;
    }
    .sch-nc-slide {
        display: flex;
        flex-direction: column;
        height: auto;
        cursor: grab;
    }

    /* Image: relative flow, fixed height */
    .sch-nc-slide__img-wrap {
        position: relative;
        inset: auto;
        width: 100%;
        height: 220px;
        flex-shrink: 0;
    }

    /* Card: relative flow, full width, no overlap */
    .sch-nc-slide__card {
        position: relative;
        inset: auto;
        right: auto;
        left: auto;
        bottom: auto;
        top: auto;
        width: 100%;
        min-width: 0;
        padding: 24px 24px 28px;
        outline: none; /* outline-offset doesn't work well in flow context */
    }

    /* Reset Layout B overrides — same stacked flow as Layout A */
    .sch-nc-slide--b .sch-nc-slide__img-wrap {
        inset: auto;
        height: 220px;
    }
    .sch-nc-slide--b .sch-nc-slide__card {
        top: auto;
        bottom: auto;
    }

    .sch-nc-slide__title {
        font-size: 1.25rem !important;
    }
    .sch-nc-footer {
        gap: 20px;
        padding-top: 28px;
    }
    .sch-nc-arrow__line {
        width: 20px;
    }
}

/* ========================================
   TESTIMONIALS PAGE
   ======================================== */

/* Testimonials page — tighter top spacing above CTA band */
.page-id-396 .sch-cta-band {
    padding-top: clamp(24px, 3vw, 40px);
}

/* Featured Client Reflections — full-width band with grey background */
.sch-featured-reflections-band {
    background-color: rgba(147, 146, 130, 0.05) !important;
    padding-top: clamp(24px, 3vw, 40px) !important;
    padding-bottom: clamp(24px, 3vw, 40px) !important;
}

/* Constrain the inner content to match the rest of the page */
.sch-featured-reflections-band > .wpb_column > .vc_column-inner {
    max-width: 1200px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
}

/* Constrain heading + intro text to match the 760px reading width used
   by sch-interior-content above, shifted right ~110px to align with that content */
.sch-featured-reflections-band
    > .wpb_column
    > .vc_column-inner
    > .wpb_wrapper
    > .wpb_text_column {
    max-width: 760px;
    margin-left: calc(50% - 332px);
    margin-right: auto;
}

/* Card column gutters inside the inner row */
.sch-featured-reflections-band .vc_inner .wpb_column {
    padding-left: 12px !important;
    padding-right: 12px !important;
}

@media (max-width: 767px) {
    .sch-featured-reflections-band > .wpb_column > .vc_column-inner {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .sch-featured-reflections-band .vc_inner .wpb_column {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .sch-featured-reflections-band
        > .wpb_column
        > .vc_column-inner
        > .wpb_wrapper
        > .wpb_text_column {
        margin-left: auto;
        margin-right: auto;
        padding-left: 20px;
        padding-right: 20px;
    }
}

/* GuildQuality trust band */
/* Tighten the bottom of the row immediately preceding the GuildQuality band */
.vc_row.sch-interior-content:has(+ .vc_row.sch-guildquality-band) {
    padding-bottom: clamp(24px, 3vw, 48px) !important;
}

.vc_row.sch-guildquality-band {
    padding-top: clamp(21px, 3vw, 34px) !important;
    padding-bottom: clamp(28px, 4vw, 46px) !important;
}

.sch-guildquality-band .sch-btn {
    display: inline-block;
    margin-top: 22px;
}

/* ---- Featured testimonial cards (3-column) ---- */

.vc_row.sch-featured-testimonials-grid {
    padding-bottom: 20px;
}

.sch-featured-testimonials-grid .wpb_column {
    padding-left: 12px;
    padding-right: 12px;
    margin-bottom: 24px;
}

.sch-featured-testimonial-card {
    padding: 26px 26px 22px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 0;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.03);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.sch-featured-testimonial-quote {
    font-size: clamp(0.98rem, 1.2vw, 1.08rem);
    line-height: 1.78;
    color: rgba(0, 0, 0, 0.76);
    font-style: italic;
    flex: 1;
    margin: 0 0 22px 0 !important;
}

.sch-featured-testimonial-rule {
    height: 1px;
    background: rgba(0, 0, 0, 0.08);
    border: none;
    margin: 0 0 16px 0;
}

.sch-featured-testimonial-attribution {
    font-size: 0.88rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: rgba(0, 0, 0, 0.82);
    margin: 0 0 4px 0 !important;
}

.sch-featured-testimonial-dd {
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.42);
    margin: 0 !important;
}

/* ---- Category sections ---- */

/* Tighter top padding — heading row already has breathing room above */
.vc_row.sch-testimonial-category-head {
    padding-top: clamp(18px, 2.5vw, 30px);
    padding-bottom: 0;
}

.sch-testimonial-category-title {
    margin: 0 !important;
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.22em;
    text-transform: uppercase !important;
    color: rgba(0, 0, 0, 0.52);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sch-testimonial-category-title::before,
.sch-testimonial-category-title::after {
    content: "";
    flex: 0 0 5rem;
    height: 1px;
    background: currentColor;
    opacity: 0.35;
    margin: 0 1.5rem;
}

@media (max-width: 600px) {
    .sch-testimonial-category-title::before,
    .sch-testimonial-category-title::after {
        display: none;
    }
}

/* Category carousel rows — no extra row padding; carousel handles spacing */
.vc_row.sch-testimonial-category-carousel-row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Mobile adjustments */
@media (max-width: 767px) {
    .sch-featured-testimonials-grid .wpb_column {
        padding-left: 22px;
        padding-right: 22px;
    }
}

/* ── Accessibility: reduced motion ───────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .sch-nc-slide__img-wrap img,
    .sch-nc-slide__card,
    .sch-nc-arrow__line,
    .sch-neighborhoods-carousel
        .slick-slide:not(.slick-center)
        .sch-nc-slide__img-wrap
        img {
        transition: none;
    }
}

/* ========================================
   TESTIMONIALS REDESIGN (page-id-396)
   Hero rotator + masonry of quote cards
   Palette: #003E7E #1C75BC #939282 #D1D3B4 #F1F2F2
   ======================================== */

/* ---- Hero rotator (mid-page; theme hero already sits above) ---- */
.sch-tst-hero {
    position: relative;
    width: 100%;
    height: clamp(380px, 58vh, 560px);
    overflow: hidden;
    background-color: #003e7e;
    isolation: isolate;
    margin-top: clamp(20px, 3vw, 40px);
    margin-bottom: 35px;
}

.sch-tst-hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.1s ease;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
}

.sch-tst-hero-slide.is-active {
    opacity: 1;
    z-index: 2;
}

.sch-tst-hero-slide::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(0, 62, 126, 0.55) 0%,
        rgba(0, 62, 126, 0.62) 50%,
        rgba(0, 30, 64, 0.78) 100%
    );
    pointer-events: none;
}

.sch-tst-hero-inner {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: clamp(40px, 6vw, 72px) clamp(20px, 6vw, 80px);
    text-align: center;
    color: #fff;
}

.sch-tst-hero-quote-wrap {
    max-width: 880px;
    width: 100%;
    margin: 0 auto;
    position: relative;
    min-height: clamp(220px, 28vh, 300px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sch-tst-hero-quote {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.9s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    pointer-events: none;
    padding: 0 16px;
}

.sch-tst-hero-quote.is-active {
    opacity: 1;
}

.sch-tst-hero-quote .cat {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    font-size: 0.72rem;
    color: rgba(255, 255, 255, 0.7);
    display: block;
    margin: 0 0 18px 0;
}

.sch-tst-hero-quote p.q {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: clamp(1rem, 1.35vw, 1.2rem);
    line-height: 1.6;
    letter-spacing: 0;
    color: rgba(255, 255, 255, 0.97);
    margin: 0 0 22px 0;
    max-width: 38em;
}

.sch-tst-hero-quote .attr {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
    color: rgba(255, 255, 255, 0.95);
    display: block;
    margin: 0 0 4px 0;
}

.sch-tst-hero-quote .dd {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    font-size: 0.7rem;
    color: rgba(255, 255, 255, 0.62);
    display: block;
}

/* Dots */
.sch-tst-hero-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: clamp(20px, 3vw, 36px);
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

.sch-tst-hero-dot {
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    padding: 0;
    background: transparent;
    width: 28px;
    height: 14px;
    cursor: pointer;
    position: relative;
}

.sch-tst-hero-dot::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background: rgba(255, 255, 255, 0.45);
    transform: translateY(-50%);
    transition:
        background 0.25s ease,
        height 0.25s ease;
}

.sch-tst-hero-dot:hover::before {
    background: rgba(255, 255, 255, 0.75);
}

.sch-tst-hero-dot.is-active::before {
    background: #fff;
    height: 2px;
}

.sch-tst-hero-dot:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.7);
    outline-offset: 4px;
}

@media (max-width: 600px) {
    .sch-tst-hero {
        height: clamp(420px, 70vh, 520px);
    }
    .sch-tst-hero-quote p.q {
        font-size: 1.15rem;
        line-height: 1.5;
    }
}

/* ---- Lede row (under hero) ---- */
.sch-tst-lede-row {
    padding-top: clamp(40px, 6vw, 80px) !important;
    padding-bottom: clamp(20px, 3vw, 36px) !important;
}

.sch-tst-lede-row .sch-page-lede {
    margin-bottom: 0.75rem;
}

/* ---- Masonry section ---- */
.sch-tst-masonry-band {
    background-color: #f1f2f2;
    padding-top: clamp(40px, 5vw, 72px) !important;
    padding-bottom: clamp(48px, 6vw, 88px) !important;
}

.sch-tst-masonry-band > .wpb_column > .vc_column-inner {
    max-width: 1200px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
}

.sch-tst-masonry-head {
    max-width: 760px;
    margin: 0 auto clamp(20px, 2.5vw, 32px) auto;
    text-align: center;
}

.sch-tst-masonry-head .sch-section-title {
    margin-bottom: 12px;
}

.sch-tst-masonry-head .sch-section-intro {
    margin: 0 auto;
}

/* ---- Filter bar (mirrors sch-dream-filter-btn pattern) ---- */
.sch-tst-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin: 0 auto clamp(24px, 3vw, 40px) auto;
    max-width: 880px;
}

.sch-tst-filter-btn {
    appearance: none;
    background: transparent;
    border: 1px solid rgba(0, 62, 126, 0.35);
    border-radius: 2px;
    color: #003e7e;
    cursor: pointer;
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    padding: 10px 18px;
    text-transform: uppercase;
    transition:
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}

.sch-tst-filter-btn.is-active,
.sch-tst-filter-btn:hover {
    background: #003e7e;
    border-color: #003e7e;
    color: #fff;
}

.sch-tst-filter-btn:focus-visible {
    outline: 2px solid rgba(0, 62, 126, 0.6);
    outline-offset: 3px;
}

/* CSS columns masonry — variable card heights flow naturally */
.sch-tst-masonry {
    column-count: 3;
    column-gap: 22px;
    transition: opacity 0.16s ease;
}

@media (max-width: 1024px) {
    .sch-tst-masonry {
        column-count: 2;
    }
}

@media (max-width: 640px) {
    .sch-tst-masonry {
        column-count: 1;
    }
}

.sch-tst-card {
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    padding: 26px 26px 22px;
    margin: 0 0 22px 0;
    display: flex;
    flex-direction: column;
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.03);
}

.sch-tst-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.06);
    border-color: rgba(28, 117, 188, 0.35);
}

.sch-tst-card-chip {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.66rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: #939282;
    margin: 0 0 16px 0;
    padding: 0;
}

.sch-tst-card-quote {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-style: normal;
    font-weight: 400;
    font-size: clamp(0.98rem, 1.1vw, 1.05rem);
    line-height: 1.72;
    color: rgba(0, 0, 0, 0.78);
    margin: 0 0 20px 0 !important;
}

/* Filtered-out cards: removed from flow so column layout reflows */
.sch-tst-card.is-hidden {
    display: none;
}

.sch-tst-card-rule {
    height: 1px;
    width: 36px;
    background: #d1d3b4;
    border: 0;
    margin: 0 0 14px 0;
}

.sch-tst-card-attr {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
    color: rgba(0, 0, 0, 0.82);
    margin: 0 0 4px 0 !important;
}

.sch-tst-card-dd {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.7rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: rgba(0, 0, 0, 0.42);
    margin: 0 !important;
}

/* CTA band on testimonials page — extra breathing room above */
.page-id-396 .sch-cta-band {
    padding-top: clamp(44px, 3vw, 60px);
    padding-bottom: clamp(40px, 5vw, 64px);
    margin-top: 20px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .sch-tst-hero-slide,
    .sch-tst-hero-quote,
    .sch-tst-card {
        transition: none;
    }
}

/* ========================================
   TEAM PAGE
   ======================================== */

/* Eyebrow label above hero title */
.sch-team-eyebrow {
    margin: 0 0 18px 0;
    font-size: 0.72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.42);
    font-weight: 500;
}

/* Section heading rows — tighter top, trim bottom */
.vc_row.sch-team-section-head {
    padding-top: clamp(28px, 4vw, 46px);
    padding-bottom: 0;
}

.vc_row.sch-team-divider {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* ---- Leadership + Partner rows ---- */

/* Horizontal gutter on columns (mirrors sch-three-col approach) */
.sch-team-leadership-grid .wpb_column,
.sch-team-partner-row .wpb_column {
    padding-left: 20px;
    padding-right: 20px;
}

/* Row-level top/bottom breathing room */
.vc_row.sch-team-leadership-grid {
    padding-top: clamp(14px, 2vw, 24px);
    padding-bottom: clamp(28px, 4vw, 46px);
}

.vc_row.sch-team-partner-row {
    padding-top: clamp(14px, 2vw, 24px);
    padding-bottom: clamp(28px, 4vw, 46px);
    align-items: center;
}

/* ---- Bio card ---- */

/* Portrait image: full-width, softly rounded */
.sch-team-bio-portrait figure,
.sch-team-bio-portrait .wpb_wrapper {
    margin: 0 !important;
    padding: 0 !important;
}

.sch-team-bio-portrait img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
    margin: 0 0 20px 0 !important;
}

/* Name */
.sch-team-bio-name {
    margin: 0 0 4px 0 !important;
    font-size: clamp(1.15rem, 1.5vw, 1.4rem);
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.15;
    color: rgba(0, 0, 0, 0.88);
    text-transform: none;
}

/* Role / title line */
.sch-team-bio-role {
    margin: 0 0 16px 0;
    font-size: 0.76rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.44);
    font-weight: 500;
}

/* Kicker above name (Reverie block) */
.sch-team-bio-kicker {
    margin: 0 0 6px 0;
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.42);
    font-weight: 500;
}

/* "Credentials" label */
.sch-team-bio-credentials-label {
    margin: 22px 0 8px 0;
    font-size: 0.7rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.38);
    font-weight: 600;
}

/* Credentials list */
.sch-team-bio-credentials {
    margin: 0 !important;
    padding: 0 0 0 16px !important;
    list-style: disc;
}

.sch-team-bio-credentials li {
    font-size: 0.88rem;
    line-height: 1.7;
    color: rgba(0, 0, 0, 0.58);
    margin-bottom: 3px;
}

/* ---- Trusted partners ---- */

.sch-team-trusted-partners .sch-section-intro {
    margin-bottom: 32px;
}

/* Partner grid — adapts the products logo-grid pattern.
   3 cols × 2 rows on desktop; collapses to 2 / 1 on tablet / mobile. */
.vc_row.sch-team-partner-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

.sch-team-partner-grid::before,
.sch-team-partner-grid::after {
    content: none !important;
    display: none !important;
}

.vc_row.sch-team-partner-grid > .wpb_column.vc_column_container {
    width: auto !important;
    flex: none !important;
    max-width: none !important;
    height: 100%;
}

.sch-team-partner-tile > .vc_column-inner {
    display: flex;
    align-items: stretch;
    justify-content: center;
    padding: 0 !important;
    border: 1px solid rgba(0, 0, 0, 0.06);
    margin: -0.5px; /* collapse shared borders */
    transition:
        background 0.25s ease,
        box-shadow 0.25s ease;
    height: 100%;
}

.sch-team-partner-tile > .vc_column-inner:hover {
    background: rgba(147, 146, 130, 0.04);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
    z-index: 1;
    position: relative;
}

.vc_row.sch-team-partner-grid .sch-team-partner-tile .wpb_text_column {
    margin-bottom: 0 !important;
    width: 100%;
}

.sch-team-partner-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    width: 100%;
    height: 100%;
    padding: clamp(22px, 2.6vw, 34px) clamp(16px, 2vw, 28px);
    box-sizing: border-box;
}

.sch-team-partner-logo {
    width: 100%;
    max-width: 200px;
    height: 156px; /* fixed slot keeps every logo on one horizontal line */
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    color: rgba(0, 0, 0, 0.28);
}

/* Normalize the inline span wrapper some logos use so wrapped and bare
   <img> logos center identically (was throwing the bottom row off-line). */
.sch-team-partner-logo-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.sch-team-partner-logo img {
    width: 130px; /* standardized width for all six logos */
    height: auto;
    max-height: 100%;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.7;
    transition:
        filter 0.3s ease,
        opacity 0.3s ease;
}

.sch-team-partner-tile > .vc_column-inner:hover .sch-team-partner-logo img {
    filter: grayscale(0%);
    opacity: 1;
}

.sch-team-partner-logo-placeholder {
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.3);
}

.sch-team-partner-name {
    margin: 0 !important;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #003e7e;
    line-height: 1.3;
}

.sch-team-partner-specialty {
    margin: 0.45rem 0 0 !important;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.42);
    line-height: 1.45;
}

@media (max-width: 991px) {
    .vc_row.sch-team-partner-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .vc_row.sch-team-partner-grid {
        grid-template-columns: 1fr;
        max-width: 360px;
    }
}

/* ---- Callout ---- */

.vc_row.sch-team-callout {
    padding-top: clamp(28px, 4vw, 46px);
    padding-bottom: clamp(18px, 2vw, 26px);
}

.sch-team-callout-text {
    margin: 0 0 14px 0 !important;
    font-size: clamp(1.6rem, 2.8vw, 2.4rem) !important;
    font-weight: 300 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.01em !important;
    color: rgba(0, 0, 0, 0.8);
    font-style: italic;
    text-transform: none !important;
}

/* ---- Mobile ---- */

@media (max-width: 767px) {
    .sch-team-leadership-grid .wpb_column,
    .sch-team-partner-row .wpb_column {
        padding-left: 22px;
        padding-right: 22px;
    }
}

/* ── Giving page (post 7) ──────────────────────────────────────────────────── */

/* Intro row */
.vc_row.sch-giving-intro {
    padding-bottom: clamp(16px, 2vw, 28px);
}

/* CFF highlight — full-width band, same pattern as sch-featured-reflections-band */
.vc_row.sch-giving-cff-highlight {
    background-color: rgba(147, 146, 130, 0.05) !important;
    padding-top: clamp(28px, 3.5vw, 48px) !important;
    padding-bottom: clamp(28px, 3.5vw, 48px) !important;
}

/* Constrain inner content to match page width */
.sch-giving-cff-highlight > .wpb_column > .vc_column-inner {
    max-width: 1200px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
}

/* Kicker text block — align left edge with sch-interior-content text above */
.sch-giving-cff-highlight
    > .wpb_column
    > .vc_column-inner
    > .wpb_wrapper
    > .wpb_text_column {
    max-width: 760px;
    margin-left: calc(50% - 332px);
    margin-right: auto;
}

/* Inner 2-col row — same left alignment as text above */
.sch-giving-cff-highlight .vc_inner {
    margin-left: calc(50% - 332px) !important;
    margin-right: 0 !important;
}

/* Inner column gutters */
.sch-giving-cff-highlight .vc_inner .wpb_column {
    padding-left: 12px !important;
    padding-right: 12px !important;
}

/* Vertically center the logo within its column */
.sch-giving-cff-logo-col > .vc_column-inner {
    display: flex;
    align-items: center;
}

.sch-giving-cff-logo figure,
.sch-giving-cff-logo .vc_single_image-wrapper {
    display: block;
    line-height: 0;
}

.sch-giving-cff-logo img {
    max-width: 200px;
    width: 100%;
    height: auto;
    display: block;
}

/* CFF highlight heading */
.sch-giving-highlight-name {
    font-size: clamp(1.1rem, 1.5vw, 1.35rem) !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin: 0 0 14px 0 !important;
    color: rgba(0, 0, 0, 0.85);
}

/* ── Org cards grid ─────────────────────────────────────────────────────────── */

.vc_row.sch-giving-cards-row {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 26px);
    padding-top: clamp(16px, 2vw, 28px) !important;
    padding-bottom: clamp(16px, 2vw, 28px) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Suppress WPBakery clearfix pseudo-elements — without this they become
   phantom grid items and push real columns to the next row */
.vc_row.sch-giving-cards-row::before,
.vc_row.sch-giving-cards-row::after {
    content: none !important;
    display: none !important;
}

/* Override WPBakery column sizing and sch-interior-content padding */
.vc_row.sch-giving-cards-row > .wpb_column {
    width: auto !important;
    flex: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin: 0 !important;
}

/* Release all wpb_wrapper constraints inside cards */
.sch-giving-cards-row .wpb_wrapper {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Card box — applied to .vc_column-inner */
.sch-giving-cards-row > .wpb_column > .vc_column-inner {
    max-width: none !important;
    margin: 0 !important;
    padding: 26px !important;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 0;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.03);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Logo — consistent height regardless of aspect ratio */
.sch-giving-card-logo {
    margin-bottom: 18px !important;
}

.sch-giving-card-logo figure,
.sch-giving-card-logo .vc_single_image-wrapper {
    display: block;
    line-height: 0;
}

.sch-giving-card-logo img {
    max-height: 50px;
    max-width: 160px;
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: left center;
    display: block;
}

/* Card name */
.sch-giving-card-name {
    font-size: 0.98rem !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.3 !important;
    margin: 0 0 10px 0 !important;
    color: rgba(0, 0, 0, 0.85);
}

/* Card description */
.sch-giving-card-desc {
    font-size: 0.88rem;
    line-height: 1.72;
    color: rgba(0, 0, 0, 0.6);
    margin: 0 0 18px 0;
}

/* Card Learn More button */
.sch-giving-card .sch-btn.sch-btn-outline {
    font-size: 0.8rem;
    padding: 9px 16px;
    letter-spacing: 0.04em;
}

/* Closing callout */
.vc_row.sch-giving-callout {
    padding-top: clamp(28px, 4vw, 46px);
    padding-bottom: clamp(18px, 2vw, 26px);
}

/* ── Responsive ─────────────────────────────────────────────────────────────── */

/* Tablet: 2 columns */
@media (max-width: 900px) {
    .vc_row.sch-giving-cards-row {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Mobile: single column */
@media (max-width: 600px) {
    .vc_row.sch-giving-cards-row {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 767px) {
    .sch-giving-cff-highlight > .wpb_column > .vc_column-inner {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .sch-giving-cff-highlight
        > .wpb_column
        > .vc_column-inner
        > .wpb_wrapper
        > .wpb_text_column,
    .sch-giving-cff-highlight .vc_inner {
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .sch-giving-cff-logo-col > .vc_column-inner {
        margin-bottom: 20px;
    }

    .sch-giving-cff-logo img {
        max-width: 160px;
    }
}

/* ==========================================================================
   Features page — category rows & value callout
   ========================================================================== */

/* ---- Value callout band (full-width background, constrained copy) ---- */

.vc_row.sch-features-value-callout {
    background-color: rgba(147, 146, 130, 0.05) !important;
    padding-top: clamp(32px, 4vw, 56px) !important;
    padding-bottom: clamp(32px, 4vw, 56px) !important;
}

.sch-features-value-callout > .wpb_column > .vc_column-inner {
    max-width: 1200px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
}

.sch-features-value-callout
    > .wpb_column
    > .vc_column-inner
    > .wpb_wrapper
    > .wpb_text_column {
    max-width: 760px;
    margin-left: calc(50% - 332px);
    margin-right: auto;
}

@media (max-width: 767px) {
    .sch-features-value-callout > .wpb_column > .vc_column-inner {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .sch-features-value-callout
        > .wpb_column
        > .vc_column-inner
        > .wpb_wrapper
        > .wpb_text_column {
        margin-left: auto;
        margin-right: auto;
        padding-left: 20px;
        padding-right: 20px;
    }
}

/* Features page — tighter top spacing above CTA band */
/* Tighten bottom padding on the intro text block only */
.page-id-26 .sch-page-intro {
    padding-bottom: clamp(2px, 1vw, 34px);
}

.page-id-26 .sch-cta-band {
    padding-top: clamp(24px, 3vw, 40px);
    padding-bottom: 45px;
}

.page-id-26 .sch-products-disclaimer {
    padding-top: 0;
    padding-bottom: clamp(58px, 6vw, 66px);
}

/* ---- Category rows (alternating image + text) ---- */

.vc_row.sch-features-category-row {
    padding-top: clamp(32px, 4vw, 56px);
    padding-bottom: clamp(32px, 4vw, 56px);
    align-items: center;
    display: flex;
    flex-wrap: wrap;
}

.sch-features-category-row .wpb_column {
    padding-left: 20px;
    padding-right: 20px;
}

/* ---- Text column ---- */

.sch-features-text .wpb_wrapper {
    max-width: 540px;
}

.sch-features-cat-heading {
    margin: 0 0 10px 0 !important;
    font-size: clamp(1.35rem, 2vw, 1.75rem) !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.sch-features-cat-intro {
    margin: 0 0 18px 0 !important;
    font-size: 1rem;
    line-height: 1.75;
    opacity: 0.7;
    max-width: 52ch;
}

.sch-features-cat-list {
    margin: 0 !important;
    padding-left: 1.15em !important;
    list-style: disc;
}

.sch-features-cat-list li {
    font-size: 0.96rem;
    line-height: 1.7;
    margin-bottom: 6px;
    color: rgba(0, 0, 0, 0.72);
}

/* ---- Image column ---- */

.sch-features-cat-image {
    margin: 0 !important;
}

.sch-features-cat-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 2px;
}

/* ---- Responsive ---- */

@media (max-width: 767px) {
    .sch-features-category-row .wpb_column {
        padding-left: 22px;
        padding-right: 22px;
    }

    /* On mobile, always show image first then text */
    .vc_row.sch-features-category-row {
        flex-direction: column;
    }

    .sch-features-image-col {
        order: -1;
        margin-bottom: 20px;
    }

    .sch-features-text .wpb_wrapper {
        max-width: none;
    }
}

/* ==========================================================================
   Products page — logo wall
   ========================================================================== */

/* ---- Category section ---- */

.vc_row.sch-products-category {
    padding: 0 24px;
    margin-bottom: clamp(36px, 5vw, 60px);
}

.sch-products-category-heading {
    margin: 0 0 clamp(16px, 2vw, 26px) 0 !important;
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.22em;
    text-transform: uppercase !important;
    color: rgba(0, 0, 0, 0.52);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sch-products-category-heading::before,
.sch-products-category-heading::after {
    content: "";
    flex: 0 0 5rem;
    height: 1px;
    background: currentColor;
    opacity: 0.35;
    margin: 0 1.5rem;
}

@media (max-width: 600px) {
    .sch-products-category-heading::before,
    .sch-products-category-heading::after {
        display: none;
    }
}

/* ---- Logo grid (CSS grid, same override pattern as awards stats) ---- */

.vc_row.sch-products-logo-grid {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
}

/* Prevent WPBakery clearfix pseudo-elements from acting as grid items */
.sch-products-logo-grid::before,
.sch-products-logo-grid::after {
    content: none !important;
    display: none !important;
}

/* Neutralize WPBakery column sizing inside the grid */
.vc_row.sch-products-logo-grid > .wpb_column.vc_column_container {
    width: auto !important;
    flex: none !important;
    max-width: none !important;
    height: 100%;
}

/* ---- Individual logo tile ---- */

.sch-products-logo-tile > .vc_column-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(20px, 2.5vw, 32px) !important;
    border: 1px solid rgba(0, 0, 0, 0.06);
    margin: -0.5px; /* collapse shared borders */
    transition:
        background 0.25s ease,
        box-shadow 0.25s ease;
    height: 100%;
}

.sch-products-logo-tile > .vc_column-inner:hover {
    background: rgba(147, 146, 130, 0.04);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
    z-index: 1;
    position: relative;
}

/* ---- Logo image ---- */

.sch-products-logo-img {
    margin: 0 !important;
    padding: 0 !important;
}

.sch-products-logo-img .vc_single_image-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
}

.sch-products-logo-img img {
    display: block;
    max-height: 40px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.65;
    transition:
        filter 0.3s ease,
        opacity 0.3s ease;
}

.sch-products-logo-tile > .vc_column-inner:hover .sch-products-logo-img img {
    filter: grayscale(0%);
    opacity: 1;
}

/* Strip vc_box_border_grey border/padding on logo images */
.sch-products-logo-img .vc_single_image-wrapper.vc_box_border_grey {
    border: none !important;
    padding: 0 !important;
}

/* Zero out figure wrapper spacing */
.sch-products-logo-img figure,
.sch-products-logo-img .vc_figure {
    display: block;
    line-height: 0;
    margin: 0 !important;
    padding: 0 !important;
}

/* ---- Products page — tighter CTA spacing ---- */

.page-id-28 .sch-cta-band {
    padding-top: clamp(24px, 3vw, 40px);
    padding-bottom: clamp(24px, 3vw, 40px);
}

/* Tighten bottom padding on the intro text block only */
.page-id-28 .sch-interior-content:not(.sch-team-section-head) {
    padding-bottom: clamp(12px, 1.5vw, 24px);
}

/* Tighten spacing above/below the disclaimer — needs 3-class specificity to beat the :not rule above */
.page-id-28 .sch-interior-content.sch-products-disclaimer {
    padding-top: clamp(8px, 1vw, 16px);
    padding-bottom: clamp(58px, 6vw, 66px);
}

/* ---- Responsive ---- */

/* Standard desktop / laptop */
@media (max-width: 1280px) {
    .vc_row.sch-products-logo-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Tablet */
@media (max-width: 991px) {
    .vc_row.sch-products-logo-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Mobile */
@media (max-width: 767px) {
    .vc_row.sch-products-logo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vc_row.sch-products-category {
        padding: 0 16px;
    }

    .sch-products-logo-img img {
        max-height: 32px;
    }

    .sch-products-logo-tile > .vc_column-inner {
        padding: 18px !important;
    }
}

/* ── Brand name text tiles ─────────────────────────────────────────────────── */

.vc_row.sch-products-logo-grid .sch-products-logo-tile .wpb_text_column {
    margin-bottom: 0 !important;
    width: 100%;
    text-align: center;
}

.vc_row.sch-products-logo-grid
    .sch-products-logo-tile
    .sch-products-brand-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
}

.vc_row.sch-products-logo-grid
    .sch-products-logo-tile
    .sch-products-brand-tile
    .sch-products-brand-name {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #003e7e;
    line-height: 1.25;
}

.vc_row.sch-products-logo-grid
    .sch-products-logo-tile
    .sch-products-brand-tile
    .sch-products-brand-desc {
    margin: 0.38rem 0 0;
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.38);
    line-height: 1.45;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   PROCESS PAGE  (post 2895)
   ═══════════════════════════════════════════════════════════════════════════════ */

/* ── Intro ─────────────────────────────────────────────────────────────────── */

.vc_row.sch-process-intro {
    padding-bottom: clamp(16px, 2vw, 28px);
}

/* ── Philosophy block ──────────────────────────────────────────────────────── */

.vc_row.sch-process-philosophy {
    background-color: rgba(147, 146, 130, 0.04) !important;
    padding-top: clamp(28px, 3.5vw, 52px) !important;
    padding-bottom: clamp(28px, 3.5vw, 52px) !important;
}

.sch-process-tagline {
    font-size: clamp(1rem, 1.3vw, 1.15rem) !important;
    font-style: italic !important;
    font-weight: 300 !important;
    color: rgba(28, 117, 188, 0.75) !important;
    margin-top: 28px !important;
    margin-bottom: 0 !important;
    letter-spacing: 0.01em !important;
}

/* ── Step rows — outer ─────────────────────────────────────────────────────── */

.vc_row.sch-process-step-row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.vc_row.sch-process-step-odd {
    background-color: #fff !important;
}

.vc_row.sch-process-step-even {
    background-color: rgba(147, 146, 130, 0.05) !important;
}

/* Outer column: constrain + center (mirrors CFF band pattern) */
.vc_row.sch-process-step-row > .wpb_column > .vc_column-inner {
    max-width: 1200px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
}

/* ── Inner row: flex side-by-side with vertical centering ──────────────────── */

.sch-process-step-row .vc_row.vc_inner {
    display: flex !important;
    align-items: stretch;
    min-height: clamp(220px, 22vw, 360px);
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Suppress WPBakery clearfix phantom items */
.sch-process-step-row .vc_row.vc_inner::before,
.sch-process-step-row .vc_row.vc_inner::after {
    content: none !important;
    display: none !important;
}

/* Inner columns: flex for vertical centering */
.sch-process-step-row .vc_row.vc_inner > .wpb_column {
    float: none !important;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ── Text column ───────────────────────────────────────────────────────────── */

.sch-process-step-text > .vc_column-inner {
    padding: clamp(32px, 4vw, 56px) clamp(20px, 3vw, 48px) !important;
    max-width: 520px;
    box-sizing: border-box;
}

/* Odd: text on left → nudge toward center */
.vc_row.sch-process-step-odd .sch-process-step-text > .vc_column-inner {
    margin-left: auto !important;
    margin-right: 0 !important;
}

/* Even: text on right → nudge toward center */
.vc_row.sch-process-step-even .sch-process-step-text > .vc_column-inner {
    margin-left: 0 !important;
    margin-right: auto !important;
}

/* ── Visual column (decorative step number) ────────────────────────────────── */

.sch-process-step-visual > .vc_column-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    max-width: none !important;
    padding: 24px !important;
}

.vc_row.sch-process-step-odd .sch-process-step-visual > .vc_column-inner {
    background-color: rgba(147, 146, 130, 0.04);
}

.vc_row.sch-process-step-even .sch-process-step-visual > .vc_column-inner {
    background-color: rgba(147, 146, 130, 0.07);
}

/* ── Step eyebrow ──────────────────────────────────────────────────────────── */

.sch-process-step-eyebrow {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    color: rgba(28, 117, 188, 0.7) !important;
    margin: 0 0 14px 0 !important;
    line-height: 1.2 !important;
}

/* ── Step heading ──────────────────────────────────────────────────────────── */

.sch-process-step-heading {
    font-family: "Bodoni Moda", serif !important;
    font-size: clamp(1.3rem, 2vw, 1.8rem) !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em !important;
    line-height: 1.22 !important;
    margin: 0 0 18px 0 !important;
    color: rgba(0, 0, 0, 0.88) !important;
    text-transform: none !important;
}

/* ── Decorative step number ────────────────────────────────────────────────── */

.sch-process-step-number {
    font-family: "Bodoni Moda", serif;
    font-size: clamp(80px, 14vw, 180px);
    font-weight: 300;
    line-height: 1;
    color: rgba(147, 146, 130, 0.22);
    letter-spacing: -0.04em;
    user-select: none;
    pointer-events: none;
    text-align: center;
}

/* ── Responsive ────────────────────────────────────────────────────────────── */

@media (max-width: 767px) {
    /* Stack columns vertically */
    .sch-process-step-row .vc_row.vc_inner {
        flex-direction: column !important;
        min-height: 0 !important;
    }

    /* Full width on mobile */
    .sch-process-step-row .vc_row.vc_inner > .wpb_column {
        width: 100% !important;
    }

    /* Hide decorative number — not useful at mobile size */
    .sch-process-step-visual {
        display: none !important;
    }

    .sch-process-step-text > .vc_column-inner {
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding: 28px 20px !important;
    }
}

/* ── Buildertrend client portal section (post 2895, scoped) ──────────────── */

/* Strip the accordion's own bottom padding on this page so the gap above the
   portal section is governed entirely by the portal row's top padding. */
.page-id-2895 .sch-process-accordion {
    padding-bottom: 0 !important;
}

/* Same on the bottom: strip the CTA band's own top padding so the gap below
   the portal section is governed entirely by the portal row's bottom padding. */
.page-id-2895 .sch-cta-band {
    padding-top: 0 !important;
}

/* Portal row (uses .sch-page-intro on the row in current markup).
   Zero padding above the badge, 100px below the section. */
.page-id-2895 .vc_row.sch-page-intro {
    padding-top: 0 !important;
    padding-bottom: 100px !important;
}

/* Zero column-inner top padding so nothing inherits between row top and badge. */
.page-id-2895 .vc_row.sch-page-intro > .wpb_column > .vc_column-inner {
    padding-top: 0 !important;
}

/* Zero every vertical margin on the WPBakery image wrappers and the <img>
   itself so the space above/below the logo comes only from the section. */
.page-id-2895 .sch-page-intro .wpb_single_image,
.page-id-2895 .sch-page-intro .wpb_single_image .vc_figure,
.page-id-2895 .sch-page-intro .vc_single_image-wrapper,
.page-id-2895 .sch-page-intro .vc_single_image-img {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Display the image cleanly with no inherited inline-block whitespace. */
.page-id-2895 .sch-page-intro .vc_single_image-img {
    display: block;
}

/* Flyer link styling (the link class is still applied on the user's <p>). */
.page-id-2895 .sch-process-portal-flyer-link {
    margin-top: 16px !important;
    margin-bottom: 0 !important;
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.page-id-2895 .sch-process-portal-flyer-link a {
    color: #003e7e;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(0, 62, 126, 0.3);
    padding-bottom: 2px;
    transition: border-color 0.2s ease;
}

.page-id-2895 .sch-process-portal-flyer-link a:hover {
    border-bottom-color: #003e7e;
}

/* ── Features Accordion (post 26) ─────────────────────────────────────────── */

.sch-features-accordion {
    max-width: 860px;
    margin: 0 auto;
}

.sch-fac-group {
    border-top: 1px solid rgba(0, 0, 0, 0.09);
}

.sch-fac-group:last-child {
    border-bottom: 1px solid rgba(0, 0, 0, 0.09);
}

.sch-fac-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.25rem 0;
    cursor: pointer;
    list-style: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.sch-fac-summary::-webkit-details-marker {
    display: none;
}
.sch-fac-summary::marker {
    display: none;
}

.sch-fac-summary-text {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.sch-features-accordion .sch-fac-title {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 0.92rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    color: #101527 !important;
    transition: color 0.2s ease;
}

.sch-features-accordion .sch-fac-summary:hover .sch-fac-title {
    color: #023e73 !important;
}

.sch-features-accordion .sch-fac-hint {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 0.95rem !important;
    color: rgba(0, 0, 0, 0.55) !important;
    letter-spacing: 0 !important;
}

.sch-fac-chevron {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    color: rgba(0, 0, 0, 0.35);
    transition:
        transform 0.25s ease,
        color 0.2s ease;
}

.sch-fac-group[open] > .sch-fac-summary .sch-fac-chevron {
    transform: rotate(180deg);
    color: #023e73;
}

.sch-fac-group[open] > .sch-fac-summary .sch-fac-title {
    color: #023e73;
}

.sch-fac-body {
    padding-bottom: 2rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem 3.5rem;
}

.sch-fac-group:first-child .sch-fac-body {
    grid-template-columns: 1fr 1fr;
}

.sch-fac-group:first-child .sch-fac-body .sch-fac-category:first-child {
    grid-row: span 2;
}

.sch-features-accordion .sch-fac-cat-name {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    letter-spacing: normal !important;
    text-transform: uppercase !important;
    color: #023e73 !important;
    margin: 0 0 0.4rem !important;
}

.sch-features-accordion .sch-fac-cat-intro {
    font-size: 0.9rem !important;
    color: #2a2e3d !important;
    margin: 0 0 0.75rem !important;
    line-height: 1.65 !important;
    font-style: normal !important;
}

.sch-features-accordion .sch-fac-list {
    margin: 0 !important;
    padding-left: 0 !important;
    list-style-position: inside !important;
}

.sch-features-accordion .sch-fac-list li {
    font-size: 0.9rem !important;
    color: #2a2e3d !important;
    line-height: 1.65 !important;
    margin-bottom: 0.35rem !important;
}

.sch-features-accordion .sch-fac-group:first-child .sch-fac-body {
    grid-template-columns: 1fr 1fr !important;
}

.sch-features-accordion
    .sch-fac-group:first-child
    .sch-fac-body
    .sch-fac-category:first-child {
    grid-row: span 2 !important;
}

.page-id-26 .sch-features-accordion-row > .vc_column-inner {
    padding-top: clamp(32px, 4vw, 56px) !important;
    padding-bottom: clamp(32px, 4vw, 56px) !important;
}

@media (max-width: 640px) {
    .sch-fac-body {
        grid-template-columns: 1fr;
    }
    .sch-fac-hint {
        display: none;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   FINANCING PAGE (post 393)
   ═══════════════════════════════════════════════════════════════════════════════ */

/* ── Step triptych row ─────────────────────────────────────────────────────── */

.vc_row.sch-financing-steps-row {
    background-color: rgba(147, 146, 130, 0.04) !important;
    padding-top: 40px !important;
    padding-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.vc_row.sch-financing-steps-row > .wpb_column > .vc_column-inner {
    max-width: 1200px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.sch-financing-steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
}

.sch-financing-step {
    padding: clamp(32px, 4vw, 56px) clamp(28px, 3.5vw, 52px);
    border-right: 1px solid rgba(0, 0, 0, 0.08);
}

.sch-financing-step:last-child {
    border-right: none;
}

.sch-financing-steps .sch-financing-step-eyebrow {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    color: rgba(28, 117, 188, 0.7) !important;
    margin: 0 0 14px 0 !important;
    line-height: 1.2 !important;
}

.sch-financing-steps .sch-financing-step-heading {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
    font-size: clamp(1rem, 1.5vw, 1.2rem) !important;
    font-weight: 600 !important;
    font-style: normal !important;
    letter-spacing: -0.01em !important;
    line-height: 1.3 !important;
    margin: 0 0 16px 0 !important;
    color: #1f4f86 !important;
}

.sch-financing-steps .sch-financing-step-body {
    font-size: 0.9rem !important;
    line-height: 1.7 !important;
    color: rgba(0, 0, 0, 0.6) !important;
    margin: 0 !important;
}

/* ── Lender cards row ──────────────────────────────────────────────────────── */

.vc_row.sch-financing-lenders-row {
    padding-top: clamp(24px, 3vw, 40px) !important;
    padding-bottom: clamp(15px, 3vw, 39px) !important;
}

.vc_row.sch-financing-lenders-row > .wpb_column > .vc_column-inner {
    max-width: 900px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
}

.sch-lender-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(14px, 2vw, 22px);
}

.sch-lender-card {
    padding: clamp(20px, 2.5vw, 30px);
    background: #fafafa;
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 2px;
}

.sch-financing-lenders-row .sch-lender-name {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #101527 !important;
    margin: 0 0 3px 0 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.sch-financing-lenders-row .sch-lender-institution {
    font-family: "Inter", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: #023e73 !important;
    margin: 0 0 12px 0 !important;
}

.sch-financing-lenders-row .sch-lender-credentials {
    font-size: 0.72rem !important;
    color: rgba(0, 0, 0, 0.38) !important;
    margin: -8px 0 12px 0 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.5 !important;
}

.sch-financing-lenders-row .sch-lender-contact-item {
    font-size: 0.85rem !important;
    color: rgba(0, 0, 0, 0.6) !important;
    margin: 0 0 5px 0 !important;
    line-height: 1.5 !important;
}

.sch-financing-lenders-row .sch-lender-contact-item:last-child {
    margin-bottom: 0 !important;
}

.sch-financing-lenders-row .sch-lender-contact-item a {
    color: inherit !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.18) !important;
    padding-bottom: 1px !important;
    transition:
        color 0.15s ease,
        border-color 0.15s ease !important;
}

.sch-financing-lenders-row .sch-lender-contact-item a:hover {
    color: #023e73 !important;
    border-color: rgba(2, 62, 115, 0.4) !important;
}

/* ── Page-scoped spacing ───────────────────────────────────────────────────── */

.page-id-393 .sch-page-intro {
    padding-bottom: clamp(2px, 1vw, 28px);
}

.page-id-393 .sch-cta-band {
    padding-top: clamp(24px, 3vw, 40px);
    padding-bottom: clamp(48px, 6vw, 80px);
}

/* ── Responsive ────────────────────────────────────────────────────────────── */

@media (max-width: 767px) {
    .sch-financing-steps {
        grid-template-columns: 1fr;
    }

    .sch-financing-step {
        border-right: none;
        border-bottom: 1px solid rgba(0, 0, 0, 0.08);
        padding-left: 24px;
        padding-right: 24px;
    }

    .sch-financing-step:last-child {
        border-bottom: none;
    }

    .sch-lender-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   NEWSFEED PAGE
   ============================================================ */

/* ── Page wrapper ── */
.sch-newsfeed-page {
    padding-top: 0;
}

/* ── Shared meta kicker (category · date) ── */
.sch-newsfeed-meta {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.42);
    margin-bottom: 8px;
}

/* ── Shared "Read More" link ── */
.sch-newsfeed-readmore {
    display: inline-block;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(15, 59, 116, 0.82);
    text-decoration: none;
}
.sch-newsfeed-readmore:hover {
    color: rgba(15, 59, 116, 1);
    text-decoration: none;
}

/* ── Featured Post ──────────────────────────────────────────── */
.sch-newsfeed-featured {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 7;
    overflow: hidden;
    margin-bottom: clamp(40px, 5vw, 64px);
    background: #0a1e3c;
}

.sch-newsfeed-featured__link {
    display: block;
    position: absolute;
    inset: 0;
    text-decoration: none;
}

.sch-newsfeed-featured__img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.6s ease;
}
.sch-newsfeed-featured:hover .sch-newsfeed-featured__img {
    transform: scale(1.03);
}

.sch-newsfeed-featured__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(8, 22, 50, 0.9) 0%,
        rgba(8, 22, 50, 0.48) 38%,
        transparent 68%
    );
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(24px, 4vw, 52px);
}

.sch-newsfeed-featured__overlay .sch-newsfeed-meta {
    color: rgba(255, 255, 255, 0.6);
}

.sch-newsfeed-featured__title {
    font-family:
        "bodoni-std", "bodoni-urw", "Bodoni 72", Bodoni, Didot, Georgia, serif;
    font-weight: 400;
    font-style: normal;
    text-transform: uppercase;
    color: #fff;
    font-size: clamp(1.5rem, 2.8vw, 2.6rem);
    line-height: 1.2;
    letter-spacing: 0.04em;
    margin: 0 0 12px;
    max-width: 26em;
}

.sch-newsfeed-featured__excerpt {
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(0.875rem, 1.1vw, 1rem);
    line-height: 1.6;
    margin: 0 0 16px;
    max-width: 52ch;
}

.sch-newsfeed-featured__overlay .sch-newsfeed-readmore {
    color: rgba(255, 255, 255, 0.8);
    margin-top: 4px;
}
.sch-newsfeed-featured:hover .sch-newsfeed-readmore {
    color: #fff;
}

/* ── Editorial Cards (3-up) ─────────────────────────────────── */
.sch-newsfeed-editorial {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
    margin-bottom: clamp(40px, 5vw, 64px);
}

.sch-newsfeed-card {
    display: flex;
    flex-direction: column;
}

.sch-newsfeed-card__img-wrap {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    flex-shrink: 0;
}

.sch-newsfeed-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}
.sch-newsfeed-card:hover .sch-newsfeed-card__img {
    transform: scale(1.04);
}

.sch-newsfeed-card__body {
    padding: 18px 0 0;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.sch-newsfeed-card__title {
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
    margin: 4px 0 8px;
}
.sch-newsfeed-card__title a {
    color: inherit;
    text-decoration: none;
}
.sch-newsfeed-card__title a:hover {
    color: #1f4f86;
    text-decoration: none;
}

.sch-newsfeed-card__excerpt {
    font-size: 0.975rem;
    line-height: 1.65;
    color: rgba(0, 0, 0, 0.62);
    margin: 0 0 14px;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Text List ──────────────────────────────────────────────── */
.sch-newsfeed-list {
    margin-bottom: clamp(24px, 3vw, 40px);
}

.sch-newsfeed-list-item {
    display: grid;
    grid-template-columns: 100px 1fr 28px;
    column-gap: 32px;
    align-items: start;
    padding: 18px 0;
    border-top: 1px solid rgba(0, 0, 0, 0.09);
}
.sch-newsfeed-list-item:last-child {
    border-bottom: 1px solid rgba(0, 0, 0, 0.09);
}

.sch-newsfeed-list-date {
    font-size: 0.775rem;
    color: rgba(0, 0, 0, 0.4);
    letter-spacing: 0.02em;
    padding-top: 3px;
    white-space: nowrap;
    line-height: 1.4;
}

.sch-newsfeed-list-body {
    min-width: 0;
}

.sch-newsfeed-list-title {
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
    margin: 0 0 5px;
}
.sch-newsfeed-list-title a {
    color: inherit;
    text-decoration: none;
}
.sch-newsfeed-list-title a:hover {
    color: #1f4f86;
    text-decoration: none;
}

.sch-newsfeed-list-excerpt {
    font-size: 0.95rem;
    line-height: 1.6;
    color: rgba(0, 0, 0, 0.55);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.sch-newsfeed-list-arrow {
    font-size: 1.1rem;
    color: rgba(15, 59, 116, 0.5);
    text-decoration: none;
    align-self: center;
    display: block;
    line-height: 1;
    transition:
        transform 0.2s ease,
        color 0.2s ease;
}
.sch-newsfeed-list-arrow:hover {
    transform: translateX(4px);
    color: rgba(15, 59, 116, 0.9);
    text-decoration: none;
}

/* ── Load More ──────────────────────────────────────────────── */
.sch-load-more-wrap {
    text-align: center;
    padding: 32px 0 clamp(48px, 6vw, 80px);
}

.sch-load-more-btn {
    display: inline-block;
    padding: 0 36px;
    height: 52px;
    line-height: 52px;
    border: 1px solid rgba(15, 59, 116, 0.35);
    background: transparent;
    color: rgba(15, 59, 116, 0.88);
    font-family: inherit;
    font-weight: 600;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    border-radius: 0;
    transition:
        background 0.25s ease,
        color 0.25s ease,
        border-color 0.25s ease;
}
.sch-load-more-btn:hover {
    background: rgba(15, 59, 116, 0.92);
    color: #fff;
    border-color: rgba(15, 59, 116, 0.92);
}
.sch-load-more-btn:disabled {
    opacity: 0.5;
    cursor: wait;
}

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 900px) {
    .sch-newsfeed-editorial {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sch-newsfeed-editorial .sch-newsfeed-card:nth-child(3) {
        display: none;
    }
}

@media (max-width: 600px) {
    .sch-newsfeed-featured {
        aspect-ratio: 4 / 3;
    }
    .sch-newsfeed-editorial {
        grid-template-columns: 1fr;
    }
    .sch-newsfeed-editorial .sch-newsfeed-card:nth-child(3) {
        display: flex;
    }
    .sch-newsfeed-list-item {
        grid-template-columns: 1fr 28px;
        column-gap: 16px;
    }
    .sch-newsfeed-list-date {
        display: none;
    }
}

/* ============================================================
   SINGLE BLOG POST (ARTICLE PAGE)
   ============================================================ */

/* ── Navbar: force opaque/scrolled state on article pages ── */
.sch-single-post .navbar {
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: saturate(180%) blur(20px);
}
.sch-single-post .nav-item {
    color: #003e7e;
}
.sch-single-post .hamburger .menu-label {
    color: #003e7e;
}
.sch-single-post .hamburger .hamburger-icon span {
    background: #003e7e;
}
.sch-single-post .logo .logo-active {
    opacity: 1;
}
.sch-single-post .logo .logo-main {
    opacity: 0;
}

/* ── Page wrapper ── */
.sch-article-page {
    padding-top: calc(var(--nav-height, 110px) + 48px);
    padding-bottom: clamp(60px, 8vw, 100px);
    min-height: 60vh;
}

/* ── Article column ── */
.sch-article-wrap {
    max-width: 760px;
    margin: 0 auto;
    padding: 0 clamp(20px, 4vw, 40px);
}

/* ── Breadcrumb ── */
.sch-article-breadcrumb {
    margin-bottom: 36px;
}
.sch-article-breadcrumb a {
    font-size: 0.775rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: rgba(15, 59, 116, 0.6);
    text-decoration: none;
    transition: color 0.15s ease;
}
.sch-article-breadcrumb a:hover {
    color: rgba(15, 59, 116, 1);
}

/* ── Article header ── */
.sch-article-header {
    margin-bottom: 28px;
}
.sch-article-eyebrow {
    display: block;
    font-size: 0.775rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(15, 59, 116, 0.78);
    margin-bottom: 14px;
}
.sch-article-title {
    font-family:
        "bodoni-std", "bodoni-urw", "Bodoni 72", Bodoni, Didot, Georgia, serif;
    font-weight: 400;
    font-style: normal;
    font-size: clamp(1.9rem, 3.5vw, 3rem);
    line-height: 1.18;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #111;
    margin: 0 0 16px;
}
.sch-article-date {
    font-size: 0.82rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: rgba(0, 0, 0, 0.42);
    margin: 0;
}

/* ── Divider ── */
.sch-article-divider {
    border: none;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    margin: 28px 0 32px;
}

/* ── Featured image ── */
.sch-article-image {
    margin: 0 0 40px;
    line-height: 0;
}
.sch-article-image img {
    width: 100%;
    height: auto;
    display: block;
}

/* ── Body copy ── */
.sch-article-body {
    font-size: 1.05rem;
    line-height: 1.82;
    color: rgba(0, 0, 0, 0.78);
}
.sch-article-body p {
    margin: 0 0 1.4em;
}
.sch-article-body p:last-child {
    margin-bottom: 0;
}
.sch-article-body h2 {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.01em;
    color: #111;
    margin: 2em 0 0.6em;
}
.sch-article-body h3 {
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
    color: #111;
    margin: 1.6em 0 0.5em;
}
.sch-article-body h4 {
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #111;
    margin: 1.4em 0 0.5em;
}
.sch-article-body ul,
.sch-article-body ol {
    padding-left: 1.5em;
    margin: 0 0 1.4em;
}
.sch-article-body li {
    margin-bottom: 0.45em;
}
.sch-article-body a {
    color: #1f4f86;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.sch-article-body a:hover {
    color: rgba(15, 59, 116, 1);
}
.sch-article-body blockquote {
    border-left: 3px solid rgba(15, 59, 116, 0.3);
    padding: 6px 0 6px 22px;
    margin: 1.8em 0;
    color: rgba(0, 0, 0, 0.62);
    font-style: italic;
}
.sch-article-body img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 1.8em auto;
}
.sch-article-body .wp-caption {
    max-width: 100%;
}
.sch-article-body .wp-caption-text {
    font-size: 0.82rem;
    color: rgba(0, 0, 0, 0.45);
    text-align: center;
    margin-top: 8px;
    font-style: italic;
    line-height: 1.5;
}

/* ── Tags ── */
.sch-article-tags {
    margin-top: 48px;
    padding-top: 28px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.sch-article-tags-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.38);
    margin: 0 0 12px;
}
.sch-article-tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.sch-article-tags-list a {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: rgba(15, 59, 116, 0.78);
    border: 1px solid rgba(15, 59, 116, 0.28);
    padding: 5px 14px;
    text-decoration: none;
    transition:
        background 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}
.sch-article-tags-list a:hover {
    background: rgba(15, 59, 116, 0.07);
    color: rgba(15, 59, 116, 1);
    border-color: rgba(15, 59, 116, 0.5);
    text-decoration: none;
}

/* ── Responsive ── */
@media (max-width: 600px) {
    .sch-article-page {
        padding-top: calc(var(--nav-height, 110px) + 28px);
    }
    .sch-article-title {
        font-size: 1.65rem;
    }
    .sch-article-body {
        font-size: 1rem;
        line-height: 1.75;
    }
    .sch-article-body h2 {
        font-size: 1.3rem;
    }
}

/* ================================================================
   CONNECT PAGE  (page-id-2898)
   ================================================================ */

/* ── Two-column contact section ── */
.sch-connect-columns {
    padding-top: clamp(8px, 2vw, 24px);
    padding-bottom: clamp(40px, 5vw, 72px);
}

.sch-connect-columns .wpb_column,
.sch-connect-columns .vc_column-inner {
    border-left: none !important;
    border-right: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.sch-connect-columns .wpb_column:first-child > .vc_column-inner > .wpb_wrapper {
    padding: 0 clamp(24px, 4vw, 60px) 0 24px;
}

.sch-connect-columns .wpb_column:last-child > .vc_column-inner > .wpb_wrapper {
    padding: 0 24px 0 clamp(24px, 4vw, 60px);
    border-left: 1px solid rgba(0, 62, 126, 0.12);
}

.sch-connect-columns p {
    margin: 0 0 1rem;
    line-height: 1.75;
    color: rgba(0, 0, 0, 0.72);
}

/* ── Office details block ── */
.sch-connect-office {
    font-size: 1rem;
    line-height: 1.7;
}

.sch-connect-firm {
    font-weight: 600;
    color: #003e7e;
    margin: 0 0 0.4rem;
    letter-spacing: 0.01em;
}

.sch-connect-address {
    font-style: normal;
    color: rgba(0, 0, 0, 0.68);
    margin: 0 0 1rem;
    line-height: 1.6;
}

.sch-connect-phone,
.sch-connect-email {
    margin: 0 0 0.35rem;
}

.sch-connect-phone a,
.sch-connect-email a {
    color: #003e7e;
    text-decoration: none;
    transition: opacity 0.15s ease;
}

.sch-connect-phone a:hover,
.sch-connect-email a:hover {
    opacity: 0.7;
}

.sch-connect-license {
    font-size: 0.8rem;
    color: rgba(0, 0, 0, 0.45);
    letter-spacing: 0.03em;
    margin: 0.5rem 0 0;
}

/* ── Social icons ── */
.sch-connect-social {
    display: flex;
    gap: 22px;
    margin-top: 1.25rem;
    align-items: center;
}

.sch-connect-social-link {
    color: rgba(0, 62, 126, 0.55);
    font-size: 1.2rem;
    text-decoration: none;
    transition: color 0.15s ease;
    line-height: 1;
}

.sch-connect-social-link:hover {
    color: #003e7e;
}

/* ── VIP band ── */
.sch-connect-vip-band {
    background: rgba(0, 62, 126, 0.04);
    padding-top: clamp(48px, 5vw, 80px) !important;
    padding-bottom: clamp(48px, 5vw, 80px) !important;
}

.sch-connect-vip {
    max-width: 540px;
    margin: 0 auto;
    text-align: center;
    padding: 0 24px;
}

.sch-connect-vip-headline,
.sch-connect-vip h3 {
    font-family:
        "bodoni-std", "bodoni-urw", "Bodoni 72", Bodoni, Didot, Georgia, serif;
    font-weight: 400;
    font-style: normal;
    font-size: clamp(1.4rem, 2.5vw, 1.9rem);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #003e7e;
    margin: 0 0 0.75rem;
}

.sch-connect-vip-body {
    font-size: 0.95rem;
    line-height: 1.75;
    color: rgba(0, 0, 0, 0.62);
    margin: 0 0 1.75rem;
}

/* ── Closing line ── */
.sch-connect-closing-text {
    text-align: center;
    font-family:
        "bodoni-std", "bodoni-urw", "Bodoni 72", Bodoni, Didot, Georgia, serif;
    font-weight: 400;
    font-style: italic;
    font-size: clamp(1.1rem, 1.8vw, 1.35rem);
    letter-spacing: 0.02em;
    color: rgba(0, 0, 0, 0.5);
    line-height: 1.6;
    margin: 0;
}

/* ── Connect mobile ── */
@media (max-width: 768px) {
    .sch-connect-columns
        .wpb_column:last-child
        > .vc_column-inner
        > .wpb_wrapper {
        border-left: none;
        border-top: 1px solid rgba(0, 62, 126, 0.12);
        padding-top: 28px;
        padding-left: 24px;
    }
}
