:root {
    /* Image radius - will be overridden by global settings when set */
    --ds-image-radius: var(--ds-image-border-radius, var(--ds-radius-lg));
}

/**
 * DS Block Library - Frontend Styles
 *
 * Styles for all blocks when displayed on the frontend.
 */

/* ================================================
   BASE / RESET
   ================================================ */

.ds-block,
.ds-hero-split-video,
.ds-hero-fullwidth-bg,
.ds-hero-split-reviews,
.ds-content-split-image-stack,
.ds-content-split-image-grid,
.ds-content-split-fullbleed,
.ds-content-three-column,
.ds-features-grid-image,
.ds-features-grid-dark,
.ds-features-hero-image,
.ds-stats-bar,
.ds-logo-bar,
.ds-testimonial-card,
.ds-benefits-risks,
.ds-how-it-works-steps,
.ds-credentials-grid,
.ds-awards-grid,
.ds-publications {
    box-sizing: border-box;
    position: relative;
}

/* Apply background only to blocks that need it (not split layouts with separate content areas) */
.ds-block,
.ds-hero-fullwidth-bg,
.ds-content-split-image-stack,
.ds-content-split-image-grid,
.ds-content-three-column,
.ds-features-grid-image,
.ds-features-grid-dark,
.ds-features-hero-image,
.ds-stats-bar,
.ds-logo-bar,
.ds-testimonial-card,
.ds-benefits-risks,
.ds-how-it-works-steps,
.ds-credentials-grid,
.ds-awards-grid,
.ds-publications {
    background-color: var(--ds-bg, transparent);
}

/* Default section padding - exclude split layouts that handle their own padding */
.ds-block:not(.ds-hero-split-video):not(.ds-hero-split-reviews):not(.ds-content-split-fullbleed),
.ds-hero-fullwidth-bg,
.ds-content-split-image-stack,
.ds-content-split-image-grid,
.ds-content-three-column,
.ds-features-grid-image,
.ds-features-grid-dark,
.ds-features-hero-image,
.ds-stats-bar,
.ds-logo-bar,
.ds-testimonial-card,
.ds-benefits-risks,
.ds-how-it-works-steps,
.ds-credentials-grid,
.ds-awards-grid,
.ds-publications {
    padding-top: 60px;
    padding-bottom: 60px;
}

.ds-block *,
.ds-hero-split-video *,
.ds-hero-fullwidth-bg *,
.ds-hero-split-reviews *,
.ds-hero-video-centered *,
.ds-content-split-image-stack *,
.ds-content-split-image-grid *,
.ds-content-split-fullbleed *,
.ds-content-three-column *,
.ds-features-grid-image *,
.ds-features-grid-dark *,
.ds-features-hero-image *,
.ds-stats-bar *,
.ds-logo-bar *,
.ds-testimonial-card *,
.ds-benefits-risks *,
.ds-how-it-works-steps *,
.ds-credentials-grid *,
.ds-awards-grid *,
.ds-publications * {
    box-sizing: inherit;
}

/* Background image with overlay */
.ds-block[style*="--ds-bg-image"],
.ds-hero-fullwidth-bg[style*="--ds-bg-image"],
.ds-content-split-image-stack[style*="--ds-bg-image"],
.ds-content-split-image-grid[style*="--ds-bg-image"],
.ds-content-three-column[style*="--ds-bg-image"],
.ds-features-grid-image[style*="--ds-bg-image"],
.ds-features-grid-dark[style*="--ds-bg-image"],
.ds-features-hero-image[style*="--ds-bg-image"],
.ds-stats-bar[style*="--ds-bg-image"],
.ds-logo-bar[style*="--ds-bg-image"],
.ds-testimonial-card[style*="--ds-bg-image"],
.ds-benefits-risks[style*="--ds-bg-image"],
.ds-how-it-works-steps[style*="--ds-bg-image"],
.ds-awards-grid[style*="--ds-bg-image"],
.ds-publications[style*="--ds-block-bg-image"] {
    background-image: var(--ds-block-bg-image, var(--ds-bg-image));
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Background image for split layouts - applies to content side */
.ds-hero-split-video[style*="--ds-bg-image"] .ds-hero-split-video__content,
.ds-hero-split-reviews[style*="--ds-bg-image"] .ds-hero-split-reviews__content,
.ds-content-split-fullbleed[style*="--ds-bg-image"] .ds-content-split-fullbleed__content {
    background-image: var(--ds-bg-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}

.ds-block__bg-overlay {
    position: absolute;
    inset: 0;
    background-color: var(--ds-overlay-color, #000);
    opacity: var(--ds-overlay-opacity, 0.7);
    z-index: 1;
}

/* Full overlay style (default) */
.ds-block__bg-overlay--full {
    background-color: var(--ds-overlay-color, #000);
    background-image: none;
}

/* Gradient from bottom overlay */
.ds-block__bg-overlay--gradient-bottom {
    background-color: transparent;
    background-image: linear-gradient(
        to top,
        var(--ds-overlay-color, #000) 0%,
        transparent var(--ds-overlay-gradient-size, 50%)
    );
    opacity: 1;
}

/* Gradient from top overlay */
.ds-block__bg-overlay--gradient-top {
    background-color: transparent;
    background-image: linear-gradient(
        to bottom,
        var(--ds-overlay-color, #000) 0%,
        transparent var(--ds-overlay-gradient-size, 50%)
    );
    opacity: 1;
}

/* Gradient from left overlay */
.ds-block__bg-overlay--gradient-left {
    background-color: transparent;
    background-image: linear-gradient(
        to right,
        var(--ds-overlay-color, #000) 0%,
        transparent var(--ds-overlay-gradient-size, 50%)
    );
    opacity: 1;
}

/* Gradient from right overlay */
.ds-block__bg-overlay--gradient-right {
    background-color: transparent;
    background-image: linear-gradient(
        to left,
        var(--ds-overlay-color, #000) 0%,
        transparent var(--ds-overlay-gradient-size, 50%)
    );
    opacity: 1;
}

/* Vignette overlay (darkened edges) */
.ds-block__bg-overlay--vignette {
    background-color: transparent;
    background-image: radial-gradient(
        ellipse at center,
        transparent 0%,
        transparent 30%,
        var(--ds-overlay-color, #000) 100%
    );
    opacity: 1;
}

/* Overlay for split layouts */
.ds-hero-split-video[style*="--ds-bg-image"] .ds-hero-split-video__content::before,
.ds-hero-split-reviews[style*="--ds-bg-image"] .ds-hero-split-reviews__content::before,
.ds-content-split-fullbleed[style*="--ds-bg-image"] .ds-content-split-fullbleed__content::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--ds-overlay-color, #000);
    opacity: var(--ds-overlay-opacity, 0.7);
    z-index: 1;
}

.ds-hero-split-video[style*="--ds-bg-image"] .ds-hero-split-video__content-inner,
.ds-hero-split-reviews[style*="--ds-bg-image"] .ds-hero-split-reviews__content-inner,
.ds-content-split-fullbleed[style*="--ds-bg-image"] .ds-content-split-fullbleed__inner {
    position: relative;
    z-index: 2;
}

.ds-block[style*="--ds-bg-image"] > *:not(.ds-block__bg-overlay) {
    position: relative;
    z-index: 2;
}

/* Visibility utilities */
.ds-hide-mobile {
    display: block;
}
.ds-hide-tablet {
    display: block;
}
.ds-hide-desktop {
    display: block;
}

@media (max-width: 767px) {
    .ds-hide-mobile {
        display: none !important;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .ds-hide-tablet {
        display: none !important;
    }
}

@media (min-width: 1025px) {
    .ds-hide-desktop {
        display: none !important;
    }
}

/* ================================================
   COMMON ELEMENTS
   ================================================ */

/* Prehook / Badge */
.ds-prehook {
    display: inline-block;
    padding: var(--ds-prehook-padding-y) var(--ds-prehook-padding-x);
    font-size: var(--ds-prehook-font-size, 14px);
    font-weight: var(--ds-prehook-font-weight, 600);
    letter-spacing: var(--ds-prehook-letter-spacing);
    text-transform: var(--ds-prehook-text-transform);
    line-height: 1;
    margin-bottom: 16px;
    color: var(--ds-prehook-text-color, #ffffff);
}

.ds-prehook--pill-outline {
    border: 1px solid var(--ds-prehook-bg-color, #b8977e);
    border-radius: var(--ds-prehook-radius);
    background: transparent;
    text-transform: none;
}

.ds-prehook--pill-filled {
    border: 1px solid transparent;
    border-radius: var(--ds-prehook-radius);
    background: var(--ds-prehook-bg-color, #b8977e);
    text-transform: none;
}

.ds-prehook--text-only {
    padding: 0;
    border: none;
    background: transparent;
    text-transform: none;
}

.ds-prehook--underline {
    padding: 0;
    padding-bottom: var(--ds-space-1);
    border: none;
    border-bottom: 2px solid var(--ds-prehook-bg-color, #b8977e);
    background: transparent;
    text-transform: none;
}

.ds-prehook--uppercase {
    padding: 0;
    border: none;
    background: transparent;
    text-transform: uppercase;
    letter-spacing: 0.15em;
}

/* ================================================
   LIST STYLES
   ================================================ */
.ds-list {
    list-style: none !important;
    padding: 0 !important;
    margin: var(--ds-space-6) 0 !important;
    text-align: left !important; /* Always left-align list content */
    display: inline-block !important; /* Allow the list to be centered as a unit */
    width: auto !important;
}

.ds-list li {
    list-style: none !important;
    list-style-type: none !important;
    text-align: left !important;
}

.ds-list li::before {
    display: none !important;
    content: none !important;
}

.ds-list li::marker {
    display: none !important;
    content: none !important;
}

.ds-list__item {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start !important; /* Always start from left */
    gap: 12px;
    margin-bottom: 8px;
    list-style: none !important;
    text-align: left !important; /* Always left-align item content */
}

.ds-list__item::before,
.ds-list__item::marker {
    display: none !important;
    content: none !important;
}

.ds-list__icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--ds-list-icon-color, #b8977e);
    margin-top: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ds-list__icon svg {
    width: 100%;
    height: 100%;
    color: inherit;
}

.ds-list__icon svg path,
.ds-list__icon svg polyline,
.ds-list__icon svg circle,
.ds-list__icon svg line {
    stroke: currentColor;
}

.ds-list__icon svg[fill="currentColor"] circle,
.ds-list__icon svg[fill="currentColor"] path {
    fill: currentColor;
}

.ds-list__number {
    flex-shrink: 0;
    font-weight: 600;
    color: var(--ds-list-icon-color, #b8977e);
    min-width: 24px;
    text-align: left !important;
}

.ds-list__text {
    flex: 1;
    text-align: left !important; /* Force left alignment on list text */
}

.ds-list--none .ds-list__item {
    gap: 0;
}

.ds-list--none .ds-list__icon {
    display: none;
}

/* Global rule: All list-like elements in blocks should always be left-aligned */
[class*="ds-"] ul,
[class*="ds-"] ol,
[class*="ds-"] li,
[class*="ds-"][class*="__list"],
[class*="ds-"][class*="__list-item"] {
    text-align: left !important;
}

/* Block Main Heading - ONLY applies to elements with __heading class */
/* This uses the custom typography settings from the block */
[class*="ds-"][class*="__heading"] {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, 400);
    font-size: var(--ds-block-heading-size-desktop, 48px);
    line-height: var(--ds-block-heading-line-height, 1.2);
    color: var(--ds-block-heading-color, inherit);
    margin: 0 0 var(--ds-space-4, 16px) 0;
}

@media (max-width: 1024px) {
    [class*="ds-"][class*="__heading"] {
        font-size: var(--ds-block-heading-size-tablet, 2.75rem);
    }
}

@media (max-width: 768px) {
    [class*="ds-"][class*="__heading"] {
        font-size: var(--ds-block-heading-size-mobile, 2.25rem);
    }
}

/* Default heading sizes for headings inside body content areas */
/* These use standard typographic scale, NOT the block's heading typography settings */
[class*="ds-"][class*="__body"] h1 {
    font-family: var(--ds-font-heading, 'Playfair Display', Georgia, serif);
    font-weight: 600;
    font-size: 2.5rem; /* 40px */
    line-height: 1.2;
    color: inherit;
    margin: 0 0 16px 0;
}

[class*="ds-"][class*="__body"] h2 {
    font-family: var(--ds-font-heading, 'Playfair Display', Georgia, serif);
    font-weight: 600;
    font-size: 2rem; /* 32px */
    line-height: 1.25;
    color: inherit;
    margin: 0 0 14px 0;
}

[class*="ds-"][class*="__body"] h3 {
    font-family: var(--ds-font-heading, 'Playfair Display', Georgia, serif);
    font-weight: 600;
    font-size: 1.75rem; /* 28px */
    line-height: 1.3;
    color: inherit;
    margin: 0 0 12px 0;
}

[class*="ds-"][class*="__body"] h4 {
    font-family: var(--ds-font-heading, 'Playfair Display', Georgia, serif);
    font-weight: 600;
    font-size: 1.5rem; /* 24px */
    line-height: 1.35;
    color: inherit;
    margin: 0 0 10px 0;
}

[class*="ds-"][class*="__body"] h5 {
    font-family: var(--ds-font-heading, 'Playfair Display', Georgia, serif);
    font-weight: 600;
    font-size: 1.25rem; /* 20px */
    line-height: 1.4;
    color: inherit;
    margin: 0 0 8px 0;
}

[class*="ds-"][class*="__body"] h6 {
    font-family: var(--ds-font-heading, 'Playfair Display', Georgia, serif);
    font-weight: 600;
    font-size: 1rem; /* 16px */
    line-height: 1.45;
    color: inherit;
    margin: 0 0 8px 0;
}

/* Body Content - using CSS custom properties from blocks */
[class*="ds-"][class*="__body"],
[class*="ds-"][class*="__body"] p,
.ds-block p,
.ds-block .ds-body-content,
.ds-block .ds-body-content p {
    font-family: var(--ds-block-body-font, var(--ds-font-body)) !important;
    font-weight: var(--ds-block-body-weight, 400) !important;
    font-size: var(--ds-block-body-size, 18px) !important;
    line-height: var(--ds-block-body-line-height, 1.6) !important;
    color: var(--ds-block-body-color, inherit) !important;
}

/* List text inherits body styles */
.ds-list__text {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-weight: var(--ds-block-body-weight, 400);
    font-size: var(--ds-block-body-size, 18px);
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
}

.ds-body-content p {
    margin: 0 0 var(--ds-space-4) 0;
}

.ds-body-content p:last-child {
    margin-bottom: 0;
}

/* ================================================
   TYPOGRAPHY COLOR SCHEME CLASSES
   Applied when custom typography is OFF - inherits from global with color scheme
   Sets CSS custom properties that cascade to child elements
   ================================================ */

/* Light on Dark - for dark backgrounds (white/light text) */
.ds-typography-light-on-dark {
    --ds-block-heading-color: var(--ds-heading-color-dark, #ffffff);
    --ds-block-body-color: var(--ds-body-color-dark, rgba(255, 255, 255, 0.85));
    color: var(--ds-body-color-dark, rgba(255, 255, 255, 0.85));
}

.ds-typography-light-on-dark [class*="__heading"],
.ds-typography-light-on-dark [class*="__feature-title"] {
    color: var(--ds-heading-color-dark, #ffffff) !important;
}

.ds-typography-light-on-dark [class*="__body"],
.ds-typography-light-on-dark [class*="__body"] p,
.ds-typography-light-on-dark [class*="__intro"],
.ds-typography-light-on-dark [class*="__intro"] p,
.ds-typography-light-on-dark [class*="__additional-content"],
.ds-typography-light-on-dark [class*="__additional-content"] p,
.ds-typography-light-on-dark .ds-list__text,
.ds-typography-light-on-dark [class*="__label"],
.ds-typography-light-on-dark [class*="__description"],
.ds-typography-light-on-dark [class*="__text"]:not(.ds-btn__text) {
    color: var(--ds-body-color-dark, rgba(255, 255, 255, 0.85)) !important;
}

.ds-typography-light-on-dark [class*="__body"] h1,
.ds-typography-light-on-dark [class*="__body"] h2,
.ds-typography-light-on-dark [class*="__body"] h3,
.ds-typography-light-on-dark [class*="__body"] h4,
.ds-typography-light-on-dark [class*="__body"] h5,
.ds-typography-light-on-dark [class*="__body"] h6,
.ds-typography-light-on-dark [class*="__additional-content"] h1,
.ds-typography-light-on-dark [class*="__additional-content"] h2,
.ds-typography-light-on-dark [class*="__additional-content"] h3,
.ds-typography-light-on-dark [class*="__additional-content"] h4,
.ds-typography-light-on-dark [class*="__additional-content"] h5,
.ds-typography-light-on-dark [class*="__additional-content"] h6 {
    color: var(--ds-heading-color-dark, #ffffff) !important;
}

/* Dark on Light - for light backgrounds (dark text) */
.ds-typography-dark-on-light {
    --ds-block-heading-color: var(--ds-heading-color-light, #171717);
    --ds-block-body-color: var(--ds-body-color-light, #404040);
    color: var(--ds-body-color-light, #404040);
}

.ds-typography-dark-on-light [class*="__heading"],
.ds-typography-dark-on-light [class*="__feature-title"] {
    color: var(--ds-heading-color-light, #171717) !important;
}

.ds-typography-dark-on-light [class*="__body"],
.ds-typography-dark-on-light [class*="__body"] p,
.ds-typography-dark-on-light [class*="__intro"],
.ds-typography-dark-on-light [class*="__intro"] p,
.ds-typography-dark-on-light [class*="__additional-content"],
.ds-typography-dark-on-light [class*="__additional-content"] p,
.ds-typography-dark-on-light .ds-list__text,
.ds-typography-dark-on-light [class*="__label"],
.ds-typography-dark-on-light [class*="__description"],
.ds-typography-dark-on-light [class*="__text"]:not(.ds-btn__text) {
    color: var(--ds-body-color-light, #404040) !important;
}

.ds-typography-dark-on-light [class*="__body"] h1,
.ds-typography-dark-on-light [class*="__body"] h2,
.ds-typography-dark-on-light [class*="__body"] h3,
.ds-typography-dark-on-light [class*="__body"] h4,
.ds-typography-dark-on-light [class*="__body"] h5,
.ds-typography-dark-on-light [class*="__body"] h6,
.ds-typography-dark-on-light [class*="__additional-content"] h1,
.ds-typography-dark-on-light [class*="__additional-content"] h2,
.ds-typography-dark-on-light [class*="__additional-content"] h3,
.ds-typography-dark-on-light [class*="__additional-content"] h4,
.ds-typography-dark-on-light [class*="__additional-content"] h5,
.ds-typography-dark-on-light [class*="__additional-content"] h6 {
    color: var(--ds-heading-color-light, #171717) !important;
}

/* Button text color override - ensures buttons use their own color settings */
.ds-typography-light-on-dark .ds-btn,
.ds-typography-light-on-dark .ds-btn__text,
.ds-typography-dark-on-light .ds-btn,
.ds-typography-dark-on-light .ds-btn__text {
    color: var(--ds-btn-text, inherit) !important;
}

.ds-typography-light-on-dark .ds-btn:hover,
.ds-typography-light-on-dark .ds-btn:focus,
.ds-typography-light-on-dark .ds-btn:hover .ds-btn__text,
.ds-typography-light-on-dark .ds-btn:focus .ds-btn__text,
.ds-typography-dark-on-light .ds-btn:hover,
.ds-typography-dark-on-light .ds-btn:focus,
.ds-typography-dark-on-light .ds-btn:hover .ds-btn__text,
.ds-typography-dark-on-light .ds-btn:focus .ds-btn__text {
    color: var(--ds-btn-hover-text, inherit) !important;
}

/* Read More */

.ds-read-more-wrap {
    display: contents;

}

.ds-read-more-wrap.ds-read-more-active {
    display: block;
    width: 100%;
    transition: max-height 0.4s ease;
    text-align: inherit;
}

.ds-read-more-toggle {
    display: none;
    margin-top: var(--ds-space-3);
    padding: 10px 24px;
    font-size: var(--ds-text-sm);
    font-weight: var(--ds-weight-semibold, 600);
    color: var(--ds-rm-btn-light-text, var(--ds-block-body-color, var(--ds-grey-800)));
    background-color: var(--ds-rm-btn-light-bg, transparent);
    border: 2px solid var(--ds-rm-btn-light-border, currentColor);
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
    line-height: 1.4;
    text-align: center;
}

.ds-read-more-toggle:hover {
    background-color: var(--ds-rm-btn-light-hover-bg, var(--ds-block-body-color, var(--ds-grey-800)));
    color: var(--ds-rm-btn-light-hover-text, var(--ds-white, #ffffff));
    border-color: var(--ds-rm-btn-light-hover-border, currentColor);
}

.ds-typography-light-on-dark .ds-read-more-toggle {
    color: var(--ds-rm-btn-dark-text, rgba(255,255,255,0.9));
    background-color: var(--ds-rm-btn-dark-bg, transparent);
    border-width: 2px;
    border-style: solid;
    border-color: var(--ds-rm-btn-dark-border, currentColor);
}

.ds-typography-light-on-dark .ds-read-more-toggle:hover {
    background-color: var(--ds-rm-btn-dark-hover-bg, #ffffff);
    color: var(--ds-rm-btn-dark-hover-text, #171717);
    border-color: var(--ds-rm-btn-dark-hover-border, currentColor);
}

/* Read-more button: full width on tablet/mobile */
@media (max-width: 968px) {
    .ds-read-more-toggle {
        width: 100%;
        display: none; /* still hidden by default, overridden by [data-read-more] rules */
    }
    [data-read-more] .ds-read-more-toggle,
    [data-read-more] + .ds-read-more-toggle {
        display: block;
        width: 100%;
    }
}



.ds-read-more-wrap.is-collapsed {
    position: relative;
}

.ds-read-more-wrap.is-collapsed::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: linear-gradient(to bottom, transparent, var(--ds-rm-fade-color, var(--ds-block-bg, var(--ds-white))));
    pointer-events: none;
}

[data-read-more] .ds-read-more-toggle,
[data-read-more] + .ds-read-more-toggle {
    display: inline-block;
}

@media (min-width: 769px) {
    [data-read-more]:not([data-read-more-desktop]) .ds-read-more-toggle,
    [data-read-more]:not([data-read-more-desktop]) + .ds-read-more-toggle {
        display: none;
    }
}

/* ── Read-More wrap: inherit parent layout per block ──────────── */

/* Group B blocks: body was in a centered header, now in the wrap — inherit header styles */
.ds-features-grid-dark .ds-read-more-wrap.ds-read-more-active,
.ds-features-grid-image .ds-read-more-wrap.ds-read-more-active,
.ds-stats-bar .ds-read-more-wrap.ds-read-more-active,
.ds-how-it-works-steps .ds-read-more-wrap.ds-read-more-active,
.ds-content-three-column .ds-read-more-wrap.ds-read-more-active,
.ds-benefits-risks .ds-read-more-wrap.ds-read-more-active {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.ds-benefits-risks .ds-read-more-wrap.ds-read-more-active {
    max-width: 800px;
}

.ds-features-hero-image .ds-read-more-wrap.ds-read-more-active {
    text-align: center;
}

/* Hero fullwidth-bg: content has max-width and center alignment */
.ds-hero-fullwidth-bg--content-center .ds-read-more-wrap.ds-read-more-active {
    text-align: center;
}
.ds-hero-fullwidth-bg--content-right .ds-read-more-wrap.ds-read-more-active {
    text-align: right;
}

/* Hero video centered: centered content */
.ds-hero-video-centered .ds-read-more-wrap.ds-read-more-active {
    text-align: center;
}

/* Logo bar: centered header content */
.ds-logo-bar .ds-read-more-wrap.ds-read-more-active {
    text-align: center;
}

/* Content-split blocks inside flex containers: read-more button alignment */
.ds-content-split-image-grid__content .ds-read-more-toggle,
.ds-content-split-image-stack__content-inner .ds-read-more-toggle,
.ds-content-split-fullbleed__content-inner .ds-read-more-toggle,
.ds-hero-split-video__content-inner .ds-read-more-toggle,
.ds-hero-split-reviews__content-inner .ds-read-more-toggle,
.ds-hero-fullwidth-bg__content .ds-read-more-toggle {
    align-self: flex-start;
}


/* ================================================
   BUTTONS
   ================================================ */

.ds-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ds-space-2);
    padding: var(--ds-btn-padding-y) var(--ds-btn-padding-x);
    font-family: var(--ds-font-body);
    font-size: var(--ds-btn-font-size);
    font-weight: var(--ds-btn-font-weight);
    line-height: var(--ds-btn-line-height);
    text-decoration: none;
    border-radius: var(--ds-btn-radius);
    border: 1px solid transparent;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.ds-btn--sm {
    padding: var(--ds-btn-padding-y-sm) var(--ds-btn-padding-x-sm);
    font-size: var(--ds-text-xs);
}

.ds-btn--lg {
    padding: var(--ds-btn-padding-y-lg) var(--ds-btn-padding-x-lg);
    font-size: var(--ds-text-base);
}

.ds-btn--full-width {
    width: 100%;
}

/* Primary Button */
.ds-btn--primary {
    background-color: var(--ds-btn-primary-bg);
    color: var(--ds-btn-primary-text);
    border-color: var(--ds-btn-primary-border);
}

.ds-btn--primary:hover,
.ds-btn--primary:focus {
    background-color: var(--ds-btn-primary-hover-bg);
    border-color: var(--ds-btn-primary-hover-border);
}

/* Primary Outline */
.ds-btn--primary-outline {
    background-color: transparent;
    color: var(--ds-btn-primary-bg);
    border-color: var(--ds-btn-primary-border);
}

.ds-btn--primary-outline:hover,
.ds-btn--primary-outline:focus {
    background-color: var(--ds-btn-primary-bg);
    color: var(--ds-btn-primary-text);
}

/* Secondary Button */
.ds-btn--secondary {
    background-color: var(--ds-grey-200, #e5e5e5);
    color: var(--ds-grey-800, #33363D);
    border-color: var(--ds-grey-200, #e5e5e5);
}

.ds-btn--secondary:hover,
.ds-btn--secondary:focus {
    background-color: var(--ds-grey-300, #d4d4d4);
    border-color: var(--ds-grey-300, #d4d4d4);
}

/* Secondary Outline */
.ds-btn--secondary-outline {
    background-color: transparent;
    color: var(--ds-grey-800, #33363D);
    border-color: var(--ds-grey-300, #d4d4d4);
}

.ds-btn--secondary-outline:hover,
.ds-btn--secondary-outline:focus {
    background-color: var(--ds-grey-100, #f5f5f5);
}

/* Inverse Button (for dark backgrounds) */
.ds-btn--inverse {
    background-color: var(--ds-btn-inverse-bg);
    color: var(--ds-btn-inverse-text);
    border-color: var(--ds-btn-inverse-border);
}

.ds-btn--inverse:hover,
.ds-btn--inverse:focus {
    background-color: var(--ds-btn-inverse-hover-bg);
}

/* Inverse Outline */
.ds-btn--inverse-outline {
    background-color: transparent;
    color: var(--ds-white, #ffffff);
    border-color: var(--ds-white, #ffffff);
}

.ds-btn--inverse-outline:hover,
.ds-btn--inverse-outline:focus {
    background-color: var(--ds-white, #ffffff);
    color: var(--ds-grey-800, #33363D);
}

/* Text Button */
.ds-btn--text {
    background: transparent;
    border: none;
    padding: var(--ds-space-1) 0;
    color: currentColor;
}

.ds-btn--text:hover,
.ds-btn--text:focus {
    text-decoration: underline;
}

.ds-btn--text-only {
    background: transparent;
    border: none;
    padding: 0;
    text-decoration: underline;
}

/* Custom Button (uses CSS custom properties) */
.ds-btn--custom {
    background: var(--ds-btn-bg, #b8977e);
    color: var(--ds-btn-text, #ffffff);
    border-color: var(--ds-btn-border, transparent);
    font-size: var(--ds-btn-font-size, 16px);
    font-weight: var(--ds-btn-font-weight, 600);
    border-radius: var(--ds-btn-radius, 8px);
}

.ds-btn--custom:hover,
.ds-btn--custom:focus {
    background: var(--ds-btn-hover-bg, #9a7d64);
    color: var(--ds-btn-hover-text, #ffffff);
}

/* Transparent (Outline) custom button — ensure no background bleed */
.ds-btn--custom[style*="--ds-btn-bg: transparent"] {
    background: transparent !important;
}

/* Custom Button Hover Effects */
/* All hover effects should apply the hover text color */
.ds-btn--custom[class*="ds-btn--hover-"]:hover,
.ds-btn--custom[class*="ds-btn--hover-"]:focus {
    color: var(--ds-btn-hover-text, #ffffff) !important;
}

/* Darken effect - uses overlay instead of filter to preserve text color */
.ds-btn--hover-darken {
    position: relative;
    overflow: hidden;
}

.ds-btn--hover-darken::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0);
    pointer-events: none;
    transition: background 0.3s ease;
    z-index: 0;
}

.ds-btn--hover-darken:hover::after {
    background: rgba(0, 0, 0, 0.15);
}

.ds-btn--hover-darken .ds-btn__text,
.ds-btn--hover-darken .ds-btn__icon {
    position: relative;
    z-index: 1;
}

/* Lighten effect - uses overlay instead of filter to preserve text color */
.ds-btn--hover-lighten {
    position: relative;
    overflow: hidden;
}

.ds-btn--hover-lighten::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0);
    pointer-events: none;
    transition: background 0.3s ease;
    z-index: 0;
}

.ds-btn--hover-lighten:hover::after {
    background: rgba(255, 255, 255, 0.15);
}

.ds-btn--hover-lighten .ds-btn__text,
.ds-btn--hover-lighten .ds-btn__icon {
    position: relative;
    z-index: 1;
}

.ds-btn--hover-scale:hover {
    transform: scale(1.05);
}

.ds-btn--hover-scale-down:hover {
    transform: scale(0.95);
}

.ds-btn--hover-lift:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.ds-btn--hover-press:hover {
    transform: translateY(2px);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.ds-btn--hover-glow:hover {
    box-shadow: 0 0 20px var(--ds-btn-bg, currentColor), 0 0 40px var(--ds-btn-bg, currentColor);
}

/* Slide Right Effect */
.ds-btn--hover-slide-right {
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.ds-btn--hover-slide-right::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: var(--ds-btn-hover-bg, rgba(255,255,255,0.2));
    z-index: -1;
    transition: left 0.3s ease;
}

.ds-btn--hover-slide-right:hover::before {
    left: 0;
}

/* Slide Up Effect */
.ds-btn--hover-slide-up {
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.ds-btn--hover-slide-up::before {
    content: '';
    position: absolute;
    bottom: -100%;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--ds-btn-hover-bg, rgba(255,255,255,0.2));
    z-index: -1;
    transition: bottom 0.3s ease;
}

.ds-btn--hover-slide-up:hover::before {
    bottom: 0;
}

/* Fill from Left Effect */
.ds-btn--hover-fill-left {
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.ds-btn--hover-fill-left::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background: var(--ds-btn-hover-bg, rgba(255,255,255,0.2));
    z-index: -1;
    transition: width 0.3s ease;
}

.ds-btn--hover-fill-left:hover::before {
    width: 100%;
}

/* Fill from Bottom Effect */
.ds-btn--hover-fill-bottom {
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.ds-btn--hover-fill-bottom::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 0;
    background: var(--ds-btn-hover-bg, rgba(255,255,255,0.2));
    z-index: -1;
    transition: height 0.3s ease;
}

.ds-btn--hover-fill-bottom:hover::before {
    height: 100%;
}

/* Border Grow Effect */
.ds-btn--hover-border-grow {
    position: relative;
    box-shadow: inset 0 0 0 0 var(--ds-btn-hover-bg, currentColor);
    transition: box-shadow 0.3s ease, color 0.3s ease, background 0.3s ease;
}

.ds-btn--hover-border-grow:hover {
    box-shadow: inset 0 0 0 3px var(--ds-btn-hover-bg, currentColor);
}

/* Pulse Effect */
@keyframes ds-btn-pulse {
    0% {
        box-shadow: 0 0 0 0 var(--ds-btn-bg, currentColor);
    }
    70% {
        box-shadow: 0 0 0 15px transparent;
    }
    100% {
        box-shadow: 0 0 0 0 transparent;
    }
}

.ds-btn--hover-pulse:hover {
    animation: ds-btn-pulse 1s ease-out;
}

/* Shake Effect */
@keyframes ds-btn-shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }
    20%, 40%, 60%, 80% { transform: translateX(4px); }
}

.ds-btn--hover-shake:hover {
    animation: ds-btn-shake 0.5s ease;
}

/* Bounce Effect */
@keyframes ds-btn-bounce {
    0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-8px); }
    60% { transform: translateY(-4px); }
}

.ds-btn--hover-bounce:hover {
    animation: ds-btn-bounce 0.6s ease;
}

/* Legacy shadow alias (for backwards compatibility) */
.ds-btn--hover-shadow:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

/* Legacy slide alias (for backwards compatibility) */
.ds-btn--hover-slide {
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.ds-btn--hover-slide::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: var(--ds-btn-hover-bg, rgba(255,255,255,0.2));
    z-index: -1;
    transition: left 0.3s ease;
}

.ds-btn--hover-slide:hover::before {
    left: 0;
}

/* Button Icons */
.ds-btn__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ds-btn__icon svg {
    width: 1em;
    height: 1em;
}

/* Button Group */
.ds-btn-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ds-space-3);
}

.ds-btn-group--center {
    justify-content: center;
}

.ds-btn-group--right {
    justify-content: flex-end;
}

@media (max-width: 480px) {
    .ds-btn-group--stack-mobile {
        flex-direction: column;
    }

    .ds-btn-group--stack-mobile .ds-btn {
        width: 100%;
        justify-content: center;
    }
}

/* Full-width buttons on mobile/tablet for all blocks */
@media (max-width: 968px) {
    .ds-btn-group {
        flex-direction: column;
        width: 100%;
    }

    .ds-btn-group .ds-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ================================================
   CHECKLISTS
   ================================================ */

.ds-checklist {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--ds-space-6) 0;
}

.ds-checklist__item {
    display: flex;
    align-items: flex-start;
    gap: var(--ds-space-3);
    padding: var(--ds-space-2) 0;
}

.ds-checklist__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.15em;
}

.ds-checklist__icon svg {
    width: 100%;
    height: 100%;
}

.ds-checklist__text {
    flex: 1;
}

/* ================================================
   TESTIMONIALS
   ================================================ */

/* Reset blockquote default margins */
.ds-testimonial,
blockquote.ds-testimonial,
.ds-testimonial--inline,
.ds-testimonial--hero,
.ds-testimonial--minimal {
    margin: 0;
    margin-block-start: 0;
    margin-block-end: 0;
    margin-inline-start: 0;
    margin-inline-end: 0;
    padding: 0;
}

.ds-testimonial {
    position: relative;
}

.ds-testimonial__quote-icon {
    display: block;
    opacity: 0.3;
}

.ds-testimonial__quote-icon svg {
    width: 32px;
    height: 32px;
}

.ds-testimonial__quote {
    font-size: var(--ds-text-lg);
    font-style: italic;
    line-height: var(--ds-leading-relaxed);
    margin: 0 0 var(--ds-space-6) 0;
}

.ds-testimonial__author {
    display: flex;
    align-items: center;
    gap: var(--ds-space-3);
}

.ds-testimonial__avatar {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: var(--ds-radius-full);
    overflow: hidden;
}

.ds-testimonial__avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ds-testimonial__author-info {
    display: flex;
    flex-direction: column;
    gap: var(--ds-space-0-5);
}

.ds-testimonial__name {
    font-style: normal;
    font-weight: var(--ds-weight-semibold);
    font-size: var(--ds-text-base);
}

.ds-testimonial__title {
    font-size: var(--ds-text-sm);
    opacity: 0.7;
}

/* ================================================
   STARS RATING
   ================================================ */

.ds-stars {
    display: inline-flex;
    gap: var(--ds-space-0-5);
    color: #f59e0b; /* Amber color for stars */
}

.ds-star {
    flex-shrink: 0;
}

.ds-star--empty {
    color: var(--ds-grey-300);
}

/* ================================================
   HERO SPLIT VIDEO
   ================================================ */

.ds-hero-split-video {
    padding: 0;
    color: var(--ds-white, #ffffff);
    min-height: 500px;
    display: block;
    width: 100%;
}

.ds-hero-split-video__container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 500px;
    width: 100%;
}

/* Content Position: Right (Media on Left) */
.ds-hero-split-video--content-right .ds-hero-split-video__container {
    direction: rtl;
}

.ds-hero-split-video--content-right .ds-hero-split-video__container > * {
    direction: ltr;
}

@media (max-width: 968px) {
    .ds-hero-split-video__container {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .ds-hero-split-video--content-right .ds-hero-split-video__container {
        direction: ltr;
    }
}

/* Content Side */
.ds-hero-split-video__content {
    display: flex;
    align-items: center;
    padding: 60px 48px;
    background: var(--ds-bg, #1a1a1a);
}

@media (max-width: 968px) {
    .ds-hero-split-video__content {
        padding: 40px 24px;
    }
}

.ds-hero-split-video__content-inner {
    max-width: 540px;
    margin-left: auto;
}

.ds-hero-split-video--content-right .ds-hero-split-video__content-inner {
    margin-left: 0;
    margin-right: auto;
}

@media (max-width: 968px) {
    .ds-hero-split-video__content-inner {
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
    }
}

.ds-hero-split-video__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, 'Playfair Display', Georgia, serif));
    font-weight: var(--ds-block-heading-weight, 400);
    font-size: var(--ds-block-heading-size-desktop, 56px);
    line-height: var(--ds-block-heading-line-height, 1.2);
    color: var(--ds-block-heading-color, #ffffff);
    margin: 0 0 16px 0;
}

@media (max-width: 1024px) {
    .ds-hero-split-video__heading {
        font-size: var(--ds-block-heading-size-tablet, 2.75rem);
    }
}

@media (max-width: 768px) {
    .ds-hero-split-video__heading {
        font-size: var(--ds-block-heading-size-mobile, 2.25rem);
    }
}

.ds-hero-split-video__body {
    font-family: var(--ds-block-body-font, var(--ds-font-body, 'Inter', -apple-system, BlinkMacSystemFont, sans-serif));
    font-weight: var(--ds-block-body-weight, 400);
    font-size: var(--ds-block-body-size, 18px);
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, #e0e0e0);
    margin-bottom: 0;
}

@media (max-width: 1024px) {
    .ds-hero-split-video__body {
        font-size: var(--ds-block-body-size-tablet, var(--ds-block-body-size, 16px));
    }
}

@media (max-width: 768px) {
    .ds-hero-split-video__body {
        font-size: var(--ds-block-body-size-mobile, var(--ds-block-body-size, 16px));
    }
}

.ds-hero-split-video__buttons {
    margin-top: 24px;
}

/* Media Side */
.ds-hero-split-video__media {
    position: relative;
    background-color: var(--ds-grey-600, #404040);
    min-height: 100%;
}

@media (max-width: 968px) {
    .ds-hero-split-video__media {
        min-height: 400px;
    }
}

.ds-hero-split-video__media-wrapper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.ds-hero-split-video__media-wrapper iframe,
.ds-hero-split-video__media-wrapper video,
.ds-hero-split-video__iframe,
.ds-hero-split-video__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: none;
}

.ds-hero-split-video__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ds-hero-split-video__placeholder {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ds-hero-split-video__placeholder-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--ds-grey-500, #525252) 0%, var(--ds-grey-600, #404040) 100%);
}

.ds-hero-split-video__poster {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ds-hero-split-video__play-btn {
    position: relative;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    background: var(--ds-white, #ffffff);
    border: none;
    border-radius: var(--ds-radius-full, 9999px);
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: var(--ds-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1));
}

.ds-hero-split-video__play-btn:hover {
    transform: scale(1.05);
    box-shadow: var(--ds-shadow-xl, 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1));
}

.ds-hero-split-video__play-btn svg {
    color: var(--ds-grey-800, #171717);
    margin-left: 4px; /* Optical adjustment for play icon */
}

.ds-hero-split-video__play-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ds-grey-800, #171717);
    margin-left: 4px; /* Optical adjustment for play icon */
}

/* Mobile image swap */
.ds-hero-split-video__image--mobile { display: none; }

@media (max-width: 768px) {
    .ds-hero-split-video__image--desktop { display: none; }
    .ds-hero-split-video__image--mobile { display: block; }
}

/* ================================================
   STATS BAR
   ================================================ */

.ds-stats-bar {
    position: relative;
    background-color: var(--ds-block-bg, var(--ds-grey-800));
    background-image: var(--ds-block-bg-image);
    background-size: cover;
    background-position: center;
    color: var(--ds-white, #ffffff);
    padding: var(--ds-block-padding-top, 60px) 24px var(--ds-block-padding-bottom, 60px);
}

.ds-stats-bar__overlay {
    position: absolute;
    inset: 0;
    background-color: var(--ds-block-overlay-color, rgba(0, 0, 0, 0.5));
    opacity: var(--ds-block-overlay-opacity, 0.5);
    z-index: 0;
}

.ds-stats-bar__container {
    position: relative;
    z-index: 1;
    max-width: var(--ds-container-xl);
    margin: 0 auto;
}

.ds-stats-bar__header {
    max-width: 1000px;
    margin: 0 auto var(--ds-space-12);
    text-align: center;
}

.ds-stats-bar__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 2.5rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    color: var(--ds-block-heading-color, inherit);
    margin: 0 0 var(--ds-space-4);
}

.ds-stats-bar__body {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-lg));
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
    opacity: 0.9;
    margin-bottom: var(--ds-space-8);
}

.ds-stats-bar__body p:last-child {
    margin-bottom: 0;
}

.ds-stats-bar__buttons {
    display: flex;
    justify-content: center;
    gap: var(--ds-space-4);
    margin-top: var(--ds-space-10);
}

.ds-stats-bar__grid {
    display: grid;
    grid-template-columns: repeat(var(--ds-stats-columns, 3), 1fr);
    gap: var(--ds-space-8);
}

.ds-stats-bar__scroll {
    position: relative;
}

.ds-stats-bar__scroll-hint {
    display: none;
}

@media (max-width: 768px) {
    /* Horizontal snap-scroll row instead of stacked column */
    .ds-stats-bar__grid {
        display: flex;
        overflow-x: auto;
        gap: var(--ds-space-6);
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .ds-stats-bar__grid::-webkit-scrollbar {
        display: none;
    }

    .ds-stats-bar__grid .ds-stats-bar__item {
        flex: 0 0 72%;
        scroll-snap-align: center;
    }

    .ds-stats-bar__scroll-hint {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 50%;
        right: 0;
        width: 44px;
        height: 44px;
        border: none;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.92);
        color: #054f7d;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
        cursor: pointer;
        padding: 0;
        transform: translateY(-50%);
        animation: ds-stats-scroll-nudge 1.6s ease-in-out infinite;
        transition: opacity 0.3s ease;
    }

    .ds-stats-bar__scroll-hint.is-hidden {
        opacity: 0;
        pointer-events: none;
    }

    @media (prefers-reduced-motion: reduce) {
        .ds-stats-bar__scroll-hint {
            animation: none;
        }
    }
}

@keyframes ds-stats-scroll-nudge {
    0%, 100% { transform: translateY(-50%) translateX(0); }
    50% { transform: translateY(-50%) translateX(5px); }
}

.ds-stats-bar__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--ds-space-3);
}

.ds-stats-bar__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    opacity: 0.8;
}

.ds-stats-bar__icon svg {
    width: 100%;
    height: 100%;
}

.ds-stats-bar__number {
    font-family: var(--ds-font-heading);
    font-size: var(--ds-text-4xl);
    font-weight: var(--ds-weight-bold);
    line-height: 1;
}

.ds-stats-bar__label {
    font-size: var(--ds-text-sm);
    opacity: 0.8;
    text-transform: uppercase;
    letter-spacing: var(--ds-tracking-wide);
}

/* ================================================
   LOGO BAR
   ================================================ */

.ds-logo-bar {
    position: relative;
    background-color: var(--ds-block-bg, var(--ds-white));
    background-image: var(--ds-block-bg-image);
    background-size: cover;
    background-position: center;
    padding: var(--ds-block-padding-top, 30px) 24px var(--ds-block-padding-bottom, 30px);
}

.ds-logo-bar__overlay {
    position: absolute;
    inset: 0;
    background-color: var(--ds-block-overlay-color, rgba(0, 0, 0, 0.5));
    opacity: var(--ds-block-overlay-opacity, 0.5);
    z-index: 0;
}

.ds-logo-bar__container {
    position: relative;
    z-index: 1;
}

.ds-logo-bar > .ds-logo-bar__container {
    max-width: var(--ds-container-xl);
    margin: 0 auto;
}

.ds-logo-bar__heading {
    text-align: center;
    font-size: var(--ds-text-sm);
    font-weight: var(--ds-weight-medium);
    color: var(--ds-grey-500);
    margin-bottom: 0;
}

.ds-logo-bar__logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--ds-space-8);
}

/* Legacy logo rules removed - see updated section below */

/* ================================================
   RESPONSIVE VISIBILITY
   ================================================ */

@media (max-width: 768px) {
    .ds-hide-mobile {
        display: none !important;
    }
}

@media (min-width: 769px) {
    .ds-hide-desktop {
        display: none !important;
    }
}

/* ================================================
   ANIMATIONS
   ================================================ */

.ds-animate {
    opacity: 0;
    transition: opacity 0.6s ease, transform 0.6s ease;
    transition-delay: var(--ds-block-animation-delay, 0ms);
}

.ds-animate.ds-animate--visible {
    opacity: 1;
    transform: none;
}

.ds-animate--fade-in {
    opacity: 0;
}

.ds-animate--slide-up {
    transform: translateY(30px);
}

.ds-animate--slide-left {
    transform: translateX(30px);
}

.ds-animate--slide-right {
    transform: translateX(-30px);
}


/* ================================================
   FEATURES TABBED BLOCK
   ================================================ */
.ds-features-tabbed {
    position: relative;
    background: var(--ds-block-bg, #e4e4e4);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    padding: var(--ds-block-padding-top, 60px) 100px var(--ds-block-padding-bottom, 60px);
}

.ds-features-tabbed__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay-color, #000);
    opacity: var(--ds-block-overlay-opacity, 0.5);
    z-index: 0;
}

.ds-features-tabbed__container {
    position: relative;
    z-index: 1;
    max-width: 1400px;
    margin: 0 auto;
}

.ds-features-tabbed__header {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.ds-features-tabbed__heading {
    font-size: var(--ds-block-heading-size-desktop, 48px);
    font-weight: var(--ds-block-heading-weight, 700);
    color: var(--ds-block-heading-color, inherit);
    margin: 0;
    line-height: var(--ds-block-heading-line-height, 1.1);
}

.ds-features-tabbed__body {
    max-width: 1000px;
    font-size: var(--ds-block-body-size, 18px);
    line-height: var(--ds-block-body-line-height, 1.5);
    color: var(--ds-block-body-color, #6e6e6e);
    margin-top: var(--ds-space-2, 8px);
    margin-bottom: var(--ds-space-12, 48px);
    position: relative;
    z-index: 3;
}

.ds-features-tabbed__body p {
    margin: 0;
}

/* Three Panel Layout */
.ds-features-tabbed__panels {
    display: grid;
    grid-template-columns: 300px 1fr 380px;
    align-items: center;
    position: relative;
}

/* Navigation Card */
.ds-features-tabbed__nav-card {
    background: var(--ds-nav-card-bg, #000);
    color: var(--ds-nav-card-color, #fff);
    padding: 40px;
    border-radius: var(--ds-nav-card-radius, 0px);
    border: 1px solid var(--ds-nav-card-border, transparent);
    position: relative;
    z-index: 2;
    margin-right: -80px;
    align-self: center;
    display: flex;
    flex-direction: column;
}

.ds-features-tabbed__nav-title {
    color: var(--ds-nav-card-title-color, inherit);
}

.ds-features-tabbed__nav-item {
    color: var(--ds-nav-card-link-color, inherit);
}

.ds-features-tabbed__nav-title {
    font-size: 36px;
    font-weight: 700;
    margin: 0 0 20px 0;
    line-height: 1.2;
}

.ds-features-tabbed__nav-list {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.ds-features-tabbed__nav-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 28px 0;
    border: none;
    border-bottom: 1px solid var(--ds-nav-card-divider, rgba(255,255,255,0.3));
    background: none;
    font-size: 18px;
    cursor: pointer;
    text-align: left;
    width: 100%;
    transition: opacity 0.2s ease;
    font-family: inherit;
}

.ds-features-tabbed__nav-item:last-child {
    border-bottom: none;
}

.ds-features-tabbed__nav-item:hover {
    opacity: 0.8;
}

.ds-features-tabbed__nav-item-arrow {
    display: none;
    color: var(--ds-nav-card-icon, #fff);
}

.ds-features-tabbed__nav-item.is-active .ds-features-tabbed__nav-item-arrow {
    display: flex;
    align-items: center;
}

/* Image Card */
.ds-features-tabbed__image-card {
    position: relative;
    z-index: 1;
    min-height: 400px;
    overflow: hidden;
    border-radius: var(--ds-image-radius, 0px);
    align-self: start;
}

.ds-features-tabbed__image-slide {
    display: none;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.ds-features-tabbed__image-slide.is-active {
    display: block;
    opacity: 1;
    position: relative;
}

.ds-features-tabbed__image-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    min-height: 500px;
}

.ds-features-tabbed__image-placeholder {
    width: 100%;
    height: 100%;
    min-height: 500px;
    background: #ccc;
}

/* Content Card */
.ds-features-tabbed__content-card {
    background: var(--ds-content-card-bg, #fff);
    color: var(--ds-content-card-color, #33363D);
    padding: 40px;
    border-radius: var(--ds-content-card-radius, 0px);
    border: 1px solid var(--ds-content-card-border, transparent);
    position: relative;
    z-index: 2;
    margin-left: -80px;
    align-self: center;
}

.ds-features-tabbed__content-panel {
    display: none;
}

.ds-features-tabbed__content-panel.is-active {
    display: block;
}

.ds-features-tabbed__content-title {
    font-size: 36px;
    font-weight: 700;
    margin: 0 0 16px 0;
    line-height: 1.2;
    color: var(--ds-content-card-title-color, var(--ds-block-heading-color, #000));
}

.ds-features-tabbed__content-text {
    font-size: 18px;
    line-height: 1.5;
    margin-bottom: 24px;
    color: var(--ds-content-card-text-color, inherit);
}

.ds-features-tabbed__content-text p {
    margin: 0 0 10px 0;
}

.ds-features-tabbed__content-text p:last-child {
    margin-bottom: 0;
}

/* Checklist */
.ds-features-tabbed__checklist {
    list-style: none;
    padding: 0;
    margin: 0 0 24px 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.ds-features-tabbed__checklist li {
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 16px;
    font-weight: 600;
    color: var(--ds-checklist-text-color, #6e6e6e);
}

.ds-features-tabbed__check-icon {
    flex-shrink: 0;
    color: var(--ds-checklist-icon, #000);
}

.ds-features-tabbed__check-icon img {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.ds-features-tabbed__check-number {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--ds-checklist-icon, #000);
    color: var(--ds-checklist-number-color, #fff);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
}

/* Content Buttons */
.ds-features-tabbed__content-buttons {
    margin-top: 32px;
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

/* Tablet */
@media (max-width: 1024px) {
    .ds-features-tabbed {
        padding: 48px 0 0;
    }

    .ds-features-tabbed__panels {
        grid-template-columns: 240px 1fr 300px;
    }

    .ds-features-tabbed__nav-card {
        margin-right: -40px;
        padding: 30px;
    }

    .ds-features-tabbed__content-card {
        margin-left: -40px;
        padding: 30px;
    }

    .ds-features-tabbed__image-card {
        min-height: 450px;
    }

    .ds-features-tabbed__nav-title {
        font-size: 28px;
    }

    .ds-features-tabbed__content-title {
        font-size: 28px;
    }
}

/* Mobile */
@media (max-width: 768px) {
    .ds-features-tabbed {
        padding: 40px 0 0;
    }

    .ds-features-tabbed__header {
        margin-bottom: 0;
        padding: 0 20px;
    }

    .ds-features-tabbed__body {
        padding: 0 15px;
        margin-bottom: var(--ds-space-8, 32px);
    }

    .ds-features-tabbed__heading {
        font-size: var(--ds-block-heading-size-mobile, 32px);
    }

    .ds-features-tabbed__panels {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .ds-features-tabbed__nav-card {
        margin-right: 0;
        margin-top: 0;
        order: 1;
    }

    .ds-features-tabbed__image-card {
        min-height: 300px;
        order: 3;
    }

    .ds-features-tabbed__image-slide img {
        min-height: 300px;
    }

    .ds-features-tabbed__image-placeholder {
        min-height: 300px;
    }

    .ds-features-tabbed__content-card {
        margin-left: 0;
        margin-top: 0;
        order: 2;
        text-align: center;
    }

    .ds-features-tabbed__content-card .ds-features-tabbed__content-text {
        text-align: center;
    }

    .ds-features-tabbed__nav-title {
        font-size: 24px;
    }

    .ds-features-tabbed__content-title {
        font-size: 24px;
    }

    .ds-features-tabbed__nav-item {
        padding: 20px 0;
    }

    .ds-features-tabbed__content-buttons {
        flex-direction: column;
        justify-content: center;
    }

    .ds-features-tabbed__content-buttons .ds-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ================================================
   TEXT COLOR SCHEMES
   ================================================ */

.ds-text--light-on-dark {
    color: var(--ds-white, #ffffff);
}

.ds-text--light-on-dark .ds-heading,
.ds-text--light-on-dark h1,
.ds-text--light-on-dark h2,
.ds-text--light-on-dark h3,
.ds-text--light-on-dark h4 {
    color: var(--ds-white, #ffffff);
}

.ds-text--dark-on-light {
    color: var(--ds-grey-700);
}

.ds-text--dark-on-light .ds-heading,
.ds-text--dark-on-light h1,
.ds-text--dark-on-light h2,
.ds-text--dark-on-light h3,
.ds-text--dark-on-light h4 {
    color: var(--ds-grey-800, #33363D);
}

/* ================================================
   BACKGROUND TYPES
   ================================================ */

.ds-bg--image {
    position: relative;
    background-size: cover;
    background-position: center;
    background-image: var(--ds-block-bg-image);
}

.ds-bg--image::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--ds-block-bg, rgba(0, 0, 0, 0.5));
    opacity: var(--ds-block-overlay-opacity, 0.6);
}

.ds-bg--image > * {
    position: relative;
    z-index: 1;
}

.ds-bg--gradient {
    background: linear-gradient(135deg, var(--ds-grey-800) 0%, var(--ds-grey-700) 100%);
}

/* ================================================
   CONTENT SPLIT - IMAGE STACK
   ================================================ */

.ds-content-split-image-stack {
    background-color: var(--ds-block-bg, var(--ds-white));
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 60px var(--ds-space-6);
    padding-bottom: 60px;
}

@media (max-width: 768px) {
    .ds-content-split-image-stack {
        padding-top: 32px;
        padding-bottom: 32px;
    }
}

.ds-content-split-image-stack__container {
    max-width: var(--ds-container-xl);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-space-16);
    align-items: stretch;
}

@media (max-width: 968px) {
    .ds-content-split-image-stack__container {
        grid-template-columns: 1fr;
        gap: var(--ds-space-10);
    }
}

/* Image position variants */
.ds-content-split-image-stack--right .ds-content-split-image-stack__container {
    direction: rtl;
}

.ds-content-split-image-stack--right .ds-content-split-image-stack__container > * {
    direction: ltr;
}

/* Mobile stack order */
@media (max-width: 968px) {
    .ds-content-split--mobile-image-first .ds-content-split-image-stack__content {
        order: 2;
    }

    .ds-content-split--mobile-image-first .ds-content-split-image-stack__images {
        order: 1;
    }

    .ds-content-split--mobile-content-first .ds-content-split-image-stack__content {
        order: 1;
    }

    .ds-content-split--mobile-content-first .ds-content-split-image-stack__images {
        order: 2;
    }

    /* Reset left-variant margin so content centers properly */
    .ds-content-split-image-stack--left .ds-content-split-image-stack__content-inner {
        margin-left: auto;
        margin-right: auto;
    }

    /* Reset direction trick on tablet so content doesn't get pushed to one side */
    .ds-content-split-image-stack--right .ds-content-split-image-stack__container {
        direction: ltr;
    }
}

/* Images Side */
.ds-content-split-image-stack__images {
    position: relative;
    display: flex;
    flex-direction: column;
}

.ds-content-split-image-stack__images-wrapper {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Overlapping Image Stack Style */
/* ========================================
   Image Stack Styles
   ======================================== */

/* Base image styles */
.ds-image-stack__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Images wrapper - fills column height */
.ds-content-split-image-stack__images {
    position: relative;
    min-height: 400px;
}

.ds-content-split-image-stack__images-wrapper {
    height: 100%;
}

/* ----------------------------------------
   Overlapping Stack Style - Zig-zag layout
   ---------------------------------------- */
.ds-image-stack--overlapping {
    position: relative;
    height: 100%;
    min-height: 400px;
}

.ds-image-stack--overlapping .ds-image-stack__item {
    position: absolute;
    border-radius: var(--ds-image-radius, var(--ds-radius-lg));
    overflow: hidden;
    box-shadow: var(--ds-shadow-xl);
}

.ds-image-stack--overlapping .ds-image-stack__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Image 1 - Top left */
.ds-image-stack--overlapping .ds-image-stack__item--1 {
    top: 0;
    left: 0;
    width: 65%;
    height: 45%;
    z-index: 2;
}

/* Image 2 - Middle right */
.ds-image-stack--overlapping .ds-image-stack__item--2 {
    top: 25%;
    right: 0;
    width: 60%;
    height: 40%;
    z-index: 3;
}

/* Image 3 - Bottom left */
.ds-image-stack--overlapping .ds-image-stack__item--3 {
    bottom: 0;
    left: 5%;
    width: 55%;
    height: 38%;
    z-index: 4;
}

/* Image 4 - Bottom right corner accent */
.ds-image-stack--overlapping .ds-image-stack__item--4 {
    bottom: 10%;
    right: 5%;
    width: 35%;
    height: 25%;
    z-index: 5;
}

/* Hide images beyond 4 */
.ds-image-stack--overlapping .ds-image-stack__item:nth-child(n+5) {
    display: none;
}

/* ----------------------------------------
   Image with Color Box Style
   ---------------------------------------- */
.ds-image-stack--grid-2x2 {
    position: relative;
    height: 100%;
    min-height: 400px;
    padding: 40px 0 0 40px;
}

/* Color box behind image */
.ds-image-stack--grid-2x2::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% - 40px);
    height: calc(100% - 40px);
    background: var(--ds-image-box-color, #b8977e);
    border-radius: var(--ds-image-radius, var(--ds-radius-lg));
    z-index: 0;
}

.ds-image-stack--grid-2x2 .ds-image-stack__item {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    border-radius: var(--ds-image-radius, var(--ds-radius-lg));
    overflow: hidden;
    box-shadow: var(--ds-shadow-xl);
}

.ds-image-stack--grid-2x2 .ds-image-stack__item:not(:first-child) {
    display: none;
}

.ds-image-stack--grid-2x2 .ds-image-stack__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ----------------------------------------
   Single Image Style - Full height
   ---------------------------------------- */
.ds-image-stack--single {
    height: 100%;
    min-height: 400px;
}

.ds-image-stack--single .ds-image-stack__item {
    height: 100%;
    border-radius: var(--ds-image-radius, var(--ds-radius-lg));
    overflow: hidden;
}

.ds-image-stack--single .ds-image-stack__item:not(:first-child) {
    display: none;
}

.ds-image-stack--single .ds-image-stack__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ----------------------------------------
   Responsive adjustments
   ---------------------------------------- */
@media (max-width: 968px) {
    .ds-content-split-image-stack__images {
        min-height: 350px;
    }

    .ds-image-stack--overlapping {
        min-height: 350px;
    }

    .ds-image-stack--grid-2x2 {
        min-height: 350px;
        padding: 0;
    }

    .ds-image-stack--grid-2x2::before {
        display: none;
    }

    .ds-image-stack--single {
        min-height: 350px;
    }
}

@media (max-width: 640px) {
    .ds-content-split-image-stack__images {
        min-height: 300px;
    }

    .ds-image-stack--overlapping {
        min-height: 300px;
    }

    .ds-image-stack--grid-2x2 {
        min-height: 300px;
        padding: 0;
    }

    .ds-image-stack--grid-2x2::before {
        display: none;
    }

    .ds-image-stack--single {
        min-height: 300px;
    }
}

/* Content Side */
.ds-content-split-image-stack__content {
    position: relative;
}

.ds-content-split-image-stack__content-inner {
    max-width: 540px;
}

.ds-content-split-image-stack--left .ds-content-split-image-stack__content-inner {
    margin-left: auto;
}

.ds-content-split-image-stack__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 2.5rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    color: var(--ds-block-heading-color, inherit);
    margin: 0 0 var(--ds-space-6) 0;
}

@media (max-width: 1024px) {
    .ds-content-split-image-stack__heading {
        font-size: var(--ds-block-heading-size-tablet, 2rem);
    }
}

@media (max-width: 768px) {
    .ds-content-split-image-stack__heading {
        font-size: var(--ds-block-heading-size-mobile, 1.75rem);
    }
}

.ds-content-split-image-stack__body {
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-body-size, var(--ds-text-base));
    line-height: var(--ds-block-body-line-height, var(--ds-leading-relaxed));
    color: var(--ds-block-body-color, inherit);
    margin-bottom: 0;
}

.ds-content-split-image-stack__checklist {
    margin-bottom: 0;
}

.ds-content-split-image-stack__buttons {
    margin-top: var(--ds-space-8);
    margin-bottom: var(--ds-space-10);
}

/* Stats Highlights */
.ds-content-split-image-stack__stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ds-space-6);
    margin-bottom: var(--ds-space-8);
    padding-top: var(--ds-space-6);
    border-top: 1px solid var(--ds-border-light);
}

.ds-content-split-image-stack__stat {
    flex: 1;
    min-width: 150px;
}

.ds-content-split-image-stack__stat-heading {
    font-size: var(--ds-text-lg);
    font-weight: var(--ds-weight-semibold);
    margin: 0 0 var(--ds-space-1) 0;
}

.ds-content-split-image-stack__stat-desc {
    font-size: var(--ds-text-sm);
    opacity: 0.7;
    margin: 0;
}

/* Testimonial */
.ds-content-split-image-stack__testimonial {
    padding: 30px;
    background: var(--ds-testimonial-bg, var(--ds-grey-50));
    border-radius: var(--ds-testimonial-radius, var(--ds-radius-lg));
}

.ds-content-split-image-stack__additional-content + .ds-content-split-image-stack__testimonial {
    margin-top: var(--ds-space-10);
}

.ds-content-split-image-stack .ds-read-more-toggle {
    display: block;
    width: 100%;
    text-align: center;
}

.ds-content-split-image-stack__testimonial .ds-testimonial__quote-icon {
    color: var(--ds-testimonial-quote-color, var(--ds-grey-300));
}

/* Author initial circle (when no image) */
.ds-content-split-image-stack__testimonial .ds-testimonial__avatar--initial {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ds-testimonial-initial-bg, var(--ds-primary));
    color: var(--ds-testimonial-initial-color, var(--ds-white));
    font-size: 1.25rem;
    font-weight: 700;
    text-transform: uppercase;
}

.ds-content-split-image-stack__testimonial .ds-testimonial--inline {
    padding: 0;
}

.ds-content-split-image-stack__testimonial .ds-testimonial__quote {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-base));
    font-weight: var(--ds-block-body-weight, 400);
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
}

/* ================================================
   HERO FULL-WIDTH BACKGROUND
   ================================================ */

.ds-hero-fullwidth-bg {
    position: relative;
    background-color: var(--ds-bg, var(--ds-grey-800));
    background-image: var(--ds-bg-image, none);
    background-size: cover;
    background-position: center;
    min-height: 600px;
    display: flex;
    align-items: center;
}

.ds-hero-fullwidth-bg::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 100%);
    z-index: 1;
}

.ds-hero-fullwidth-bg__container {
    position: relative;
    z-index: 2;
    max-width: var(--ds-container-xl);
    width: 100%;
    margin: 0 auto;
    padding: 60px var(--ds-space-6);
}

.ds-hero-fullwidth-bg__content {
    max-width: 1000px;
}

/* Content width modifiers for hero-fullwidth-bg */
.ds-hero-fullwidth-bg--width-narrow .ds-hero-fullwidth-bg__content {
    max-width: 640px;
}

.ds-hero-fullwidth-bg--width-medium .ds-hero-fullwidth-bg__content {
    max-width: 800px;
}

.ds-hero-fullwidth-bg--width-wide .ds-hero-fullwidth-bg__content {
    max-width: 1000px;
}

.ds-hero-fullwidth-bg--width-full .ds-hero-fullwidth-bg__content {
    max-width: 100%;
}

.ds-hero-fullwidth-bg--content-center .ds-hero-fullwidth-bg__content {
    margin: 0 auto;
    text-align: center;
}

.ds-hero-fullwidth-bg--content-right .ds-hero-fullwidth-bg__content {
    margin-left: auto;
    text-align: right;
}

.ds-hero-fullwidth-bg__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 3.5rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    margin: 0 0 var(--ds-space-6) 0;
    color: var(--ds-white, #ffffff);
}

@media (max-width: 1024px) {
    .ds-hero-fullwidth-bg__heading {
        font-size: var(--ds-block-heading-size-tablet, 2.75rem);
    }
    .ds-hero-fullwidth-bg__body {
        font-size: var(--ds-block-body-size-tablet, var(--ds-block-body-size, 16px));
    }
}

@media (max-width: 768px) {
    .ds-hero-fullwidth-bg {
        min-height: 500px;
    }

    .ds-hero-fullwidth-bg__heading {
        font-size: var(--ds-block-heading-size-mobile, 2.25rem);
    }
    .ds-hero-fullwidth-bg__body {
        font-size: var(--ds-block-body-size-mobile, var(--ds-block-body-size, 16px));
    }
}

.ds-hero-fullwidth-bg__body {
    font-size: var(--ds-block-body-size, var(--ds-text-lg));
    line-height: var(--ds-leading-relaxed);
    margin-bottom: 0;
    opacity: 0.9;
    color: var(--ds-white, #ffffff);

    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
}

.ds-hero-fullwidth-bg__buttons {
    margin-top: var(--ds-space-8);
}

.ds-hero-fullwidth-bg--content-center .ds-hero-fullwidth-bg__buttons {
    justify-content: center;
}

.ds-hero-fullwidth-bg--content-right .ds-hero-fullwidth-bg__buttons {
    justify-content: flex-end;
}

/* Mobile image swap */
.ds-hero-fullwidth-bg__mobile-image {
    display: none;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

@media (max-width: 768px) {
    .ds-hero-fullwidth-bg.ds-has-mobile-image .ds-hero-fullwidth-bg__mobile-image {
        display: block;
    }
    /* Suppress CSS background image when mobile image is present */
    .ds-hero-fullwidth-bg.ds-has-mobile-image {
        background-image: none !important;
    }
}

/* ================================================
   HERO SPLIT WITH REVIEWS
   ================================================ */

.ds-hero-split-reviews {
    padding: 0;
    background-color: var(--ds-bg, var(--ds-white));
}

.ds-hero-split-reviews__container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 600px;
}

@media (max-width: 968px) {
    .ds-hero-split-reviews__container {
        grid-template-columns: 1fr;
        min-height: auto;
    }
}

.ds-hero-split-reviews__content {
    display: flex;
    align-items: center;
    padding: 60px 48px;
}

@media (max-width: 968px) {
    .ds-hero-split-reviews__content {
        padding: 60px 24px;
    }
}

.ds-hero-split-reviews__content-inner {
    max-width: 540px;
}

.ds-hero-split-reviews--content-right .ds-hero-split-reviews__content-inner {
    margin-left: auto;
}

.ds-hero-split-reviews__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 3rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    margin: 0 0 var(--ds-space-6) 0;

    color: var(--ds-block-heading-color, inherit);
}

@media (max-width: 1024px) {
    .ds-hero-split-reviews__heading {
        font-size: var(--ds-block-heading-size-tablet, 2.5rem);
    }
}

@media (max-width: 768px) {
    .ds-hero-split-reviews__heading {
        font-size: var(--ds-block-heading-size-mobile, 2rem);
    }
}

.ds-hero-split-reviews__body {
    margin-bottom: 0;

    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
    font-size: var(--ds-block-body-size, inherit);
    line-height: var(--ds-block-body-line-height, inherit);
}

.ds-hero-split-reviews__rating {
    display: flex;
    align-items: center;
    gap: var(--ds-space-3);
    margin-bottom: 0;
    padding: var(--ds-space-4);
    background: var(--ds-grey-100);
    border-radius: var(--ds-radius-lg);
}

.ds-hero-split-reviews__rating-icon {
    flex-shrink: 0;
}

.ds-hero-split-reviews__rating-content {
    display: flex;
    flex-direction: column;
    gap: var(--ds-space-1);
}

.ds-hero-split-reviews__rating-score {
    display: flex;
    align-items: center;
    gap: var(--ds-space-2);
    font-weight: var(--ds-weight-semibold);
}

.ds-hero-split-reviews__rating-count {
    font-size: var(--ds-text-sm);
    color: var(--ds-grey-600);
}

.ds-hero-split-reviews__buttons {
    margin-top: var(--ds-space-8);
}

/* Image Side */
.ds-hero-split-reviews__images {
    position: relative;
    background: var(--ds-grey-100);
    padding: var(--ds-space-8);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ds-hero-split-reviews--content-right .ds-hero-split-reviews__container {
    direction: rtl;
}

.ds-hero-split-reviews--content-right .ds-hero-split-reviews__container > * {
    direction: ltr;
}

.ds-hero-split-reviews__image-stack {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-space-4);
    width: 100%;
    max-width: 500px;
}

.ds-hero-split-reviews__image-wrapper {
    border-radius: 0;
    overflow: hidden;
    box-shadow: none;
}

.ds-hero-split-reviews__image-wrapper:nth-child(2) {
    transform: translateY(var(--ds-space-8));
}

.ds-hero-split-reviews__image-wrapper:nth-child(3) {
    transform: translateY(calc(var(--ds-space-8) * -1));
}

.ds-hero-split-reviews__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Mobile image swap */
.ds-hero-split-reviews__image--mobile { display: none; }

@media (max-width: 768px) {
    .ds-hero-split-reviews__image--desktop { display: none; }
    .ds-hero-split-reviews__image--mobile { display: block; }
}

/* ================================================
   HERO VIDEO CENTERED DARK
   ================================================ */

/* Full-width video background hero */
.ds-hero-video-centered {
    position: relative;
    overflow: hidden;
    min-height: 600px;
    display: flex;
    align-items: center;
    padding: 0;
    background: var(--ds-bg, #111111);
}

/* Video background layer */
.ds-hero-video-centered__video-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
}

.ds-hero-video-centered__video-bg iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 177.78vh; /* 16:9 aspect ratio */
    height: 56.25vw;
    min-width: 100%;
    min-height: 100%;
    transform: translate(-50%, -50%);
    border: none;
    pointer-events: none;
}

.ds-hero-video-centered__video-bg video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ds-hero-video-centered__video-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Color overlay */
.ds-hero-video-centered__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
}

/* Content layer - sits on top of video + overlay */
.ds-hero-video-centered__container {
    position: relative;
    z-index: 2;
    max-width: 1100px;
    margin: 0 auto;
    padding: 80px 40px;
    text-align: center;
    width: 100%;
}

/* Heading */
.ds-hero-video-centered__heading {
    font-family: var(--ds-block-heading-font, 'Playfair Display', Georgia, serif);
    font-weight: var(--ds-block-heading-weight, 400);
    font-size: var(--ds-block-heading-size-desktop, 3.5rem);
    line-height: var(--ds-block-heading-line-height, 1.15);
    color: var(--ds-block-heading-color, #ffffff);
    margin: 0 0 40px 0;
}

@media (max-width: 1024px) {
    .ds-hero-video-centered__heading {
        font-size: var(--ds-block-heading-size-tablet, 2.75rem);
    }
}

@media (max-width: 768px) {
    .ds-hero-video-centered__heading {
        font-size: var(--ds-block-heading-size-mobile, 2rem);
    }
}

/* Body content */
.ds-hero-video-centered__body {
    max-width: 700px;
    margin: 0 auto var(--ds-space-6);
    color: rgba(255,255,255,0.85);
    font-size: 16px;
    line-height: 1.6;

    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
}

/* Video wrapper - now just a click target for lightbox, not a boxed player */
.ds-hero-video-centered__video-wrapper {
    position: static;
    margin-bottom: 48px;
    border-radius: 0;
    overflow: visible;
    aspect-ratio: auto;
    background: transparent;
}

/* Play button - frosted glass centered in content flow */
.ds-hero-video-centered__play-btn {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    width: 100px;
    height: 100px;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 2px solid rgba(255,255,255,0.3);
    border-radius: 50%;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s ease, transform 0.3s ease;
    box-shadow: none;
}

.ds-hero-video-centered__play-btn:hover {
    background: rgba(255,255,255,0.25);
    transform: scale(1.08);
}

.ds-hero-video-centered__play-icon {
    color: #ffffff;
    margin-left: 4px;
}

/* Bullets Grid - 2x2 with divider lines */
.ds-hero-video-centered__bullets {
    display: grid;
    gap: 0;
    max-width: 900px;
    margin: 0 auto 48px;
    text-align: left;
}

.ds-hero-video-centered__bullet {
    padding: 20px 24px;
}

.ds-hero-video-centered__bullet-title {
    font-size: var(--ds-list-font-size, 16px);
    line-height: 1.5;
}

.ds-hero-video-centered__bullet-desc {
    font-size: calc(var(--ds-list-font-size, 16px) - 2px);
    line-height: 1.4;
}

/* Divider lines */
.ds-hero-video-centered--with-dividers .ds-hero-video-centered__bullet {
    border-bottom: 1px solid rgba(255,255,255,0.15);
}

@media (max-width: 768px) {
    .ds-hero-video-centered__bullet {
        border-right: none !important;
    }
}

/* Buttons */
.ds-hero-video-centered__buttons {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

/* Responsive */
@media (max-width: 1024px) {
    .ds-hero-video-centered__container {
        padding: 60px 30px;
    }
}

@media (max-width: 768px) {
    .ds-hero-video-centered {
        min-height: 500px;
    }
    .ds-hero-video-centered__container {
        padding: 50px 20px;
    }
    .ds-hero-video-centered__bullets {
        grid-template-columns: 1fr !important;
    }
    .ds-hero-video-centered__play-btn {
        width: 80px;
        height: 80px;
    }
}

/* Mobile image swap */
.ds-hero-video-centered__mobile-image {
    display: none;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

@media (max-width: 768px) {
    .ds-hero-video-centered.ds-has-mobile-image .ds-hero-video-centered__video-bg {
        display: none;
    }
    .ds-hero-video-centered.ds-has-mobile-image .ds-hero-video-centered__mobile-image {
        display: block;
    }
}

/* ================================================
   BENEFITS & RISKS COMPARISON
   ================================================ */

.ds-benefits-risks {
    background-color: var(--ds-block-bg, var(--ds-white));
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    padding: 60px var(--ds-space-6);
}

.ds-benefits-risks__container {
    max-width: var(--ds-container-xl);
    margin: 0 auto;
}

.ds-benefits-risks__header {
    text-align: center;
    max-width: 1000px;
    margin: 0 auto var(--ds-space-6);
}

.ds-benefits-risks__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 2.5rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    margin: 0 0 var(--ds-space-4) 0;

    color: var(--ds-block-heading-color, inherit);
}

@media (max-width: 768px) {
    .ds-benefits-risks__heading {
        font-size: var(--ds-block-heading-size-mobile, 2rem);
    }
}

.ds-benefits-risks__body {
    font-size: var(--ds-text-lg);
    opacity: 0.8;
}

/* Columns */
.ds-benefits-risks__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-space-8);
    margin-bottom: var(--ds-space-12);
}

@media (max-width: 768px) {
    .ds-benefits-risks__grid {
        grid-template-columns: 1fr;
    }
}

.ds-benefits-risks__column {
    padding: var(--ds-space-8);
    border-radius: var(--ds-radius-xl);
}

.ds-benefits-risks__column--benefits {
    background: var(--ds-benefits-card-bg, var(--ds-grey-50));
    border: 1px solid var(--ds-benefits-card-border, var(--ds-grey-200));
}

.ds-benefits-risks__column--risks {
    background: var(--ds-risks-card-bg, var(--ds-grey-50));
    border: 1px solid var(--ds-risks-card-border, var(--ds-grey-200));
}

.ds-benefits-risks__column-title {
    display: flex;
    align-items: center;
    gap: var(--ds-space-2);
    font-size: var(--ds-text-lg);
    font-weight: var(--ds-weight-semibold);
    margin: 0 0 var(--ds-space-6) 0;
}

.ds-benefits-risks__column-icon {
    flex-shrink: 0;
}

.ds-benefits-risks__column--benefits .ds-benefits-risks__column-icon {
    color: #22c55e;
}

.ds-benefits-risks__column--risks .ds-benefits-risks__column-icon {
    color: #ef4444;
}

.ds-benefits-risks__list {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: left !important; /* Always left-align list content */
}

.ds-benefits-risks .ds-list {
    margin: 0 !important;
}

.ds-benefits-risks__item,
.ds-benefits-risks__list-item {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start !important; /* Always start from left */
    gap: var(--ds-space-3);
    padding: var(--ds-space-3) 0;
    border-bottom: 1px solid var(--ds-grey-200);
    text-align: left !important;
}

.ds-benefits-risks__item:last-child {
    border-bottom: none;
}

.ds-benefits-risks__item-icon {
    flex-shrink: 0;
    margin-top: 2px;
}

.ds-benefits-risks__column--benefits .ds-benefits-risks__item-icon {
    color: #22c55e;
}

.ds-benefits-risks__column--risks .ds-benefits-risks__item-icon {
    color: #ef4444;
}

/* Expert Quote */
.ds-benefits-risks__quote {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.ds-benefits-risks__quote-card {
    background: var(--ds-grey-800);
    color: var(--ds-white, #ffffff);
    padding: var(--ds-space-10);
    border-radius: var(--ds-radius-xl);
}

.ds-benefits-risks__quote-text {
    font-size: var(--ds-text-xl);
    font-style: italic;
    line-height: var(--ds-leading-relaxed);
    margin: 0 0 var(--ds-space-6) 0;
}

.ds-benefits-risks__quote-author {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--ds-space-4);
}

.ds-benefits-risks__quote-avatar {
    width: 56px;
    height: 56px;
    border-radius: var(--ds-radius-full);
    overflow: hidden;
}

.ds-benefits-risks__quote-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ds-benefits-risks__quote-info {
    text-align: left;
}

.ds-benefits-risks__quote-name {
    font-weight: var(--ds-weight-semibold);
    margin-bottom: var(--ds-space-1);
}

.ds-benefits-risks__quote-title {
    font-size: var(--ds-text-sm);
    opacity: 0.7;
}

/* Benefits & Risks - Additional CSS to match PHP output */

/* Alias for columns (PHP uses __columns, CSS had __grid) */
.ds-benefits-risks__columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-space-8);
    margin-bottom: var(--ds-space-12);
}

@media (max-width: 768px) {
    .ds-benefits-risks__columns {
        grid-template-columns: 1fr;
    }
}

/* Column header styling */
.ds-benefits-risks__column-header {
    display: flex;
    align-items: center;
    gap: var(--ds-space-3);
    margin-bottom: 0;
}

.ds-benefits-risks__icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ds-radius-lg);
}

.ds-benefits-risks__icon svg {
    width: 24px;
    height: 24px;
}

.ds-benefits-risks__column--benefits .ds-benefits-risks__icon {
    color: var(--ds-benefits-icon-color, #22c55e);
    background: rgba(34, 197, 94, 0.1);
}

.ds-benefits-risks__column--risks .ds-benefits-risks__icon {
    color: var(--ds-risks-icon-color, #ef4444);
    background: rgba(239, 68, 68, 0.1);
}

.ds-benefits-risks__icon--warning {
    color: var(--ds-risks-icon-color, #ef4444);
}

.ds-benefits-risks__title {
    font-size: var(--ds-text-3xl);
    font-weight: var(--ds-weight-bold);
    margin: 0;
}

/* Intro and additional text */
.ds-benefits-risks__intro {
    font-size: var(--ds-text-base);
    margin: 0 0 var(--ds-space-4) 0;
    opacity: 0.8;
}

.ds-benefits-risks__additional {
    font-size: var(--ds-text-sm);
    margin: var(--ds-space-4) 0 0 0;
    opacity: 0.7;
}

/* List icon color via CSS variable */
.ds-benefits-risks__column--benefits .ds-benefits-risks__check {
    color: var(--ds-benefits-icon-color, #22c55e);
    flex-shrink: 0;
    margin-top: 2px;
}

.ds-benefits-risks__column--risks .ds-benefits-risks__check {
    color: var(--ds-risks-icon-color, #ef4444);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Quote section styling */
.ds-benefits-risks__quote-section {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.ds-benefits-risks__quote-intro {
    font-size: var(--ds-text-lg);
    margin: 0 0 var(--ds-space-6) 0;
    opacity: 0.8;
}

.ds-benefits-risks__quote-card {
    background: var(--ds-quote-bg, var(--ds-grey-800));
    color: var(--ds-white, #ffffff);
    padding: var(--ds-space-10);
    border-radius: var(--ds-radius-xl);
    display: flex;
    align-items: flex-start;
    gap: var(--ds-space-6);
    text-align: left;
}

.ds-benefits-risks__doctor-image {
    flex-shrink: 0;
}

.ds-benefits-risks__doctor-img {
    width: 80px;
    height: 80px;
    border-radius: var(--ds-radius-full);
    object-fit: cover;
}

.ds-benefits-risks__quote-content {
    flex: 1;
}

.ds-benefits-risks__quote-content blockquote {
    font-size: var(--ds-text-lg);
    font-style: italic;
    line-height: var(--ds-leading-relaxed);
    margin: 0 0 var(--ds-space-4) 0;
}

.ds-benefits-risks__quote-content blockquote::before {
    content: '"';
}

.ds-benefits-risks__quote-content blockquote::after {
    content: '"';
}

.ds-benefits-risks__quote-author footer {
    display: flex;
    flex-direction: column;
}

.ds-benefits-risks__doctor-name {
    font-weight: var(--ds-weight-semibold);
    font-style: normal;
}

.ds-benefits-risks__doctor-title {
    font-size: var(--ds-text-sm);
    opacity: 0.7;
}

.ds-benefits-risks__buttons {
    margin-top: var(--ds-space-8);
    display: flex;
    justify-content: center;
    gap: var(--ds-space-4);
}

@media (max-width: 768px) {
    .ds-benefits-risks__quote-card {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
}

/* ========================================
   Hero Block Testimonials
   ======================================== */

/* Common styles for all hero testimonials */

/* ========================================
   Testimonial Style Variants
   ======================================== */

/* Rounded Corners (default) */
.ds-testimonial-style--rounded {
    border-radius: var(--ds-testimonial-radius, var(--ds-radius-lg)) !important;
}

/* Rectangle / Square */
.ds-testimonial-style--rectangle,
.ds-testimonial-style--square {
    border-radius: 0 !important;
}

/* Quote Bubble */
.ds-testimonial-style--quote-bubble {
    border-radius: var(--ds-testimonial-radius, var(--ds-radius-lg)) !important;
    position: relative;
    margin-bottom: 12px;
}

.ds-testimonial-style--quote-bubble::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 32px;
    width: 0;
    height: 0;
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 12px solid var(--ds-testimonial-bg-solid, currentColor);
    opacity: var(--ds-testimonial-bg-opacity, 1);
}

/* Rounded Outline */
.ds-testimonial-style--rounded-outline {
    border-radius: var(--ds-testimonial-radius, var(--ds-radius-lg)) !important;
    background: transparent !important;
    border: 2px solid var(--ds-testimonial-border-color, rgba(255,255,255,0.3));
}

/* Rectangle Outline */
.ds-testimonial-style--rectangle-outline {
    border-radius: 0 !important;
    background: transparent !important;
    border: 2px solid var(--ds-testimonial-border-color, rgba(255,255,255,0.3));
}

/* Custom radius */
.ds-testimonial-style--custom {
    border-radius: var(--ds-testimonial-custom-radius, 12px) !important;
}

.ds-testimonial--hero {
    text-align: left;
}



.ds-testimonial--hero .ds-testimonial__quote-icon svg {
    width: 32px;
    height: 32px;
}

.ds-testimonial--hero .ds-testimonial__quote {
    font-size: var(--ds-text-base);
    line-height: var(--ds-leading-relaxed);
    margin-bottom: var(--ds-space-4);
    font-style: italic;
}

.ds-testimonial--hero .ds-testimonial__author {
    display: flex;
    align-items: center;
    gap: var(--ds-space-3);
}

.ds-testimonial--hero .ds-testimonial__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.ds-testimonial--hero .ds-testimonial__avatar--initial {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    font-weight: 700;
    text-transform: uppercase;
}

.ds-testimonial--hero .ds-testimonial__avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ds-testimonial--hero .ds-testimonial__author-info {
    display: flex;
    flex-direction: column;
}

.ds-testimonial--hero .ds-testimonial__name {
    font-style: normal;
    font-weight: var(--ds-weight-medium);
    font-size: var(--ds-text-base);
}

.ds-testimonial--hero .ds-testimonial__title {
    font-size: var(--ds-text-sm);
    opacity: 0.8;
}

/* Hero Split Video testimonial */
.ds-hero-split-video__testimonial {
    max-width: 500px;
}

/* Hero Split Reviews testimonial */
.ds-hero-split-reviews__testimonial {
    max-width: 500px;
}

/* Hero Fullwidth BG testimonial */
.ds-hero-fullwidth-bg__testimonial {
    max-width: 600px;
}

.ds-hero-fullwidth-bg--content-center .ds-hero-fullwidth-bg__testimonial {
    margin-left: auto;
    margin-right: auto;
}

/* Center testimonial content when content position is center */
.ds-hero-fullwidth-bg--content-center .ds-hero-fullwidth-bg__testimonial .ds-testimonial__quote {
    text-align: center;
}

.ds-hero-fullwidth-bg--content-center .ds-hero-fullwidth-bg__testimonial .ds-testimonial__author {
    justify-content: center;
}

/* Hero Video Centered testimonial */
.ds-hero-video-centered__testimonial {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.ds-hero-video-centered__testimonial .ds-testimonial--hero {
    text-align: left;
}

/* Quote icon aligned left */
.ds-hero-video-centered__testimonial .ds-testimonial__quote-icon {
    text-align: left;
}

/* Quote text left aligned */
.ds-hero-video-centered__testimonial .ds-testimonial__quote {
    text-align: center;
}

/* Author container centered in quote box */
.ds-hero-video-centered__testimonial .ds-testimonial__author {
    justify-content: center;
}

/* Author name and title aligned left within their container */
.ds-hero-video-centered__testimonial .ds-testimonial__author-info {
    text-align: left;
}


/* ================================================
   FEATURES GRID WITH IMAGE
   ================================================ */

.ds-features-grid-image {
    position: relative;
    background-color: var(--ds-block-bg, var(--ds-white));
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    padding: 60px var(--ds-space-6);
}

.ds-features-grid-image__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--ds-block-overlay-color, #000000);
    opacity: var(--ds-block-overlay-opacity, 0.5);
    pointer-events: none;
}

.ds-features-grid-image__container {
    position: relative;
    z-index: 1;
    max-width: var(--ds-container-xl);
    margin: 0 auto;
}

.ds-features-grid-image__header {
    text-align: center;
    max-width: 1000px;
    margin: 0 auto 40px;
}

.ds-features-grid-image__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 2.5rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    margin: 0 0 var(--ds-space-4) 0;

    color: var(--ds-block-heading-color, inherit);
}

@media (max-width: 768px) {
    .ds-features-grid-image__heading {
        font-size: var(--ds-block-heading-size-mobile, 2rem);
    }
}

.ds-features-grid-image__body {
    font-size: var(--ds-text-lg);
    opacity: 0.8;

    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
    line-height: var(--ds-block-body-line-height, inherit);
}

/* Grid Layout - Overlapping design */
.ds-features-grid-image__grid {
    display: flex;
    align-items: center;
    margin-bottom: var(--ds-space-24);
    position: relative;
    margin-top: 90px;
}

/* Content on left (image on right) - features overlap image from left */
.ds-features-grid-image--content-left .ds-features-grid-image__grid {
    flex-direction: row;
}

.ds-features-grid-image--content-left .ds-features-grid-image__image-wrapper {
    order: 2;
    flex: 0 0 50%;
    margin-left: -80px;
    margin-top: -50px;
    margin-bottom: -50px;
}

.ds-features-grid-image--content-left .ds-features-grid-image__features {
    order: 1;
    flex: 0 0 55%;
    z-index: 2;
    position: relative;
}

/* Content on right (image on left) - features overlap image from right */
.ds-features-grid-image--content-right .ds-features-grid-image__grid {
    flex-direction: row;
}

.ds-features-grid-image--content-right .ds-features-grid-image__image-wrapper {
    order: 1;
    flex: 0 0 50%;
    margin-right: -80px;
    margin-top: -50px;
    margin-bottom: -50px;
}

.ds-features-grid-image--content-right .ds-features-grid-image__features {
    order: 2;
    flex: 0 0 55%;
    z-index: 2;
    position: relative;
}

@media (max-width: 968px) {
    /* Prevent horizontal scroll on mobile */
    .ds-features-grid-image {
        overflow-x: hidden;
    }

    /* Reduce header spacing on mobile */
    .ds-features-grid-image__header {
        margin-bottom: var(--ds-space-6, 24px);
    }

    /* Stack grid to single column */
    .ds-features-grid-image__grid {
        flex-direction: column !important;
        gap: var(--ds-space-6);
        margin-top: 25px;
        margin-bottom: 0px;
    }

    /* Image full-width, remove overlap margins */
    .ds-features-grid-image--content-left .ds-features-grid-image__image-wrapper,
    .ds-features-grid-image--content-right .ds-features-grid-image__image-wrapper {
        order: 1;
        flex: 0 0 auto !important;
        width: 100% !important;
        margin: 0 !important;
    }

    .ds-features-grid-image--content-left .ds-features-grid-image__features,
    .ds-features-grid-image--content-right .ds-features-grid-image__features {
        order: 2;
        flex: 0 0 auto !important;
        width: 100% !important;
    }

    .ds-features-grid-image__image-wrapper {
        min-height: 300px;
    }

    .ds-features-grid-image__image {
        position: relative;
        height: auto;
    }

    /* Features grid to single column on tablet */
    .ds-features-grid-image__features {
        grid-template-columns: 1fr;
    }

    /* Center feature card content on mobile */
    .ds-features-grid-image__feature-card {
        text-align: center;
    }

    .ds-features-grid-image__feature-icon {
        margin-left: auto;
        margin-right: auto;
    }

    /* Reduce button section spacing */
    .ds-features-grid-image__buttons {
        margin-top: var(--ds-space-10, 40px);
    }
}

/* Image - taller than features with negative vertical margins */
.ds-features-grid-image__image-wrapper {
    border-radius: var(--ds-image-radius, var(--ds-radius-xl));
    overflow: hidden;
    position: relative;
    min-height: 500px;
    align-self: stretch;
}

.ds-features-grid-image__image {
    width: 100%;
    height: 100%;
    display: block;
    border-radius: var(--ds-image-radius, var(--ds-radius-xl));
    object-fit: cover;
    object-position: top center;
    position: absolute;
    top: 0;
    left: 0;
}

/* Features Grid */
.ds-features-grid-image__features {
    display: grid;
    grid-template-columns: repeat(var(--ds-features-columns, 2), 1fr);
    gap: var(--ds-space-4);
    align-content: center;
}

@media (max-width: 600px) {
    .ds-features-grid-image__features {
        grid-template-columns: 1fr;
    }
}

/* Feature Cards - with customizable styling */
.ds-features-grid-image__feature-card {
    padding: var(--ds-space-5);
    border-radius: var(--ds-card-border-radius, var(--ds-radius-lg));
}

/* Card style: bordered */
.ds-features-grid-image--cards-bordered .ds-features-grid-image__feature-card {
    border: 1px solid var(--ds-card-border-color, var(--ds-grey-200));
    background-color: var(--ds-card-bg-color, transparent);
}

/* Card style: filled */
.ds-features-grid-image--cards-filled .ds-features-grid-image__feature-card {
    background: var(--ds-card-bg-color, var(--ds-grey-50));
}

/* Card style: minimal (no border, no fill) */
.ds-features-grid-image--cards-minimal .ds-features-grid-image__feature-card {
    background: transparent;
    border: none;
}

/* Feature Icons - with customizable styling */
.ds-features-grid-image__feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: var(--ds-space-4);
    background: var(--ds-icon-bg-color, var(--ds-grey-100));
    border-radius: var(--ds-radius-md);
    color: var(--ds-icon-color, var(--ds-grey-700));
}

/* Icon style: filled (default) */
.ds-features-grid-image--icon-filled .ds-features-grid-image__feature-icon {
    background: var(--ds-icon-bg-color, var(--ds-grey-100));
}

/* Icon style: outline */
.ds-features-grid-image--icon-outline .ds-features-grid-image__feature-icon {
    background: transparent;
    border: 2px solid var(--ds-icon-color, var(--ds-grey-700));
}

/* Icon style: plain (no background or border) */
.ds-features-grid-image--icon-plain .ds-features-grid-image__feature-icon {
    background: transparent;
    width: auto;
    height: auto;
}

/* Feature icon colors for dark backgrounds (fallback if no custom colors set) */
.ds-typography-light-on-dark .ds-features-grid-image__feature-icon {
    background: var(--ds-icon-bg-color, rgba(255, 255, 255, 0.1));
    color: var(--ds-icon-color, var(--ds-white));
}

.ds-typography-light-on-dark.ds-features-grid-image--icon-outline .ds-features-grid-image__feature-icon {
    background: transparent;
    border-color: var(--ds-icon-color, var(--ds-white));
}

/* Custom icon image styling */
.ds-features-grid-image__custom-icon {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.ds-features-grid-image__feature-title {
    font-size: var(--ds-card-title-size, var(--ds-text-base));
    font-weight: var(--ds-weight-semibold);
    margin: 0 0 var(--ds-space-2) 0;
    color: var(--ds-card-title-color, var(--ds-block-heading-color, inherit));
}

.ds-features-grid-image__feature-desc {
    font-size: var(--ds-card-desc-size, var(--ds-text-sm));
    margin: 0;
    color: var(--ds-card-desc-color, var(--ds-block-body-color, inherit));
}

/* Feature card colors for dark backgrounds (fallback if no custom colors set) */
.ds-typography-light-on-dark.ds-features-grid-image--cards-bordered .ds-features-grid-image__feature-card {
    border-color: var(--ds-card-border-color, rgba(255, 255, 255, 0.2));
    background-color: var(--ds-card-bg-color, transparent);
}

.ds-typography-light-on-dark.ds-features-grid-image--cards-filled .ds-features-grid-image__feature-card {
    background: var(--ds-card-bg-color, rgba(255, 255, 255, 0.05));
}

.ds-features-grid-image__buttons {
    text-align: center;
    margin-top: 60px;
}

/* ================================================
   FEATURES GRID DARK
   ================================================ */

.ds-features-grid-dark {
    background-color: var(--ds-block-bg, var(--ds-grey-900));
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: var(--ds-white, #ffffff);
    padding: 60px var(--ds-space-6);
}

.ds-features-grid-dark__container {
    max-width: var(--ds-container-xl);
    margin: 0 auto;
}

.ds-features-grid-dark__header {
    text-align: center;
    max-width: 1000px;
    margin: 0 auto var(--ds-space-12);
}

.ds-features-grid-dark__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 2.75rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    margin: 0 0 var(--ds-space-4) 0;

    color: var(--ds-block-heading-color, inherit);
}

@media (max-width: 768px) {
    .ds-features-grid-dark__heading {
        font-size: var(--ds-block-heading-size-mobile, 2rem);
    }
}

.ds-features-grid-dark__body {
    font-size: var(--ds-text-lg);
    opacity: 0.8;

    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
    line-height: var(--ds-block-body-line-height, inherit);
}

/* Features Grid */
.ds-features-grid-dark__grid {
    display: grid;
    grid-template-columns: repeat(var(--ds-features-columns, 3), 1fr);
    gap: var(--ds-space-8);
    margin-bottom: var(--ds-space-12);
}

@media (max-width: 968px) {
    .ds-features-grid-dark__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--ds-space-4);
    }

    .ds-features-grid-dark__feature {
        padding: var(--ds-space-4);
    }
}

@media (max-width: 600px) {
    .ds-features-grid-dark__grid {
        grid-template-columns: 1fr;
        gap: var(--ds-space-3);
    }
}

.ds-features-grid-dark__feature {
    text-align: center;
    padding: var(--ds-space-2);
}

/* Card styles */
.ds-features-grid-dark--has-cards .ds-features-grid-dark__feature {
    background: var(--ds-card-bg, #2d2d2d);
    border-radius: var(--ds-card-radius, 8px);
    border: 1px solid var(--ds-card-border-color, transparent);
    padding: var(--ds-space-6);
}

.ds-features-grid-dark--card-shadow .ds-features-grid-dark__feature {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.ds-features-grid-dark__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--ds-feature-icon-container, 64px);
    height: var(--ds-feature-icon-container, 64px);
    margin: 0 auto var(--ds-space-5);
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--ds-radius-lg);
    color: var(--ds-feature-icon-color, var(--ds-white));
}

.ds-features-grid-dark__icon--custom img {
    width: var(--ds-feature-icon-size, 32px);
    height: var(--ds-feature-icon-size, 32px);
    object-fit: contain;
}

.ds-features-grid-dark__feature-title {
    font-size: var(--ds-feature-title-size, var(--ds-text-lg));
    font-weight: var(--ds-weight-semibold);
    margin: 0 0 var(--ds-space-3) 0;
    color: var(--ds-block-heading-color, inherit);
}

.ds-features-grid-dark__feature-desc {
    font-size: var(--ds-block-body-size, var(--ds-text-base));
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
    color: var(--ds-block-body-color, inherit);
    line-height: var(--ds-block-body-line-height, inherit);
    margin: 0;
    opacity: 0.7;
    line-height: var(--ds-leading-relaxed);
}

.ds-features-grid-dark .ds-read-more-toggle {
    display: block;
    text-align: center;
    width: auto;
    margin: 0 auto;
}

.ds-features-grid-dark .ds-read-more-toggle + .ds-features-grid-dark__buttons,
.ds-features-grid-dark .ds-read-more-toggle {
    margin-bottom: 20px;
}

@media (max-width: 768px) {
    .ds-features-grid-dark .ds-read-more-toggle {
        width: 100%;
    }
}

.ds-features-grid-dark__buttons {
    text-align: center;
}

/* ================================================
   FEATURES WITH HERO IMAGE
   ================================================ */

/* ------------------------------------------------
   FEATURES HERO IMAGE — Redesigned Layout
   Full-width image → 2-col intro → card grid → CTA
   ------------------------------------------------ */
.ds-features-hero-image {
    background-color: var(--ds-block-bg, #ffffff);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    padding: 0;
    position: relative;
    overflow: clip;
}

.ds-features-hero-image__container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 45px;
    padding-bottom: 60px;
}

/* Overlay for bg image */
.ds-features-hero-image__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay-color, #000);
    opacity: var(--ds-block-overlay-opacity, 0.5);
    z-index: 1;
}
.ds-features-hero-image__overlay + .ds-features-hero-image__container {
    position: relative;
    z-index: 2;
}

/* 1. Full-Width Hero Image */
.ds-features-hero-image__image-wrapper {
    width: 100%;
    overflow: hidden;
}

.ds-features-hero-image__image {
    width: 100%;
    max-height: 300px;
    object-fit: cover;
    display: block;
}

/* 2. Two-Column Intro */
.ds-features-hero-image__intro {
    display: flex;
    gap: 30px;
    align-items: center;
    width: 100%;
    padding: 0 100px;
    box-sizing: border-box;
}

.ds-features-hero-image__intro-left {
    flex: 1 1 50%;
    min-width: 0;
}

.ds-features-hero-image__intro-right {
    flex: 1 1 50%;
    min-width: 0;
}

.ds-features-hero-image__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, 700);
    font-size: var(--ds-block-heading-size-desktop, 48px);
    line-height: var(--ds-block-heading-line-height, 1.1);
    margin: 0;
    color: var(--ds-block-heading-color, inherit);
}

.ds-features-hero-image__body {
    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, 400);
    font-size: var(--ds-block-body-size, 18px);
    line-height: var(--ds-block-body-line-height, 1.6);
}

.ds-features-hero-image__body p {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

/* 3. Feature Cards Grid */
.ds-features-hero-image__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 35px;
    width: 100%;
    padding: 0 100px;
    box-sizing: border-box;
    justify-content: center;
}

.ds-features-hero-image__feature {
    flex: 1 1 calc((100% - 35px * (var(--ds-features-columns, 4) - 1)) / var(--ds-features-columns, 4));
    max-width: calc((100% - 35px * (var(--ds-features-columns, 4) - 1)) / var(--ds-features-columns, 4));
    min-width: 0;
    background: var(--ds-feature-card-bg, #f9f9f9);
    padding: 35px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    align-items: center;
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
    cursor: default;
}

/* Card hover state */
.ds-features-hero-image__feature:hover {
    background: var(--ds-feature-card-hover-bg, var(--ds-feature-card-bg, #f9f9f9));
}

.ds-features-hero-image__feature:hover .ds-features-hero-image__feature-title {
    color: var(--ds-feature-card-hover-title-color, var(--ds-feature-card-title-color, var(--ds-block-heading-color, inherit))) !important;
}

.ds-features-hero-image__feature:hover .ds-features-hero-image__feature-desc {
    color: var(--ds-feature-card-hover-desc-color, var(--ds-feature-card-desc-color, var(--ds-block-body-color, inherit))) !important;
}

.ds-features-hero-image__feature:hover .ds-features-hero-image__feature-icon {
    color: var(--ds-feature-card-hover-icon-color, var(--ds-feature-card-icon-color, var(--ds-feature-card-title-color, inherit))) !important;
}

/* Column-specific widths (calc with CSS var is unreliable in some browsers) */
.ds-features-hero-image--cols-2 .ds-features-hero-image__feature {
    flex: 1 1 calc(50% - 18px);
    max-width: calc(50% - 18px);
}
.ds-features-hero-image--cols-3 .ds-features-hero-image__feature {
    flex: 1 1 calc(33.333% - 24px);
    max-width: calc(33.333% - 24px);
}
.ds-features-hero-image--cols-4 .ds-features-hero-image__feature {
    flex: 1 1 calc(25% - 27px);
    max-width: calc(25% - 27px);
}

.ds-features-hero-image__feature-title {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 5px 0;
    color: var(--ds-feature-card-title-color, var(--ds-block-heading-color, inherit));
    transition: color 0.3s ease;
}

.ds-features-hero-image__feature-desc {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: 18px;
    font-weight: 400;
    line-height: 24px;
    margin: 0;
    color: var(--ds-feature-card-desc-color, var(--ds-block-body-color, inherit));
    opacity: 0.75;
    transition: color 0.3s ease;
}

/* Feature card icon */
.ds-features-hero-image__feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    color: var(--ds-feature-card-icon-color, var(--ds-feature-card-title-color, var(--ds-block-heading-color, inherit)));
    transition: color 0.3s ease;
}

.ds-features-hero-image__feature-icon svg {
    width: 28px;
    height: 28px;
}

.ds-features-hero-image__feature-icon img {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

/* 4. CTA Buttons */
.ds-features-hero-image__buttons {
    text-align: center;
}

/* Read more full width on mobile/tablet */
@media (max-width: 968px) {
    .ds-features-hero-image .ds-read-more-toggle {
        display: block;
        width: 100%;
        margin-left: 20px;
        margin-right: 20px;
        width: calc(100% - 40px);
    }
}

/* Tablet */
@media (max-width: 968px) {
    .ds-features-hero-image__intro {
        padding: 0 40px;
        gap: 40px;
    }

    .ds-features-hero-image__grid {
        padding: 0 40px;
    }

    .ds-features-hero-image__heading {
        font-size: var(--ds-block-heading-size-tablet, 36px);
    }

    /* 2 columns on tablet */
    .ds-features-hero-image--cols-3 .ds-features-hero-image__feature,
    .ds-features-hero-image--cols-4 .ds-features-hero-image__feature {
        flex: 1 1 calc(50% - 18px);
        max-width: calc(50% - 18px);
    }
}

/* Mobile */
@media (max-width: 768px) {
    .ds-features-hero-image__container {
        gap: 24px;
        padding-bottom: 40px;
    }

    .ds-features-hero-image__image {
        max-height: 300px;
    }

    /* Stack intro to single column: prehook, heading, then body */
    .ds-features-hero-image__intro {
        flex-direction: column;
        gap: 2px;
        padding: 0 20px;
        text-align: center;
        align-items: center;
    }

    .ds-features-hero-image__intro-left {
        text-align: center;
    }

    .ds-features-hero-image__intro-right {
        text-align: center;
    }

    .ds-features-hero-image__heading {
        font-size: var(--ds-block-heading-size-mobile, 28px);
    }

    .ds-features-hero-image__grid {
        padding: 0 20px;
    }

    /* Single column on mobile */
    .ds-features-hero-image__feature,
    .ds-features-hero-image--cols-2 .ds-features-hero-image__feature,
    .ds-features-hero-image--cols-3 .ds-features-hero-image__feature,
    .ds-features-hero-image--cols-4 .ds-features-hero-image__feature {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .ds-features-hero-image .ds-read-more-toggle {
        margin-left: 20px;
        margin-right: 20px;
        width: calc(100% - 40px);
    }

    .ds-features-hero-image__buttons {
        padding: 0 20px;
    }
}

/* Light on dark feature card theme */
.ds-typography-light-on-dark.ds-features-hero-image .ds-features-hero-image__feature {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
}
.ds-typography-light-on-dark.ds-features-hero-image .ds-features-hero-image__feature-title {
    color: var(--ds-feature-card-title-color, var(--ds-heading-color-dark, #ffffff));
}
.ds-typography-light-on-dark.ds-features-hero-image .ds-features-hero-image__feature-desc {
    color: var(--ds-feature-card-desc-color, rgba(255, 255, 255, 0.75));
}

/* Light on dark hover states */
.ds-typography-light-on-dark.ds-features-hero-image .ds-features-hero-image__feature:hover .ds-features-hero-image__feature-title {
    color: var(--ds-feature-card-hover-title-color, var(--ds-feature-card-title-color, var(--ds-heading-color-dark, #ffffff))) !important;
}
.ds-typography-light-on-dark.ds-features-hero-image .ds-features-hero-image__feature:hover .ds-features-hero-image__feature-desc {
    color: var(--ds-feature-card-hover-desc-color, var(--ds-feature-card-desc-color, rgba(255, 255, 255, 0.75))) !important;
}
.ds-typography-light-on-dark.ds-features-hero-image .ds-features-hero-image__feature:hover .ds-features-hero-image__feature-icon {
    color: var(--ds-feature-card-hover-icon-color, var(--ds-feature-card-icon-color, var(--ds-feature-card-title-color, #ffffff))) !important;
}

/* Dark on light feature card theme */
.ds-typography-dark-on-light.ds-features-hero-image .ds-features-hero-image__feature-title {
    color: var(--ds-feature-card-title-color, var(--ds-heading-color-light, #171717));
}

/* Dark on light hover states */
.ds-typography-dark-on-light.ds-features-hero-image .ds-features-hero-image__feature:hover .ds-features-hero-image__feature-title {
    color: var(--ds-feature-card-hover-title-color, var(--ds-feature-card-title-color, var(--ds-heading-color-light, #171717))) !important;
}
.ds-typography-dark-on-light.ds-features-hero-image .ds-features-hero-image__feature:hover .ds-features-hero-image__feature-desc {
    color: var(--ds-feature-card-hover-desc-color, var(--ds-feature-card-desc-color, var(--ds-body-color-light, #404040))) !important;
}
.ds-typography-dark-on-light.ds-features-hero-image .ds-features-hero-image__feature:hover .ds-features-hero-image__feature-icon {
    color: var(--ds-feature-card-hover-icon-color, var(--ds-feature-card-icon-color, var(--ds-feature-card-title-color, #171717))) !important;
}

/* Mobile image swap */
.ds-features-hero-image__image--mobile { display: none; }

@media (max-width: 768px) {
    .ds-features-hero-image__image--desktop { display: none; }
    .ds-features-hero-image__image--mobile { display: block; width: 100%; height: auto; }
}

/* ================================================
   CONTENT SPLIT IMAGE GRID - Staggered Layout
   3 images + 1 testimonial
   ================================================ */

.ds-content-split-image-grid {
    background-color: var(--ds-block-bg, var(--ds-white));
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 60px var(--ds-space-6);
}

.ds-content-split-image-grid__container {
    max-width: var(--ds-container-xl);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-space-16);
    align-items: stretch;
}

@media (max-width: 968px) {
    .ds-content-split-image-grid__container {
        grid-template-columns: 1fr;
        gap: var(--ds-space-10);
    }
}

.ds-content-split-image-grid--content-right .ds-content-split-image-grid__container {
    direction: rtl;
}

.ds-content-split-image-grid--content-right .ds-content-split-image-grid__container > * {
    direction: ltr;
}

/* Content Side */
.ds-content-split-image-grid__content {
    max-width: 540px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ds-content-split-image-grid--content-left .ds-content-split-image-grid__content {
    margin-right: auto;
}

.ds-content-split-image-grid--content-right .ds-content-split-image-grid__content {
    margin-left: auto;
}
/* Fix prehook width in flex container */
.ds-content-split-image-grid__content .ds-prehook {
    align-self: flex-start;
}

/* ── Read-More: body centering & spacing ── */
/* Body content is inside ds-read-more-wrap for read-more collapse support.
   When wrap has display:contents (default), body acts as child of container.
   When wrap has ds-read-more-active (JS), body is inside a block element.
   These rules ensure centering works in both states. */

.ds-features-grid-dark .ds-features-grid-dark__body,
.ds-features-grid-image .ds-features-grid-image__body,
.ds-stats-bar .ds-stats-bar__body,
.ds-how-it-works-steps .ds-how-it-works-steps__body,
.ds-content-three-column .ds-content-three-column__intro {
    text-align: center;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: var(--ds-space-12, 24px);
}

@media (max-width: 768px) {
    .ds-features-grid-dark .ds-features-grid-dark__body,
    .ds-features-grid-image .ds-features-grid-image__body,
    .ds-stats-bar .ds-stats-bar__body,
    .ds-how-it-works-steps .ds-how-it-works-steps__body,
    .ds-content-three-column .ds-content-three-column__intro {
        margin-bottom: 25px;
    }
}

.ds-benefits-risks .ds-benefits-risks__body {
    text-align: center;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: var(--ds-space-12, 24px);
}

/* features-tabbed body centering (inside read-more-wrap) */
.ds-features-tabbed .ds-features-tabbed__body {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

/* gallery body centering (inside read-more-wrap) */
.ds-gallery-block .ds-gallery-block__body {
    text-align: center;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: var(--ds-space-12, 24px);
}

/* faq-accordion body centering (inside read-more-wrap) */
.ds-faq-accordion .ds-faq-accordion__body {
    text-align: center;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: var(--ds-space-6, 24px);
}




.ds-content-split-image-grid__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 2.5rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    margin: 0 0 var(--ds-space-6) 0;
    color: var(--ds-block-heading-color, inherit);
}



/* Media Side - Staggered Layout */
.ds-content-split-image-grid__media {
    display: flex;
    align-items: stretch;
    height: 100%;
}

.ds-content-split-image-grid__staggered {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-space-4);
    width: 100%;
    height: 100%;
    padding: 20px 0;
}

.ds-content-split-image-grid__column {
    display: flex;
    flex-direction: column;
    gap: var(--ds-space-4);
}

/* Left column starts higher, right column is offset down for stagger effect */
.ds-content-split-image-grid__column--left {
    margin-top: 0;
    padding-bottom: 40px;
}

.ds-content-split-image-grid__column--right {
    margin-top: 40px;
    padding-bottom: 0;
}

/* When content is on right, reverse the stagger */
.ds-content-split-image-grid--content-right .ds-content-split-image-grid__column--left {
    margin-top: 40px;
    padding-bottom: 0;
}

.ds-content-split-image-grid--content-right .ds-content-split-image-grid__column--right {
    margin-top: 0;
    padding-bottom: 40px;
}

/* Image cells - flex-grow to fill available space */
.ds-content-split-image-grid__image-cell {
    border-radius: var(--ds-image-radius, var(--ds-radius-lg));
    overflow: hidden;
    flex: 1 1 auto;
    min-height: 150px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

.ds-content-split-image-grid__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ---- TILT EFFECT (when enabled) ---- */
.ds-content-split-image-grid--tilted .ds-content-split-image-grid__image-cell {
    transform: rotate(-2deg);
}

.ds-content-split-image-grid--tilted .ds-content-split-image-grid__column--right .ds-content-split-image-grid__image-cell {
    transform: rotate(2deg);
}

.ds-content-split-image-grid--tilted .ds-content-split-image-grid__image-cell:hover {
    transform: rotate(0deg) scale(1.02);
}

.ds-content-split-image-grid--tilted .ds-content-split-image-grid__column--right .ds-content-split-image-grid__image-cell:hover {
    transform: rotate(0deg) scale(1.02);
}

.ds-content-split-image-grid--tilted .ds-content-split-image-grid__testimonial {
    transform: rotate(2deg);
}

.ds-content-split-image-grid--tilted .ds-content-split-image-grid__testimonial:hover {
    transform: rotate(0deg);
}

/* Testimonial in grid */
.ds-content-split-image-grid__testimonial {
    background: var(--ds-testimonial-bg, #f5f5f5);
    color: var(--ds-testimonial-text-color, #333333);
    padding: 30px;
    border-radius: var(--ds-image-radius, var(--ds-radius-lg));
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 0 0 auto;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease;
}

.ds-content-split-image-grid__testimonial .ds-testimonial-quote-icon {
    color: var(--ds-testimonial-quote-color, #cccccc);
    margin-bottom: var(--ds-space-3, 12px);
}

.ds-content-split-image-grid__testimonial .ds-testimonial-quote-icon svg {
    width: 32px;
    height: 32px;
}

.ds-content-split-image-grid__testimonial .ds-testimonial-quote-text {
    font-family: var(--ds-font-heading, 'Playfair Display', Georgia, serif);
    font-style: italic;
    font-size: var(--ds-text-base, 1rem);
    line-height: 1.5;
    margin: 0 0 var(--ds-space-4, 16px) 0;
    color: var(--ds-testimonial-text-color, #333333);
}

.ds-content-split-image-grid__testimonial .ds-testimonial-author {
    display: flex;
    align-items: center;
    gap: var(--ds-space-3, 12px);
}

.ds-content-split-image-grid__testimonial .ds-testimonial-author-image,
.ds-content-split-image-grid__testimonial .ds-testimonial-author-initial {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.ds-content-split-image-grid__testimonial .ds-testimonial-author-initial {
    background: var(--ds-testimonial-initial-bg, #b8977e);
    color: var(--ds-testimonial-initial-color, #ffffff);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    font-weight: 700;
}

.ds-content-split-image-grid__testimonial .ds-testimonial-avatar {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ds-content-split-image-grid__testimonial .ds-testimonial-author-info {
    display: flex;
    flex-direction: column;
}

.ds-content-split-image-grid__testimonial .ds-testimonial-author-name {
    font-size: var(--ds-text-base, 1rem);
    font-weight: 600;
    color: var(--ds-testimonial-author-name-color, var(--ds-testimonial-text-color, #333333));
}

.ds-content-split-image-grid__testimonial .ds-testimonial-author-title {
    font-size: var(--ds-text-sm, 0.875rem);
    color: var(--ds-testimonial-author-title-color, var(--ds-testimonial-text-color, #666666));
}

/* Testimonial style variants */
.ds-content-split-image-grid__testimonial.ds-testimonial-style--rounded {
    border-radius: var(--ds-image-radius, var(--ds-radius-lg));
}

.ds-content-split-image-grid__testimonial.ds-testimonial-style--rectangle {
    border-radius: 0;
}

.ds-content-split-image-grid__testimonial.ds-testimonial-style--rounded-outline {
    border-radius: var(--ds-image-radius, var(--ds-radius-lg));
    background: transparent;
    border: 2px solid var(--ds-testimonial-bg, rgba(0,0,0,0.1));
}

.ds-content-split-image-grid__testimonial.ds-testimonial-style--rectangle-outline {
    border-radius: 0;
    background: transparent;
    border: 2px solid var(--ds-testimonial-bg, rgba(0,0,0,0.1));
}

.ds-content-split-image-grid__testimonial.ds-testimonial-style--custom {
    border-radius: var(--ds-image-radius, var(--ds-testimonial-custom-radius, 12px));
}

/* Mobile responsive */
@media (max-width: 767px) {
    .ds-content-split-image-grid__staggered {
        grid-template-columns: 1fr;
    }

    .ds-content-split-image-grid__column--left,
    .ds-content-split-image-grid__column--right,
    .ds-content-split-image-grid--content-right .ds-content-split-image-grid__column--left,
    .ds-content-split-image-grid--content-right .ds-content-split-image-grid__column--right {
        margin-top: 0;
    }

    .ds-content-split-image-grid__image-cell,
    .ds-content-split-image-grid__testimonial {
        min-height: 200px;
    }
}

/* Mobile/Tablet centering for content-split-image-grid */
@media (max-width: 968px) {
    /* Center content except lists */
    .ds-content-split-image-grid__content {
        text-align: center;
        align-items: center;
    }

    /* Keep lists left-aligned */
    .ds-content-split-image-grid__list {
        text-align: left;
    }

    /* Center prehook */
    .ds-content-split-image-grid__content .ds-prehook {
        align-self: center;
    }

    /* Center buttons */
    .ds-content-split-image-grid__buttons {
        display: flex;
        justify-content: center;
        width: 100%;
    }
/* Space between read-more toggle and CTA buttons */
.ds-content-split-image-grid__content .ds-read-more-toggle {
    margin-bottom: 24px !important;
}

.ds-content-split-image-grid__content .ds-read-more-toggle + .ds-content-split-image-grid__buttons {
    margin-top: 24px;
}


    .ds-content-split-image-grid__buttons .ds-btn-group {
        justify-content: center;
    }

    /* Testimonial - quote icon centered, quote centered, author block centered with left-aligned content */
    .ds-content-split-image-grid__testimonial .ds-testimonial-quote-icon {
        text-align: center;
    }

    .ds-content-split-image-grid__testimonial .ds-testimonial-quote-text {
        text-align: center;
    }

    .ds-content-split-image-grid__testimonial .ds-testimonial-author {
        justify-content: center;
    }

    .ds-content-split-image-grid__testimonial .ds-testimonial-author-info {
        text-align: left;
    }
}

/* Legacy support - old 2x2 grid classes */
.ds-content-split-image-grid__images {
    display: none;
}

.ds-content-split-image-grid__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ds-space-4);
}

/* ================================================
   CONTENT THREE-COLUMN COMPLEX
   ================================================ */

.ds-content-three-column {
    background-color: var(--ds-block-bg, var(--ds-grey-50));
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 60px var(--ds-space-6);
}

.ds-content-three-column__container {
    max-width: var(--ds-container-xl);
    margin: 0 auto;
}

.ds-content-three-column__header {
    text-align: center;
    max-width: 1000px;
    margin: 0 auto;
}

.ds-content-three-column__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 2.5rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    margin: 0 0 var(--ds-space-4) 0;

    color: var(--ds-block-heading-color, inherit);
}

@media (max-width: 768px) {
    .ds-content-three-column__heading {
        font-size: var(--ds-block-heading-size-mobile, 2rem);
    }
}

.ds-content-three-column__intro {
    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
    font-size: var(--ds-block-body-size, inherit);
    line-height: var(--ds-block-body-line-height, inherit);
}

.ds-content-three-column__intro p {
    font-family: var(--ds-block-body-font, inherit) !important;
    font-weight: var(--ds-block-body-weight, 400) !important;
    font-size: var(--ds-block-body-size, 18px) !important;
    line-height: var(--ds-block-body-line-height, 1.6) !important;
    color: var(--ds-block-body-color, inherit) !important;
}

/* Three Column Grid */
.ds-content-three-column__grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--ds-space-10);
    align-items: start;
}

@media (max-width: 968px) {
    .ds-content-three-column__grid {
        grid-template-columns: 1fr 1fr;
    }

    .ds-content-three-column__col--text {
        grid-column: span 2;
    }
}

@media (max-width: 600px) {
    .ds-content-three-column__grid {
        grid-template-columns: 1fr;
    }

    .ds-content-three-column__col--text {
        grid-column: span 1;
    }
}

.ds-content-three-column__body {
    margin-bottom: 0;

    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
    font-size: var(--ds-block-body-size, inherit);
    line-height: var(--ds-block-body-line-height, inherit);
}

/* Image Stack */
.ds-content-three-column__image-stack {
    display: flex;
    flex-direction: column;
    gap: var(--ds-space-4);
}

.ds-content-three-column__image-wrapper {
    border-radius: var(--ds-radius-lg);
    overflow: hidden;
}

.ds-content-three-column__image {
    width: 100%;
    height: auto;
    display: block;
}

/* Stats Column */
.ds-content-three-column__stats {
    display: flex;
    flex-direction: column;
    gap: var(--ds-space-6);
}

.ds-content-three-column__stat {
    padding: var(--ds-space-4);
    background: var(--ds-white);
    border-radius: var(--ds-radius-lg);
    box-shadow: var(--ds-shadow-sm);
}

.ds-content-three-column__stat-number {
    display: block;
    font-family: var(--ds-font-heading);
    font-size: var(--ds-text-3xl);
    font-weight: var(--ds-weight-bold);
    line-height: 1;
    margin-bottom: var(--ds-space-1);
}

.ds-content-three-column__stat-label {
    font-size: var(--ds-text-sm);
    opacity: 0.7;
}

/* ================================================
   CONTENT SPLIT FULL-BLEED
   ================================================ */

.ds-content-split-fullbleed {
    padding: 0;
    background-color: var(--ds-block-bg, var(--ds-white));
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
}

.ds-content-split-fullbleed__wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 600px;
}

@media (max-width: 968px) {
    .ds-content-split-fullbleed__wrapper {
        grid-template-columns: 1fr;
        min-height: auto;
    }
}

.ds-content-split-fullbleed--image-left .ds-content-split-fullbleed__wrapper {
    direction: rtl;
}

.ds-content-split-fullbleed--image-left .ds-content-split-fullbleed__wrapper > * {
    direction: ltr;
}

/* Content Side */
.ds-content-split-fullbleed__content {
    display: flex;
    align-items: center;
    padding: 60px 30px 60px 100px;
}

@media (max-width: 968px) {
    .ds-content-split-fullbleed__content {
        padding: 60px 24px;
    }
}

.ds-content-split-fullbleed__inner {
    max-width: 540px;
}

.ds-content-split-fullbleed--image-right .ds-content-split-fullbleed__inner {
    margin-left: auto;
}

.ds-content-split-fullbleed--image-left .ds-content-split-fullbleed__inner {
    margin-right: auto;
}

.ds-content-split-fullbleed__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 2.5rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    margin: 0 0 var(--ds-space-6) 0;

    color: var(--ds-block-heading-color, inherit);
}

@media (max-width: 768px) {
    .ds-content-split-fullbleed__heading {
        font-size: var(--ds-block-heading-size-mobile, 2rem);
    }
}

.ds-content-split-fullbleed__body {
    margin-bottom: 0;

    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
    font-size: var(--ds-block-body-size, inherit);
    line-height: var(--ds-block-body-line-height, inherit);
}

.ds-content-split-fullbleed__buttons {
    margin-top: var(--ds-space-6);
}

/* Image Side (Full-Bleed) */
.ds-content-split-fullbleed__image-wrapper {
    position: relative;
    overflow: hidden;
}

@media (max-width: 968px) {
    .ds-content-split-fullbleed__image-wrapper {
        min-height: 400px;
    }
}

.ds-content-split-fullbleed__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}

/* Content position - PHP outputs --content-left/right, CSS needs to support both patterns */
.ds-content-split-fullbleed--content-right .ds-content-split-fullbleed__wrapper {
    direction: rtl;
}

.ds-content-split-fullbleed--content-right .ds-content-split-fullbleed__wrapper > * {
    direction: ltr;
}

.ds-content-split-fullbleed--content-left .ds-content-split-fullbleed__inner {
    margin-left: auto;
}

.ds-content-split-fullbleed--content-right .ds-content-split-fullbleed__content {
    padding: 60px 100px 60px 30px;
}

.ds-content-split-fullbleed--content-right .ds-content-split-fullbleed__inner {
    margin-right: auto;
}

/* List styling */
.ds-content-split-fullbleed__list {
    margin: 0 0 var(--ds-space-6) 0;
}

/* Additional content */
.ds-content-split-fullbleed__additional-content {
    margin: var(--ds-space-6) 0;
    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    font-size: var(--ds-block-body-size, inherit);
    line-height: var(--ds-block-body-line-height, inherit);
}

/* Overlay for background images */
.ds-content-split-fullbleed__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 1;
}

/* Mobile/Tablet stack order and centering */
@media (max-width: 968px) {
    /* Reset direction trick on mobile so CSS order works properly */
    .ds-content-split-fullbleed--content-right .ds-content-split-fullbleed__wrapper,
    .ds-content-split-fullbleed--image-left .ds-content-split-fullbleed__wrapper {
        direction: ltr;
    }

    /* Equal padding on mobile for all content positions */
    .ds-content-split-fullbleed__content,
    .ds-content-split-fullbleed--content-right .ds-content-split-fullbleed__content,
    .ds-content-split-fullbleed--content-left .ds-content-split-fullbleed__content,
    .ds-content-split-fullbleed--image-left .ds-content-split-fullbleed__content,
    .ds-content-split-fullbleed--image-right .ds-content-split-fullbleed__content {
        padding: 40px 24px;
    }

    /* Center content on mobile */
    .ds-content-split-fullbleed__inner {
        max-width: 100%;
        margin: 0 auto;
        text-align: center;
    }

    /* Keep lists left-aligned */
    .ds-content-split-fullbleed__list {
        text-align: left;
    }

    /* Center prehook */
    .ds-content-split-fullbleed .ds-prehook {
        display: inline-flex;
        margin-left: auto;
        margin-right: auto;
    }

    /* Center buttons */
    .ds-content-split-fullbleed__buttons {
        display: flex;
        justify-content: center;
    }

    .ds-content-split-fullbleed__buttons .ds-btn-group {
        justify-content: center;
    }

    /* Image first - image shows before content */
    .ds-content-split-fullbleed--mobile-image-first .ds-content-split-fullbleed__content {
        order: 2;
    }

    .ds-content-split-fullbleed--mobile-image-first .ds-content-split-fullbleed__image-wrapper {
        order: 1;
    }

    /* Content first - content shows before image */
    .ds-content-split-fullbleed--mobile-content-first .ds-content-split-fullbleed__content {
        order: 1;
    }

    .ds-content-split-fullbleed--mobile-content-first .ds-content-split-fullbleed__image-wrapper {
        order: 2;
    }

    /* Read more button full width on mobile */
    .ds-content-split-fullbleed .ds-read-more-toggle {
        display: block;
        width: 100%;
    }
}

/* ================================================
   LOGO BAR (Updated/Enhanced)
   ================================================ */

.ds-logo-bar__heading--small {
    font-size: var(--ds-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--ds-tracking-wide);
}

.ds-logo-bar__heading--large {
    font-size: var(--ds-text-base);
}

.ds-logo-bar__logo-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ds-logo-bar__link {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.ds-logo-bar__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--ds-space-4) var(--ds-space-6);
    background: var(--ds-grey-200);
    border-radius: var(--ds-radius-md);
    font-size: var(--ds-text-sm);
    color: var(--ds-grey-500);
    white-space: nowrap;
}

/* Grayscale style */
.ds-logo-bar--style-grayscale .ds-logo-bar__logo {
    filter: grayscale(100%);
    opacity: 0.6;
    transition: filter 0.2s ease, opacity 0.2s ease;
}

.ds-logo-bar--style-grayscale .ds-logo-bar__logo-wrapper:hover .ds-logo-bar__logo {
    filter: grayscale(0%);
    opacity: 1;
}

/* ---- Proportional logo sizing ---- */
/* Height-only constraint so logos scale proportionately without cutoff */
.ds-logo-bar__logo {
    height: 100%;
    width: auto;
    object-fit: contain;
}

.ds-logo-bar--size-small .ds-logo-bar__logo-wrapper {
    height: 32px;
}

.ds-logo-bar--size-medium .ds-logo-bar__logo-wrapper {
    height: 40px;
}

.ds-logo-bar--size-large .ds-logo-bar__logo-wrapper {
    height: 56px;
}

/* ---- Static mode: flexbox centered wrap ---- */
.ds-logo-bar--static .ds-logo-bar__logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--ds-space-8);
}

/* ---- Scroll (marquee) mode ---- */
.ds-logo-bar--scroll .ds-logo-bar__marquee {
    overflow: hidden;
    width: 100%;
    -webkit-mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
    mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
}

.ds-logo-bar--scroll .ds-logo-bar__marquee-track {
    display: flex;
    width: max-content;
    animation: ds-logo-marquee var(--ds-logo-scroll-duration, 35s) linear infinite;
}

.ds-logo-bar--scroll .ds-logo-bar__marquee-track:hover {
    animation-play-state: paused;
}

.ds-logo-bar--scroll .ds-logo-bar__logos {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: var(--ds-space-10, 40px);
    padding-right: var(--ds-space-10, 40px);
}

@keyframes ds-logo-marquee {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* Reduce motion: stop animation */
@media (prefers-reduced-motion: reduce) {
    .ds-logo-bar--scroll .ds-logo-bar__marquee-track {
        animation: none;
    }
    .ds-logo-bar--scroll .ds-logo-bar__logos {
        flex-wrap: wrap;
        justify-content: center;
    }
}

/* ================================================
   TESTIMONIAL CARD
   ================================================ */

.ds-testimonial-card {
    position: relative;
    background-color: var(--ds-block-bg, var(--ds-grey-50));
    background-image: var(--ds-block-bg-image);
    background-size: cover;
    background-position: center;
    padding: 60px var(--ds-space-6);
}

.ds-testimonial-card__overlay {
    position: absolute;
    inset: 0;
    background-color: var(--ds-block-overlay-color, rgba(0, 0, 0, 0.5));
    opacity: var(--ds-block-overlay-opacity, 0.5);
    z-index: 0;
}

.ds-testimonial-card__container {
    position: relative;
    z-index: 1;
    max-width: var(--ds-container-md);
    margin: 0 auto;
}

.ds-testimonial-card__header {
    text-align: center;
    margin-bottom: var(--ds-space-10);
}

.ds-testimonial-card__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 2.5rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    margin: 0;

    color: var(--ds-block-heading-color, inherit);
}

@media (max-width: 768px) {
    .ds-testimonial-card__heading {
        font-size: var(--ds-block-heading-size-mobile, 2rem);
    }
}

/* Card */
.ds-testimonial-card__card {
    background: var(--ds-card-bg, var(--ds-white));
    padding: var(--ds-space-10) var(--ds-space-8);
    border-radius: var(--ds-radius-xl);
    text-align: center;
}

.ds-testimonial-card--style-elevated .ds-testimonial-card__card {
    box-shadow: var(--ds-shadow-xl);
}

.ds-testimonial-card--style-bordered .ds-testimonial-card__card {
    border: 1px solid var(--ds-grey-200);
    box-shadow: none;
}

.ds-testimonial-card--style-minimal .ds-testimonial-card__card {
    background: transparent;
    box-shadow: none;
    padding: var(--ds-space-6);
}

.ds-testimonial-card__rating {
    margin-bottom: 0;
}

.ds-testimonial-card__quote {
    font-family: var(--ds-block-body-font, inherit);
    font-size: var(--ds-block-body-size, var(--ds-text-xl));
    font-weight: var(--ds-block-body-weight, inherit);
    font-style: italic;
    line-height: var(--ds-block-body-line-height, var(--ds-leading-relaxed));
    color: var(--ds-block-body-color, inherit);
    margin: 0 0 var(--ds-space-8) 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 1024px) {
    .ds-testimonial-card__quote {
        font-size: var(--ds-block-body-size-tablet, var(--ds-block-body-size, var(--ds-text-xl)));
    }
}

@media (max-width: 768px) {
    .ds-testimonial-card__quote {
        font-size: var(--ds-block-body-size-mobile, var(--ds-block-body-size-tablet, var(--ds-block-body-size, var(--ds-text-lg))));
    }
}

.ds-testimonial-card__author {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--ds-space-4);
}

.ds-testimonial-card__author-image {
    flex-shrink: 0;
}

.ds-testimonial-card__avatar {
    width: 56px;
    height: 56px;
    border-radius: var(--ds-radius-full);
    object-fit: cover;
}

.ds-testimonial-card__avatar-placeholder {
    width: 56px;
    height: 56px;
    border-radius: var(--ds-radius-full);
    background: var(--ds-grey-200);
}

.ds-testimonial-card__author-info {
    display: flex;
    flex-direction: column;
    text-align: left;
}

.ds-testimonial-card__author-name {
    font-weight: var(--ds-weight-semibold);
    margin-bottom: var(--ds-space-1);
}

.ds-testimonial-card__author-title {
    font-size: var(--ds-text-sm);
    opacity: 0.7;
}

.ds-testimonial-card__buttons {
    margin-top: var(--ds-space-8);
    text-align: center;
}

/* ── Testimonial Carousel ────────────────────── */

/* Read-more button spacing inside testimonial card */
.ds-testimonial-card__card .ds-read-more-toggle {
    margin-bottom: 20px;
}

/* Read-more fade inside card matches card background, not block background */
.ds-testimonial-card__card .ds-read-more-wrap.is-collapsed::after {
    background: linear-gradient(to bottom, transparent, var(--ds-card-bg, var(--ds-white)));
}
.ds-testimonial-card__carousel {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--ds-space-4);
}

.ds-testimonial-card__track {
    flex: 1;
    overflow: visible;
    min-height: 0;
}

.ds-testimonial-card__track-inner {
    position: relative;
    overflow: hidden;
    padding: 8px;
    margin: -8px;
}

.ds-testimonial-card__slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease;
    pointer-events: none;
}

.ds-testimonial-card__slide.is-active {
    position: relative;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* Arrows */
.ds-testimonial-card__arrow {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: var(--ds-radius-full);
    border: 1px solid var(--ds-arrow-border, var(--ds-grey-300, #d1d5db));
    background: var(--ds-arrow-bg, var(--ds-white, #ffffff));
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    z-index: 2;
    padding: 0;
}

.ds-testimonial-card__arrow:hover {
    background: var(--ds-arrow-bg-hover, var(--ds-grey-100, #f3f4f6));
    border-color: var(--ds-arrow-border-hover, var(--ds-grey-400, #9ca3af));
}

.ds-testimonial-card__arrow svg {
    width: 20px;
    height: 20px;
    color: var(--ds-arrow-color, var(--ds-grey-600, #4b5563));
}

/* Dots */
.ds-testimonial-card__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: var(--ds-space-6);
}

.ds-testimonial-card__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: none;
    background: var(--ds-grey-300, #d1d5db);
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    min-width: 10px;
    transition: background 0.3s ease, transform 0.3s ease;
}

.ds-testimonial-card__dot.is-active {
    background: var(--ds-grey-700, #374151);
    transform: scale(1.2);
}

.ds-testimonial-card__dot:hover {
    background: var(--ds-grey-500, #6b7280);
}

/* Light-on-dark arrow/dot variants */
.ds-typography-light-on-dark .ds-testimonial-card__arrow {
    border-color: rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.1);
}
.ds-typography-light-on-dark .ds-testimonial-card__arrow:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.5);
}
.ds-typography-light-on-dark .ds-testimonial-card__arrow svg {
    color: #ffffff;
}
.ds-typography-light-on-dark .ds-testimonial-card__dot {
    background: rgba(255, 255, 255, 0.3);
}
.ds-typography-light-on-dark .ds-testimonial-card__dot.is-active {
    background: #ffffff;
}
.ds-typography-light-on-dark .ds-testimonial-card__dot:hover {
    background: rgba(255, 255, 255, 0.6);
}

/* Avatar initial circle (global fallback) */
.ds-testimonial-card__avatar-initial {
    width: 56px;
    height: 56px;
    border-radius: var(--ds-radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 600;
    line-height: 1;
}

/* Responsive: stack arrows below on mobile */
@media (max-width: 767px) {
    .ds-testimonial-card__carousel {
        flex-direction: column;
    }
    .ds-testimonial-card__arrow {
        display: none;
    }
    .ds-testimonial-card__dots {
        margin-top: var(--ds-space-4);
    }
}

/* ================================================
   VIDEO LIGHTBOX
   ================================================ */

.ds-video-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.ds-video-lightbox.is-open {
    opacity: 1;
    visibility: visible;
}

.ds-video-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
    cursor: pointer;
}

.ds-video-lightbox__container {
    position: relative;
    width: 90vw;
    max-width: 1200px;
    aspect-ratio: 16 / 9;
    z-index: 1;
}

.ds-video-lightbox__close {
    position: absolute;
    top: -50px;
    right: 0;
    background: transparent;
    border: none;
    color: #fff;
    cursor: pointer;
    padding: 10px;
    transition: transform 0.2s ease;
    z-index: 10;
}

.ds-video-lightbox__close:hover {
    transform: scale(1.1);
}

.ds-video-lightbox__content {
    width: 100%;
    height: 100%;
    background: #000;
    border-radius: 8px;
    overflow: hidden;
}

.ds-video-lightbox__content iframe,
.ds-video-lightbox__content video {
    width: 100%;
    height: 100%;
    border: none;
}

@media (max-width: 768px) {
    .ds-video-lightbox__container {
        width: 95vw;
    }

    .ds-video-lightbox__close {
        top: -40px;
        right: -5px;
    }
}


/* ========================================
   Additional Content Sections
   ======================================== */

/* Base additional content styling */
/* Additional Content - inherits body typography */
/* Note: No margin-top since the preceding element (list or body) already has margin-bottom */
[class*="__additional-content"] {
    margin-top: 0;
    margin-bottom: 0;
    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
    font-size: var(--ds-block-body-size, inherit);
    line-height: var(--ds-block-body-line-height, 1.6);
}

[class*="__additional-content"] > *:first-child {
    margin-top: 0;
}

[class*="__additional-content"] > *:last-child {
    margin-bottom: 0;
}

[class*="__additional-content"] p {
    margin-bottom: var(--ds-space-4);
    color: inherit;
    font-family: inherit;
    font-weight: inherit;
    font-size: inherit;
    line-height: inherit;
}

[class*="__additional-content"] ul,
[class*="__additional-content"] ol {
    margin-bottom: var(--ds-space-4);
    padding-left: var(--ds-space-6);
    color: inherit;
    font-family: inherit;
    font-size: inherit;
}

[class*="__additional-content"] li {
    margin-bottom: var(--ds-space-2);
}

[class*="__additional-content"] a {
    color: inherit;
    text-decoration: underline;
}

[class*="__additional-content"] a:hover {
    opacity: 0.8;
}

/* Headings in additional content */
[class*="__additional-content"] h1,
[class*="__additional-content"] h2,
[class*="__additional-content"] h3,
[class*="__additional-content"] h4,
[class*="__additional-content"] h5,
[class*="__additional-content"] h6 {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, 600);
    color: var(--ds-block-heading-color, inherit);
    line-height: var(--ds-block-heading-line-height, 1.2);
    margin-top: var(--ds-space-6);
    margin-bottom: var(--ds-space-4);
}

[class*="__additional-content"] h1:first-child,
[class*="__additional-content"] h2:first-child,
[class*="__additional-content"] h3:first-child,
[class*="__additional-content"] h4:first-child,
[class*="__additional-content"] h5:first-child,
[class*="__additional-content"] h6:first-child {
    margin-top: 0;
}


/* ================================================
   HOW IT WORKS STEPS - Interactive numbered steps
   ================================================ */

.ds-how-it-works-steps {
    background-color: var(--ds-block-bg, var(--ds-white));
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    padding: 60px var(--ds-space-6);
}

.ds-how-it-works-steps__container {
    max-width: var(--ds-container-xl);
    margin: 0 auto;
}

/* Header */
.ds-how-it-works-steps__header {
    text-align: center;
    max-width: 1000px;
    margin: 0 auto;
}

.ds-how-it-works-steps__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-normal));
    font-size: var(--ds-block-heading-size-desktop, 2.75rem);
    line-height: var(--ds-block-heading-line-height, var(--ds-leading-tight));
    margin: 0 0 var(--ds-space-4) 0;
    color: var(--ds-block-heading-color, inherit);
}

@media (max-width: 768px) {
    .ds-how-it-works-steps {
        padding-top: 40px;
        padding-bottom: 40px;
    }
    .ds-how-it-works-steps__heading {
        font-size: var(--ds-block-heading-size-mobile, 2rem);
    }
}

.ds-how-it-works-steps__body {
    font-size: var(--ds-text-lg);
    opacity: 0.8;
    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
    line-height: var(--ds-block-body-line-height, inherit);
}

/* Layout */
.ds-how-it-works-steps__layout {
    margin-bottom: var(--ds-space-10);
}

/* Mobile stack: visible only on small screens */
.ds-how-it-works-steps__mobile-stack {
    display: block;
}

.ds-how-it-works-steps__desktop-split {
    display: none;
}

@media (min-width: 969px) {
    .ds-how-it-works-steps__mobile-stack {
        display: none;
    }

    .ds-how-it-works-steps__desktop-split {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--ds-space-10);
        align-items: start;
    }

    .ds-how-it-works-steps__step-content {
        align-items: flex-start;
        text-align: left;
    }
}

/* --- Mobile Stack Items --- */
.ds-how-it-works-steps__mobile-item {
    margin-bottom: var(--ds-space-10);
    text-align: center;
}

.ds-how-it-works-steps__mobile-item:last-child {
    margin-bottom: 0;
}

.ds-how-it-works-steps__mobile-image {
    margin-bottom: var(--ds-space-5);
    border-radius: var(--ds-radius-xl);
    overflow: hidden;
    box-shadow: var(--ds-shadow-lg);
}

.ds-how-it-works-steps__mobile-image .ds-how-it-works-steps__preview-img {
    width: 100%;
    height: auto;
    display: block;
    position: static;
}

.ds-how-it-works-steps__step-content {
    display: flex;
    flex-direction: column;
    gap: var(--ds-space-2);
    align-items: center;
    text-align: center;
}

/* --- Desktop Split: Steps List (Left) --- */
.ds-how-it-works-steps__steps-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ds-how-it-works-steps__step {
    display: block;
    width: 100%;
    padding: var(--ds-space-6) var(--ds-space-6);
    border: none;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
    border-radius: var(--ds-radius-lg);
    font-family: inherit;
    color: inherit;
    position: relative;
    margin-bottom: var(--ds-space-2);
}

.ds-how-it-works-steps__step:hover {
    background-color: var(--ds-step-active-bg, var(--ds-grey-50, #f9fafb));
}

.ds-how-it-works-steps__step.is-active {
    background-color: var(--ds-step-active-bg, var(--ds-grey-50, #f9fafb));
}

/* Progress bar at bottom of active step */
.ds-how-it-works-steps__step::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: var(--ds-space-6);
    right: var(--ds-space-6);
    height: 3px;
    background-color: var(--ds-step-active-bar, var(--ds-primary, #3b82f6));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s ease;
    border-radius: 2px;
}

.ds-how-it-works-steps__step.is-active::after {
    transform: scaleX(1);
}

.ds-how-it-works-steps__step-inner {
    display: flex;
    gap: var(--ds-space-4);
    align-items: flex-start;
}

/* Icon - minimal style without background */
.ds-how-it-works-steps__step-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    min-width: 24px;
    color: var(--ds-step-icon-color, var(--ds-grey-500, #6b7280));
    transition: color 0.3s ease;
    margin-top: 2px;
}

.ds-how-it-works-steps__step-icon svg {
    width: 24px;
    height: 24px;
}

.ds-how-it-works-steps__step.is-active .ds-how-it-works-steps__step-icon {
    color: var(--ds-step-active-bar, var(--ds-primary, #3b82f6));
}

/* Custom icon image */
.ds-how-it-works-steps__custom-icon {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.ds-how-it-works-steps__step-text {
    flex: 1;
    min-width: 0;
}

/* Step Title */
.ds-how-it-works-steps__step-title {
    font-family: var(--ds-font-heading, inherit);
    font-size: var(--ds-step-title-size, var(--ds-text-lg, 1.125rem));
    font-weight: var(--ds-weight-semibold, 600);
    line-height: 1.4;
    margin: 0;
    color: var(--ds-step-title-color, var(--ds-block-heading-color, inherit));
}

/* Step Description - collapsible on desktop */
.ds-how-it-works-steps__step-desc-wrap {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.3s ease;
    opacity: 0;
    margin-top: 0;
}

.ds-how-it-works-steps__step.is-active .ds-how-it-works-steps__step-desc-wrap {
    max-height: 200px;
    opacity: 1;
    margin-top: var(--ds-space-3);
}

.ds-how-it-works-steps__step-desc {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-weight: var(--ds-block-body-weight, 400);
    font-size: var(--ds-block-body-size, var(--ds-text-base, 1rem));
    line-height: var(--ds-block-body-line-height, 1.6);
    margin: 0;
    color: var(--ds-step-desc-color, var(--ds-block-body-color, var(--ds-grey-600, #4b5563)));
}

/* --- Desktop Split: Preview (Right) --- */
.ds-how-it-works-steps__preview {
    position: relative;
    height: var(--ds-preview-height, 400px);
    border-radius: var(--ds-preview-radius, var(--ds-radius-xl));
    overflow: hidden;
    box-shadow: var(--ds-shadow-xl);
    background-color: var(--ds-grey-100, #f3f4f6);
}

.ds-how-it-works-steps__preview-panel {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
}

.ds-how-it-works-steps__preview-panel.is-active {
    opacity: 1;
    pointer-events: auto;
}

.ds-how-it-works-steps__preview-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
}

/* Overlay */
.ds-how-it-works-steps__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--ds-block-overlay-color, rgba(0, 0, 0, 0.5));
    opacity: var(--ds-block-overlay-opacity, 0.5);
    z-index: 1;
}

.ds-how-it-works-steps__container {
    position: relative;
    z-index: 2;
}

/* Buttons */
.ds-how-it-works-steps .ds-read-more-toggle {
    margin-bottom: 20px;
}

.ds-how-it-works-steps__buttons {
    text-align: center;
}

/* Responsive adjustments */
@media (max-width: 600px) {
    .ds-how-it-works-steps__mobile-image {
        border-radius: var(--ds-preview-radius, var(--ds-radius-lg));
    }

    .ds-how-it-works-steps__step-title {
        font-size: var(--ds-step-title-size, var(--ds-text-base, 1rem));
    }
}

/* --- Modifier: Image on Left --- */
@media (min-width: 969px) {
    .ds-how-it-works-steps--image-left .ds-how-it-works-steps__desktop-split {
        grid-template-columns: 1fr 1fr;
    }

    .ds-how-it-works-steps--image-left .ds-how-it-works-steps__steps-list {
        order: 2;
    }

    .ds-how-it-works-steps--image-left .ds-how-it-works-steps__preview {
        order: 1;
    }
}

/* --- Modifier: Image Match Content Height --- */
@media (min-width: 969px) {
    .ds-how-it-works-steps--image-match-height .ds-how-it-works-steps__desktop-split {
        align-items: stretch;
    }

    .ds-how-it-works-steps--image-match-height .ds-how-it-works-steps__preview {
        height: auto;
        min-height: 300px;
    }
}

/* --- Modifier: Circle Image --- */
.ds-how-it-works-steps--image-circle .ds-how-it-works-steps__preview {
    aspect-ratio: 1;
    max-width: 500px;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .ds-how-it-works-steps .ds-read-more-toggle {
        display: block;
        text-align: center;
        width: 100%;
    }
}

.ds-how-it-works-steps--image-circle .ds-how-it-works-steps__mobile-image {
    aspect-ratio: 1;
    max-width: 300px;
    margin: 0 auto var(--ds-space-6);
    border-radius: 50%;
}


/* ================================================
   QA AUDIT FIXES - CSS GAPS
   ================================================ */

/* --- content-split-image-grid Fixes --- */

/* Additional content styling */
.ds-content-split-image-grid__additional-content {
    margin: 0;
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-base));
    color: var(--ds-block-body-color, inherit);
    line-height: var(--ds-block-body-line-height, 1.6);
}

/* List styling for the block */
.ds-content-split-image-grid__list {
    margin: 0 0 var(--ds-space-6) 0;
    padding: 0;
    list-style: none;
}

/* Background image support */
.ds-content-split-image-grid[style*="--ds-block-bg-image"] {
    background-image: var(--ds-block-bg-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Overlay for background image */
.ds-content-split-image-grid__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 1;
}
.ds-content-split-image-grid__overlay + .ds-content-split-image-grid__container {
    position: relative;
    z-index: 2;
}

/* --- content-split-image-stack Fixes --- */

/* Additional content styling */
.ds-content-split-image-stack__additional-content {
    margin: 0;
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-base));
    color: var(--ds-block-body-color, inherit);
    line-height: var(--ds-block-body-line-height, 1.6);
}

/* List styling for the block */
.ds-content-split-image-stack__list {
    margin: 0 0 var(--ds-space-6) 0;
    padding: 0;
    list-style: none;
}

/* Background image support */
.ds-content-split-image-stack[style*="--ds-block-bg-image"] {
    background-image: var(--ds-block-bg-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Overlay for background image */
.ds-content-split-image-stack__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 1;
}
.ds-content-split-image-stack__overlay + .ds-content-split-image-stack__container {
    position: relative;
    z-index: 2;
}

/* Image box color for grid-2x2 style */
.ds-content-split-image-stack--grid-2x2 .ds-content-split-image-stack__images-wrapper::before {
    content: '';
    position: absolute;
    top: 20px;
    left: 20px;
    right: -20px;
    bottom: -20px;
    background: var(--ds-image-box-color, #b8977e);
    border-radius: var(--ds-image-radius, 16px);
    z-index: -1;
}

/* Mobile/Tablet centering for content-split-image-stack */
@media (max-width: 968px) {
    /* Center content column and text on tablet */
    .ds-content-split-image-stack__content-inner {
        text-align: center;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    /* Keep lists left-aligned */
    .ds-content-split-image-stack__list {
        text-align: left;
    }

    /* Center prehook */
    .ds-content-split-image-stack .ds-prehook {
        display: inline-flex;
        margin-left: auto;
        margin-right: auto;
    }

    /* Center buttons */
    .ds-content-split-image-stack__buttons {
        display: flex;
        justify-content: center;
    }

    .ds-content-split-image-stack__buttons .ds-btn-group {
        justify-content: center;
    }

    /* Center testimonial - quote icon centered, quote centered, author block centered with left-aligned content */
    .ds-content-split-image-stack__testimonial .ds-testimonial__quote-icon {
        text-align: center;
    }

    .ds-content-split-image-stack__testimonial .ds-testimonial__quote {
        text-align: center;
    }

    .ds-content-split-image-stack__testimonial .ds-testimonial__author {
        justify-content: center;
    }

    .ds-content-split-image-stack__testimonial .ds-testimonial__author-info {
        text-align: left;
    }

    /* Center stats */
    .ds-content-split-image-stack__stats {
        justify-content: center;
    }
}

/* --- content-split-fullbleed Fixes --- */

/* Background image support */
.ds-content-split-fullbleed[style*="--ds-block-bg-image"] {
    background-image: var(--ds-block-bg-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Overlay for background image */
.ds-content-split-fullbleed__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 1;
}
.ds-content-split-fullbleed__overlay ~ * {
    position: relative;
    z-index: 2;
}

/* --- content-three-column Fixes --- */

/* Content position classes */
.ds-content-three-column--content-center .ds-content-three-column__header {
    text-align: center;
}
.ds-content-three-column--content-left .ds-content-three-column__header {
    text-align: left;
}
.ds-content-three-column--content-right .ds-content-three-column__header {
    text-align: right;
}

/* Background image support */
.ds-content-three-column[style*="--ds-block-bg-image"] {
    background-image: var(--ds-block-bg-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Overlay for background image */
.ds-content-three-column__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 1;
}
.ds-content-three-column__overlay + .ds-content-three-column__container {
    position: relative;
    z-index: 2;
}

/* List styling */
.ds-content-three-column__list {
    margin: 0 0 var(--ds-space-6) 0;
    padding: 0;
    list-style: none;
}

/* Buttons styling */
.ds-content-three-column__buttons {
    margin-top: var(--ds-space-6);
}

/* Mobile/Tablet centering for content-three-column */
@media (max-width: 968px) {
    /* Center body text */
    .ds-content-three-column__body {
        text-align: center;
    }

    /* Center the text column content */
    .ds-content-three-column__col--text {
        text-align: center;
        align-items: center;
        display: flex;
        flex-direction: column;
    }

    /* Keep lists left-aligned */
    .ds-content-three-column__list {
        text-align: left;
    }

    /* Center buttons */
    .ds-content-three-column__buttons {
        display: flex;
        justify-content: center;
        width: 100%;
    }

    .ds-content-three-column__buttons .ds-btn-group {
        justify-content: center;
    }

    /* Read more button full width on mobile/tablet */
    .ds-content-three-column .ds-read-more-toggle {
        display: block;
        width: 100%;
    }

    /* Reorder: stats before images */
    .ds-content-three-column__col--stats {
        order: 1;
    }

    .ds-content-three-column__col--images {
        order: 2;
    }

    /* Center stats content - stack icon above content on mobile */
    .ds-content-three-column__stat {
        flex-direction: column;
        align-items: center;
        text-align: center;
        justify-content: center;
        width: 100%;
    }

    .ds-content-three-column__stat-icon {
        margin-bottom: var(--ds-space-2);
        align-self: center;
    }

    .ds-content-three-column__stat-icon--custom {
        align-self: center;
    }

    .ds-content-three-column__stat-content {
        text-align: center;
        width: 100%;
        align-self: center;
    }

    .ds-content-three-column__stat-number {
        text-align: center;
    }

    .ds-content-three-column__stat-label {
        text-align: center;
    }

    /* Stats column itself should center items */
    .ds-content-three-column__stats {
        align-items: center;
        width: 100%;
    }
}

/* --- features-grid-dark Fixes --- */

/* Background image support */
.ds-features-grid-dark[style*="--ds-block-bg-image"] {
    background-image: var(--ds-block-bg-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Overlay for background image */
.ds-features-grid-dark__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay-color, #000);
    opacity: var(--ds-block-overlay-opacity, 0.5);
    z-index: 1;
}
.ds-features-grid-dark__overlay + .ds-features-grid-dark__container {
    position: relative;
    z-index: 2;
}

/* Prehook styling */
.ds-features-grid-dark__header .ds-prehook {
    margin-bottom: var(--ds-space-4);
}

/* Missing heading_tag support - for feature titles, ensure all heading tags look consistent */
.ds-features-grid-dark__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, var(--ds-weight-bold));
    font-size: var(--ds-block-heading-size-desktop, 2.5rem);
    line-height: var(--ds-block-heading-line-height, 1.2);
    color: var(--ds-block-heading-color, #ffffff);
}

/* --- Animation fields (common issue - fields read but not applied) --- */
/* Animation classes for blocks that use enable_animation */
/* Prevent scrollbars from animation transforms (translateY/X, scale, etc.) */
body,
main,
article,
.site-content,
.entry-content,
.page-content {
    overflow-x: clip;
}

.ds-animate {
    opacity: 0;
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.ds-animate--fade-in { opacity: 0; }
.ds-animate--fade-up { opacity: 0; transform: translateY(30px); }
.ds-animate--fade-down { opacity: 0; transform: translateY(-30px); }
.ds-animate--fade-left { opacity: 0; transform: translateX(30px); }
.ds-animate--fade-right { opacity: 0; transform: translateX(-30px); }
.ds-animate--zoom-in { opacity: 0; transform: scale(0.9); }
.ds-animate--zoom-out { opacity: 0; transform: scale(1.1); }

.ds-animate.ds-animated,
.ds-animate--fade-in.ds-animated,
.ds-animate--fade-up.ds-animated,
.ds-animate--fade-down.ds-animated,
.ds-animate--fade-left.ds-animated,
.ds-animate--fade-right.ds-animated,
.ds-animate--zoom-in.ds-animated,
.ds-animate--zoom-out.ds-animated {
    opacity: 1;
    transform: none;
}

/* Animation delay support via CSS variable */
.ds-animate {
    animation-delay: var(--ds-block-animation-delay, 0ms);
    transition-delay: var(--ds-block-animation-delay, 0ms);
}


/* ================================================
   SCROLL ANIMATIONS
   ================================================ */

/* Base animation state - hidden */
[data-animation] {
    opacity: 0;
    transition-property: opacity, transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 500ms; /* Default duration */
    will-change: opacity, transform;
    contain: paint;
}


/* Animation durations */
[data-animation][data-animation-duration="300"] {
    transition-duration: 300ms;
}
[data-animation][data-animation-duration="500"] {
    transition-duration: 500ms;
}
[data-animation][data-animation-duration="800"] {
    transition-duration: 800ms;
}
[data-animation][data-animation-duration="1000"] {
    transition-duration: 1000ms;
}

/* Animation delays */
[data-animation][data-animation-delay="100"] {
    transition-delay: 100ms;
}
[data-animation][data-animation-delay="200"] {
    transition-delay: 200ms;
}
[data-animation][data-animation-delay="300"] {
    transition-delay: 300ms;
}
[data-animation][data-animation-delay="400"] {
    transition-delay: 400ms;
}
[data-animation][data-animation-delay="500"] {
    transition-delay: 500ms;
}
[data-animation][data-animation-delay="600"] {
    transition-delay: 600ms;
}
[data-animation][data-animation-delay="700"] {
    transition-delay: 700ms;
}
[data-animation][data-animation-delay="800"] {
    transition-delay: 800ms;
}
[data-animation][data-animation-delay="900"] {
    transition-delay: 900ms;
}
[data-animation][data-animation-delay="1000"] {
    transition-delay: 1000ms;
}
[data-animation][data-animation-delay="1100"] {
    transition-delay: 1100ms;
}
[data-animation][data-animation-delay="1200"] {
    transition-delay: 1200ms;
}
[data-animation][data-animation-delay="1500"] {
    transition-delay: 1500ms;
}
[data-animation][data-animation-delay="2000"] {
    transition-delay: 2000ms;
}

/* Fade In */
[data-animation="fade-in"] {
    opacity: 0;
}

/* Fade Up */
[data-animation="fade-up"] {
    opacity: 0;
    transform: translateY(40px);
}

/* Fade Down */
[data-animation="fade-down"] {
    opacity: 0;
    transform: translateY(-40px);
}

/* Fade Left */
[data-animation="fade-left"] {
    opacity: 0;
    transform: translateX(40px);
}

/* Fade Right */
[data-animation="fade-right"] {
    opacity: 0;
    transform: translateX(-40px);
}

/* Zoom In */
[data-animation="zoom-in"] {
    opacity: 0;
    transform: scale(0.9);
}

/* Zoom Out */
[data-animation="zoom-out"] {
    opacity: 0;
    transform: scale(1.1);
}

/* Flip Up */
[data-animation="flip-up"] {
    opacity: 0;
    transform: perspective(1000px) rotateX(20deg);
}

/* Flip Down */
[data-animation="flip-down"] {
    opacity: 0;
    transform: perspective(1000px) rotateX(-20deg);
}

/* Animated state - visible */
[data-animation].ds-animated {
    opacity: 1;
    transform: translateY(0) translateX(0) scale(1) rotateX(0);
    contain: none;
}

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
    [data-animation] {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ═══════════════════════════════════════════════
   FIX: Body content and spacing fixes
   Body content is inside ds-read-more-wrap for collapse support.
   When read-more is inactive, wrap has display:contents (invisible).
   When active, wrap becomes display:block with max-height collapse.
   ═══════════════════════════════════════════════ */

/* Testimonial Card - body content between header and carousel */
.ds-testimonial-card__body {
    text-align: center;
    max-width: 800px;
    margin: 0 auto var(--ds-space-6, 24px);
    font-size: var(--ds-block-body-size, var(--ds-text-lg, 1.125rem));
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, inherit);
    opacity: 0.85;
}

/* Testimonial Card - mobile text sizes from custom typography */
@media (max-width: 768px) {
    .ds-testimonial-card__body {
        font-size: var(--ds-block-body-size-mobile, var(--ds-block-body-size, var(--ds-text-lg, 1.125rem)));
    }
    .ds-testimonial-card__heading {
        font-size: var(--ds-block-heading-size-mobile, 2rem);
    }
}

/* Testimonial Card - ensure read-more inside cards uses card bg for fade */
.ds-testimonial-card__card .ds-read-more-wrap.ds-read-more-active::after {
    background: linear-gradient(to bottom, transparent, var(--ds-card-bg, #ffffff)) !important;
}

/* Features Grid Image - desktop space between read-more button and CTA */
.ds-features-grid-image .ds-read-more-toggle {
    margin-bottom: 16px;
}

@media (max-width: 768px) {
    .ds-features-grid-image .ds-read-more-toggle {
        margin-bottom: 12px;
    }

    /* Features Grid Image - reduce header bottom margin on mobile */
    .ds-features-grid-image__header {
        margin-bottom: var(--ds-space-4, 16px);
    }
}

/* Comprehensive reduced-motion support for all DS block animations */
@media (prefers-reduced-motion: reduce) {
    .ds-animate,
    [class*="ds-"] .ds-animate,
    .ds-btn,
    .ds-btn::before,
    .ds-btn::after,
    .ds-faq-accordion__answer,
    .ds-features-tabbed__image-slide,
    .ds-testimonial-card__slide,
    .ds-gallery-block__slide,
    [class*="ds-"] * {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* ================================================
   ANIMATION OVERFLOW PROTECTION
   Prevent translateY/translateX/scale transforms from
   causing scrollbars on any device size
   ================================================ */

/* All top-level block sections clip overflow to prevent animation scroll */
section.ds-hero-split-video,
section.ds-hero-split-reviews,
section.ds-hero-fullwidth-bg,
section.ds-hero-video-centered,
section.ds-content-split-image-stack,
section.ds-content-split-image-grid,
section.ds-content-split-fullbleed,
section.ds-content-three-column,
section.ds-features-grid-image,
section.ds-features-grid-dark,
section.ds-features-hero-image,
section.ds-features-tabbed,
section.ds-stats-bar,
section.ds-logo-bar,
section.ds-testimonial-card,
section.ds-benefits-risks,
section.ds-how-it-works-steps,
section.ds-gallery-block,
section.ds-doctors-note {
    overflow: clip;
}


/* ================================================
   HERO BLOCKS - MOBILE/TABLET RESPONSIVE LAYOUT
   Full-bleed background image with gradient overlay and centered content
   Based on reference: tahiriplasticsurgery.com/torticollis-treatment/
   ================================================ */

/* Mobile/Tablet breakpoint - under 968px */
@media (max-width: 968px) {

    /* ----------------------------------------
       HERO SPLIT VIDEO - Mobile Layout
       Full-bleed video/image background with overlaid content
       ---------------------------------------- */

    /* Override CSS custom properties for mobile layout - only when JS hasn't applied mobile-active class */
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__container {
        --hsv-display: block !important;
        --hsv-grid-cols: 1fr !important;
        --hsv-min-height: auto !important;
    }

    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__content {
        --hsv-content-display: block !important;
        --hsv-content-bg: transparent !important;
        --hsv-content-padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 2rem) clamp(2.5rem, 6vw, 4rem) !important;
    }

    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__content-inner {
        --hsv-inner-max-width: 100% !important;
        --hsv-inner-margin: 0 auto !important;
    }

    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media {
        --hsv-media-position: absolute !important;
        --hsv-media-min-height: 100% !important;
    }

    /* Main section styles - only when JS hasn't applied mobile-active class */
    section.ds-hero-split-video:not(.ds-hero--mobile-active),
    .ds-hero-split-video:not(.ds-hero--mobile-active) {
        position: relative !important;
        min-height: 100vh !important;
        min-height: 100svh !important; /* Small viewport height for mobile browsers */
        display: flex !important;
        align-items: flex-end !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    /* Container styles - only when JS hasn't applied mobile-active class */
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__container,
    .ds-hero-split-video__container:not(.ds-hero--mobile-active *) {
        display: block !important;
        grid-template-columns: 1fr !important;
        min-height: auto !important;
        width: 100% !important;
    }

    /* Video/Media becomes full-bleed background - only when JS hasn't applied mobile-active class */
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media,
    .ds-hero-split-video__media:not(.ds-hero--mobile-active *) {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        min-height: 100%;
        max-height: none;
        z-index: 0;
        background-color: #1a1a1a;
    }

    /* Media children - only when JS hasn't applied mobile-active class */
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media video,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media iframe,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media img,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media .ds-hero-split-video__media-wrapper,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media-wrapper,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media-wrapper img,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media-wrapper video,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media-wrapper iframe,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__image,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__poster {
        width: 100%;
        height: 100%;
        object-fit: cover;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
    }

    /* Gradient overlay on media - only when JS hasn't applied mobile-active class */
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media::after,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__media::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: linear-gradient(
            180deg,
            rgba(26, 26, 26, 0.4) 0%,
            rgba(26, 26, 26, 0.55) 40%,
            rgba(26, 26, 26, 0.85) 100%
        );
        pointer-events: none;
        z-index: 1;
    }

    /* Content overlays the background - only when JS hasn't applied mobile-active class */
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__content,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__content,
    div.ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__content {
        position: relative;
        width: 100%;
        padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 2rem) clamp(2.5rem, 6vw, 4rem);
        background: none;
        background-color: transparent;
        z-index: 2;
        display: block;
    }

    /* Content inner - only when JS hasn't applied mobile-active class */
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__content-inner,
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__content-inner,
    div.ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__content-inner {
        max-width: 100%;
        margin: 0 auto;
        text-align: center;
        background: none;
        background-color: transparent;
        padding: 0;
        border-radius: 0;
    }

    .ds-hero-split-video__heading {
        font-size: var(--ds-block-heading-size-tablet, var(--ds-block-heading-size-mobile, clamp(1.75rem, 6vw, 2.5rem))) !important;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    }

    .ds-hero-split-video__body {
        font-size: var(--ds-block-body-size-tablet, var(--ds-block-body-size-mobile, var(--ds-block-body-size, 1rem))) !important;
        text-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    }

    /* Prehook should wrap content, not stretch full width */
    .ds-hero-split-video .ds-prehook {
        align-self: center !important;
        width: auto !important;
    }

    .ds-hero-split-video__buttons {
        justify-content: center !important;
    }

    .ds-hero-split-video .ds-list {
        text-align: left;
        display: inline-block;
    }

    .ds-hero-split-video .ds-btn-group {
        justify-content: center !important;
    }

    /* ----------------------------------------
       HERO SPLIT REVIEWS - Mobile Layout
       Full-bleed image background with overlaid content
       ---------------------------------------- */

    /* Override CSS custom properties for mobile layout */
    .ds-hero-split-reviews__container {
        --hsr-display: block !important;
        --hsr-grid-cols: 1fr !important;
        --hsr-min-height: auto !important;
    }

    .ds-hero-split-reviews__content {
        --hsr-content-display: block !important;
        --hsr-content-bg: transparent !important;
        --hsr-content-padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 2rem) clamp(2.5rem, 6vw, 4rem) !important;
    }

    .ds-hero-split-reviews__content-inner {
        --hsr-inner-max-width: 100% !important;
    }

    .ds-hero-split-reviews__images {
        --hsr-images-position: absolute !important;
        --hsr-images-min-height: 100% !important;
    }

    section.ds-hero-split-reviews,
    .ds-hero-split-reviews {
        position: relative !important;
        min-height: 100vh !important;
        min-height: 100svh !important;
        display: flex !important;
        align-items: flex-end !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    .ds-hero-split-reviews .ds-hero-split-reviews__container,
    .ds-hero-split-reviews__container {
        display: block !important;
        grid-template-columns: 1fr !important;
        width: 100% !important;
    }

    /* Images become full-bleed background */
    .ds-hero-split-reviews .ds-hero-split-reviews__images,
    .ds-hero-split-reviews__images {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        min-height: 100% !important;
        max-height: none !important;
        padding: 0 !important;
        overflow: hidden !important;
        z-index: 0 !important;
    }

    /* Gradient overlay on images */
    .ds-hero-split-reviews .ds-hero-split-reviews__images::after,
    .ds-hero-split-reviews__images::after {
        content: '' !important;
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        background: linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.3) 0%,
            rgba(255, 255, 255, 0.5) 40%,
            rgba(255, 255, 255, 0.9) 100%
        ) !important;
        pointer-events: none !important;
        z-index: 1 !important;
    }

    /* For dark backgrounds, use dark gradient */
    .ds-hero-split-reviews[style*="--ds-bg"][style*="#1"][style*="#2"][style*="#3"] .ds-hero-split-reviews__images::after,
    .ds-hero-split-reviews.ds-hero-split-reviews--dark .ds-hero-split-reviews__images::after {
        background: linear-gradient(
            180deg,
            rgba(26, 26, 26, 0.5) 0%,
            rgba(26, 26, 26, 0.6) 40%,
            rgba(26, 26, 26, 0.85) 100%
        ) !important;
    }

    .ds-hero-split-reviews__image-stack {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        display: block !important;
        max-width: none !important;
        width: 100% !important;
        height: 100% !important;
    }

    .ds-hero-split-reviews__image-wrapper {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        transform: none !important;
    }

    .ds-hero-split-reviews__image-wrapper:nth-child(2),
    .ds-hero-split-reviews__image-wrapper:nth-child(3),
    .ds-hero-split-reviews__image-wrapper:nth-child(4) {
        display: none !important;
    }

    .ds-hero-split-reviews__image {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    /* Content overlays the background */
    .ds-hero-split-reviews .ds-hero-split-reviews__content,
    .ds-hero-split-reviews__content,
    div.ds-hero-split-reviews__content {
        position: relative !important;
        width: 100% !important;
        padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 2rem) clamp(2.5rem, 6vw, 4rem) !important;
        background: none !important;
        background-color: transparent !important;
        z-index: 2 !important;
        display: block !important;
    }

    .ds-hero-split-reviews .ds-hero-split-reviews__content-inner,
    .ds-hero-split-reviews__content-inner,
    div.ds-hero-split-reviews__content-inner {
        max-width: 100% !important;
        margin: 0 auto !important;
        text-align: center !important;
        background: none !important;
        background-color: transparent !important;
        padding: 0 !important;
        border-radius: 0 !important;
    }

    .ds-hero-split-reviews__heading {
        font-size: var(--ds-block-heading-size-tablet, var(--ds-block-heading-size-mobile, clamp(1.75rem, 6vw, 2.5rem))) !important;
    }

    .ds-hero-split-reviews__body {
        font-size: var(--ds-block-body-size-tablet, var(--ds-block-body-size-mobile, var(--ds-block-body-size, 1rem))) !important;
    }

    .ds-hero-split-reviews .ds-hero-split-reviews__buttons,
    .ds-hero-split-reviews__buttons {
        justify-content: center !important;
        margin-top: 0 !important;
    }

    .ds-hero-split-reviews .ds-list {
        text-align: left;
        display: inline-block;
    }

    .ds-hero-split-reviews .ds-btn-group {
        justify-content: center !important;
    }

    .ds-hero-split-reviews__rating {
        justify-content: center !important;
    }

    /* ----------------------------------------
       HERO FULLWIDTH BG - Mobile Layout
       Already uses background image - just needs gradient overlay enhancement
       ---------------------------------------- */
    section.ds-hero-fullwidth-bg,
    .ds-hero-fullwidth-bg {
        position: relative !important;
        min-height: 100vh !important;
        min-height: 100svh !important;
        display: flex !important;
        align-items: flex-end !important;
        padding: 0 !important;
        overflow: hidden !important;
    }


    /* Enhanced gradient overlay for mobile */
    .ds-hero-fullwidth-bg .ds-block__bg-overlay {
        background: linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.4) 0%,
            rgba(0, 0, 0, 0.55) 40%,
            rgba(0, 0, 0, 0.85) 100%
        ) !important;
        opacity: 1 !important; /* Override opacity since it's baked into gradient */
    }

    .ds-hero-fullwidth-bg .ds-hero-fullwidth-bg__container,
    .ds-hero-fullwidth-bg__container,
    div.ds-hero-fullwidth-bg__container {
        position: relative !important;
        width: 100% !important;
        padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 2rem) clamp(2.5rem, 6vw, 4rem) !important;
        background: none !important;
        background-color: transparent !important;
        z-index: 2 !important;
    }

    .ds-hero-fullwidth-bg .ds-hero-fullwidth-bg__content,
    .ds-hero-fullwidth-bg__content,
    div.ds-hero-fullwidth-bg__content {
        max-width: 100% !important;
        margin: 0 auto !important;
        text-align: center !important;
        background: none !important;
        background-color: transparent !important;
        padding: 0 !important;
        border-radius: 0 !important;
    }

    .ds-hero-fullwidth-bg--content-left .ds-hero-fullwidth-bg__content,
    .ds-hero-fullwidth-bg--content-right .ds-hero-fullwidth-bg__content {
        text-align: center !important;
        margin: 0 auto !important;
    }

    .ds-hero-fullwidth-bg__heading {
        font-size: var(--ds-block-heading-size-tablet, var(--ds-block-heading-size-mobile, clamp(1.75rem, 6vw, 2.5rem))) !important;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    }

    .ds-hero-fullwidth-bg__body {
        font-size: var(--ds-block-body-size-tablet, var(--ds-block-body-size-mobile, var(--ds-block-body-size, 1rem))) !important;
        text-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    }

    .ds-hero-fullwidth-bg__buttons {
        justify-content: center !important;
        margin-top: 0 !important;
    }

    .ds-hero-fullwidth-bg--content-left .ds-hero-fullwidth-bg__buttons,
    .ds-hero-fullwidth-bg--content-right .ds-hero-fullwidth-bg__buttons {
        justify-content: center !important;
    }

    /* Remove margin when mobile layout is active */
    .ds-hero-fullwidth-bg.ds-hero--mobile-active .ds-hero-fullwidth-bg__buttons {
        margin-top: 0 !important;
    }

    .ds-hero-fullwidth-bg .ds-list {
        text-align: left;
        display: inline-block;
    }

    .ds-hero-fullwidth-bg .ds-btn-group {
        justify-content: center !important;
    }

    /* ----------------------------------------
       HERO VIDEO CENTERED - Mobile Layout
       Full-bleed video background with overlaid content
       ---------------------------------------- */

    /* Override CSS custom properties for mobile layout */
    .ds-hero-video-centered__container {
        --hvc-max-width: 100% !important;
        --hvc-padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 2rem) clamp(2.5rem, 6vw, 4rem) !important;
    }

    section.ds-hero-video-centered,
    .ds-hero-video-centered {
        position: relative !important;
        min-height: 100vh !important;
        min-height: 100svh !important;
        display: flex !important;
        align-items: flex-end !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    .ds-hero-video-centered .ds-hero-video-centered__video-bg,
    .ds-hero-video-centered__video-bg {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        min-height: 100% !important;
        max-height: none !important;
        z-index: 0 !important;
        overflow: hidden !important;
    }

    /* Gradient overlay on video - enhances existing overlay */
    .ds-hero-video-centered .ds-hero-video-centered__overlay,
    .ds-hero-video-centered__overlay {
        background: linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.4) 0%,
            rgba(0, 0, 0, 0.55) 40%,
            rgba(0, 0, 0, 0.85) 100%
        ) !important;
        opacity: 1 !important; /* Override opacity since it's baked into gradient */
        z-index: 1 !important;
    }

    .ds-hero-video-centered .ds-hero-video-centered__container,
    .ds-hero-video-centered__container,
    div.ds-hero-video-centered__container {
        position: relative !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: clamp(2rem, 5vw, 4rem) clamp(1.25rem, 5vw, 2rem) clamp(2.5rem, 6vw, 4rem) !important;
        z-index: 2 !important;
        text-align: center !important;
    }

    .ds-hero-video-centered__content {
        text-align: center !important;
    }

    .ds-hero-video-centered__heading {
        font-size: var(--ds-block-heading-size-tablet, var(--ds-block-heading-size-mobile, clamp(1.75rem, 6vw, 2.5rem))) !important;
        text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    }

    .ds-hero-video-centered__body {
        font-size: var(--ds-block-body-size-tablet, var(--ds-block-body-size-mobile, var(--ds-block-body-size, 1rem))) !important;
        text-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    }

    .ds-hero-video-centered__play-btn {
        margin-bottom: 24px;
    }

    .ds-hero-video-centered__bullets {
        grid-template-columns: 1fr !important;
    }

    .ds-hero-video-centered .ds-btn-group {
        justify-content: center !important;
    }

}

/* Smaller mobile breakpoint - under 480px */
@media (max-width: 480px) {
    /* Reduce padding on very small screens - only when JS hasn't applied mobile-active class */
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__content,
    .ds-hero-split-reviews:not(.ds-hero--mobile-active) .ds-hero-split-reviews__content,
    .ds-hero-fullwidth-bg:not(.ds-hero--mobile-active) .ds-hero-fullwidth-bg__container,
    .ds-hero-video-centered:not(.ds-hero--mobile-active) .ds-hero-video-centered__container {
        padding: clamp(1.5rem, 4vw, 2.5rem) 16px clamp(2rem, 5vw, 3rem) !important;
    }

    /* Slightly smaller headings on very small screens - use custom mobile size if set, fallback to clamp */
    .ds-hero-split-video__heading,
    .ds-hero-split-reviews__heading,
    .ds-hero-fullwidth-bg__heading,
    .ds-hero-video-centered__heading {
        font-size: var(--ds-block-heading-size-mobile, clamp(1.5rem, 5vw, 2rem)) !important;
    }

    /* Body text on very small screens */
    .ds-hero-split-video__body,
    .ds-hero-split-reviews__body,
    .ds-hero-fullwidth-bg__body,
    .ds-hero-video-centered__body {
        font-size: var(--ds-block-body-size-mobile, var(--ds-block-body-size, 16px)) !important;
    }
}

/* ================================================
   MOBILE BUTTON PLACEMENT
   Control where buttons appear on mobile devices
   ================================================ */

@media (max-width: 968px) {
    /* Default - buttons stay in their original position */
    .ds-mobile-buttons--default {
        order: 0;
    }

    /* After body - buttons appear right after body content */
    .ds-mobile-buttons--after_body {
        order: -2 !important;
    }

    /* After list - buttons appear after list items */
    .ds-mobile-buttons--after_list {
        order: -1 !important;
    }

    /* After bullets (for hero-video-centered) */
    .ds-mobile-buttons--after_bullets {
        order: -1 !important;
    }

    /* Make content inner a flex container for reordering - only when JS hasn't applied mobile-active class */
    .ds-hero-split-video:not(.ds-hero--mobile-active) .ds-hero-split-video__content-inner,
    .ds-hero-split-reviews:not(.ds-hero--mobile-active) .ds-hero-split-reviews__content-inner,
    .ds-hero-fullwidth-bg:not(.ds-hero--mobile-active) .ds-hero-fullwidth-bg__content,
    .ds-hero-video-centered:not(.ds-hero--mobile-active) .ds-hero-video-centered__container {
        display: flex !important;
        flex-direction: column !important;
    }

    /* Set order for content elements */
    .ds-hero-split-video__content-inner > .ds-prehook,
    .ds-hero-split-reviews__content-inner > .ds-prehook,
    .ds-hero-fullwidth-bg__content > .ds-prehook,
    .ds-hero-video-centered__container > .ds-prehook {
        order: 1;
    }

    .ds-hero-split-video__heading,
    .ds-hero-split-reviews__heading,
    .ds-hero-fullwidth-bg__heading,
    .ds-hero-video-centered__heading {
        order: 2;
    }

    .ds-hero-split-video__body,
    .ds-hero-split-reviews__body,
    .ds-hero-fullwidth-bg__body,
    .ds-hero-video-centered__body {
        order: 3;
    }

    /* Buttons after body = order 4 */
    .ds-mobile-buttons--after_body {
        order: 4 !important;
    }

    .ds-hero-split-video__content-inner > .ds-list,
    .ds-hero-split-reviews__content-inner > .ds-list,
    .ds-hero-fullwidth-bg__content > .ds-list {
        order: 5;
    }

    /* Read-more-wrap has display:contents - children become flex items of parent.
       But CSS > combinator still follows DOM, so we need to target children through
       .ds-read-more-wrap to set their order properly. */
    .ds-hero-split-video__content-inner > .ds-read-more-wrap,
    .ds-hero-split-reviews__content-inner > .ds-read-more-wrap,
    .ds-hero-fullwidth-bg__content > .ds-read-more-wrap,
    .ds-hero-video-centered__container > .ds-read-more-wrap {
        order: 5;
    }

    /* Target list items inside read-more-wrap (display:contents means
       they're flex items but CSS selectors still need DOM path) */
    .ds-hero-split-video__content-inner > .ds-read-more-wrap > .ds-list,
    .ds-hero-split-reviews__content-inner > .ds-read-more-wrap > .ds-list,
    .ds-hero-fullwidth-bg__content > .ds-read-more-wrap > .ds-list,
    .ds-hero-split-video__content-inner .ds-read-more-wrap .ds-list,
    .ds-hero-split-reviews__content-inner .ds-read-more-wrap .ds-list,
    .ds-hero-fullwidth-bg__content .ds-read-more-wrap .ds-list {
        order: 5 !important;
    }

    /* Additional content inside read-more-wrap */
    .ds-hero-split-video__content-inner .ds-read-more-wrap .ds-hero-split-video__additional-content,
    .ds-hero-split-reviews__content-inner .ds-read-more-wrap .ds-hero-split-reviews__additional-content,
    .ds-hero-fullwidth-bg__content .ds-read-more-wrap .ds-hero-fullwidth-bg__additional-content {
        order: 7 !important;
    }

    /* Testimonial inside read-more-wrap */
    .ds-hero-split-video__content-inner .ds-read-more-wrap .ds-hero-split-video__testimonial,
    .ds-hero-split-reviews__content-inner .ds-read-more-wrap .ds-hero-split-reviews__testimonial,
    .ds-hero-fullwidth-bg__content .ds-read-more-wrap .ds-hero-fullwidth-bg__testimonial {
        order: 9 !important;
    }

    .ds-hero-video-centered__bullets {
        order: 5;
    }

    /* Buttons after list/bullets = order 6 */
    .ds-mobile-buttons--after_list,
    .ds-mobile-buttons--after_bullets {
        order: 6 !important;
    }

    .ds-hero-split-video__additional-content,
    .ds-hero-split-reviews__additional-content,
    .ds-hero-fullwidth-bg__additional-content,
    .ds-hero-video-centered__additional-content {
        order: 7;
    }

    /* Default buttons = order 8 */
    .ds-mobile-buttons--default {
        order: 8;
        margin-top: 24px;
    }

    .ds-hero-split-video__testimonial,
    .ds-hero-split-reviews__testimonial,
    .ds-hero-fullwidth-bg__testimonial,
    .ds-hero-video-centered__testimonial {
        order: 9;
    }

    /* Rating stays at the top for hero-split-reviews */
    .ds-hero-split-reviews__rating {
        order: 0;
    }

    /* Add bottom margin to buttons when repositioned (not default) */
    .ds-mobile-buttons--after_body,
    .ds-mobile-buttons--after_list,
    .ds-mobile-buttons--after_bullets {
        margin-bottom: 24px !important;
    }

    /* Add top margin when buttons are at the bottom (default placement) */
    .ds-hero-fullwidth-bg__buttons.ds-mobile-buttons--default,
    .ds-hero-split-video__buttons.ds-mobile-buttons--default,
    .ds-hero-split-reviews__buttons.ds-mobile-buttons--default,
    .ds-hero-video-centered__buttons.ds-mobile-buttons--default {
        margin-top: 12px !important;
    }

    /* Mobile testimonial centering for hero blocks */
    /* Center the testimonial block content */
    .ds-hero-split-video__testimonial,
    .ds-hero-split-reviews__testimonial,
    .ds-hero-fullwidth-bg__testimonial,
    .ds-hero-video-centered__testimonial {
        text-align: center !important;
    }

    /* Center the quote text */
    .ds-hero-split-video__testimonial .ds-testimonial__quote,
    .ds-hero-split-reviews__testimonial .ds-testimonial__quote,
    .ds-hero-fullwidth-bg__testimonial .ds-testimonial__quote,
    .ds-hero-video-centered__testimonial .ds-testimonial__quote {
        text-align: center !important;
    }

    /* Center quote icon on mobile */
    .ds-hero-split-video__testimonial .ds-testimonial__quote-icon,
    .ds-hero-split-reviews__testimonial .ds-testimonial__quote-icon,
    .ds-hero-fullwidth-bg__testimonial .ds-testimonial__quote-icon,
    .ds-hero-video-centered__testimonial .ds-testimonial__quote-icon {
        text-align: center !important;
    }

    /* Center the author row - centered in block with internal left alignment */
    .ds-hero-split-video__testimonial .ds-testimonial__author,
    .ds-hero-split-reviews__testimonial .ds-testimonial__author,
    .ds-hero-fullwidth-bg__testimonial .ds-testimonial__author,
    .ds-hero-video-centered__testimonial .ds-testimonial__author {
        display: flex !important;
        justify-content: center !important;
        text-align: left !important;
    }

    /* Google reviews badge order - below buttons */
    .ds-hero-split-reviews__rating-badge {
        order: 10 !important;
        display: flex !important;
        justify-content: center !important;
    }

    /* Full-width buttons on mobile for all hero blocks */
    .ds-hero-split-video__buttons,
    .ds-hero-split-reviews__buttons,
    .ds-hero-fullwidth-bg__buttons,
    .ds-hero-video-centered__buttons {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .ds-hero-split-video__buttons .ds-btn-group,
    .ds-hero-split-reviews__buttons .ds-btn-group,
    .ds-hero-fullwidth-bg__buttons .ds-btn-group,
    .ds-hero-video-centered__buttons .ds-btn-group {
        flex-direction: column !important;
        width: 100% !important;
        gap: 12px !important;
        margin-top: 12px;
    }

    .ds-hero-split-video__buttons .ds-btn,
    .ds-hero-split-reviews__buttons .ds-btn,
    .ds-hero-fullwidth-bg__buttons .ds-btn,
    .ds-hero-video-centered__buttons .ds-btn {
        width: 100% !important;
        justify-content: center !important;
    }

    /* Prehook centering on mobile for all hero blocks */
    .ds-hero-split-video .ds-prehook,
    .ds-hero-split-reviews .ds-prehook,
    .ds-hero-fullwidth-bg .ds-prehook,
    .ds-hero-video-centered .ds-prehook {
        display: block !important;
        text-align: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
        width: fit-content !important;
    }
}

/* ================================================
   FIXES: Features Grid Dark - Last Row Centering
   ================================================ */

/* Change grid to flexbox for centering last row */
.ds-features-grid-dark__grid {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--ds-space-8);
    margin-bottom: var(--ds-space-12);
}

.ds-features-grid-dark__feature {
    flex: 0 0 calc(100% / var(--ds-features-columns, 3) - var(--ds-space-8));
    max-width: calc(100% / var(--ds-features-columns, 3) - var(--ds-space-8));
    box-sizing: border-box;
}

/* 2 columns */
.ds-features-grid-dark--cols-2 .ds-features-grid-dark__feature {
    flex: 0 0 calc(50% - var(--ds-space-8) / 2);
    max-width: calc(50% - var(--ds-space-8) / 2);
}

/* 3 columns */
.ds-features-grid-dark--cols-3 .ds-features-grid-dark__feature {
    flex: 0 0 calc(33.333% - var(--ds-space-8) * 2 / 3);
    max-width: calc(33.333% - var(--ds-space-8) * 2 / 3);
}

/* 4 columns */
.ds-features-grid-dark--cols-4 .ds-features-grid-dark__feature {
    flex: 0 0 calc(25% - var(--ds-space-8) * 3 / 4);
    max-width: calc(25% - var(--ds-space-8) * 3 / 4);
}

@media (max-width: 968px) {
    .ds-features-grid-dark__feature {
        flex: 0 0 calc(50% - var(--ds-space-4) / 2) !important;
        max-width: calc(50% - var(--ds-space-4) / 2) !important;
    }
}

@media (max-width: 600px) {
    .ds-features-grid-dark__feature {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

/* Ensure body text inside header is centered */
.ds-features-grid-dark__body {
    margin-bottom: var(--ds-space-6);
}

/* ================================================
   FIXES: Features Grid Image - Feature Title Color
   ================================================ */

/* Ensure feature title color uses the custom variable */
.ds-features-grid-image__feature-title {
    color: var(--ds-card-title-color, var(--ds-block-heading-color, inherit)) !important;
}

/* ================================================
   FIXES: Stats Bar - Horizontal Scroll + Last Row Centering
   ================================================ */

/* Prevent horizontal scroll on desktop */
.ds-stats-bar {
    max-width: 100vw;
    box-sizing: border-box;
}

.ds-stats-bar__container {
    overflow: hidden;
}

/* Change grid to flexbox for last row centering (desktop) */
.ds-stats-bar__grid {
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--ds-space-8);
}

.ds-stats-bar__item {
    flex: 0 0 calc(100% / var(--ds-stats-columns, 3) - var(--ds-space-8));
    max-width: calc(100% / var(--ds-stats-columns, 3) - var(--ds-space-8));
    box-sizing: border-box;
}

@media (max-width: 768px) {
    /* Allow horizontal scroll on mobile */
    .ds-stats-bar {
        overflow-x: visible !important;
    }

    .ds-stats-bar__container {
        overflow: visible;
    }

    .ds-stats-bar__grid {
        flex-wrap: nowrap !important;
        justify-content: flex-start;
        overflow-x: auto;
        gap: 12px;
        padding: 0 0 8px 0;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        scroll-snap-type: x mandatory;
    }

    .ds-stats-bar__grid::-webkit-scrollbar {
        display: none;
    }

    .ds-stats-bar__item {
        flex: 0 0 auto !important;
        min-width: 120px !important;
        max-width: 160px !important;
        scroll-snap-align: start;
    }
}

/* Ensure body text inside header is centered */
.ds-stats-bar__body {
    margin-bottom: var(--ds-space-4);
}

/* ================================================
   FIXES: Benefits & Risks - Body text in header
   ================================================ */

/* Ensure body text inside header has proper styling */
.ds-benefits-risks__body {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-lg));
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
    margin-bottom: var(--ds-space-4);
}

.ds-benefits-risks__body p:last-child {
    margin-bottom: 0;
}

/* ================================================
   FIXES: Content Three Column - body in header
   ================================================ */

/* Ensure intro in header has bottom margin */
.ds-content-three-column__intro {
    margin-bottom: var(--ds-space-4);
}

/* ================================================
   FIXES: Features Hero Image - body in header
   ================================================ */

/* features-hero-image body - handled in main block */

/* Stats bar column-specific widths — desktop only (mobile uses scroll-snap) */
@media (min-width: 769px) {
    .ds-stats-bar__item {
        flex: 1 1 250px;
        min-width: 200px;
    }
}

/* Features grid dark - reliable column widths */
.ds-features-grid-dark--cols-2 .ds-features-grid-dark__feature {
    flex: 0 1 calc(50% - 24px);
}
.ds-features-grid-dark--cols-3 .ds-features-grid-dark__feature {
    flex: 0 1 calc(33.333% - 24px);
}
.ds-features-grid-dark--cols-4 .ds-features-grid-dark__feature {
    flex: 0 1 calc(25% - 24px);
}

/* ================================================
   FIXES: Benefits & Risks - Typography inheritance
   ================================================ */

/* Ensure benefits/risks body inherits typography properly */
.ds-benefits-risks__body {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-lg));
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
    opacity: 1;
}

.ds-benefits-risks__body p {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

/* Column title inherits heading styles */
.ds-benefits-risks__title {
    color: var(--ds-block-heading-color, inherit);
}

/* List items inherit body font */
.ds-benefits-risks__list-item {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-base));
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
}

/* Quote intro text */
.ds-benefits-risks__quote-intro {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-lg));
    color: var(--ds-block-body-color, inherit);
}

/* Quote card - match testimonial styling from other blocks */
.ds-benefits-risks__quote-card {
    background: var(--ds-quote-bg, var(--ds-grey-800));
    color: var(--ds-white, #ffffff);
    padding: var(--ds-space-8) var(--ds-space-10);
    border-radius: var(--ds-radius-xl);
    display: flex;
    align-items: flex-start;
    gap: var(--ds-space-6);
    text-align: left;
    position: relative;
}

/* Quote icon decoration */
.ds-benefits-risks__quote-card::before {
    content: '\201C';
    font-size: 4rem;
    line-height: 1;
    color: rgba(255, 255, 255, 0.15);
    position: absolute;
    top: 16px;
    left: 24px;
    font-family: Georgia, serif;
}

.ds-benefits-risks__quote-content blockquote {
    font-size: var(--ds-text-lg);
    font-style: italic;
    line-height: var(--ds-leading-relaxed);
    margin: 0 0 var(--ds-space-4) 0;
    padding: 0;
    border: none;
}

.ds-benefits-risks__quote-content blockquote::before,
.ds-benefits-risks__quote-content blockquote::after {
    display: none;
}

/* Doctor/author image */
.ds-benefits-risks__doctor-img {
    width: 64px;
    height: 64px;
    border-radius: var(--ds-radius-full);
    object-fit: cover;
}

.ds-benefits-risks__quote-author {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ds-benefits-risks__doctor-name {
    font-weight: var(--ds-weight-semibold);
    font-style: normal;
    font-size: var(--ds-text-base);
}

.ds-benefits-risks__doctor-title {
    font-size: var(--ds-text-sm);
    opacity: 0.7;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .ds-benefits-risks__quote-card {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: var(--ds-space-6);
    }
    
    .ds-benefits-risks__quote-author {
        align-items: center;
    }
}

/* ================================================
   FIXES: Content Three Column - Visual Refinements
   ================================================ */

/* Stat number should use block heading color */
.ds-content-three-column__stat-number {
    color: var(--ds-block-heading-color, var(--ds-primary, #1e3a5f));
}

/* Stat label should use body color */
.ds-content-three-column__stat-label {
    color: var(--ds-block-body-color, inherit);
    font-family: var(--ds-block-body-font, var(--ds-font-body));
}

/* Stat card background should adapt to color scheme */
.ds-typography-dark-on-light .ds-content-three-column__stat {
    background: var(--ds-white, #ffffff);
    box-shadow: var(--ds-shadow-sm);
}

.ds-typography-light-on-dark .ds-content-three-column__stat {
    background: rgba(255, 255, 255, 0.08);
    box-shadow: none;
    border: 1px solid rgba(255, 255, 255, 0.12);
}

/* Column 1 body text styling */
.ds-content-three-column__body p {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

.ds-content-three-column__body p:last-child {
    margin-bottom: 0;
}

/* Image stack improvements */
.ds-content-three-column__image-wrapper:first-child {
    z-index: 2;
}
.ds-content-three-column__image-wrapper:nth-child(2) {
    margin-top: -20px;
    margin-left: 30px;
    z-index: 1;
}

/* ================================================
   FIXES: Benefits & Risks - Column Padding + Title Spacing
   ================================================ */

/* Ensure column-header has bottom margin for list separation */
.ds-benefits-risks__column-header {
    margin-bottom: var(--ds-space-6);
}

/* Column padding adjustments */
.ds-benefits-risks__column {
    padding: var(--ds-space-8);
}

/* Last list item shouldn't have a border */
.ds-benefits-risks__list-item:last-child {
    border-bottom: none;
}

/* Ensure list items have proper font size */
.ds-benefits-risks__list .ds-list__text {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-base));
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
}

/* Quote section should have top margin */
.ds-benefits-risks__quote-section {
    margin-top: var(--ds-space-8);
}

/* Adapt column colors to theme */
.ds-typography-light-on-dark .ds-benefits-risks__column--benefits {
    background: var(--ds-benefits-card-bg, rgba(255, 255, 255, 0.05));
    border-color: var(--ds-benefits-card-border, rgba(255, 255, 255, 0.12));
}

.ds-typography-light-on-dark .ds-benefits-risks__column--risks {
    background: var(--ds-risks-card-bg, rgba(255, 255, 255, 0.05));
    border-color: var(--ds-risks-card-border, rgba(255, 255, 255, 0.12));
}

.ds-typography-light-on-dark .ds-benefits-risks__list-item {
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

.ds-typography-light-on-dark .ds-benefits-risks__list-item:last-child {
    border-bottom: none;
}

/* Benefits and risks heading inherits block heading color */
.ds-benefits-risks__title {
    color: var(--ds-block-heading-color, inherit);
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
}

/* ================================================
   FIXES: Benefits & Risks - Responsive Quote Card
   ================================================ */

@media (max-width: 768px) {
    .ds-benefits-risks__columns {
        grid-template-columns: 1fr;
    }
    
    .ds-benefits-risks__quote-card {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: var(--ds-space-6);
    }
    
    .ds-benefits-risks__quote-author {
        align-items: center;
    }
}

/* ================================================
   FIXES: Content Three Column - CTA in Col 1 + Images + Stats
   ================================================ */

/* CTA buttons inside Column 1 - 24px below content */
.ds-content-three-column__col--text .ds-content-three-column__buttons {
    margin-top: 24px;
}

/* Mobile-only copy rendered outside read-more-wrap - hidden on desktop */
.ds-content-three-column__buttons--mobile-rm {
    display: none;
}

@media (max-width: 768px) {
    /* Hide the in-column version on mobile when read-more is active (gets clipped by collapse) */
    .ds-content-three-column--has-read-more .ds-content-three-column__col--text .ds-content-three-column__buttons {
        display: none;
    }

    /* Show the outside copy on mobile */
    .ds-content-three-column__buttons--mobile-rm {
        display: flex;
        justify-content: center;
        width: 100%;
        margin-top: 16px;
    }

    .ds-content-three-column__buttons--mobile-rm .ds-btn-group {
        justify-content: center;
    }
}

/* Images: equal size and proper spacing */
.ds-content-three-column__image-stack {
    display: flex;
    flex-direction: column;
    gap: var(--ds-space-4);
}

.ds-content-three-column__image-wrapper {
    border-radius: var(--ds-radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 3;
}

.ds-content-three-column__image-wrapper:first-child,
.ds-content-three-column__image-wrapper:nth-child(2) {
    margin-top: 0;
    margin-left: 0;
    z-index: auto;
}

.ds-content-three-column__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Stats: number uses CSS custom properties for custom styling */
.ds-content-three-column__stat-number {
    display: block;
    font-family: var(--ds-font-heading);
    font-size: var(--ds-stat-number-size, var(--ds-text-3xl));
    font-weight: var(--ds-stat-number-weight, var(--ds-weight-bold));
    color: var(--ds-stat-number-color, var(--ds-block-heading-color, var(--ds-primary, #1e3a5f)));
    line-height: 1;
    margin-bottom: var(--ds-space-1);
}

/* Stats: label uses global body font size by default */
.ds-content-three-column__stat-label {
    display: block;
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-stat-label-size, var(--ds-block-body-size, var(--ds-text-base)));
    font-weight: var(--ds-stat-label-weight, var(--ds-weight-normal));
    color: var(--ds-stat-label-color, var(--ds-block-body-color, inherit));
    opacity: 0.8;
    line-height: 1.4;
}

/* Stats: icon support */
.ds-content-three-column__stat {
    display: flex;
    align-items: flex-start;
    gap: var(--ds-space-3);
    padding: var(--ds-space-4);
    background: var(--ds-white, #ffffff);
    border-radius: var(--ds-radius-lg);
    box-shadow: var(--ds-shadow-sm);
}

.ds-content-three-column__stat-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ds-stat-number-color, var(--ds-block-heading-color, var(--ds-primary, #1e3a5f)));
    border-radius: var(--ds-radius-md);
    background: rgba(0, 0, 0, 0.04);
}

.ds-content-three-column__stat-icon svg {
    width: 24px;
    height: 24px;
}

.ds-content-three-column__stat-icon--custom img {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

.ds-content-three-column__stat-content {
    flex: 1;
    min-width: 0;
}

/* When no icon, stat still looks good */
.ds-content-three-column__stat:not(:has(.ds-content-three-column__stat-icon)) {
    flex-direction: column;
}

/* Theme adaptation for stat cards */
.ds-typography-light-on-dark .ds-content-three-column__stat {
    background: rgba(255, 255, 255, 0.08);
    box-shadow: none;
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.ds-typography-light-on-dark .ds-content-three-column__stat-icon {
    background: rgba(255, 255, 255, 0.1);
    color: var(--ds-stat-number-color, #ffffff);
}

/* Mobile: CTA buttons center */
@media (max-width: 968px) {
    .ds-content-three-column__col--text .ds-content-three-column__buttons {
        display: flex;
        justify-content: center;
        width: 100%;
    }

    .ds-content-three-column__col--text .ds-content-three-column__buttons .ds-btn-group {
        justify-content: center;
    }
}

/* ================================================
   FIX: Features Grid Image - Feature title color override
   The global .ds-typography-* rules use !important on [class*="__feature-title"]
   which overrides the block-level --ds-card-title-color CSS variable.
   This fix uses a higher-specificity selector to ensure the block's
   card_title_color setting takes precedence.
   ================================================ */

/* When custom typography is OFF - override the global typography rules */
.ds-typography-dark-on-light.ds-features-grid-image .ds-features-grid-image__feature-title {
    color: var(--ds-card-title-color, var(--ds-heading-color-light, #171717)) !important;
}

.ds-typography-light-on-dark.ds-features-grid-image .ds-features-grid-image__feature-title {
    color: var(--ds-card-title-color, var(--ds-heading-color-dark, #ffffff)) !important;
}

/* When custom typography is ON */
.ds-features-grid-image:not([class*=ds-typography-]) .ds-features-grid-image__feature-title {
    color: var(--ds-card-title-color, var(--ds-block-heading-color, inherit)) !important;
}

/* Also fix for features-grid-dark */
.ds-typography-dark-on-light.ds-features-grid-dark .ds-features-grid-dark__feature-title {
    color: var(--ds-card-title-color, var(--ds-heading-color-light, #171717)) !important;
}

.ds-typography-light-on-dark.ds-features-grid-dark .ds-features-grid-dark__feature-title {
    color: var(--ds-card-title-color, var(--ds-heading-color-dark, #ffffff)) !important;
}

/* features-hero-image typography - handled in main block */


/* ================================================
   FIXES: Benefits & Risks - New Features CSS
   ================================================ */

/* Intro text below benefits title */
.ds-benefits-risks__intro {
    font-size: var(--ds-block-body-size, var(--ds-text-base));
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    color: var(--ds-block-body-color, inherit);
    margin: 0 0 var(--ds-space-4) 0;
    opacity: 0.85;
    line-height: 1.6;
}

/* After table content area */
.ds-benefits-risks__after-table {
    max-width: 800px;
    margin: 0 auto var(--ds-space-8);
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-base));
    color: var(--ds-block-body-color, inherit);
    line-height: 1.6;
}

.ds-benefits-risks__after-table p:last-child {
    margin-bottom: 0;
}

/* Testimonial section wrapper */
.ds-benefits-risks__testimonial-section {
    max-width: 800px;
    margin: 0 auto var(--ds-space-8);
    text-align: center;
}

.ds-benefits-risks__testimonial-section .ds-benefits-risks__quote-intro {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-lg));
    color: var(--ds-block-body-color, inherit);
    margin: 0 0 var(--ds-space-6) 0;
    opacity: 0.8;
}

/* Testimonial card using standard ds_render_testimonial */
.ds-benefits-risks__testimonial {
    text-align: left;
}

.ds-benefits-risks__testimonial .ds-testimonial--inline,
.ds-benefits-risks__testimonial .ds-testimonial--minimal {
    background: var(--ds-testimonial-bg, var(--ds-grey-100));
    border: 1px solid var(--ds-testimonial-border-color, transparent);
    padding: var(--ds-space-8) var(--ds-space-10);
}

/* Testimonial style variants inside benefits-risks — target inner card */
.ds-benefits-risks__testimonial.ds-testimonial-style--rounded .ds-testimonial--inline,
.ds-benefits-risks__testimonial.ds-testimonial-style--rounded .ds-testimonial--minimal {
    border-radius: var(--ds-testimonial-custom-radius, 12px);
}

.ds-benefits-risks__testimonial.ds-testimonial-style--sharp .ds-testimonial--inline,
.ds-benefits-risks__testimonial.ds-testimonial-style--sharp .ds-testimonial--minimal {
    border-radius: 0;
}

.ds-benefits-risks__testimonial.ds-testimonial-style--pill .ds-testimonial--inline,
.ds-benefits-risks__testimonial.ds-testimonial-style--pill .ds-testimonial--minimal {
    border-radius: 999px;
}

/* Quote icon color override */
.ds-benefits-risks__testimonial .ds-testimonial__quote-icon svg {
    color: var(--ds-testimonial-quote-color, rgba(184, 151, 126, 0.3));
    fill: var(--ds-testimonial-quote-color, rgba(184, 151, 126, 0.3));
}

/* Center quote text (keep icon in same position) */
.ds-benefits-risks__testimonial .ds-testimonial__quote {
    text-align: center;
}

/* Center the author row */
.ds-benefits-risks__testimonial .ds-testimonial__author {
    justify-content: center;
}

/* Initial letter avatar */
.ds-benefits-risks__testimonial .ds-testimonial__avatar--initial {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ds-testimonial-initial-bg, #b8977e);
    color: var(--ds-testimonial-initial-color, #ffffff);
    font-weight: 600;
    font-size: 1.25rem;
}

/* Per-item icon alignment */
.ds-benefits-risks__list-item .ds-list__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 3px;
}

.ds-benefits-risks__list-item .ds-list__icon svg {
    width: 18px;
    height: 18px;
}

.ds-benefits-risks__list-item .ds-list__icon img {
    width: 18px;
    height: 18px;
    object-fit: contain;
}

/* Column title icon sizing */
.ds-benefits-risks__icon img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

/* Buttons section */
.ds-benefits-risks__buttons {
    margin-top: var(--ds-space-8);
}

.ds-benefits-risks__buttons .ds-btn-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ds-space-4);
    justify-content: center;
}

@media (max-width: 768px) {
    .ds-benefits-risks__buttons .ds-btn-group {
        flex-direction: column;
        align-items: stretch;
    }

    .ds-benefits-risks__testimonial .ds-testimonial--inline,
    .ds-benefits-risks__testimonial .ds-testimonial--minimal {
        padding: var(--ds-space-6);
    }
}
/* ================================================
   GALLERY BLOCK — Flexible image gallery
   ================================================

   CENTERING STRATEGY FOR ORPHAN ITEMS:
   We use display: flex + flex-wrap: wrap + justify-content: center
   on .ds-gallery-block__grid. Each item width is calculated as:

       calc((100% - (columns - 1) * gap) / columns)

   Because the container is flex with justify-content: center,
   when the last row has fewer items than --gallery-columns,
   those items naturally centre themselves — no pseudo-elements,
   no nth-child hacks, purely intrinsic flex behaviour.

   The column count is driven by the --gallery-columns CSS custom
   property, which is set inline per block from the ACF field.
   ================================================ */

.ds-gallery-block {
    position: relative;
    background-color: var(--ds-block-bg, var(--ds-white, #ffffff));
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 60px var(--ds-space-6, 24px);
    overflow: hidden;
}

.ds-gallery-block__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--ds-block-overlay-color, rgba(0, 0, 0, 0.5));
    opacity: var(--ds-block-overlay-opacity, 0.5);
    z-index: 0;
    pointer-events: none;
}

.ds-gallery-block__container {
    position: relative;
    z-index: 1;
    max-width: var(--ds-container-xl, 1280px);
    margin: 0 auto;
}

/* ── Empty State ─────────────────────────────── */
.ds-gallery-block__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px;
    border: 2px dashed var(--ds-grey-300, #d1d5db);
    border-radius: var(--ds-radius-lg, 12px);
    color: var(--ds-grey-400, #9ca3af);
    gap: 8px;
}

.ds-gallery-block__empty .dashicons {
    font-size: 48px;
    width: 48px;
    height: 48px;
}

/* ── Grid / Masonry Layout ───────────────────── */
.ds-gallery-block__grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gallery-gap, 16px);
}

.ds-gallery-block__item {
    /*
     * Item width formula:
     * Total available space = 100% minus all inter-column gaps.
     * Gaps count = columns - 1.
     * Each item gets an equal share of that space.
     */
    width: calc(
        (100% - (var(--gallery-columns, 3) - 1) * var(--gallery-gap, 16px))
        / var(--gallery-columns, 3)
    );
    margin: 0;
    overflow: hidden;
    border-radius: var(--ds-radius-lg, 12px);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.ds-gallery-block__item:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
}

/* Image wrapper — enforces aspect ratio */
.ds-gallery-block__img-wrap {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background-color: var(--ds-grey-100, #f3f4f6);
}

.ds-gallery-block__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.4s ease, opacity 0.3s ease;
}

/* Subtle scale on hover */
.ds-gallery-block__item:hover .ds-gallery-block__img {
    transform: scale(1.05);
}

/* Caption */
.ds-gallery-block__caption {
    padding: 10px 12px;
    font-size: var(--ds-text-sm, 0.875rem);
    line-height: 1.4;
    color: var(--ds-grey-600, #4b5563);
    text-align: center;
    background-color: var(--ds-grey-50, #f9fafb);
}

/* ── Masonry Modifier ────────────────────────── */
/*
 * Masonry layout: same flex container but items get auto height
 * instead of a fixed 16:9 aspect ratio, and we use CSS columns
 * for a true masonry flow.
 */
.ds-gallery-block--masonry .ds-gallery-block__grid {
    display: block;
    column-count: var(--gallery-columns, 3);
    column-gap: var(--gallery-gap, 16px);
}

.ds-gallery-block--masonry .ds-gallery-block__item {
    width: 100%;
    break-inside: avoid;
    margin-bottom: var(--gallery-gap, 16px);
    display: inline-block;
}

/* Masonry items have natural aspect ratio */
.ds-gallery-block--masonry .ds-gallery-block__img-wrap {
    aspect-ratio: auto;
}

/* ── Slider Layout ───────────────────────────── */
.ds-gallery-block__slider {
    position: relative;
    overflow: hidden;
    border-radius: var(--ds-radius-xl, 16px);
}

.ds-gallery-block__slider .ds-gallery-block__figure {
    margin: 0;
}

.ds-gallery-block__slider .ds-gallery-block__img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    display: block;
}

/* Swiper navigation styling */
.ds-gallery-block__nav {
    color: #ffffff;
    background-color: rgba(0, 0, 0, 0.35);
    border-radius: 50%;
    width: 44px;
    height: 44px;
    transition: background-color 0.2s ease;
}

.ds-gallery-block__nav:hover {
    background-color: rgba(0, 0, 0, 0.55);
}

.ds-gallery-block__nav::after {
    font-size: 18px;
    font-weight: 700;
}

.ds-gallery-block__pagination {
    bottom: 12px !important;
}

.ds-gallery-block__pagination .swiper-pagination-bullet {
    background: #ffffff;
    opacity: 0.6;
    width: 10px;
    height: 10px;
}

.ds-gallery-block__pagination .swiper-pagination-bullet-active {
    opacity: 1;
}

/* ── CTA Section ─────────────────────────────── */

/* ── Gallery Blur-to-Reveal ─────────────────── */
.ds-gallery-block__blur-wrap {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    display: block;
}

.ds-gallery-block__img--blurred {
    filter: blur(20px);
    transform: scale(1.05);
    transition: filter 0.5s ease, transform 0.5s ease;
}

.ds-gallery-block__blur-wrap.is-revealed .ds-gallery-block__img--blurred {
    filter: blur(0);
    transform: scale(1);
}

.ds-gallery-block__blur-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.15);
    z-index: 2;
    transition: opacity 0.4s ease, visibility 0.4s ease;
    pointer-events: none;
}

.ds-gallery-block__blur-wrap.is-revealed .ds-gallery-block__blur-overlay {
    opacity: 0;
    visibility: hidden;
}

.ds-gallery-block__blur-icon {
    width: 36px;
    height: 36px;
    color: #ffffff;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.4));
    margin-bottom: 8px;
}

.ds-gallery-block__blur-label {
    font-size: 13px;
    font-weight: 600;
    color: #ffffff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
    letter-spacing: 0.03em;
}

@media (max-width: 767px) {
    .ds-gallery-block__blur-icon {
        width: 28px;
        height: 28px;
    }
    .ds-gallery-block__blur-label {
        font-size: 11px;
    }
}

.ds-gallery-block__cta {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: var(--ds-space-10, 40px);
}

/* Shared button base */
.ds-gallery-block__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 32px;
    font-size: var(--ds-text-base, 1rem);
    font-weight: 600;
    line-height: 1;
    border-radius: var(--ds-radius-lg, 12px);
    text-decoration: none;
    cursor: pointer;
    transition: all 0.25s ease;
    border: 2px solid transparent;
}

/* Primary — filled */
.ds-gallery-block__cta-btn--primary {
    background-color: var(--ds-primary, #3b82f6);
    color: #ffffff;
    border-color: var(--ds-primary, #3b82f6);
}

.ds-gallery-block__cta-btn--primary:hover {
    background-color: var(--ds-primary-dark, #2563eb);
    border-color: var(--ds-primary-dark, #2563eb);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.35);
}

/* Secondary — filled with muted tone */
.ds-gallery-block__cta-btn--secondary {
    background-color: var(--ds-grey-800, #1f2937);
    color: #ffffff;
    border-color: var(--ds-grey-800, #1f2937);
}

.ds-gallery-block__cta-btn--secondary:hover {
    background-color: var(--ds-grey-900, #111827);
    border-color: var(--ds-grey-900, #111827);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

/* Outline — transparent bg with border */
.ds-gallery-block__cta-btn--outline {
    background-color: transparent;
    color: var(--ds-primary, #3b82f6);
    border-color: var(--ds-primary, #3b82f6);
}

.ds-gallery-block__cta-btn--outline:hover {
    background-color: var(--ds-primary, #3b82f6);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.25);
}

/* ── Responsive: Tablet ──────────────────────── */
@media (max-width: 968px) {
    .ds-gallery-block__grid {
        --gallery-columns: 2 !important;
    }

    .ds-gallery-block--masonry .ds-gallery-block__grid {
        column-count: 2;
    }

    .ds-gallery-block__slider .ds-gallery-block__img {
        height: 300px;
    }
}

/* ── Responsive: Mobile ──────────────────────── */
@media (max-width: 600px) {
    .ds-gallery-block {
        padding: 48px var(--ds-space-4, 16px);
    }

    .ds-gallery-block__grid {
        --gallery-columns: 1 !important;
    }

    .ds-gallery-block--masonry .ds-gallery-block__grid {
        column-count: 1;
    }

    .ds-gallery-block__slider .ds-gallery-block__img {
        height: 220px;
    }

    .ds-gallery-block__cta-btn {
        width: 100%;
        text-align: center;
    }
}

/* ── Gallery Header (prehook / heading / intro) ── */
.ds-gallery-block__header {
    text-align: center;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
}

.ds-gallery-block__header .ds-prehook {
    margin-bottom: var(--ds-space-4, 16px);
}

.ds-gallery-block__heading {
    font-family: var(--ds-font-heading, inherit);
    font-weight: 600;
    line-height: 1.2;
    margin: 0 0 var(--ds-space-4, 16px) 0;
}

.ds-gallery-block__body {
    font-size: var(--ds-text-lg, 1.125rem);
    line-height: 1.6;
    opacity: 0.85;
}

.ds-gallery-block__body p:last-child {
    margin-bottom: 0;
}

/* ── Lightbox trigger (replaces the plain div img-wrap) ── */
.ds-gallery-block__lightbox-trigger {
    cursor: zoom-in;
    display: block;
    text-decoration: none;
    color: inherit;
}

/* ── Buttons section ─────────────────────────── */
/* Gallery Show More */
.ds-gallery-block__item--hidden {
    display: none;
}

.ds-gallery-block__show-more-wrap {
    text-align: center;
    margin-top: 24px;
}

.ds-gallery-block__show-more-btn {
    display: none;
    text-align: center;
    transition: opacity 0.2s ease;
}

@media (max-width: 1024px) {
    .ds-gallery-block__show-more-btn {
        display: block;
        width: 100%;
    }
}

.ds-gallery-block__buttons {
    display: flex;
    justify-content: center;
    margin-top: var(--ds-space-10, 40px);
}

/* ══════════════════════════════════════════════════
   GALLERY LIGHTBOX
   ══════════════════════════════════════════════════ */
.ds-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: rgba(0, 0, 0, 0.92);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}

.ds-lightbox.is-active {
    opacity: 1;
    visibility: visible;
}

/* Image container */
.ds-lightbox__image-wrap {
    position: relative;
    max-width: 90vw;
    max-height: 85vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ds-lightbox__img {
    max-width: 90vw;
    max-height: 85vh;
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 8px 48px rgba(0, 0, 0, 0.4);
    user-select: none;
    -webkit-user-drag: none;
    transition: opacity 0.25s ease;
}

.ds-lightbox__img.is-loading {
    opacity: 0.3;
}

/* Caption */
.ds-lightbox__caption {
    position: absolute;
    bottom: -36px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.875rem;
    line-height: 1.4;
    text-align: center;
    white-space: nowrap;
    max-width: 80vw;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Counter (e.g. "3 / 12") */
.ds-lightbox__counter {
    position: absolute;
    top: 16px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.8125rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    pointer-events: none;
}

/* Close button */
.ds-lightbox__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 44px;
    height: 44px;
    border: none;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease, transform 0.2s ease;
    z-index: 10;
}

.ds-lightbox__close:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: scale(1.1);
}

.ds-lightbox__close svg {
    width: 20px;
    height: 20px;
}

/* Navigation arrows */
.ds-lightbox__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border: none;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s ease, transform 0.2s ease;
    z-index: 10;
}

.ds-lightbox__arrow:hover {
    background: rgba(255, 255, 255, 0.25);
}

.ds-lightbox__arrow--prev {
    left: 16px;
}

.ds-lightbox__arrow--prev:hover {
    transform: translateY(-50%) translateX(-2px);
}

.ds-lightbox__arrow--next {
    right: 16px;
}

.ds-lightbox__arrow--next:hover {
    transform: translateY(-50%) translateX(2px);
}

.ds-lightbox__arrow svg {
    width: 24px;
    height: 24px;
}

/* Hide arrows when single image */
.ds-lightbox[data-total="1"] .ds-lightbox__arrow,
.ds-lightbox[data-total="1"] .ds-lightbox__counter {
    display: none;
}

/* ── Lightbox Mobile ─────────────────────────── */
@media (max-width: 600px) {
    .ds-lightbox__img {
        max-width: 96vw;
        max-height: 80vh;
    }

    .ds-lightbox__arrow {
        width: 40px;
        height: 40px;
    }

    .ds-lightbox__arrow--prev {
        left: 8px;
    }

    .ds-lightbox__arrow--next {
        right: 8px;
    }

    .ds-lightbox__close {
        top: 8px;
        right: 8px;
    }

    .ds-lightbox__counter {
        top: 8px;
    }
}

/* ═══════════════════════════════════════════════════════════
   Doctor's Note Block
   ═══════════════════════════════════════════════════════════ */
.ds-doctors-note {
    position: relative;
    background-color: var(--ds-block-bg, var(--ds-grey-50));
    background-image: var(--ds-block-bg-image);
    background-size: cover;
    background-position: center;
    padding: var(--ds-block-padding-top, 60px) var(--ds-space-6) var(--ds-block-padding-bottom, 60px);
}

.ds-doctors-note__overlay {
    position: absolute;
    inset: 0;
    background-color: var(--ds-block-overlay-color, rgba(0, 0, 0, 0.5));
    opacity: var(--ds-block-overlay-opacity, 0.5);
    z-index: 0;
}

.ds-doctors-note__container {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 0 auto;
}

.ds-doctors-note__header {
    text-align: center;
    margin-bottom: var(--ds-space-4);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.ds-doctors-note__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, 700);
    font-size: var(--ds-block-heading-size-desktop, 48px);
    line-height: var(--ds-block-heading-line-height, 1);
    color: var(--ds-block-heading-color, var(--ds-heading-color-light));
    text-transform: capitalize;
    margin: 0;
}

@media (max-width: 768px) {
    .ds-doctors-note__heading {
        font-size: var(--ds-block-heading-size-mobile, 32px);
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .ds-doctors-note__heading {
        font-size: var(--ds-block-heading-size-tablet, 40px);
    }
}

.ds-doctors-note__card {
    background-color: var(--ds-card-bg, #ffffff);
    border: 2px solid var(--ds-card-border-color, #054f7d);
    border-radius: var(--ds-card-radius, 0);
    padding: 52px;
}

@media (max-width: 768px) {
    .ds-doctors-note {
        padding: 48px var(--ds-space-4);
    }
    .ds-doctors-note__card {
        padding: 24px 20px;
    }
}

.ds-doctors-note__body {
    text-align: center;
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-weight: var(--ds-block-body-weight, 400);
    font-size: var(--ds-block-body-size, 18px);
    line-height: var(--ds-block-body-line-height, 1.4);
    color: var(--ds-block-body-color, #2d3032);
    padding-bottom: 26px;
}

.ds-doctors-note__body p {
    margin: 0 0 10px 0;
}

.ds-doctors-note__body p:last-child {
    margin-bottom: 0;
}

.ds-doctors-note__signature {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px 0 8px;
}

.ds-doctors-note__doctor-image {
    flex-shrink: 0;
}

.ds-doctors-note__avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    object-fit: cover;
}

.ds-doctors-note__signature-image {
    max-width: 250px;
}

.ds-doctors-note__sig-img {
    max-height: 61px;
    width: auto;
    display: block;
}

.ds-doctors-note__signature-name {
    font-family: var(--ds-signature-font, 'Dancing Script', cursive);
    font-size: 36px;
    line-height: 1.2;
    color: var(--ds-block-body-color, #2d3032);
    white-space: nowrap;
}

@media (max-width: 768px) {
    .ds-doctors-note__signature-name {
        font-size: 28px;
    }
}

.ds-doctors-note__signature-details {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ds-doctors-note__designation {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: 15px;
    font-weight: 400;
    color: var(--ds-block-body-color, #555);
    letter-spacing: 0.02em;
    margin-top: -2px;
}

@media (max-width: 768px) {
    .ds-doctors-note__signature {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .ds-doctors-note__signature-details {
        align-items: center;
    }
}

.ds-doctors-note__buttons {
    display: flex;
    justify-content: center;
    padding-top: 30px;
}

/* Read-more button inside card */
.ds-doctors-note__card .ds-read-more-toggle {
    margin-bottom: 20px;
    display: block;
    text-align: center;
    width: 100%;
}

/* Light on dark variant */
.ds-typography-light-on-dark .ds-doctors-note__heading {
    color: var(--ds-heading-color-dark);
}

.ds-typography-light-on-dark .ds-doctors-note__body {
    color: var(--ds-body-color-dark);
}


/* ============================================================
   FAQ Accordion Block
   ============================================================ */
.ds-faq-accordion {
    background: var(--ds-block-bg, #ffffff);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    padding: var(--ds-block-padding-top, 60px) 48px var(--ds-block-padding-bottom, 60px);
    position: relative;
    box-sizing: border-box;
}

.ds-faq-accordion__overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: var(--ds-block-overlay-color, #000000);
    opacity: var(--ds-block-overlay-opacity, 0.5);
    pointer-events: none;
    z-index: 0;
}

.ds-faq-accordion__container {
    max-width: 900px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

/* Header */
.ds-faq-accordion__header {
    text-align: center;
    margin-bottom: var(--ds-space-10, 40px);
}

.ds-faq-accordion__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, 600);
    font-size: var(--ds-block-heading-size-desktop, var(--ds-text-4xl));
    line-height: var(--ds-block-heading-line-height, 1.2);
    color: var(--ds-block-heading-color, inherit);
    margin: 0 0 var(--ds-space-4, 16px) 0;
}

.ds-faq-accordion__body {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-weight: var(--ds-block-body-weight, 400);
    font-size: var(--ds-block-body-size, var(--ds-text-lg));
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
    max-width: 700px;
    margin: 0 auto;
}

.ds-faq-accordion__body p {
    margin: 0 0 8px 0;
}
.ds-faq-accordion__body p:last-child {
    margin-bottom: 0;
}

/* Accordion Items Container */
.ds-faq-accordion__items {
    display: flex;
    flex-direction: column;
}

/* Accordion Item */
.ds-faq-accordion__item {
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}

/* Question Button */
.ds-faq-accordion__question {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px 24px;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, var(--ds-text-base, 16px));
    font-weight: 600;
    color: var(--ds-faq-question-color, var(--ds-block-body-color, inherit));
    transition: background-color 0.2s ease, color 0.2s ease;
    line-height: 1.4;
}

.ds-faq-accordion__question:focus-visible {
    outline: 2px solid var(--ds-faq-accent-color, #b8977e);
    outline-offset: -2px;
}

/* Question Icon (optional SVG before text) */
.ds-faq-accordion__question-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    color: var(--ds-faq-icon-color, var(--ds-faq-accent-color, #b8977e));
    transition: color 0.2s ease;
}

.ds-faq-accordion__question-icon svg {
    width: 20px;
    height: 20px;
}

/* Question Text */
.ds-faq-accordion__question-text {
    flex: 1;
}

/* Toggle Icon (chevron or plus/minus) */
.ds-faq-accordion__toggle-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    transition: transform 0.3s ease, color 0.2s ease;
    color: var(--ds-faq-accent-color, #b8977e);
    opacity: 0.7;
}

.ds-faq-accordion__toggle-icon svg {
    width: 20px;
    height: 20px;
}

.ds-faq-accordion__item.is-open .ds-faq-accordion__toggle-icon {
    transform: rotate(180deg);
    opacity: 1;
    color: var(--ds-faq-accent-color, #b8977e);
}

/* Answer */
.ds-faq-accordion__answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
}

.ds-faq-accordion__item.is-open .ds-faq-accordion__answer {
    /* max-height set by JS */
}

.ds-faq-accordion__answer-inner {
    padding: 16px 24px 20px 24px;
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-weight: var(--ds-block-body-weight, 400);
    font-size: var(--ds-block-body-size, var(--ds-text-base));
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-faq-answer-color, var(--ds-block-body-color, inherit));
}

.ds-faq-accordion__answer-inner p,
.ds-faq-accordion__answer-inner li {
    font-family: inherit;
    font-weight: inherit;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

.ds-faq-accordion__answer-inner p {
    margin: 0 0 12px 0;
}
.ds-faq-accordion__answer-inner p:last-child {
    margin-bottom: 0;
}

.ds-faq-accordion__answer-inner ul,
.ds-faq-accordion__answer-inner ol {
    margin: 0 0 12px 0;
    padding-left: 1.5em;
}
.ds-faq-accordion__answer-inner ul:last-child,
.ds-faq-accordion__answer-inner ol:last-child {
    margin-bottom: 0;
}
.ds-faq-accordion__answer-inner li {
    margin-bottom: 6px;
}

.ds-faq-accordion__answer-inner a {
    color: var(--ds-faq-accent-color, #b8977e);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.ds-faq-accordion__answer-inner a:hover {
    opacity: 0.8;
}

.ds-faq-accordion__answer-inner h1,
.ds-faq-accordion__answer-inner h2,
.ds-faq-accordion__answer-inner h3,
.ds-faq-accordion__answer-inner h4,
.ds-faq-accordion__answer-inner h5,
.ds-faq-accordion__answer-inner h6 {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, var(--ds-font-body)));
    font-weight: var(--ds-block-heading-weight, 700);
    color: var(--ds-faq-question-color, var(--ds-block-heading-color, inherit));
    margin: 0 0 8px 0;
    line-height: 1.3;
}

.ds-faq-accordion__answer-inner strong,
.ds-faq-accordion__answer-inner b {
    font-weight: 600;
}

.ds-faq-accordion__answer-inner blockquote {
    border-left: 3px solid var(--ds-faq-accent-color, #b8977e);
    margin: 0 0 12px 0;
    padding: 8px 16px;
    font-style: italic;
    opacity: 0.9;
}

/* Buttons */
.ds-faq-accordion__buttons {
    margin-top: var(--ds-space-10, 40px);
    text-align: center;
}

/* ── Style: Boxed ── */
.ds-faq-accordion--boxed .ds-faq-accordion__items {
    gap: 12px;
}

.ds-faq-accordion--boxed .ds-faq-accordion__item {
    border: 1px solid var(--ds-faq-divider-color, rgba(0,0,0,0.1));
    border-radius: 8px;
    transition: border-color 0.2s ease;
}

.ds-faq-accordion--boxed .ds-faq-accordion__item:hover {
    border-color: var(--ds-faq-accent-color, #b8977e);
}

.ds-faq-accordion--boxed .ds-faq-accordion__item.is-open {
    border-color: var(--ds-faq-accent-color, #b8977e);
}

.ds-faq-accordion--boxed .ds-faq-accordion__question {
    background: var(--ds-faq-question-bg, #f8f9fa);
}

.ds-faq-accordion--boxed .ds-faq-accordion__question:hover {
    background: #f0f1f3;
}

.ds-faq-accordion--boxed .ds-faq-accordion__item.is-open .ds-faq-accordion__question {
    background: #f0f1f3;
    border-bottom: 1px solid var(--ds-faq-divider-color, rgba(0,0,0,0.08));
}

/* ── Style: Card ── */
.ds-faq-accordion--card .ds-faq-accordion__items {
    gap: 16px;
}

.ds-faq-accordion--card .ds-faq-accordion__item {
    border-radius: 12px;
    border: 1px solid transparent;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);
    background: #ffffff;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.ds-faq-accordion--card .ds-faq-accordion__item:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.06);
    border: 1px solid var(--ds-faq-accent-color, #b8977e);
}

.ds-faq-accordion--card .ds-faq-accordion__item.is-open {
    border: 1px solid var(--ds-faq-accent-color, #b8977e);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.06);
}

.ds-faq-accordion--card .ds-faq-accordion__question {
    padding: 24px 28px;
}

.ds-faq-accordion--card .ds-faq-accordion__answer-inner {
    padding: 10px 28px 24px 28px;
}

.ds-faq-accordion--card .ds-faq-accordion__item.is-open .ds-faq-accordion__question {
    border-bottom: 1px solid #f0f0f0;
}

/* ── Style: Minimal ── */
.ds-faq-accordion--minimal .ds-faq-accordion__items {
    gap: 0;
}

.ds-faq-accordion--minimal .ds-faq-accordion__item {
    border-bottom: 1px solid var(--ds-faq-divider-color, #e5e7eb);
}

.ds-faq-accordion--minimal .ds-faq-accordion__item:first-child {
    border-top: 1px solid var(--ds-faq-divider-color, #e5e7eb);
}

.ds-faq-accordion--minimal .ds-faq-accordion__question {
    padding: 20px 8px;
}

.ds-faq-accordion--minimal .ds-faq-accordion__question:hover {
    color: var(--ds-faq-accent-color, #b8977e);
}

.ds-faq-accordion--minimal .ds-faq-accordion__item.is-open .ds-faq-accordion__question {
    color: var(--ds-faq-accent-color, #b8977e);
}

.ds-faq-accordion--minimal .ds-faq-accordion__answer-inner {
    padding: 4px 8px 20px 8px;
}

/* Plus/minus icon rotation for minimal style */
.ds-faq-accordion--minimal .ds-faq-accordion__item.is-open .ds-faq-accordion__toggle-icon {
    transform: rotate(45deg);
}

/* ── Style: Highlight ── */
.ds-faq-accordion--highlight .ds-faq-accordion__items {
    gap: 8px;
}

.ds-faq-accordion--highlight .ds-faq-accordion__item {
    border-left: 4px solid var(--ds-faq-divider-color, #e5e7eb);
    border-radius: 0 8px 8px 0;
    transition: border-color 0.3s ease;
}

.ds-faq-accordion--highlight .ds-faq-accordion__item.is-open {
    border-left-color: var(--ds-faq-accent-color, #b8977e);
}

.ds-faq-accordion--highlight .ds-faq-accordion__question {
    padding: 18px 24px;
}

.ds-faq-accordion--highlight .ds-faq-accordion__question:hover {
    background: rgba(0,0,0,0.02);
    color: var(--ds-faq-accent-color, #b8977e);
}

.ds-faq-accordion--highlight .ds-faq-accordion__item.is-open .ds-faq-accordion__question {
    color: var(--ds-faq-accent-color, #b8977e);
}

.ds-faq-accordion--highlight .ds-faq-accordion__answer-inner {
    padding: 0 24px 18px 24px;
    border-top: 1px solid #f0f0f0;
}

/* ── Typography color scheme ── */
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__heading {
    color: var(--ds-heading-color-dark);
}
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__body,
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__question,
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__question {
    color: var(--ds-faq-question-color, rgba(255, 255, 255, 0.95));
}
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__answer-inner {
    color: var(--ds-faq-answer-color, var(--ds-body-color-dark, rgba(255, 255, 255, 0.85)));
}
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__answer-inner h1,
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__answer-inner h2,
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__answer-inner h3,
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__answer-inner h4,
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__answer-inner h5,
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__answer-inner h6 {
    color: var(--ds-faq-question-color, var(--ds-heading-color-dark, #ffffff));
}
.ds-faq-accordion.ds-typography-light-on-dark .ds-faq-accordion__toggle-icon {
    color: var(--ds-faq-accent-color, var(--ds-body-color-dark));
}

/* Boxed style on dark */
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--boxed .ds-faq-accordion__item {
    border-color: rgba(255,255,255,0.15);
}
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--boxed .ds-faq-accordion__question {
    background: rgba(255,255,255,0.05);
}
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--boxed .ds-faq-accordion__question:hover {
    background: rgba(255,255,255,0.08);
}
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--boxed .ds-faq-accordion__item.is-open .ds-faq-accordion__question {
    background: rgba(255,255,255,0.08);
    border-bottom-color: rgba(255,255,255,0.15);
}

/* Card style on dark */
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--card .ds-faq-accordion__item {
    background: rgba(255,255,255,0.06);
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--card .ds-faq-accordion__item:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--card .ds-faq-accordion__item.is-open .ds-faq-accordion__question {
    border-bottom-color: rgba(255,255,255,0.1);
}

/* Minimal style on dark */
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--minimal .ds-faq-accordion__item {
    border-bottom-color: rgba(255,255,255,0.15);
}
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--minimal .ds-faq-accordion__item:first-child {
    border-top-color: rgba(255,255,255,0.15);
}

/* Highlight style on dark */
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--highlight .ds-faq-accordion__item {
    border-left-color: rgba(255,255,255,0.15);
}
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--highlight .ds-faq-accordion__question:hover {
    background: rgba(255,255,255,0.03);
}
.ds-faq-accordion.ds-typography-light-on-dark.ds-faq-accordion--highlight .ds-faq-accordion__answer-inner {
    border-top-color: rgba(255,255,255,0.1);
}

/* ── Responsive ── */
@media (max-width: 1024px) {
    .ds-faq-accordion {
        padding: 60px 32px;
    }

    .ds-faq-accordion__heading {
        font-size: var(--ds-block-heading-size-tablet, var(--ds-text-3xl));
    }

    .ds-faq-accordion__answer-inner {
        font-size: var(--ds-block-body-size-tablet, var(--ds-block-body-size, var(--ds-text-base)));
    }

    .ds-faq-accordion__question {
        font-size: var(--ds-block-body-size-tablet, var(--ds-block-body-size, var(--ds-text-base, 16px)));
    }
}

@media (max-width: 768px) {
    .ds-faq-accordion {
        padding: 48px 20px;
    }

    .ds-faq-accordion__heading {
        font-size: var(--ds-block-heading-size-mobile, var(--ds-text-2xl));
    }

    .ds-faq-accordion__question {
        padding: 16px 16px;
        font-size: var(--ds-block-body-size-mobile, var(--ds-block-body-size, 15px));
        text-align: center;
    }

    .ds-faq-accordion__answer-inner {
        padding: 0 16px 16px 16px;
        font-size: var(--ds-block-body-size-mobile, var(--ds-block-body-size, 14px));
        text-align: center;
    }

    .ds-faq-accordion--card .ds-faq-accordion__question {
        padding: 18px 20px;
    }

    .ds-faq-accordion--card .ds-faq-accordion__answer-inner {
        padding: 10px 20px 18px 20px;
    }
}

/* ================================================
   Contact Form Block
   ================================================ */
.ds-contact-form {
    position: relative;
    padding: var(--ds-block-padding-top, 60px) 40px var(--ds-block-padding-bottom, 60px);
    background-color: var(--ds-block-bg, #ffffff);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    overflow: hidden;
}

.ds-contact-form__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay-color, rgba(0,0,0,0.5));
    opacity: var(--ds-block-overlay-opacity, 0.5);
    z-index: 0;
}

.ds-contact-form__container {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
}

/* -- Prehook fix: only content width, not full width -- */
.ds-contact-form .ds-prehook {
    width: fit-content;
}

/* -- Header (Stacked style) -- */
.ds-contact-form__header {
    text-align: center;
    margin-bottom: 40px;
}
.ds-contact-form__header .ds-prehook {
    margin-left: auto;
    margin-right: auto;
}

/* -- Heading -- */
.ds-contact-form__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading));
    font-weight: var(--ds-block-heading-weight, 600);
    font-size: var(--ds-block-heading-size-desktop, var(--ds-text-4xl));
    line-height: var(--ds-block-heading-line-height, 1.2);
    color: var(--ds-block-heading-color, inherit);
    margin: 0 0 16px 0;
}

/* -- Body -- */
.ds-contact-form__body {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-weight: var(--ds-block-body-weight, 400);
    font-size: var(--ds-block-body-size, var(--ds-text-lg));
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
    margin-bottom: 24px;
}
.ds-contact-form__body p { margin: 0 0 8px 0; }
.ds-contact-form__body p:last-child { margin-bottom: 0; }
.ds-contact-form__body a {
    color: var(--ds-contact-accent-color, #b8977e);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: opacity 0.2s ease;
}
.ds-contact-form__body a:hover {
    opacity: 0.8;
}

/* -- Contact Info -- */
.ds-contact-form__info {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 32px;
}
.ds-contact-form__info--grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    max-width: 800px;
    margin: 32px auto;
}
.ds-contact-form__info--row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-top: 24px;
}

.ds-contact-form__info-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}
.ds-contact-form__info-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--ds-contact-accent-color, #b8977e) 12%, transparent);
    color: var(--ds-contact-icon-color, var(--ds-contact-accent-color, #b8977e));
    transition: background 0.2s ease, color 0.2s ease;
}
.ds-contact-form__info-icon svg {
    width: 22px;
    height: 22px;
}
.ds-contact-form__info-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.ds-contact-form__info-label {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--ds-contact-accent-color, #b8977e);
    line-height: 1.3;
}
.ds-contact-form__info-value {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-weight: var(--ds-block-body-weight, 400);
    font-size: var(--ds-block-body-size, 16px);
    line-height: 1.5;
    color: var(--ds-block-body-color, inherit);
    text-decoration: none;
    transition: color 0.2s ease;
}
a.ds-contact-form__info-value:hover {
    color: var(--ds-contact-accent-color, #b8977e);
}

/* -- Testimonial -- */
.ds-contact-form__testimonial {
    margin-top: 36px;
    padding-top: 28px;
    border-top: 1px solid color-mix(in srgb, var(--ds-contact-accent-color, #b8977e) 20%, transparent);
}
.ds-contact-form__stars {
    display: flex;
    gap: 3px;
    margin-bottom: 12px;
}
.ds-contact-form__star {
    color: #d4d4d4;
    transition: color 0.2s ease;
}
.ds-contact-form__star--filled {
    color: var(--ds-contact-accent-color, #b8977e);
}
.ds-contact-form__quote {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-size: var(--ds-block-body-size, 15px);
    line-height: 1.6;
    color: var(--ds-block-body-color, inherit);
    font-style: italic;
    margin: 0 0 12px 0;
    padding: 0;
    border: none;
    opacity: 0.9;
}
.ds-contact-form__author {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.ds-contact-form__author-name {
    font-weight: 600;
    font-size: 18px;
    color: var(--ds-block-heading-color, inherit);
}
.ds-contact-form__author-title {
    font-size: 13px;
    color: var(--ds-block-body-color, inherit);
    opacity: 0.7;
}

/* -- Form Area -- */
.ds-contact-form__form {
    background: var(--ds-contact-form-bg, #f8f8f8);
    border-radius: 12px;
    padding: 36px;
}

/* -- Form submit button centering -- */
.ds-contact-form__form .gform_footer,
.ds-contact-form__form .gform-footer,
.ds-contact-form__form .gform_page_footer,
.ds-contact-form__form .wpforms-submit-container,
.ds-contact-form__form .wpcf7-form p:last-of-type {
    text-align: center;
}
.ds-contact-form__form .gform_button,
.ds-contact-form__form .gform-footer input[type="submit"],
.ds-contact-form__form .wpforms-submit,
.ds-contact-form__form .wpcf7-submit {
    display: inline-block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-family: var(--ds-font-body) !important;
    font-weight: var(--ds-submit-font-weight, 500) !important;
    font-size: var(--ds-submit-font-size, 16px) !important;
    padding: var(--ds-submit-padding, 12px 24px) !important;
    border: 1px solid transparent !important;
    border-radius: var(--ds-submit-radius, 4px) !important;
    background: var(--ds-submit-bg, #171717) !important;
    color: var(--ds-submit-text, #ffffff) !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    letter-spacing: 0.3px;
    line-height: 1.4 !important;
    margin-top: 8px;
    position: relative;
    overflow: hidden;
    z-index: 1;
}
.ds-contact-form__form .gform_button:hover,
.ds-contact-form__form .gform-footer input[type="submit"]:hover,
.ds-contact-form__form .wpforms-submit:hover,
.ds-contact-form__form .wpcf7-submit:hover {
    background: var(--ds-submit-hover-bg, #333333) !important;
    color: var(--ds-submit-hover-text, #ffffff) !important;
}

/* -- Gravity Forms Styling -- */
.ds-contact-form__form .gform_wrapper .gfield {
    margin-bottom: 10px;
}
.ds-contact-form__form .gform_wrapper .gfield_label,
.ds-contact-form__form .gform_wrapper .gfield_label_before_complex {
    font-family: var(--ds-block-body-font, var(--ds-font-body));
    font-weight: 500;
    font-size: 14px;
    color: var(--ds-block-heading-color, inherit);
    margin-bottom: 6px;
    display: block;
}
.ds-contact-form__form .gform_wrapper input[type="text"],
.ds-contact-form__form .gform_wrapper input[type="email"],
.ds-contact-form__form .gform_wrapper input[type="tel"],
.ds-contact-form__form .gform_wrapper input[type="url"],
.ds-contact-form__form .gform_wrapper input[type="number"],
.ds-contact-form__form .gform_wrapper input[type="date"],
.ds-contact-form__form .gform_wrapper select,
.ds-contact-form__form .gform_wrapper textarea {
    font-family: var(--ds-block-body-font, var(--ds-font-body)) !important;
    font-size: 16px !important;
    padding: 14px 16px !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 8px !important;
    background-color: #ffffff !important;
    color: inherit !important;
    width: 100% !important;
    box-sizing: border-box !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    line-height: 1.4 !important;
    min-height: 48px !important;
}
.ds-contact-form__form .gform_wrapper input:focus,
.ds-contact-form__form .gform_wrapper select:focus,
.ds-contact-form__form .gform_wrapper textarea:focus {
    outline: none !important;
    border-color: var(--ds-contact-accent-color, #b8977e) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-contact-accent-color, #b8977e) 15%, transparent) !important;
}
.ds-contact-form__form .gform_wrapper textarea {
    min-height: 120px;
    resize: vertical;
}
/* Override orbital theme field sizing */
.ds-contact-form__form .gform_wrapper.gform-theme--orbital {
    --gf-ctrl-size: 48px !important;
    --gf-ctrl-size-md: 48px !important;
}
.ds-contact-form__form .gform_wrapper .gfield input[type="text"],
.ds-contact-form__form .gform_wrapper .gfield input[type="email"],
.ds-contact-form__form .gform_wrapper .gfield input[type="tel"],
.ds-contact-form__form .gform_wrapper .gfield input[type="url"],
.ds-contact-form__form .gform_wrapper .gfield input[type="number"],
.ds-contact-form__form .gform_wrapper .gfield select,
.ds-contact-form__form .gform-theme--orbital .gfield input[type="text"],
.ds-contact-form__form .gform-theme--orbital .gfield input[type="email"],
.ds-contact-form__form .gform-theme--orbital .gfield input[type="tel"],
.ds-contact-form__form .gform-theme--orbital .gfield input[type="url"],
.ds-contact-form__form .gform-theme--orbital .gfield input[type="number"],
.ds-contact-form__form .gform-theme--orbital .gfield select {
    padding: 14px 16px !important;
    min-height: 48px !important;
    line-height: 1.4 !important;
    font-size: 16px !important;
    box-sizing: border-box !important;
}
.ds-contact-form__form .gform_wrapper .gfield textarea,
.ds-contact-form__form .gform-theme--orbital .gfield textarea {
    padding: 14px 16px !important;
    min-height: 120px !important;
    line-height: 1.5 !important;
    font-size: 16px !important;
    box-sizing: border-box !important;
}

.ds-contact-form__form .gform_wrapper .gform_button,
.ds-contact-form__form .gform_wrapper input[type="submit"],
.ds-contact-form__form .gform_wrapper .gform-footer input[type="submit"] {
    font-family: var(--ds-font-body) !important;
    font-weight: var(--ds-submit-font-weight, 500) !important;
    font-size: var(--ds-submit-font-size, 16px) !important;
    padding: var(--ds-submit-padding, 12px 24px) !important;
    border: 1px solid transparent !important;
    border-radius: var(--ds-submit-radius, 4px) !important;
    background: var(--ds-submit-bg, #171717) !important;
    color: var(--ds-submit-text, #ffffff) !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    letter-spacing: 0.3px;
    line-height: 1.4 !important;
    margin-top: 8px;
    position: relative;
    overflow: hidden;
    z-index: 1;
}
.ds-contact-form__form .gform_wrapper .gform_button:hover,
.ds-contact-form__form .gform_wrapper input[type="submit"]:hover,
.ds-contact-form__form .gform_wrapper .gform-footer input[type="submit"]:hover {
    background: var(--ds-submit-hover-bg, #333333) !important;
    color: var(--ds-submit-hover-text, #ffffff) !important;
}
.ds-contact-form__form .gform_wrapper .gfield_required {
    color: var(--ds-contact-accent-color, #b8977e) !important;
    margin-left: 3px;
}
.ds-contact-form__form .gform_wrapper .ginput_complex label,
.ds-contact-form__form .gform_wrapper .gfield_description {
    font-size: 12px;
    color: inherit;
    opacity: 0.6;
    margin-top: 4px;
}
.ds-contact-form__form .gform_wrapper .gfield_validation_message {
    font-size: 13px;
    color: #dc3545;
    margin-top: 4px;
}
.ds-contact-form__form .gform_wrapper .validation_error {
    border: 1px solid #dc3545;
    background: #fff5f5;
    color: #dc3545;
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 20px;
    font-size: 14px;
}

/* -- Divider (Compact style) -- */
.ds-contact-form__divider {
    border: none;
    border-top: 1px solid color-mix(in srgb, var(--ds-contact-accent-color, #b8977e) 20%, transparent);
    margin: 28px 0;
}

/* -- Google Maps Embed -- */
.ds-contact-form__map-embed {
    margin-top: 24px;
    border-radius: 12px;
    overflow: hidden;
}
.ds-contact-form__map-embed iframe {
    display: block;
    width: 100%;
    height: 300px;
    border: 0;
    border-radius: 12px;
}

/* -- Buttons -- */
.ds-contact-form__buttons {
    margin-top: 40px;
    text-align: center;
}

/* -- Disclaimer / Notes -- */
/* Neutral wrapper: sits in the form column below the form. Custom markup
   pasted into the field controls its own appearance. */
.ds-contact-form__disclaimer {
    margin-top: 24px;
}
.ds-contact-form__disclaimer > :first-child { margin-top: 0; }
.ds-contact-form__disclaimer > :last-child { margin-bottom: 0; }

/* SMS / text-messaging consent box (paste the matching markup into the
   Disclaimer / Notes field — Text tab) */
.sol-sms-consent {
    font-family: 'Lato', sans-serif;
    color: #303030;
    background: #f7f9fb;
    border-left: 3px solid #00a1dd;
    border-radius: 6px;
    padding: 28px 32px;
    margin: 0;
    max-width: 100%;
    box-shadow: 0 2px 8px rgba(5, 79, 125, 0.06);
}
.sol-sms-consent__title {
    font-family: 'Playfair Display', serif;
    font-size: 24px;
    font-weight: 600;
    color: #054f7d !important;
    margin: 0 0 16px 0;
    line-height: 1.3;
    letter-spacing: -0.01em;
}
.sol-sms-consent__list {
    list-style: disc;
    padding-left: 20px;
    margin: 0;
}
.sol-sms-consent__list li {
    font-size: 16px;
    line-height: 1.6;
    color: #303030;
    margin-bottom: 10px;
    padding-left: 4px;
}
.sol-sms-consent__list li:last-child { margin-bottom: 0; }
.sol-sms-consent__list li strong {
    color: #054f7d;
    font-weight: 700;
}
.sol-sms-consent__link {
    color: #00a1dd;
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 600;
    transition: color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.sol-sms-consent__link:hover,
.sol-sms-consent__link:focus {
    color: #008bbf;
    text-decoration: underline;
}
@media (max-width: 768px) {
    .sol-sms-consent {
        padding: 24px 20px;
    }
    .sol-sms-consent__title { font-size: 22px; }
    .sol-sms-consent__list li { font-size: 15px; }
}

/* ---- Style: Split ---- */
.ds-contact-form--split .ds-contact-form__wrapper {
    display: grid;
    grid-template-columns: 5fr 7fr;
    grid-template-rows: auto 1fr;
    gap: 0 60px;
    align-items: start;
}
.ds-contact-form--split .ds-contact-form__info-header {
    grid-column: 1;
    grid-row: 1;
}
.ds-contact-form--split .ds-contact-form__info-details {
    grid-column: 1;
    grid-row: 2;
}
.ds-contact-form--split .ds-contact-form__form-side {
    grid-column: 2;
    grid-row: 1 / -1;
}
.ds-contact-form--split .ds-contact-form__heading {
    margin-bottom: 12px;
}
.ds-contact-form--split .ds-contact-form__body {
    margin-bottom: 0;
}

/* Content position: right = reverse column order */
.ds-contact-form--content-right .ds-contact-form__wrapper {
    grid-template-columns: 7fr 5fr;
}
.ds-contact-form--content-right .ds-contact-form__info-header {
    grid-column: 2;
}
.ds-contact-form--content-right .ds-contact-form__info-details {
    grid-column: 2;
}
.ds-contact-form--content-right .ds-contact-form__form-side {
    grid-column: 1;
}

/* ---- Style: Stacked ---- */
.ds-contact-form--stacked .ds-contact-form__header {
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}
.ds-contact-form--stacked .ds-contact-form__form {
    max-width: 700px;
    margin: 0 auto;
}
.ds-contact-form--stacked .ds-contact-form__testimonial {
    text-align: center;
    max-width: 600px;
    margin: 36px auto 0;
}
.ds-contact-form--stacked .ds-contact-form__stars {
    justify-content: center;
}

/* ---- Style: Compact ---- */
.ds-contact-form--compact .ds-contact-form__card {
    max-width: 1400px;
    margin: 0 auto;
    background: var(--ds-contact-card-bg, var(--ds-block-bg, #ffffff));
    border-radius: var(--ds-contact-card-radius, 16px);
    border: 1px solid var(--ds-contact-card-border, transparent);
    box-shadow: 0 4px 24px rgba(0,0,0,0.08);
    padding: 40px;
}
.ds-contact-form--compact .ds-prehook {
    display: block;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 16px;
}
.ds-contact-form--compact .ds-contact-form__heading {
    text-align: center;
}
.ds-contact-form--compact .ds-contact-form__body {
    text-align: center;
}
.ds-contact-form--compact .ds-contact-form__form {
    background: transparent;
    padding: 0;
    border-radius: 0;
}
.ds-contact-form--compact .ds-contact-form__testimonial {
    text-align: center;
}
.ds-contact-form--compact .ds-contact-form__stars {
    justify-content: center;
}

/* ---- Style: Map ---- */
.ds-contact-form--map .ds-contact-form__wrapper {
    display: grid;
    grid-template-columns: 5fr 7fr;
    grid-template-rows: auto 1fr;
    gap: 0 60px;
    align-items: start;
}
.ds-contact-form--map .ds-contact-form__info-header {
    grid-column: 1;
    grid-row: 1;
}
.ds-contact-form--map .ds-contact-form__info-details {
    grid-column: 1;
    grid-row: 2;
}
.ds-contact-form--map .ds-contact-form__form-side {
    grid-column: 2;
    grid-row: 1 / -1;
}

/* ---- Dark Theme (Light on Dark) ---- */
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__heading {
    color: var(--ds-heading-color-dark, #ffffff);
}
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__body,
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__body p,
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__info-value,
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__quote {
    color: var(--ds-body-color-dark, rgba(255,255,255,0.85));
}
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__author-name {
    color: var(--ds-heading-color-dark, #ffffff);
}
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__author-title {
    color: rgba(255,255,255,0.6);
}
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__info-icon {
    background: rgba(255,255,255,0.1);
}
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__form {
    background: rgba(255,255,255,0.06);
}
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__testimonial {
    border-top-color: rgba(255,255,255,0.15);
}
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__divider {
    border-top-color: rgba(255,255,255,0.15);
}
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__star {
    color: rgba(255,255,255,0.2);
}
.ds-contact-form.ds-typography-light-on-dark .ds-contact-form__star--filled {
    color: var(--ds-contact-accent-color, #b8977e);
}
.ds-contact-form.ds-typography-light-on-dark.ds-contact-form--compact .ds-contact-form__card {
    background: var(--ds-contact-card-bg, rgba(255,255,255,0.06));
    box-shadow: 0 4px 24px rgba(0,0,0,0.3);
}
/* Dark theme: Gravity Forms inputs */
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input[type="text"],
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input[type="email"],
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input[type="tel"],
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input[type="url"],
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper select,
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper textarea {
    background: rgba(255,255,255,0.08) !important;
    border-color: rgba(255,255,255,0.15) !important;
    color: rgba(255,255,255,0.9) !important;
}
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper .gfield_label {
    color: rgba(255,255,255,0.9);
}

/* ---- Responsive ---- */
@media (max-width: 1024px) {
    .ds-contact-form {
        padding: var(--ds-block-padding-top, 60px) 32px var(--ds-block-padding-bottom, 60px);
    }
    .ds-contact-form__heading {
        font-size: var(--ds-block-heading-size-tablet, var(--ds-text-3xl));
    }
    .ds-contact-form__body,
    .ds-contact-form__info-value,
    .ds-contact-form__quote {
        font-size: var(--ds-block-body-size-tablet, var(--ds-block-body-size, var(--ds-text-base)));
    }
    .ds-contact-form--split .ds-contact-form__wrapper,
    .ds-contact-form--map .ds-contact-form__wrapper {
        gap: 0 40px;
    }
    /* Reduce form card padding on tablet */
    .ds-contact-form__form {
        padding: 28px;
    }
    /* Stack split/map to single column on tablet */
    .ds-contact-form--split .ds-contact-form__wrapper,
    .ds-contact-form--map .ds-contact-form__wrapper {
        display: flex;
        flex-direction: column;
        gap: 32px;
    }
    /* Center form for split/map when stacked */
    .ds-contact-form--split .ds-contact-form__form-side,
    .ds-contact-form--map .ds-contact-form__form-side {
        max-width: 700px;
        margin-left: auto;
        margin-right: auto;
        width: 100%;
    }
    /* Center business info block on tablet - group centered, text left-aligned */
    .ds-contact-form--split .ds-contact-form__info-header,
    .ds-contact-form--map .ds-contact-form__info-header {
        max-width: 700px;
        margin-left: auto;
        margin-right: auto;
        width: 100%;
        text-align: center;
    }
    /* Center info-details wrapper (info + testimonial) */
    .ds-contact-form--split .ds-contact-form__info-details,
    .ds-contact-form--map .ds-contact-form__info-details {
        max-width: 700px;
        margin-left: auto;
        margin-right: auto;
        width: 100%;
    }
    /* Info block: shrink to widest item, center the group */
    .ds-contact-form__info {
        width: fit-content;
        margin-left: auto;
        margin-right: auto;
    }
    .ds-contact-form__info--grid {
        width: fit-content;
        margin-left: auto;
        margin-right: auto;
    }
    .ds-contact-form__info--row {
        width: fit-content;
        margin-left: auto;
        margin-right: auto;
    }
}

@media (max-width: 768px) {
    .ds-contact-form {
        padding: var(--ds-block-padding-top, 48px) 20px var(--ds-block-padding-bottom, 48px);
    }
    .ds-contact-form__heading {
        font-size: var(--ds-block-heading-size-mobile, var(--ds-text-2xl));
        text-align: center;
    }
    .ds-contact-form__body {
        font-size: var(--ds-block-body-size-mobile, var(--ds-block-body-size, 15px));
        text-align: center;
    }
    .ds-contact-form__info-value,
    .ds-contact-form__quote {
        font-size: var(--ds-block-body-size-mobile, var(--ds-block-body-size, 14px));
    }
    .ds-contact-form .ds-prehook {
        margin-left: auto;
        margin-right: auto;
    }

    /* Stack split/map to single column - mobile reorder */
    .ds-contact-form--split .ds-contact-form__wrapper,
    .ds-contact-form--map .ds-contact-form__wrapper {
        display: flex;
        flex-direction: column;
        gap: 32px;
    }
    .ds-contact-form--split .ds-contact-form__info-header,
    .ds-contact-form--map .ds-contact-form__info-header {
        order: 1;
        text-align: center;
    }
    .ds-contact-form--split .ds-contact-form__form-side,
    .ds-contact-form--map .ds-contact-form__form-side {
        order: 2;
        max-width: 700px;
        margin-left: auto;
        margin-right: auto;
        width: 100%;
    }
    .ds-contact-form--split .ds-contact-form__info-details,
    .ds-contact-form--map .ds-contact-form__info-details {
        order: 3;
        max-width: 700px;
        margin-left: auto;
        margin-right: auto;
        width: 100%;
    }

    /* Info block: shrink to widest item, center the group */
    .ds-contact-form__info {
        width: fit-content;
        margin-left: auto;
        margin-right: auto;
    }
    .ds-contact-form__info--grid {
        width: fit-content;
        margin-left: auto;
        margin-right: auto;
    }

    /* Compact: tighter padding */
    .ds-contact-form--compact .ds-contact-form__card {
        padding: 28px 20px;
    }

    /* Info row single column, centered as group */
    .ds-contact-form__info--row {
        display: flex;
        flex-direction: column;
        width: fit-content;
        margin-left: auto;
        margin-right: auto;
    }

    .ds-contact-form__form {
        padding: 24px 20px;
    }

    .ds-contact-form__info-icon {
        width: 38px;
        height: 38px;
    }
    .ds-contact-form__info-icon svg {
        width: 18px;
        height: 18px;
    }

    .ds-contact-form__testimonial {
        text-align: center;
    }
    .ds-contact-form__stars {
        justify-content: center;
    }

    .ds-contact-form__map-embed iframe {
        height: 220px;
    }

    /* Mobile: full-width submit button */
    .ds-contact-form__form .gform_wrapper .gform_button,
    .ds-contact-form__form .gform_wrapper input[type="submit"],
    .ds-contact-form__form .gform-footer input[type="submit"],
    .ds-contact-form__form .gform_button,
    .ds-contact-form__form .wpforms-submit,
    .ds-contact-form__form .wpcf7-submit {
        width: 100% !important;
        box-sizing: border-box !important;
    }
}


/* ================================================
   LONG CONTENT BLOCK
   ================================================ */

/* Base */
.ds-long-content {
    position: relative;
    background-color: var(--ds-block-bg, #ffffff);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    padding: var(--ds-block-padding-top, 60px) 24px var(--ds-block-padding-bottom, 60px);
    overflow: hidden;
}

.ds-long-content__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 1;
}

.ds-long-content__container {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
}

/* ── SPLIT VARIATION ── */
.ds-long-content--split .ds-long-content__container {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 48px;
    align-items: start;
}

.ds-long-content--split.ds-long-content--content-left .ds-long-content__container {
    grid-template-columns: 3fr 2fr;
}

.ds-long-content--split.ds-long-content--content-left .ds-long-content__media {
    order: 2;
}

.ds-long-content--split.ds-long-content--content-left .ds-long-content__content {
    order: 1;
}

/* ── STACKED VARIATION ── */
.ds-long-content--stacked .ds-long-content__container {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.ds-long-content--stacked .ds-long-content__media--full {
    width: 100%;
}

.ds-long-content--stacked .ds-long-content__content--full {
    max-width: 65ch;
    margin: 0 auto;
}

/* ── FLOATING VARIATION ── */
.ds-long-content--floating .ds-long-content__container {
    max-width: 65ch;
    margin: 0 auto;
}

.ds-long-content__float-image {
    width: 45%;
    margin-bottom: 16px;
}

.ds-long-content__float-image--left {
    float: left;
    margin-right: 32px;
}

.ds-long-content__float-image--right {
    float: right;
    margin-left: 32px;
}

.ds-long-content--floating .ds-long-content__content-inner::after {
    content: '';
    display: table;
    clear: both;
}

/* ── SIDEBAR VARIATION ── */
.ds-long-content--sidebar .ds-long-content__container {
    display: grid;
    grid-template-columns: 1fr 30%;
    gap: 48px;
    align-items: start;
}

.ds-long-content--sidebar.ds-long-content--content-left .ds-long-content__container {
    grid-template-columns: 30% 1fr;
}

.ds-long-content--sidebar.ds-long-content--content-left .ds-long-content__media--sticky {
    order: 1;
}

.ds-long-content--sidebar.ds-long-content--content-left .ds-long-content__content--main {
    order: 2;
}

.ds-long-content__media--sticky .ds-long-content__image-wrapper {
    position: sticky;
    top: 32px;
}

/* ── SHARED IMAGE STYLES ── */
.ds-long-content__image-wrapper img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--ds-image-radius, 12px);
    object-fit: cover;
}

/* ── CONTENT STYLES ── */
.ds-long-content__content-inner > * + * {
    margin-top: 24px;
}

.ds-long-content__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-weight: var(--ds-block-heading-weight, 400);
    font-size: var(--ds-block-heading-size-desktop, 40px);
    line-height: var(--ds-block-heading-line-height, 1.2);
    color: var(--ds-block-heading-color, inherit);
    margin: 0;
}

.ds-long-content__body {
    font-family: var(--ds-block-body-font, var(--ds-font-body, inherit));
    font-size: var(--ds-block-body-size, 16px);
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
}

.ds-long-content__body p + p {
    margin-top: 16px;
}

.ds-long-content__body ul,
.ds-long-content__body ol {
    padding-left: 24px;
    margin-top: 12px;
    margin-bottom: 12px;
}

.ds-long-content__additional-content {
    font-family: var(--ds-block-body-font, var(--ds-font-body, inherit));
    font-size: var(--ds-block-body-size, 16px);
    line-height: var(--ds-block-body-line-height, 1.6);
    color: var(--ds-block-body-color, inherit);
}

.ds-long-content__additional-content p + p {
    margin-top: 16px;
}

/* ── LIST ENHANCEMENTS ── */
.ds-long-content__list {
    margin-top: 24px;
}

.ds-long-content__list .ds-list__item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 8px 0;
}

.ds-long-content__list .ds-list__number {
    font-weight: 700;
    font-size: 1.1em;
    min-width: 28px;
    color: var(--ds-list-icon-color, #b8977e);
    flex-shrink: 0;
}

.ds-long-content__list .ds-list__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    margin-top: 2px;
}

.ds-long-content__list .ds-list__icon svg {
    display: block;
}

.ds-long-content__list .ds-list__text {
    flex: 1;
}

/* ── TESTIMONIAL ── */
.ds-long-content__testimonial {
    margin-top: 32px;
}

/* ── BUTTONS ── */
.ds-long-content__buttons {
    margin-top: 32px;
}

/* ── RESPONSIVE ── */
@media (max-width: 968px) {
    .ds-long-content--split .ds-long-content__container,
    .ds-long-content--sidebar .ds-long-content__container {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .ds-long-content--split .ds-long-content__media,
    .ds-long-content--sidebar .ds-long-content__media--sticky {
        order: 1;
    }

    .ds-long-content--split .ds-long-content__content,
    .ds-long-content--sidebar .ds-long-content__content--main {
        order: 2;
    }

    .ds-long-content--mobile-content-first .ds-long-content__content,
    .ds-long-content--mobile-content-first .ds-long-content__content--main {
        order: 1 !important;
    }

    .ds-long-content--mobile-content-first .ds-long-content__media,
    .ds-long-content--mobile-content-first .ds-long-content__media--sticky {
        order: 2 !important;
    }

    .ds-long-content__media--sticky .ds-long-content__image-wrapper {
        position: static;
    }

    .ds-long-content__float-image {
        float: none;
        width: 100%;
        margin: 24px 0;
    }

    .ds-long-content--floating .ds-long-content__container {
        max-width: 100%;
    }

    .ds-long-content--stacked .ds-long-content__content--full {
        max-width: 100%;
    }
}

@media (max-width: 767px) {
    .ds-long-content {
        padding: 48px 16px;
    }

    .ds-long-content__heading {
        font-size: var(--ds-block-heading-size-mobile, 28px);
    }
}

/* Global mobile block padding: 40px top/bottom (80px combined between sections) */
@media (max-width: 768px) {
    .ds-hero-fullwidth-bg,
    .ds-hero-split-video,
    .ds-hero-split-reviews,
    .ds-hero-video-centered,
    .ds-content-three-column,
    .ds-features-grid-image,
    .ds-stats-bar,
    .ds-logo-bar,
    .ds-testimonial-card,
    .ds-faq-accordion,
    .ds-gallery-block,
    .ds-benefits-risks,
    .ds-how-it-works,
    .ds-doctors-note,
    .ds-contact-form-block,
    .ds-long-content {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }
}

/* WCAG 2.5.5 minimum touch target sizes */
@media (max-width: 768px) {
    .ds-btn,
    .ds-read-more-toggle,
    .ds-faq-accordion__question,
    [class*="ds-"] button,
    [class*="ds-"] a[class] {
        min-height: 44px;
    }
    /* Carousel dots are decorative indicators — exempt from 44px touch target */
    .ds-testimonial-card__dot {
        min-height: 10px !important;
    }
}

/* ==========================================================================
   Hero About Block
   ========================================================================== */

.ds-hero-about {
    position: relative;
    min-height: 600px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--ds-block-bg, #054f7d);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    color: #ffffff;
}

.ds-hero-about__image-wrapper {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.ds-hero-about__image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.ds-hero-about__image--mobile {
    display: none;
}

.ds-hero-about__gradient {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(
        to right,
        rgba(5, 79, 125, 0.92) 0%,
        rgba(5, 79, 125, 0.85) 40%,
        rgba(5, 79, 125, 0.30) 100%
    );
}

.ds-hero-about__content {
    position: relative;
    z-index: 3;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--ds-block-padding-top, 80px) 24px var(--ds-block-padding-bottom, 80px);
}

.ds-hero-about__inner {
    max-width: 800px;
}

.ds-hero-about__eyebrow {
    display: inline-block;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    opacity: 0.9;
    margin-bottom: 16px;
}

.ds-hero-about__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-weight: var(--ds-block-heading-weight, 400);
    font-size: var(--ds-block-heading-size-desktop, 56px);
    line-height: var(--ds-block-heading-line-height, 1.15);
    color: var(--ds-block-heading-color, #ffffff);
    margin: 0 0 16px 0;
}

.ds-hero-about__heading em {
    font-style: italic;
    display: block;
    font-size: var(--ds-block-em-size-desktop, 0.6em);
    margin-top: 8px;
    opacity: 0.9;
}

.ds-hero-about__subtitle {
    font-size: 1.125rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 24px 0;
    max-width: 800px;
}

.ds-hero-about__cta {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}

.ds-hero-about__badges {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}

.ds-hero-about__badge {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 4px;
    color: #ffffff;
    font-size: 0.85rem;
    font-weight: 500;
    padding: 8px 16px;
    white-space: nowrap;
}

/* Image badges: solid white pill so colored logos stay legible on dark heroes */
.ds-hero-about__badge--image {
    background: #ffffff;
    display: flex;
    align-items: center;
    padding: 8px 14px;
}

.ds-hero-about__badge--image .ds-hero-about__badge-img {
    height: 60px;
    width: auto;
    max-width: 260px;
    object-fit: contain;
    display: block;
}

/* Hero About — Content Alignment Modifiers */
.ds-hero-about--align-center .ds-hero-about__inner {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}
.ds-hero-about--align-center .ds-hero-about__inner ul,
.ds-hero-about--align-center .ds-hero-about__inner ol {
    text-align: left;
}
.ds-hero-about--align-center .ds-hero-about__cta {
    justify-content: center;
}
.ds-hero-about--align-center .ds-hero-about__badges {
    justify-content: center;
}
.ds-hero-about--align-center .ds-hero-about__subtitle {
    margin-left: auto;
    margin-right: auto;
}

.ds-hero-about--align-right .ds-hero-about__inner {
    text-align: right;
    margin-left: auto;
}
.ds-hero-about--align-right .ds-hero-about__inner ul,
.ds-hero-about--align-right .ds-hero-about__inner ol {
    text-align: left;
}
.ds-hero-about--align-right .ds-hero-about__cta {
    justify-content: flex-end;
}
.ds-hero-about--align-right .ds-hero-about__badges {
    justify-content: flex-end;
}
.ds-hero-about--align-right .ds-hero-about__subtitle {
    margin-left: auto;
}

/* Hero About — Subtitle WYSIWYG List Styles */
.ds-hero-about__subtitle ul,
.ds-hero-about__subtitle ol {
    margin: 0.5em 0;
    font-size: var(--ds-list-font-size, inherit);
    font-weight: var(--ds-list-font-weight, inherit);
}

/* Icon-style lists via data-list-style attribute — strip native bullets, use ::before icons */
.ds-hero-about__subtitle[data-list-style] ul {
    list-style: none;
    padding-left: 0;
}
.ds-hero-about__subtitle[data-list-style] ul li {
    position: relative;
    padding-left: 1.6em;
    margin-bottom: var(--ds-list-spacing, 8px);
    line-height: inherit;
    color: inherit;
}
.ds-hero-about__subtitle[data-list-style] ul li::before {
    position: absolute;
    left: 0;
    color: var(--ds-block-list-color, #b8977e);
    font-weight: 700;
    line-height: inherit;
}
/* checkmark: ✓ */
.ds-hero-about__subtitle[data-list-style="checkmark"] ul li::before {
    content: '\2713';
    top: 0;
    font-size: 0.95em;
}
/* check-circle: ✓ with slightly different weight */
.ds-hero-about__subtitle[data-list-style="check-circle"] ul li::before {
    content: '\2713';
    top: 0;
    font-size: 0.95em;
}
/* circle: filled bullet */
.ds-hero-about__subtitle[data-list-style="circle"] ul li::before {
    content: '\25CF';
    font-size: 0.55em;
    top: 0.45em;
    font-weight: 400;
}
/* arrow: › */
.ds-hero-about__subtitle[data-list-style="arrow"] ul li::before {
    content: '\203A';
    font-size: 1.3em;
    top: -0.1em;
}
/* chevron: › same as arrow */
.ds-hero-about__subtitle[data-list-style="chevron"] ul li::before {
    content: '\203A';
    font-size: 1.3em;
    top: -0.1em;
}
/* Fallback for ol (numbered): keep browser defaults */
.ds-hero-about__subtitle ol {
    padding-left: 1.5em;
}
.ds-hero-about__subtitle ol li {
    margin-bottom: var(--ds-list-spacing, 8px);
}

/* Hero About — Testimonial (scoped overrides for ds-testimonial--hero) */
.ds-hero-about__testimonial {
    margin-top: 24px;
}
.ds-hero-about__testimonial .ds-testimonial--hero .ds-testimonial__quote-icon {
    color: rgba(255, 255, 255, 0.4);
}
.ds-hero-about__testimonial .ds-testimonial--hero .ds-testimonial__quote {
    font-size: var(--ds-block-body-size, 15px);
    line-height: 1.6;
    color: var(--ds-testimonial-quote-color, rgba(255, 255, 255, 0.9));
    margin-bottom: 12px;
}
.ds-hero-about__testimonial .ds-testimonial--hero .ds-testimonial__avatar--initial {
    background: rgba(255, 255, 255, 0.15);
    color: #ffffff;
}
.ds-hero-about__testimonial .ds-testimonial--hero .ds-testimonial__name {
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    font-style: normal;
}
.ds-hero-about__testimonial .ds-testimonial--hero .ds-testimonial__title {
    color: rgba(255, 255, 255, 0.55);
}

/* Hero About — Testimonial Style Variants */
.ds-hero-about__testimonial .ds-testimonial--hero.ds-testimonial--rounded {
    background: var(--ds-testimonial-bg, rgba(255, 255, 255, 0.08));
    border-radius: 12px;
    padding: 20px 24px;
}
.ds-hero-about__testimonial .ds-testimonial--hero.ds-testimonial--rectangle {
    background: var(--ds-testimonial-bg, rgba(255, 255, 255, 0.08));
    border-radius: 0;
    padding: 20px 24px;
}
.ds-hero-about__testimonial .ds-testimonial--hero.ds-testimonial--quote-bubble {
    background: var(--ds-testimonial-bg, rgba(255, 255, 255, 0.08));
    border-radius: 12px;
    padding: 20px 24px;
    position: relative;
}
.ds-hero-about__testimonial .ds-testimonial--hero.ds-testimonial--quote-bubble::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 28px;
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid rgba(255, 255, 255, 0.08);
}
.ds-hero-about__testimonial .ds-testimonial--hero.ds-testimonial--custom {
    background: var(--ds-testimonial-bg, rgba(255, 255, 255, 0.08));
    border-radius: 8px;
    padding: 20px 24px;
}

/* Hero About — Center/Right alignment: testimonial text centering */
.ds-hero-about--align-center .ds-hero-about__testimonial .ds-testimonial--hero {
    text-align: center;
}
.ds-hero-about--align-center .ds-hero-about__testimonial .ds-testimonial--hero .ds-testimonial__author {
    justify-content: center;
}
.ds-hero-about--align-center .ds-hero-about__testimonial .ds-testimonial--hero .ds-testimonial__quote-icon {
    text-align: center;
}

/* Hero About — Responsive (matches index.html hero mobile layout) */
@media (max-width: 768px) {
    .ds-hero-about {
        min-height: auto;
        flex-direction: column;
        align-items: stretch;
    }

    .ds-hero-about__image-wrapper {
        position: relative;
        height: 300px;
        flex-shrink: 0;
    }

    .ds-hero-about__gradient {
        position: absolute;
        inset: 0;
        background: linear-gradient(
            to top,
            var(--ds-block-bg, #054f7d) 0%,
            rgba(5, 79, 125, 0.95) 20%,
            rgba(5, 79, 125, 0.6) 50%,
            rgba(5, 79, 125, 0.2) 75%,
            transparent 100%
        );
    }

    .ds-hero-about__content {
        position: relative;
        background: var(--ds-block-bg, #054f7d);
        padding: 0 20px 48px;
        margin-top: -80px;
        z-index: 3;
    }

    .ds-hero-about__content::before {
        content: '';
        position: absolute;
        top: -80px;
        left: 0;
        right: 0;
        height: 80px;
        background: linear-gradient(to top, var(--ds-block-bg, #054f7d), transparent);
        pointer-events: none;
    }

    .ds-hero-about__heading {
        font-size: var(--ds-block-heading-size-mobile, 32px);
    }

    .ds-hero-about__heading em {
        font-size: var(--ds-block-em-size-mobile, 0.6em);
    }

    .ds-hero-about__inner {
        max-width: 100%;
        text-align: center;
    }

    .ds-hero-about__inner ul,
    .ds-hero-about__inner ol {
        text-align: left;
    }

    .ds-hero-about__subtitle {
        margin-left: auto;
        margin-right: auto;
    }

    .ds-hero-about__cta {
        flex-direction: column;
        align-items: center;
    }

    .ds-hero-about__badges {
        flex-direction: column;
        gap: 8px;
        align-items: center;
    }

    .ds-hero-about__badge {
        text-align: center;
    }

    .ds-hero-about__image--desktop {
        display: none;
    }

    .ds-hero-about__image--mobile {
        display: block;
    }

    .ds-hero-about__testimonial .ds-testimonial--hero .ds-testimonial__quote {
        text-align: center;
    }

    .ds-hero-about__testimonial .ds-testimonial--hero .ds-testimonial__author {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .ds-hero-about__heading {
        font-size: var(--ds-block-heading-size-tablet, 44px);
    }

    .ds-hero-about__heading em {
        font-size: var(--ds-block-em-size-tablet, 0.6em);
    }

    .ds-hero-about__content {
        padding: 60px 24px;
    }

    .ds-hero-about__inner {
        text-align: center;
    }

    .ds-hero-about__inner ul,
    .ds-hero-about__inner ol {
        text-align: left;
    }

    .ds-hero-about__subtitle {
        margin-left: auto;
        margin-right: auto;
    }

    .ds-hero-about__cta {
        justify-content: center;
    }

    .ds-hero-about__badges {
        justify-content: center;
    }

    .ds-hero-about__image--desktop {
        display: none;
    }

    .ds-hero-about__image--mobile {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center top;
    }
}

/* =========================================================================
   Bio Split Block
   ========================================================================= */

.ds-bio-split {
    position: relative;
    background-color: var(--ds-block-bg, #ffffff);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    padding-top: var(--ds-block-padding-top, 80px);
    padding-bottom: var(--ds-block-padding-bottom, 80px);
}

.ds-bio-split__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 1;
}

.ds-bio-split__wrapper {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}

.ds-bio-split--image-left .ds-bio-split__sidebar {
    order: -1;
}

/* Content side */
.ds-bio-split__content {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.ds-bio-split__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-weight: var(--ds-block-heading-weight, 400);
    font-size: var(--ds-block-heading-size-desktop, 44px);
    line-height: var(--ds-block-heading-line-height, 1.2);
    color: var(--ds-block-heading-color, inherit);
    margin: 0 0 8px 0;
}

.ds-bio-split__body {
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, 400);
    font-size: var(--ds-block-body-size, 1rem);
    line-height: var(--ds-block-body-line-height, 1.7);
    color: var(--ds-block-body-color, inherit);
}

.ds-bio-split__body p {
    margin: 0 0 16px 0;
}

.ds-bio-split__body p:last-child {
    margin-bottom: 0;
}

.ds-bio-split__additional-content {
    font-family: var(--ds-block-body-font, inherit);
    font-size: var(--ds-block-body-size, 1rem);
    line-height: var(--ds-block-body-line-height, 1.7);
    color: var(--ds-block-body-color, inherit);
}

.ds-bio-split__additional-content p {
    margin: 0 0 16px 0;
}

.ds-bio-split__additional-content p:last-child {
    margin-bottom: 0;
}

/* Sidebar */
.ds-bio-split__sidebar {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.ds-bio-split__image-wrap {
    border-radius: 12px;
    overflow: hidden;
}

.ds-bio-split__image-wrap img {
    width: 100%;
    height: auto;
    display: block;
}

.ds-bio-split__quote-card {
    background: #f8f6f3;
    border-left: 4px solid var(--ds-accent-color, #b8977e);
    padding: 24px;
    border-radius: 0 8px 8px 0;
    font-style: italic;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--ds-block-body-color, inherit);
}

.ds-bio-split__quote-card p {
    margin: 0;
}

.ds-bio-split__buttons {
    margin-top: 0;
}

/* Responsive: Tablet */
@media (min-width: 769px) and (max-width: 1024px) {
    .ds-bio-split__heading {
        font-size: var(--ds-block-heading-size-tablet, 36px);
    }

    .ds-bio-split__wrapper {
        gap: 32px;
    }
}

/* Responsive: Mobile */
@media (max-width: 768px) {
    .ds-bio-split__wrapper {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .ds-bio-split__heading {
        font-size: var(--ds-block-heading-size-mobile, 28px);
    }

    .ds-bio-split--image-left .ds-bio-split__sidebar {
        order: 0;
    }

    .ds-bio-split {
        padding-top: calc(var(--ds-block-padding-top, 80px) * 0.75);
        padding-bottom: calc(var(--ds-block-padding-bottom, 80px) * 0.75);
    }
}


/* ================================================
   EDUCATION TIMELINE BLOCK
   ================================================ */

.ds-education-timeline {
    position: relative;
    padding-top: var(--ds-block-padding-top, 80px);
    padding-bottom: var(--ds-block-padding-bottom, 80px);
    background: var(--ds-block-bg, #f8f6f3);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
}

.ds-education-timeline__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 0;
}

.ds-education-timeline__container {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 0 auto;
    padding: 0 24px;
    text-align: center;
}

/* Prehook + Heading + Intro - centered */
.ds-education-timeline .ds-prehook {
    display: inline-block;
    margin-bottom: 16px;
}

.ds-education-timeline__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-weight: var(--ds-block-heading-weight, 400);
    font-size: var(--ds-block-heading-size-desktop, 44px);
    line-height: var(--ds-block-heading-line-height, 1.2);
    margin: 0 0 16px 0;
}

.ds-education-timeline__intro,
.ds-education-timeline__intro p {
    font-size: var(--ds-block-body-size, 1.1rem);
    line-height: var(--ds-block-body-line-height, 1.7);
    font-family: var(--ds-block-body-font, inherit);
    font-weight: var(--ds-block-body-weight, inherit);
    color: var(--ds-block-body-color, inherit);
    opacity: 0.85;
    max-width: 700px;
    margin: 0 auto 16px auto;
}

.ds-education-timeline__intro p:last-child {
    margin-bottom: 0;
}

/* Timeline */
.ds-education-timeline__timeline {
    text-align: left;
    padding-left: 32px;
    margin: 0 auto 48px auto;
    max-width: 700px;
    position: relative;
}

/* Track line (muted background) */
.ds-education-timeline__timeline::before {
    content: '';
    position: absolute;
    left: -1px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--ds-timeline-border-color, var(--ds-prehook-bg-color, #b8977e));
    opacity: 0.25;
}

/* Animated fill line */
.ds-education-timeline__timeline::after {
    content: '';
    position: absolute;
    left: -1px;
    top: 0;
    width: 2px;
    height: calc(var(--ds-timeline-progress, 0) * 100%);
    background: var(--ds-timeline-border-color, var(--ds-prehook-bg-color, #b8977e));
    transition: height 0.15s ease-out;
}

.ds-education-timeline__item {
    position: relative;
    padding-bottom: 40px;
    padding-left: 24px;
}

.ds-education-timeline__item:last-child {
    padding-bottom: 0;
}

/* Dot (starts muted, becomes active when line reaches it) */
.ds-education-timeline__item::before {
    content: '';
    position: absolute;
    left: -39px;
    top: 4px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--ds-prehook-bg-color, #b8977e);
    border: 3px solid var(--ds-block-bg, #f8f6f3);
    opacity: 0.3;
    transform: scale(0.7);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.ds-education-timeline__item.ds-timeline-active::before {
    opacity: 1;
    transform: scale(1);
}

.ds-education-timeline__year {
    font-weight: 700;
    color: var(--ds-prehook-bg-color, #b8977e);
    font-size: var(--ds-block-body-size, 0.9rem);
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.ds-education-timeline__item-title {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-size: var(--ds-block-subheading-size-desktop, 1.25rem);
    font-weight: var(--ds-block-heading-weight, 600);
    margin: 0 0 4px 0;
    line-height: var(--ds-block-heading-line-height, 1.3);
}

.ds-education-timeline__item-desc {
    font-family: var(--ds-block-body-font, var(--ds-font-body, inherit));
    font-size: var(--ds-block-body-size, 0.95rem);
    opacity: 0.8;
    margin: 0;
    line-height: var(--ds-block-body-line-height, 1.6);
}

/* Academics section */
.ds-education-timeline__academics {
    text-align: left;
    max-width: 700px;
    margin: 0 auto 0 auto;
}

.ds-education-timeline__academics-heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-weight: var(--ds-block-heading-weight, 600);
    font-size: var(--ds-block-subheading-size-desktop, 1.5rem);
    line-height: var(--ds-block-heading-line-height, 1.2);
    margin: 0 0 16px 0;
    text-align: center;
}

.ds-education-timeline__academics-intro {
    font-family: var(--ds-block-body-font, var(--ds-font-body, inherit));
    font-size: var(--ds-block-body-size, 1rem);
    opacity: 0.85;
    text-align: center;
    margin: 0 0 20px 0;
    line-height: var(--ds-block-body-line-height, 1.6);
}

.ds-education-timeline__academics-intro p {
    text-align: center;
    margin: 0 0 0.5em 0;
}

.ds-education-timeline__academics-intro p:last-child {
    margin-bottom: 0;
}

/* Accordion */
.ds-education-timeline__accordion-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: var(--ds-accordion-bg-color, none);
    border: 1px solid var(--ds-accordion-border-color, rgba(0,0,0,0.15));
    border-radius: var(--ds-accordion-border-radius, 8px);
    padding: 12px 20px;
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease;
    color: var(--ds-accordion-trigger-color, inherit);
    font-family: inherit;
}

.ds-education-timeline__accordion-trigger:hover {
    background: var(--ds-accordion-hover-bg-color, rgba(0,0,0,0.04));
    border-color: var(--ds-accordion-hover-border-color, var(--ds-accordion-border-color, rgba(0,0,0,0.15)));
}

.ds-education-timeline__accordion-trigger svg {
    transition: transform 0.3s ease;
    flex-shrink: 0;
    margin-left: 12px;
}

.ds-education-timeline__accordion-trigger[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.ds-education-timeline__accordion-panel {
    padding: 16px 0;
}

.ds-education-timeline__academic-list {
    padding-left: 20px;
    margin: 0;
    list-style: disc;
}

.ds-education-timeline__academic-list li {
    margin-bottom: 8px;
    font-family: var(--ds-block-body-font, var(--ds-font-body, inherit));
    font-size: var(--ds-block-body-size, 0.95rem);
    line-height: var(--ds-block-body-line-height, 1.5);
}

.ds-education-timeline__academic-list li:last-child {
    margin-bottom: 0;
}

/* Buttons */
.ds-education-timeline__buttons {
    margin-top: 48px;
    text-align: center;
}

/* Dark-on-light scheme */
.ds-education-timeline.ds-typography-light-on-dark .ds-education-timeline__accordion-trigger {
    border-color: var(--ds-accordion-border-color, rgba(255,255,255,0.2));
}

.ds-education-timeline.ds-typography-light-on-dark .ds-education-timeline__accordion-trigger:hover {
    background: var(--ds-accordion-hover-bg-color, rgba(255,255,255,0.08));
    border-color: var(--ds-accordion-hover-border-color, var(--ds-accordion-border-color, rgba(255,255,255,0.2)));
}

/* Responsive: Tablet */
@media (max-width: 1024px) {
    .ds-education-timeline__heading {
        font-size: var(--ds-block-heading-size-tablet, 36px);
    }
    .ds-education-timeline__year {
        font-size: var(--ds-block-body-size-tablet, 0.9rem);
    }
    .ds-education-timeline__item-title,
    .ds-education-timeline__academics-heading {
        font-size: var(--ds-block-subheading-size-tablet, 1.25rem);
    }
    .ds-education-timeline__item-desc,
    .ds-education-timeline__academic-list li,
    .ds-education-timeline__academics-intro,
    .ds-education-timeline__intro,
    .ds-education-timeline__intro p {
        font-size: var(--ds-block-body-size-tablet, 0.95rem);
    }
}

/* Responsive: Mobile */
@media (max-width: 768px) {
    .ds-education-timeline__heading {
        font-size: var(--ds-block-heading-size-mobile, 28px);
    }
    .ds-education-timeline__year {
        font-size: var(--ds-block-body-size-mobile, 0.9rem);
    }
    .ds-education-timeline__item-title,
    .ds-education-timeline__academics-heading {
        font-size: var(--ds-block-subheading-size-mobile, 1.25rem);
    }
    .ds-education-timeline__item-desc,
    .ds-education-timeline__academic-list li,
    .ds-education-timeline__academics-intro,
    .ds-education-timeline__intro,
    .ds-education-timeline__intro p {
        font-size: var(--ds-block-body-size-mobile, 0.95rem);
    }

    .ds-education-timeline__timeline {
        padding-left: 24px;
    }

    .ds-education-timeline__item {
        padding-left: 16px;
    }

    .ds-education-timeline__item::before {
        left: -27px;
        width: 12px;
        height: 12px;
    }

    .ds-education-timeline__timeline::before,
    .ds-education-timeline__timeline::after {
        left: 2px;
    }

    .ds-education-timeline {
        padding-top: calc(var(--ds-block-padding-top, 80px) * 0.75);
        padding-bottom: calc(var(--ds-block-padding-bottom, 80px) * 0.75);
    }
}

/* ================================================
   CREDENTIALS GRID BLOCK
   ================================================ */

.ds-credentials-grid {
    padding-top: var(--ds-block-padding-top, 80px);
    padding-bottom: var(--ds-block-padding-bottom, 80px);
    background-color: var(--ds-block-bg, transparent);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
}

.ds-credentials-grid__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0, 0, 0, 0.5));
    z-index: 0;
}

.ds-credentials-grid__container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    position: relative;
    z-index: 1;
}

.ds-credentials-grid .ds-prehook {
    margin-bottom: 16px;
}

.ds-credentials-grid__heading {
    font-family: var(--ds-block-heading-font, inherit);
    font-weight: var(--ds-block-heading-weight, 700);
    font-size: var(--ds-block-heading-size-desktop, 36px);
    line-height: var(--ds-block-heading-line-height, 1.2);
    color: var(--ds-block-heading-color, inherit);
    margin: 0 0 40px 0;
}

/* Certification Cards Grid */
.ds-credentials-grid__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.ds-credentials-grid__card {
    background: #ffffff;
    padding: 32px;
    border-radius: 12px;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: box-shadow 0.3s ease;
}

.ds-credentials-grid__card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.ds-credentials-grid__card-icon {
    margin-bottom: 16px;
}

.ds-credentials-grid__card-icon img {
    width: 64px;
    height: 64px;
    object-fit: contain;
    margin: 0 auto;
    display: block;
}

.ds-credentials-grid__card-title {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-size: var(--ds-block-card-title-size-desktop, 1.125rem);
    font-weight: 600;
    margin: 0 0 8px 0;
    line-height: var(--ds-block-heading-line-height, 1.2);
    color: var(--ds-block-heading-color, inherit);
}

.ds-credentials-grid__card-detail {
    font-family: var(--ds-block-body-font, var(--ds-font-body, inherit));
    font-size: var(--ds-block-body-size, 0.95rem);
    line-height: var(--ds-block-body-line-height, 1.6);
    margin: 0;
    opacity: 0.8;
    color: var(--ds-block-body-color, inherit);
}

.ds-credentials-grid__card-detail p {
    margin: 0 0 0.4em 0;
}

.ds-credentials-grid__card-detail p:last-child {
    margin-bottom: 0;
}

/* Section Headings */
.ds-credentials-grid__section-heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-size: var(--ds-block-subheading-size-desktop, 1.25rem);
    font-weight: var(--ds-block-heading-weight, 600);
    line-height: var(--ds-block-heading-line-height, 1.2);
    margin-top: 48px;
    margin-bottom: 20px;
    color: var(--ds-block-heading-color, inherit);
}

.ds-credentials-grid__section-heading--spaced {
    margin-top: 48px;
}

/* Lists (Memberships, Staff Privileges, Affiliations) */
.ds-credentials-grid__list--two-col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.ds-credentials-grid__list--single {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.ds-credentials-grid__list-item {
    padding: 12px 16px;
    background: var(--ds-list-card-bg, #f8f6f3);
    border: 1px solid var(--ds-list-card-border-color, transparent);
    border-radius: var(--ds-list-card-border-radius, 8px);
    box-shadow: var(--ds-list-card-shadow, none);
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--ds-block-body-color, inherit);
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.ds-credentials-grid__list-item:hover {
    background: var(--ds-list-card-hover-bg, var(--ds-list-card-bg, #f8f6f3));
    border-color: var(--ds-list-card-hover-border-color, var(--ds-list-card-border-color, transparent));
    transform: translateY(-2px);
    box-shadow: var(--ds-list-card-shadow, 0 2px 8px rgba(0,0,0,0.08));
}

.ds-credentials-grid__list-name {
    font-family: var(--ds-block-body-font, var(--ds-font-body, inherit));
    font-size: var(--ds-block-body-size, 0.95rem);
    line-height: var(--ds-block-body-line-height, 1.5);
}

.ds-credentials-grid__since {
    opacity: 0.6;
    font-size: 0.85rem;
    white-space: nowrap;
    margin-left: 12px;
}

/* Buttons */
.ds-credentials-grid__buttons {
    margin-top: 48px;
    text-align: center;
}

/* Responsive: Tablet */
@media (max-width: 1024px) {
    .ds-credentials-grid__heading {
        font-size: var(--ds-block-heading-size-tablet, 30px);
    }

    .ds-credentials-grid__cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .ds-credentials-grid__list--two-col {
        grid-template-columns: 1fr;
    }

    .ds-credentials-grid__section-heading {
        font-size: var(--ds-block-subheading-size-tablet, 1.25rem);
    }
    .ds-credentials-grid__card-title {
        font-size: var(--ds-block-card-title-size-tablet, 1.125rem);
    }
    .ds-credentials-grid__card-detail,
    .ds-credentials-grid__list-name {
        font-size: var(--ds-block-body-size-tablet, 0.95rem);
    }
}

/* Responsive: Mobile */
@media (max-width: 768px) {
    .ds-credentials-grid__heading {
        font-size: var(--ds-block-heading-size-mobile, 28px);
        text-align: center;
    }

    .ds-credentials-grid__cards {
        grid-template-columns: 1fr;
    }

    .ds-credentials-grid__card {
        padding: 24px;
        text-align: center;
    }

    .ds-credentials-grid__list-item {
        flex-direction: column;
        align-items: center;
        gap: 4px;
    }

    .ds-credentials-grid__since {
        margin-left: 0;
    }

    .ds-credentials-grid__list-item:hover {
        transform: none;
    }

    .ds-credentials-grid__section-heading {
        font-size: var(--ds-block-subheading-size-mobile, 1.25rem);
        text-align: center;
    }
    .ds-credentials-grid__card-title {
        font-size: var(--ds-block-card-title-size-mobile, 1.125rem);
        text-align: center;
    }
    .ds-credentials-grid__card-detail,
    .ds-credentials-grid__list-name {
        font-size: var(--ds-block-body-size-mobile, 0.95rem);
        text-align: center;
    }

    .ds-credentials-grid .ds-credentials-grid__list-item,
    .ds-credentials-grid .ds-credentials-grid__list-name {
        text-align: center !important;
    }

    .ds-credentials-grid {
        padding-top: calc(var(--ds-block-padding-top, 80px) * 0.75);
        padding-bottom: calc(var(--ds-block-padding-bottom, 80px) * 0.75);
    }
}

/* ================================================
   AWARDS GRID
   ================================================ */

.ds-awards-grid {
    padding-top: var(--ds-block-padding-top, 80px);
    padding-bottom: var(--ds-block-padding-bottom, 80px);
    background-color: var(--ds-block-bg, #ffffff);
}

.ds-awards-grid__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 1;
}

.ds-awards-grid__container {
    max-width: var(--ds-container-width, 1200px);
    margin: 0 auto;
    padding: 0 var(--ds-container-padding, 20px);
    position: relative;
    z-index: 2;
    text-align: center;
}

.ds-awards-grid__heading {
    font-family: var(--ds-block-heading-font, inherit);
    font-weight: var(--ds-block-heading-weight, 700);
    font-size: var(--ds-block-heading-size-desktop, 36px);
    line-height: var(--ds-block-heading-line-height, 1.2);
    color: var(--ds-block-heading-color, inherit);
    margin: 0 0 40px;
}

.ds-awards-grid__cards {
    display: grid;
    grid-template-columns: repeat(var(--ds-awards-columns, 3), 1fr);
    gap: 24px;
}

.ds-awards-grid__card {
    background: #ffffff;
    padding: 32px;
    border-radius: 12px;
    text-align: center;
}

.ds-awards-grid__card--full {
    grid-column: 1 / -1;
}

.ds-awards-grid__card-icon {
    margin-bottom: 16px;
}

.ds-awards-grid__card-icon img {
    width: 48px;
    height: 48px;
    margin: 0 auto;
    object-fit: contain;
    display: block;
}

.ds-awards-grid__card-title {
    font-size: var(--ds-block-card-title-size-desktop, 1.1rem);
    font-weight: 600;
    margin: 0 0 8px;
    color: var(--ds-block-heading-color, inherit);
}

.ds-awards-grid__card-desc {
    font-size: var(--ds-block-body-size, 0.9rem);
    opacity: 0.7;
    margin: 0;
    line-height: 1.5;
    color: var(--ds-block-body-color, inherit);
}

.ds-awards-grid__buttons {
    margin-top: 40px;
}

/* Responsive: Tablet */
@media (max-width: 1024px) {
    .ds-awards-grid__heading {
        font-size: var(--ds-block-heading-size-tablet, 30px);
    }

    .ds-awards-grid__cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .ds-awards-grid__card-title {
        font-size: var(--ds-block-card-title-size-tablet, 1.1rem);
    }
    .ds-awards-grid__card-desc {
        font-size: var(--ds-block-body-size-tablet, 0.9rem);
    }
}

/* Responsive: Mobile */
@media (max-width: 768px) {
    .ds-awards-grid__heading {
        font-size: var(--ds-block-heading-size-mobile, 28px);
    }

    .ds-awards-grid__cards {
        grid-template-columns: 1fr;
    }

    .ds-awards-grid__card {
        padding: 24px;
    }

    .ds-awards-grid__card-title {
        font-size: var(--ds-block-card-title-size-mobile, 1.1rem);
    }
    .ds-awards-grid__card-desc {
        font-size: var(--ds-block-body-size-mobile, 0.9rem);
    }

    .ds-awards-grid {
        padding-top: calc(var(--ds-block-padding-top, 80px) * 0.75);
        padding-bottom: calc(var(--ds-block-padding-bottom, 80px) * 0.75);
    }
}


/* ================================================
   PUBLICATIONS BLOCK
   ================================================ */

.ds-publications {
    padding-top: var(--ds-block-padding-top, 80px);
    padding-bottom: var(--ds-block-padding-bottom, 80px);
    background-color: var(--ds-block-bg, var(--ds-bg, transparent));
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.ds-publications__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 1;
}

.ds-publications__container {
    max-width: var(--ds-container-width, 1200px);
    margin: 0 auto;
    padding: 0 var(--ds-container-padding, 24px);
    position: relative;
    z-index: 2;
}

.ds-publications__grid {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 48px;
    align-items: start;
}

.ds-publications__heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-weight: var(--ds-block-heading-weight, 700);
    font-size: var(--ds-block-heading-size-desktop, 36px);
    line-height: var(--ds-block-heading-line-height, 1.2);
    margin: 0 0 24px 0;
}

.ds-publications__body {
    font-size: var(--ds-block-body-size, inherit);
    line-height: 1.7;
    margin-bottom: 8px;
}

.ds-publications__body p {
    margin: 0 0 16px 0;
}

.ds-publications__body p:last-child {
    margin-bottom: 0;
}

.ds-publications__highlights {
    display: flex;
    gap: 32px;
    margin-top: 32px;
}

.ds-publications__highlight {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ds-publications__highlight-number {
    font-size: 2rem;
    font-weight: 700;
    color: var(--ds-highlight-number-color, var(--ds-accent, #b8977e));
    line-height: 1.1;
}

.ds-publications__highlight-label {
    font-size: var(--ds-block-body-size, 0.85rem);
    color: var(--ds-highlight-label-color, inherit);
    opacity: 0.7;
}

.ds-publications__cv-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ds-space-2, 8px);
    margin-top: 32px;
    padding: var(--ds-btn-padding-y, 12px) var(--ds-btn-padding-x, 24px);
    font-family: var(--ds-font-body, inherit);
    font-size: var(--ds-btn-font-size, 0.95rem);
    font-weight: var(--ds-btn-font-weight, 600);
    line-height: var(--ds-btn-line-height, 1.5);
    text-decoration: none;
    border-radius: var(--ds-btn-radius, 6px);
    border: 2px solid var(--ds-block-heading-color, var(--ds-btn-primary-bg, #054f7d));
    background-color: transparent;
    color: var(--ds-block-heading-color, var(--ds-btn-primary-bg, #054f7d));
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.ds-publications__cv-btn:hover,
.ds-publications__cv-btn:focus {
    background-color: var(--ds-block-heading-color, var(--ds-btn-primary-bg, #054f7d));
    color: var(--ds-highlight-number-color, #ffffff);
    border-color: var(--ds-block-heading-color, var(--ds-btn-primary-bg, #054f7d));
}

.ds-publications__buttons {
    margin-top: 24px;
}

.ds-publications__book-card {
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
}

.ds-publications__book-cover img {
    width: 100%;
    max-height: 400px;
    object-fit: cover;
    display: block;
}

.ds-publications__book-info {
    padding: 24px;
}

.ds-publications__book-title {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-weight: var(--ds-block-heading-weight, 600);
    font-size: var(--ds-block-card-title-size-desktop, 1.25rem);
    color: var(--ds-block-heading-color, inherit);
    margin: 0 0 12px 0;
    line-height: 1.3;
}

.ds-publications__book-desc {
    font-size: var(--ds-block-body-size, 0.95rem);
    line-height: 1.6;
    margin: 0 0 12px 0;
    opacity: 0.85;
}

.ds-publications__book-meta {
    font-size: 0.85rem;
    opacity: 0.6;
    display: block;
}

.ds-publications__courses {
    margin-top: 48px;
    width: 100%;
}

.ds-publications__courses-heading {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-weight: var(--ds-block-heading-weight, 600);
    font-size: var(--ds-block-subheading-size-desktop, 1.5rem);
    color: var(--ds-block-heading-color, inherit);
    margin: 0 0 24px 0;
    line-height: 1.3;
}

.ds-publications__courses-list {
    display: flex;
    flex-direction: column;
}

.ds-publications__course-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid #eee;
}

.ds-publications__course-item:first-child {
    border-top: 1px solid #eee;
}

.ds-publications__course-title {
    font-family: var(--ds-block-heading-font, var(--ds-font-heading, inherit));
    font-weight: 400;
    font-size: var(--ds-block-card-title-size-desktop, 1rem);
    color: var(--ds-course-title-color, var(--ds-block-heading-color, inherit));
    margin: 0;
    line-height: 1.3;
}

.ds-publications__course-meta {
    font-size: var(--ds-block-body-size, 0.85rem);
    opacity: 0.6;
    text-align: right;
    flex-shrink: 0;
    margin-left: 16px;
    color: var(--ds-course-meta-color, inherit);
}

/* Responsive: Tablet */
@media (max-width: 1024px) {
    .ds-publications__heading {
        font-size: var(--ds-block-heading-size-tablet, 30px);
    }

    .ds-publications__courses-heading {
        font-size: var(--ds-block-subheading-size-tablet, 1.35rem);
    }

    .ds-publications__book-title {
        font-size: var(--ds-block-card-title-size-tablet, 1.15rem);
    }

    .ds-publications__body,
    .ds-publications__book-desc {
        font-size: var(--ds-block-body-size-tablet, inherit);
    }

    .ds-publications__course-title {
        font-size: var(--ds-block-card-title-size-tablet, inherit);
    }

    .ds-publications__grid {
        gap: 32px;
    }
}

/* Responsive: Mobile */
@media (max-width: 768px) {
    .ds-publications__heading {
        font-size: var(--ds-block-heading-size-mobile, 28px);
    }

    .ds-publications__courses-heading {
        font-size: var(--ds-block-subheading-size-mobile, 1.2rem);
    }

    .ds-publications__book-title {
        font-size: var(--ds-block-card-title-size-mobile, 1.1rem);
    }

    .ds-publications__body,
    .ds-publications__book-desc {
        font-size: var(--ds-block-body-size-mobile, inherit);
    }

    .ds-publications__course-title {
        font-size: var(--ds-block-card-title-size-mobile, inherit);
    }

    .ds-publications__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .ds-publications__highlights {
        flex-wrap: wrap;
        gap: 24px;
    }

    .ds-publications__course-item {
        flex-direction: column;
        align-items: center;
        gap: 4px;
    }

    .ds-publications__course-meta {
        text-align: center;
        margin-left: 0;
    }

    .ds-publications {
        padding-top: calc(var(--ds-block-padding-top, 80px) * 0.75);
        padding-bottom: calc(var(--ds-block-padding-bottom, 80px) * 0.75);
    }
}

/* ============================================================
   Community Spotlight Block
   ============================================================ */
.ds-community-spotlight {
    position: relative;
    overflow: hidden;
    background-color: var(--ds-block-bg, #f0ebe4);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding-top: var(--ds-block-padding-top, 80px);
    padding-bottom: var(--ds-block-padding-bottom, 80px);
}

.ds-community-spotlight__wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 500px;
}

.ds-community-spotlight--image-right .ds-community-spotlight__image {
    order: 1;
}

.ds-community-spotlight__image {
    position: relative;
    overflow: hidden;
}

.ds-community-spotlight__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    inset: 0;
}

.ds-community-spotlight__content {
    display: flex;
    align-items: center;
    padding: 80px 48px;
}

.ds-community-spotlight__inner {
    max-width: 500px;
}

@media (max-width: 768px) {
    .ds-community-spotlight {
        padding-top: calc(var(--ds-block-padding-top, 80px) * 0.75);
        padding-bottom: calc(var(--ds-block-padding-bottom, 80px) * 0.75);
    }

    .ds-community-spotlight__wrapper {
        grid-template-columns: 1fr;
    }

    .ds-community-spotlight__image {
        min-height: 300px;
    }

    .ds-community-spotlight__image img {
        position: absolute;
    }

    .ds-community-spotlight--image-right .ds-community-spotlight__image {
        order: 0;
    }

    .ds-community-spotlight__content {
        padding: 48px 24px;
    }
}

/* ================================================
   CTA BLOCK
   ================================================ */

.ds-cta {
    position: relative;
    background-color: var(--ds-cta-bg, #054f7d);
    background-image: var(--ds-cta-bg-image, none);
    background-size: cover;
    background-position: center;
    color: var(--ds-cta-text, #ffffff);
    padding: 80px 24px;
    text-align: var(--ds-cta-align, center);
}
.ds-cta__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-cta-overlay, rgba(0,0,0,0.7));
    z-index: 1;
}
.ds-cta__inner {
    position: relative;
    z-index: 2;
    max-width: 800px;
    margin: 0 auto;
}
.ds-cta__heading {
    font-family: var(--ds-font-heading, inherit);
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1.2;
    margin: 0 0 16px;
}
.ds-cta__body {
    font-size: 1.125rem;
    line-height: 1.6;
    margin: 0 0 32px;
    opacity: 0.9;
}
.ds-cta__buttons { margin-bottom: 24px; }
.ds-cta__details {
    display: flex;
    gap: 16px;
    justify-content: var(--ds-cta-justify, center);
    flex-wrap: wrap;
    font-size: 0.9rem;
    opacity: 0.8;
}
.ds-cta__details a { color: inherit; text-decoration: underline; }
.ds-cta__buttons .ds-btn-group {
    justify-content: var(--ds-cta-justify, center);
}
@media (max-width: 768px) {
    .ds-cta { padding: 60px 16px; }
    .ds-cta__heading { font-size: 1.75rem; }
}

/* ============================================================
   Stats Counter Block
   ============================================================ */
.ds-stats-counter {
    background-color: var(--ds-stats-bg, #054f7d);
    padding: 48px 20px;
}
.ds-stats-counter__grid {
    display: grid;
    grid-template-columns: repeat(var(--ds-stats-columns, 4), 1fr);
    gap: 24px;
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}
.ds-stats-counter__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.ds-stats-counter__number {
    color: var(--ds-stats-number-color, #ffffff);
    font-size: 2.75rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
}
.ds-stats-counter__prefix,
.ds-stats-counter__suffix {
    font-size: 0.75em;
}
.ds-stats-counter__label {
    color: var(--ds-stats-label-color, #ffffff);
    font-size: 0.9rem;
    opacity: 0.85;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
@media (max-width: 768px) {
    .ds-stats-counter__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 32px 16px;
    }
    .ds-stats-counter__number {
        font-size: 2rem;
    }
}

/* ============================================================
   Testimonial Single Block
   ============================================================ */
.ds-testimonial-single {
    background-color: var(--ds-testimonial-bg, #054f7d);
    background-image: var(--ds-block-bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: var(--ds-testimonial-text, #ffffff);
    padding-top: var(--ds-block-padding-top, 80px);
    padding-bottom: var(--ds-block-padding-bottom, 80px);
    padding-left: 20px;
    padding-right: 20px;
}
.ds-testimonial-single--has-bg-image {
    position: relative;
    overflow: hidden;
}
.ds-testimonial-single__overlay {
    position: absolute;
    inset: 0;
    background-color: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 0;
}
.ds-testimonial-single__inner {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 1;
}
.ds-testimonial-single__stars {
    margin-bottom: 24px;
    font-size: 1.25rem;
}
.ds-testimonial-single__heading {
    font-family: var(--ds-heading-font, 'Playfair Display', serif);
    font-size: var(--ds-block-heading-size-desktop, 1.75rem);
    font-weight: 400;
    margin: 0 0 24px;
}
.ds-testimonial-single__quote {
    font-size: 1.25rem;
    line-height: 1.6;
    font-style: italic;
    margin: 0 0 32px;
    padding: 0;
    border: none;
    opacity: 0.95;
}
.ds-testimonial-single__author {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
}
.ds-testimonial-single__author-photo {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(255, 255, 255, 0.3);
}
.ds-testimonial-single__author-info {
    text-align: left;
}
.ds-testimonial-single__author-name {
    font-weight: 600;
    font-size: var(--ds-block-body-size-desktop, 1rem);
    margin: 0;
}
.ds-testimonial-single__author-title {
    font-size: 0.875rem;
    opacity: 0.75;
    margin: 0;
}
@media (max-width: 1024px) {
    .ds-testimonial-single__heading { font-size: var(--ds-block-heading-size-tablet, 1.6rem); }
    .ds-testimonial-single__author-name { font-size: var(--ds-block-body-size-tablet, 1rem); }
}
@media (max-width: 768px) {
    .ds-testimonial-single { padding-left: 16px; padding-right: 16px; }
    .ds-testimonial-single__quote { font-size: 1.1rem; }
    .ds-testimonial-single__heading { font-size: var(--ds-block-heading-size-mobile, 1.5rem); }
    .ds-testimonial-single__author-name { font-size: var(--ds-block-body-size-mobile, 1rem); }
}


/* ============================
   NEW BLOCK REVISIONS CSS
   ============================ */

/* --- Stats Counter / Stats Bar: prefix/suffix colors & mobile scroll --- */
.ds-stats-counter__prefix,
.ds-stats-bar__prefix {
    color: var(--ds-stat-prefix-color, inherit);
}

.ds-stats-counter__suffix,
.ds-stats-bar__suffix {
    color: var(--ds-stat-suffix-color, inherit);
}

.ds-stats-counter__number,
.ds-stats-bar__number {
    font-size: var(--ds-text-5xl, 48px);
    font-weight: 700;
    line-height: 1;
}

/* Stats mobile - inline scrollable with scroll-snap (tighter spacing) */
@media (max-width: 768px) {
    .ds-stats-counter__grid,
    .ds-stats-bar__grid {
        display: flex !important;
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        gap: 12px;
        padding: 0 0 8px 0;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        scroll-snap-type: x mandatory;
    }

    .ds-stats-counter__grid::-webkit-scrollbar,
    .ds-stats-bar__grid::-webkit-scrollbar {
        display: none;
    }

    .ds-stats-counter__stat,
    .ds-stats-bar__stat,
    .ds-stats-counter__grid > div,
    .ds-stats-bar__grid > div {
        flex: 0 0 auto !important;
        min-width: 120px !important;
        max-width: 160px !important;
        scroll-snap-align: start;
    }
}

/* --- Hero About: testimonial (legacy rules removed; scoped overrides now in hero-about section) --- */

/* --- Bio Split: global radius & quote card colors --- */
.ds-bio-split--global-radius .ds-bio-split__image-wrap,
.ds-bio-split--global-radius .ds-bio-split__quote-card {
    border-radius: var(--ds-image-border-radius, 8px);
}

/* --- Awards Grid: hover & shadow --- */
.ds-awards-grid--hover .ds-awards-grid__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.ds-awards-grid--shadow .ds-awards-grid__card {
    box-shadow: var(--ds-shadow-card, 0 2px 8px rgba(0,0,0,0.08));
}

/* --- Testimonial Single: quote icon, avatar, author colors --- */
.ds-testimonial-single__quote-icon {
    display: flex;
    justify-content: center;
    margin-bottom: 24px;
}

.ds-testimonial-single__quote-icon svg {
    width: 48px;
    height: auto;
}

.ds-testimonial-single__avatar,
.ds-testimonial-single__author-image {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
}

.ds-testimonial-single__author-name {
    font-weight: 700;
    color: var(--ds-author-name-color, inherit);
}

.ds-testimonial-single__author-title {
    font-size: 14px;
    color: var(--ds-author-title-color, rgba(0,0,0,0.5));
    margin: 0;
}

/* --- CTA: phone colors --- */
.ds-cta__phone {
    color: var(--ds-phone-color, inherit);
    transition: color 0.3s ease;
}

.ds-cta__phone:hover {
    color: var(--ds-phone-hover-color, var(--ds-phone-color, inherit));
}



/* ============================
   BLOCK REVISIONS CSS PATCH
   All missing CSS for US-001 through US-031
   ============================ */

/* --- US-046: Responsive heading size overrides --- */
@media (max-width: 1024px) {
    [class*="ds-"][class*="__heading"] {
        font-size: var(--ds-block-heading-size-tablet, var(--ds-block-heading-size-desktop, 36px));
    }
}

@media (max-width: 768px) {
    [class*="ds-"][class*="__heading"] {
        font-size: var(--ds-block-heading-size-mobile, var(--ds-block-heading-size-desktop, 28px));
    }
}

/* --- US-002: Primary button border-color variable --- */
.ds-btn--primary {
    border-color: var(--ds-btn-primary-border-color, var(--ds-btn-primary-border));
}

.ds-btn--primary-outline {
    border-color: var(--ds-btn-primary-border-color, var(--ds-btn-primary-border));
}

/* --- US-006: Education Timeline custom color variables --- */
.ds-education-timeline__year {
    color: var(--ds-timeline-year-color, var(--ds-prehook-bg-color, #b8977e));
}

.ds-education-timeline__item-title {
    color: var(--ds-timeline-title-color, inherit);
}

.ds-education-timeline__item-desc {
    color: var(--ds-timeline-desc-color, inherit);
}

.ds-education-timeline__item::before {
    background: var(--ds-timeline-border-color, var(--ds-prehook-bg-color, #b8977e));
}

/* --- US-022: Bio Split quote card accent color variable --- */
.ds-bio-split__quote-card {
    background: var(--ds-quote-bg, #f8f6f3);
    border-left-color: var(--ds-quote-accent, var(--ds-accent-color, #b8977e));
}

/* --- US-004: Prehook width fix - fit content only --- */
.ds-prehook {
    width: fit-content;
}

/* --- US-007: Bio Split - center content on mobile/tablet (except lists) --- */
@media (max-width: 1024px) {
    .ds-bio-split__content {
        text-align: center;
    }
    .ds-bio-split__content ul,
    .ds-bio-split__content ol {
        text-align: left;
    }
    .ds-bio-split__content .ds-prehook {
        margin-left: auto;
        margin-right: auto;
    }
    .ds-bio-split__quote-card {
        text-align: center;
    }
    .ds-bio-split__buttons {
        justify-content: center;
    }
    .ds-bio-split__buttons .ds-btn-group {
        justify-content: center;
    }
}

/* --- US-009: Stats Bar - prefix/suffix colors --- */
.ds-stats-bar__number .ds-stats-bar__prefix {
    color: var(--ds-stat-prefix-color, inherit);
}
.ds-stats-bar__number .ds-stats-bar__suffix {
    color: var(--ds-stat-suffix-color, inherit);
}

/* --- US-013: Education Timeline - center academics intro --- */
.ds-education-timeline__academics-heading,
.ds-education-timeline__academics-intro,
.ds-education-timeline__academics-intro p {
    text-align: center;
}

/* --- US-017/019: Credentials Grid - center prehook, heading, intro; center on mobile --- */
.ds-credentials-grid__container {
    text-align: center;
}
.ds-credentials-grid__cards {
    text-align: left;
}
.ds-credentials-grid .ds-prehook {
    margin-left: auto;
    margin-right: auto;
}
@media (max-width: 768px) {
    .ds-credentials-grid__container {
        text-align: center;
    }
    .ds-credentials-grid__cards {
        text-align: center;
    }
    .ds-credentials-grid__card {
        text-align: center;
    }
    .ds-credentials-grid__list {
        text-align: center;
    }
    .ds-credentials-grid__list-item {
        justify-content: center;
    }
}

/* --- US-030: Publications - center content on mobile/tablet --- */
@media (max-width: 768px) {
    .ds-publications__text {
        text-align: center;
    }
    .ds-publications__text .ds-prehook {
        margin-left: auto;
        margin-right: auto;
    }
    .ds-publications__book-card {
        text-align: center;
    }
    .ds-publications__highlights {
        justify-content: center;
    }
    .ds-publications__courses {
        text-align: center;
    }
    .ds-publications__courses-list {
        text-align: center;
    }
    .ds-publications__buttons .ds-btn-group {
        justify-content: center;
    }
}

/* --- US-032: Community Spotlight - center content on mobile/tablet --- */
@media (max-width: 768px) {
    .ds-community-spotlight__inner {
        text-align: center;
    }
    .ds-community-spotlight__inner .ds-prehook {
        margin-left: auto;
        margin-right: auto;
    }
    .ds-community-spotlight__buttons .ds-btn-group {
        justify-content: center;
    }
}

/* --- US-033: Community Spotlight - more space above CTA --- */
.ds-community-spotlight__buttons {
    margin-top: 32px;
}

/* --- US-041: Contact Form - white placeholder text --- */
.ds-contact-form__form input::placeholder,
.ds-contact-form__form textarea::placeholder,
.ds-contact-form__form select::placeholder,
.ds-contact-form__form .gform_wrapper input::placeholder,
.ds-contact-form__form .gform_wrapper textarea::placeholder {
    color: rgba(255, 255, 255, 0.6) !important;
}
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input::placeholder,
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper textarea::placeholder {
    color: rgba(255, 255, 255, 0.5) !important;
}
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper input::placeholder,
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper textarea::placeholder {
    color: rgba(0, 0, 0, 0.4) !important;
}

/* --- US-042: Contact Form - dropdown readability --- */
.ds-contact-form__form .gform_wrapper select option,
.ds-contact-form__form select option {
    background: var(--ds-contact-accent-color, #b8977e);
    color: var(--ds-body-color-dark, #ffffff);
}
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper select option,
.ds-contact-form.ds-typography-dark-on-light select option {
    background: var(--ds-contact-accent-color, #b8977e);
    color: var(--ds-body-color-light, #333333);
}

/* --- US-044: Contact Form - dropdown arrows (moved to US-078 reinforced rules below) --- */

/* --- US-048: Footer logo mobile padding --- */
@media (max-width: 768px) {
    .site-footer .custom-logo,
    .site-footer .footer-logo,
    footer .custom-logo,
    footer .footer-logo {
        padding-top: 24px;
    }
}

/* --- US-029: Publications book title & courses heading global styles (moved to main block CSS) --- */

/* =========================================================================
   Round 2 Block Revisions
   ========================================================================= */

/* --- US-058/064: Credentials Grid & Awards Grid — card styling via CSS vars --- */
.ds-credentials-grid__card {
    background: var(--ds-card-bg, #ffffff);
    border: 1px solid var(--ds-card-border-color, #e0e0e0);
    border-radius: var(--ds-card-border-radius, 8px);
}
.ds-awards-grid__card {
    background: var(--ds-card-bg, #ffffff);
    border: 1px solid var(--ds-card-border-color, #e0e0e0);
    border-radius: var(--ds-card-border-radius, 8px);
}

/* --- US-057: Credentials Grid — per-section column count via CSS vars --- */
.ds-credentials-grid__cards {
    display: grid;
    grid-template-columns: repeat(var(--ds-certs-columns, 3), 1fr);
    gap: 16px;
}
.ds-credentials-grid__list--memberships {
    display: grid;
    grid-template-columns: repeat(var(--ds-memberships-columns, 2), 1fr);
    gap: 12px;
}
.ds-credentials-grid__list--privileges {
    display: grid;
    grid-template-columns: repeat(var(--ds-privileges-columns, 1), 1fr);
    gap: 12px;
}
.ds-credentials-grid__list--affiliations {
    display: grid;
    grid-template-columns: repeat(var(--ds-affiliations-columns, 2), 1fr);
    gap: 12px;
}
@media (max-width: 768px) {
    .ds-credentials-grid__cards,
    .ds-credentials-grid__list--memberships,
    .ds-credentials-grid__list--privileges,
    .ds-credentials-grid__list--affiliations {
        grid-template-columns: 1fr;
    }
}
@media (min-width: 769px) and (max-width: 1024px) {
    .ds-credentials-grid__cards,
    .ds-credentials-grid__list--memberships,
    .ds-credentials-grid__list--affiliations {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* --- US-068: Publications — book section styling via CSS vars --- */
.ds-publications__book-image img {
    max-height: var(--ds-book-max-height, 400px);
    width: auto;
}
.ds-publications__book-card {
    background: var(--ds-book-card-bg, transparent);
    border: 1px solid var(--ds-book-card-border-color, transparent);
    border-radius: var(--ds-book-card-border-radius, 8px);
}

/* --- US-069: Community Spotlight — overlay for image backgrounds --- */
.ds-community-spotlight__overlay {
    position: absolute;
    inset: 0;
    background: var(--ds-block-overlay, rgba(0,0,0,0.5));
    z-index: 1;
}
.ds-community-spotlight__wrapper {
    position: relative;
    z-index: 2;
}

/* --- US-076: Contact Form — consistent field text color --- */
.ds-contact-form__form .gform_wrapper input[type="text"],
.ds-contact-form__form .gform_wrapper input[type="email"],
.ds-contact-form__form .gform_wrapper input[type="tel"],
.ds-contact-form__form .gform_wrapper input[type="url"],
.ds-contact-form__form .gform_wrapper input[type="number"],
.ds-contact-form__form .gform_wrapper input[type="date"],
.ds-contact-form__form .gform_wrapper select,
.ds-contact-form__form .gform_wrapper textarea {
    color: var(--ds-contact-field-text-color, inherit) !important;
}
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input[type="text"],
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input[type="email"],
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input[type="tel"],
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input[type="url"],
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input[type="number"],
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper input[type="date"],
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper select,
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper textarea {
    color: #ffffff !important;
}
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper input[type="text"],
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper input[type="email"],
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper input[type="tel"],
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper input[type="url"],
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper input[type="number"],
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper input[type="date"],
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper select,
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper textarea {
    color: #333333 !important;
}

/* --- US-077: Contact Form — tighter field spacing on desktop --- */
@media (min-width: 769px) {
    .ds-contact-form__form .gform_wrapper .gfield {
        margin-bottom: 6px;
    }
}

/* --- US-078: Contact Form — let GF handle its own dropdown arrows natively --- */
/* Restore default appearance on selects so GF's built-in chevron shows */
.ds-contact-form__form .gform_wrapper select,
.ds-contact-form__form .gform-theme--orbital select,
.ds-contact-form__form select.gfield_select,
.ds-contact-form__form .gform_wrapper .ginput_container_select select,
.ds-contact-form__form .gform_wrapper.gravity-theme select,
.ds-contact-form__form .gform_wrapper.gravity-theme .gfield select {
    -webkit-appearance: auto !important;
    -moz-appearance: auto !important;
    appearance: auto !important;
    background-image: none !important;
}

/* --- Contact Form — match select placeholder text to input placeholder opacity --- */
.ds-contact-form__form .gform_wrapper select:has(> option[value=""]:checked),
.ds-contact-form__form .gform-theme--orbital select:has(> option[value=""]:checked) {
    color: rgba(255, 255, 255, 0.6) !important;
}
.ds-contact-form.ds-typography-light-on-dark .gform_wrapper select:has(> option[value=""]:checked),
.ds-contact-form.ds-typography-light-on-dark .gform-theme--orbital select:has(> option[value=""]:checked) {
    color: rgba(255, 255, 255, 0.5) !important;
}
.ds-contact-form.ds-typography-dark-on-light .gform_wrapper select:has(> option[value=""]:checked),
.ds-contact-form.ds-typography-dark-on-light .gform-theme--orbital select:has(> option[value=""]:checked) {
    color: rgba(0, 0, 0, 0.4) !important;
}

/*
 * Fix unintended dark border on testimonial cards (regression after WP core update).
 * Core now emits `html :where([style*="border-color"]) { border-style: solid }`, which
 * matches our inline `--ds-testimonial-border-color` custom property and applies an
 * uncontrolled medium-width currentColor (dark) border. Pin width + color so the border
 * is controlled and invisible by default. Scoped to NON-outline styles only — the
 * `*-outline` variants set their own intentional 2px border above and are excluded here.
 */
.ds-testimonial-style--square[style*="border-color"],
.ds-testimonial-style--rounded[style*="border-color"],
.ds-testimonial-style--rectangle[style*="border-color"],
.ds-testimonial-style--pill[style*="border-color"],
.ds-testimonial-style--sharp[style*="border-color"],
.ds-testimonial-style--quote-bubble[style*="border-color"],
.ds-testimonial-style--custom[style*="border-color"] {
    border-width: 1px;
    border-style: solid;
    border-color: var(--ds-testimonial-border-color, transparent);
}
