/**
 * TradeCMS — Shared Builder Block Styles
 *
 * This file contains ALL builder layout, block, animation, responsive visibility,
 * and dark-section override styles. It is loaded by every template pack and provides
 * a single source of truth for the page builder's front-end rendering.
 *
 * Template packs supply their own CSS custom properties (colours, fonts, spacing,
 * shadows, borders, transitions) via :root in their pack stylesheet. This file
 * consumes those variables so blocks automatically adopt each pack's visual identity.
 *
 * Required CSS custom properties (defined by template packs):
 *   --color-primary, --color-primary-dark
 *   --color-secondary, --color-secondary-dark
 *   --color-white, --color-black, --color-light
 *   --color-body (fallback provided below)
 *   --color-grey-100 … --color-grey-900
 *   --font-family, --font-family-heading
 *   --font-size-sm, --font-size-base, --font-size-lg
 *   --line-height-base, --line-height-heading
 *   --spacing-xs … --spacing-3xl
 *   --border-radius, --border-radius-lg
 *   --shadow-sm, --shadow-md
 *   --transition, --transition-slow
 */

/* Fallback for packs that do not define --color-body */
:root {
    --color-body: var(--color-grey-700, #334155);
}

/* ============================================================
   BUILDER LAYOUT SYSTEM & BLOCK STYLES
   ============================================================ */

/* --- 1. Builder Section & Column Grid --- */
.builder-section { /* nothing extra — padding handled inline */ }

.builder-layout-stacked .container-narrow { max-width: 800px; margin: 0 auto; }

.builder-columns { display: flex; flex-wrap: wrap; gap: var(--spacing-xl); }
.builder-columns-single .builder-column { width: 100%; }
.builder-columns-two-equal .builder-column { flex: 1 1 calc(50% - var(--spacing-xl)); }
.builder-columns-two-wide-left .builder-column:first-child { flex: 2; }
.builder-columns-two-wide-left .builder-column:last-child { flex: 1; }
.builder-columns-two-wide-right .builder-column:first-child { flex: 1; }
.builder-columns-two-wide-right .builder-column:last-child { flex: 2; }
.builder-columns-three-equal .builder-column { flex: 1 1 calc(33.333% - var(--spacing-xl)); }
.builder-columns-four-equal .builder-column { flex: 1 1 calc(25% - var(--spacing-xl)); }
.builder-columns-stacked .builder-column { width: 100%; }

/* Responsive columns */
@media (max-width: 768px) {
    .builder-columns .builder-column { flex: 1 1 100% !important; }
}

/* --- 2. Block Base Styles --- */
.block { margin-bottom: 0; }
.block:last-child { margin-bottom: 0; }
.block + .block { margin-top: var(--spacing-xl); }

/* Style panel: heading colour/size and accent colour via CSS custom properties.
   These are only set (as inline style) when the user enters values in the Style tab. */
.block[style*="--block-heading-color"] h1,
.block[style*="--block-heading-color"] h2,
.block[style*="--block-heading-color"] h3,
.block[style*="--block-heading-color"] [class*="__heading"] { color: var(--block-heading-color) !important; }
.block[style*="--block-heading-size"] h1,
.block[style*="--block-heading-size"] [class*="__heading"] { font-size: var(--block-heading-size) !important; }
.block[style*="--block-subheading-color"] [class*="__subheading"],
.block[style*="--block-subheading-color"] [class*="__tagline"],
.block[style*="--block-subheading-color"] [class*="__subtitle"] { color: var(--block-subheading-color) !important; }
.block[style*="--block-accent-color"] [class*="__accent"],
.block[style*="--block-accent-color"] a:not(.btn):not([class*="__button"]) { color: var(--block-accent-color) !important; }

/* Full-bleed blocks — break out of .container to go edge-to-edge */
.builder-section .block-hero,
.builder-section .block-hero-with-form,
.builder-section .block-cta,
.builder-section .block-image-banner {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

/* --- 3. Hero Block --- */
.block-hero {
    position: relative;
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
    overflow: hidden;
    background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-secondary-dark) 100%);
    padding: var(--spacing-3xl) 0;
    text-align: center;
}
.block-hero--has-image {
    background: none;
}
.block-hero__overlay {
    position: absolute;
    inset: 0;
    background: var(--color-black);
    z-index: 1;
}
.block-hero__content {
    position: relative;
    z-index: 2;
    max-width: 800px;
    padding: var(--spacing-3xl) var(--spacing-xl);
}
.block-hero--align-center { text-align: center; }
.block-hero--align-center .block-hero__content { margin: 0 auto; }
.block-hero--align-left { text-align: left; }
.block-hero--align-left .block-hero__content { margin-right: auto; }
.block-hero--align-right { text-align: right; }
.block-hero--align-right .block-hero__content { margin-left: auto; }
.block-hero__heading {
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-white);
    margin-bottom: var(--spacing-md);
    font-family: var(--font-family-heading);
    line-height: var(--line-height-heading);
}
.block-hero__subheading {
    font-size: var(--font-size-lg);
    opacity: 0.9;
    max-width: 600px;
    margin: 0 auto var(--spacing-xl);
}
.block-hero--align-left .block-hero__subheading { margin-left: 0; }
.block-hero--align-right .block-hero__subheading { margin-right: 0; }
.block-hero__buttons {
    display: flex;
    gap: var(--spacing-md);
    justify-content: center;
    flex-wrap: wrap;
}
.block-hero--align-left .block-hero__buttons { justify-content: flex-start; }
.block-hero--align-right .block-hero__buttons { justify-content: flex-end; }
.block-hero__button {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    border-radius: var(--border-radius);
    border: 2px solid transparent;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
    line-height: 1.2;
}
.block-hero__button:hover { transform: translateY(-1px); }
.block-hero__button--primary {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}
.block-hero__button--primary:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    color: var(--color-white);
}
.block-hero__button--secondary {
    background: transparent;
    color: var(--color-white);
    border-color: var(--color-white);
}
.block-hero__button--secondary:hover {
    background: var(--color-white);
    color: var(--color-secondary);
}
.block-hero__scroll-indicator {
    margin-top: var(--spacing-xl);
    font-size: 2rem;
    opacity: 0.5;
    animation: heroScroll 2s ease-in-out infinite;
}
@keyframes heroScroll {
    0%, 100% { transform: translateY(0); opacity: 0.5; }
    50% { transform: translateY(8px); opacity: 0.8; }
}
@media (min-width: 768px) {
    .block-hero__heading { font-size: 2.75rem; }
}
@media (min-width: 1024px) {
    .block-hero__heading { font-size: 3rem; }
}
@media (max-width: 768px) {
    .block-hero { min-height: 300px; }
    .block-hero__content { padding: var(--spacing-xl) var(--spacing-md); }
}

/* --- 3b. Hero with Form --- */
.block-hero-with-form {
    position: relative;
    min-height: 500px;
    display: flex;
    align-items: center;
    color: var(--color-white);
    overflow: hidden;
    background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-secondary-dark) 100%);
    padding: var(--spacing-3xl) 0;
}
.block-hero-with-form__overlay {
    position: absolute;
    inset: 0;
    background: var(--color-black);
    z-index: 1;
    pointer-events: none;
}
.block-hero-with-form__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-2xl);
    align-items: center;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--spacing-xl);
}
/* Form position variants */
.block-hero-with-form--form-left .block-hero-with-form__inner {
    direction: rtl;
}
.block-hero-with-form--form-left .block-hero-with-form__inner > * {
    direction: ltr;
}
/* Text column */
.block-hero-with-form__text {
    padding: var(--spacing-xl) 0;
}
.block-hero-with-form__subheading {
    font-size: var(--font-size-sm);
    text-transform: uppercase;
    letter-spacing: 2px;
    opacity: 0.85;
    margin-bottom: var(--spacing-sm);
    font-weight: 600;
}
.block-hero-with-form__heading {
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--color-white);
    margin-bottom: var(--spacing-md);
    font-family: var(--font-family-heading);
    line-height: var(--line-height-heading);
}
.block-hero-with-form__description {
    font-size: var(--font-size-lg);
    opacity: 0.9;
    line-height: 1.7;
    max-width: 540px;
}
/* Text alignment variants */
.block-hero-with-form--align-center .block-hero-with-form__text { text-align: center; }
.block-hero-with-form--align-center .block-hero-with-form__description { margin-left: auto; margin-right: auto; }
.block-hero-with-form--align-right .block-hero-with-form__text { text-align: right; }
.block-hero-with-form--align-right .block-hero-with-form__description { margin-left: auto; }
/* Form column */
.block-hero-with-form__form-wrap {
    background: var(--color-white);
    border-radius: var(--border-radius-lg, 12px);
    padding: var(--spacing-xl);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    color: var(--color-body);
}
.block-hero-with-form__form-heading {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--color-secondary);
    margin-bottom: var(--spacing-md);
    font-family: var(--font-family-heading);
    text-align: center;
}
.block-hero-with-form__form-container .form-group label {
    color: var(--color-grey-700);
}
.block-hero-with-form__form-container .btn,
.block-hero-with-form__form-container button[type="submit"] {
    width: 100%;
    margin-top: var(--spacing-sm);
}
.block-hero-with-form__form-placeholder {
    text-align: center;
    color: var(--color-grey-500);
    padding: var(--spacing-lg) 0;
    font-style: italic;
}
/* Responsive */
@media (min-width: 768px) {
    .block-hero-with-form__heading { font-size: 2.5rem; }
}
@media (min-width: 1024px) {
    .block-hero-with-form__heading { font-size: 2.75rem; }
}
@media (max-width: 768px) {
    .block-hero-with-form { min-height: auto; padding: var(--spacing-xl) 0; }
    .block-hero-with-form__inner {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
        padding: 0 var(--spacing-md);
    }
    .block-hero-with-form--form-left .block-hero-with-form__inner { direction: ltr; }
    .block-hero-with-form__text { padding: var(--spacing-md) 0 0; }
    .block-hero-with-form__heading { font-size: 1.75rem; }
    .block-hero-with-form__form-wrap { padding: var(--spacing-lg); }
}

/* --- 4. Image Banner --- */
.block-image-banner figure { margin: 0; }
.block-image-banner img { width: 100%; height: auto; display: block; object-fit: cover; border-radius: var(--border-radius); }
.block-image-banner--full img { border-radius: 0; }
.block-image-banner figcaption { text-align: center; color: var(--color-grey-600); font-size: var(--font-size-sm); padding-top: var(--spacing-sm); }

/* --- 5. Rich Text & Intro Text --- */
.block-rich-text .content-body { /* inherits from existing .content-body styles */ }
.block-intro-text { text-align: left; }
.block-intro-text--align-center { text-align: center; }
.block-intro-text__inner { max-width: 900px; }
.block-intro-text--align-center .block-intro-text__inner { margin: 0 auto; }
.block-intro-text--with-image .block-intro-text__inner {
    display: flex;
    gap: var(--spacing-2xl);
    align-items: flex-start;
    max-width: none;
}
.block-intro-text--image-left .block-intro-text__image-col { order: -1; }
.block-intro-text__content { flex: 1; }
.block-intro-text__image-col { flex: 0 0 40%; }
.block-intro-text__image {
    width: 100%;
    height: auto;
    border-radius: var(--border-radius-lg);
    display: block;
}
.block-intro-text__heading {
    font-size: 2.25rem;
    font-weight: 700;
    margin-bottom: var(--spacing-md);
    font-family: var(--font-family-heading);
    line-height: var(--line-height-heading);
    color: var(--color-secondary);
}
.block-intro-text__text {
    font-size: var(--font-size-base);
    color: var(--color-grey-700);
    line-height: var(--line-height-base);
}
.block-intro-text__text p { margin-bottom: var(--spacing-md); }
.block-intro-text__text p:last-child { margin-bottom: 0; }
@media (max-width: 768px) {
    .block-intro-text--with-image .block-intro-text__inner {
        flex-direction: column;
    }
    .block-intro-text__image-col { flex: none; }
}

/* --- 6. Two Column & Three Column --- */
.block-two-column__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-xl); }
@media (max-width: 768px) { .block-two-column__grid { grid-template-columns: 1fr; } }
.block-three-column__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xl); }
.block-three-column__col h3 { font-family: var(--font-family-heading); color: var(--color-secondary); margin-bottom: var(--spacing-sm); }
@media (max-width: 768px) { .block-three-column__grid { grid-template-columns: 1fr; } }

/* --- 7. Accordion & FAQ --- */
.block-accordion__heading, .block-faq__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-lg); font-family: var(--font-family-heading); color: var(--color-secondary); }
.block-faq__description { color: var(--color-grey-600); margin-bottom: var(--spacing-xl); max-width: 700px; }
.block-accordion__item, .block-faq__item { border: 1px solid var(--color-grey-200); border-radius: var(--border-radius); margin-bottom: var(--spacing-sm); overflow: hidden; }
.block-accordion__item summary, .block-faq__item summary { padding: var(--spacing-md) var(--spacing-lg); cursor: pointer; font-weight: 600; color: var(--color-secondary); list-style: none; display: flex; align-items: center; justify-content: space-between; transition: background var(--transition); }
.block-accordion__item summary:hover, .block-faq__item summary:hover { background: var(--color-light); }
.block-accordion__item summary::after, .block-faq__item summary::after { content: '+'; font-size: 1.25rem; color: var(--color-primary); transition: transform var(--transition); }
.block-accordion__item[open] summary::after, .block-faq__item[open] summary::after { content: '-'; }
.block-accordion__item summary::-webkit-details-marker, .block-faq__item summary::-webkit-details-marker { display: none; }
.block-accordion__content, .block-faq__answer { padding: 0 var(--spacing-lg) var(--spacing-lg); color: var(--color-grey-700); }

/* --- 8. Timeline --- */
.block-timeline__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-xl); font-family: var(--font-family-heading); color: var(--color-secondary); text-align: center; }
.block-timeline__list { position: relative; padding: 0; }
.block-timeline__list::before { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; background: var(--color-grey-200); transform: translateX(-50%); }
.block-timeline__item { position: relative; display: flex; margin-bottom: var(--spacing-xl); }
.block-timeline__item--left { justify-content: flex-start; padding-right: calc(50% + var(--spacing-xl)); }
.block-timeline__item--right { justify-content: flex-end; padding-left: calc(50% + var(--spacing-xl)); }
.block-timeline__marker { position: absolute; left: 50%; top: var(--spacing-md); width: 12px; height: 12px; background: var(--color-primary); border-radius: 50%; transform: translateX(-50%); z-index: 1; }
.block-timeline__card { background: var(--color-white); padding: var(--spacing-lg); border-radius: var(--border-radius); box-shadow: var(--shadow-sm); border: 1px solid var(--color-grey-200); }
.block-timeline__year { display: inline-block; background: var(--color-primary); color: var(--color-white); padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--border-radius); font-size: var(--font-size-sm); font-weight: 600; margin-bottom: var(--spacing-sm); }
.block-timeline__card h3 { font-family: var(--font-family-heading); color: var(--color-secondary); margin-bottom: var(--spacing-xs); }
.block-timeline__card p { color: var(--color-grey-700); margin: 0; }
@media (max-width: 768px) {
    .block-timeline__list::before { left: 20px; }
    .block-timeline__item--left, .block-timeline__item--right { padding: 0 0 0 50px; justify-content: flex-start; }
    .block-timeline__marker { left: 20px; }
}

/* --- 9. Gallery Preview --- */
.block-gallery-preview__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-lg); font-family: var(--font-family-heading); color: var(--color-secondary); }
.block-gallery-preview__grid { display: grid; gap: var(--spacing-md); }
.block-gallery-preview__grid figure { margin: 0; overflow: hidden; border-radius: var(--border-radius); }
.block-gallery-preview__grid img { width: 100%; height: 250px; object-fit: cover; transition: transform var(--transition-slow); display: block; }
.block-gallery-preview__grid figure:hover img { transform: scale(1.03); }
.block-gallery-preview__grid figcaption { padding: var(--spacing-xs) 0; font-size: var(--font-size-sm); color: var(--color-grey-600); }

/* --- 10. Before/After --- */
.block-before-after__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-lg); font-family: var(--font-family-heading); color: var(--color-secondary); }
.block-before-after__pair { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-md); margin-bottom: var(--spacing-lg); }
.block-before-after__side { position: relative; overflow: hidden; border-radius: var(--border-radius); }
.block-before-after__side img { width: 100%; height: auto; display: block; }
.block-before-after__label { position: absolute; top: var(--spacing-sm); left: var(--spacing-sm); background: rgba(0,0,0,0.6); color: var(--color-white); padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--border-radius); font-size: var(--font-size-sm); font-weight: 600; }
@media (max-width: 768px) { .block-before-after__pair { grid-template-columns: 1fr; } }

/* --- 11. Video --- */
.block-video__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-lg); font-family: var(--font-family-heading); color: var(--color-secondary); }
.block-video__wrapper { border-radius: var(--border-radius); overflow: hidden; background: var(--color-grey-900); }
.block-video__wrapper iframe { display: block; width: 100%; height: 100%; border: 0; }
.block-video__caption { text-align: center; color: var(--color-grey-600); font-size: var(--font-size-sm); padding-top: var(--spacing-sm); }

/* --- 12. Logo Strip --- */
.block-logo-strip__heading { font-size: 1.5rem; font-weight: 700; margin-bottom: var(--spacing-lg); text-align: center; font-family: var(--font-family-heading); color: var(--color-secondary); }
.block-logo-strip__logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--spacing-xl); }
.block-logo-strip__logo img { max-height: 60px; width: auto; filter: grayscale(100%); opacity: 0.6; transition: filter var(--transition), opacity var(--transition); }
.block-logo-strip__logo:hover img { filter: grayscale(0%); opacity: 1; }

/* --- 13. Services Grid --- */
.block-services-grid__header {
    text-align: center;
    margin-bottom: var(--spacing-2xl);
}
.block-services-grid__heading {
    font-size: 1.75rem;
    font-weight: 700;
    font-family: var(--font-family-heading);
    color: var(--color-secondary);
    margin-bottom: var(--spacing-md);
    position: relative;
}
.block-services-grid__heading::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: var(--color-primary);
    margin: var(--spacing-md) auto 0;
}
.block-services-grid__subheading {
    color: var(--color-grey-600);
    max-width: 700px;
    margin: 0 auto;
}
.block-services-grid__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-xl);
}
.block-services-grid__card {
    background: var(--color-white);
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition), transform var(--transition);
}
.block-services-grid__card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}
.block-services-grid__image-wrap {
    aspect-ratio: 16 / 10;
    overflow: hidden;
}
.block-services-grid__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--transition-slow);
}
.block-services-grid__card:hover .block-services-grid__image {
    transform: scale(1.05);
}
.block-services-grid__body {
    padding: var(--spacing-lg);
}
.block-services-grid__icon {
    display: block;
    font-size: 2rem;
    color: var(--color-primary);
    margin-bottom: var(--spacing-sm);
    line-height: 1;
}
.block-services-grid__title {
    font-family: var(--font-family-heading);
    font-size: var(--font-size-lg);
    color: var(--color-secondary);
    margin-bottom: var(--spacing-sm);
}
.block-services-grid__description {
    color: var(--color-grey-600);
    font-size: var(--font-size-sm);
    margin-bottom: var(--spacing-sm);
}
.block-services-grid__link {
    display: inline-block;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
    margin-top: var(--spacing-sm);
}
.block-services-grid__link::after {
    content: ' \2192';
}
.block-services-grid__link:hover {
    color: var(--color-primary-dark);
}
.block-services-grid__action {
    text-align: center;
    margin-top: var(--spacing-xl);
}
@media (min-width: 768px) {
    .block-services-grid__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 1024px) {
    .block-services-grid__grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .block-services-grid__grid[data-columns="2"] {
        grid-template-columns: repeat(2, 1fr);
    }
    .block-services-grid__grid[data-columns="4"] {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* --- 14. Project Showcase --- */
.block-project-showcase__header {
    text-align: center;
    margin-bottom: var(--spacing-2xl);
}
.block-project-showcase__heading {
    font-size: 1.75rem;
    font-weight: 700;
    font-family: var(--font-family-heading);
    color: var(--color-secondary);
    margin-bottom: var(--spacing-md);
    position: relative;
}
.block-project-showcase__heading::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: var(--color-primary);
    margin: var(--spacing-md) auto 0;
}
.block-project-showcase__subheading {
    color: var(--color-grey-600);
    max-width: 700px;
    margin: 0 auto;
}
.block-project-showcase__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-xl);
}
.block-project-showcase__card {
    position: relative;
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    background: var(--color-white);
    transition: box-shadow var(--transition), transform var(--transition);
}
.block-project-showcase__card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}
.block-project-showcase__image-wrap { position: relative; overflow: hidden; }
.block-project-showcase__image {
    width: 100%;
    height: 220px;
    object-fit: cover;
    display: block;
    transition: transform var(--transition-slow);
}
.block-project-showcase__card:hover .block-project-showcase__image {
    transform: scale(1.05);
}
.block-project-showcase__badge {
    position: absolute;
    top: var(--spacing-sm);
    right: var(--spacing-sm);
    background: var(--color-primary);
    color: var(--color-white);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--border-radius);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}
.block-project-showcase__body {
    padding: var(--spacing-lg);
}
.block-project-showcase__title {
    font-family: var(--font-family-heading);
    color: var(--color-secondary);
    margin-bottom: var(--spacing-xs);
    font-size: var(--font-size-lg);
}
.block-project-showcase__description {
    color: var(--color-grey-600);
    font-size: var(--font-size-sm);
    margin: 0;
    line-height: var(--line-height-base);
}
@media (min-width: 768px) {
    .block-project-showcase__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 1024px) {
    .block-project-showcase__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* --- 15. Process Steps --- */
.block-process-steps__header {
    text-align: center;
    margin-bottom: var(--spacing-2xl);
}
.block-process-steps__heading {
    font-size: 1.75rem;
    font-weight: 700;
    font-family: var(--font-family-heading);
    color: var(--color-secondary);
    text-align: center;
    margin-bottom: var(--spacing-md);
    position: relative;
}
.block-process-steps__heading::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: var(--color-primary);
    margin: var(--spacing-md) auto 0;
}
.block-process-steps__subheading {
    color: var(--color-grey-600);
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
}
.block-process-steps__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-xl);
    counter-reset: steps;
}
.block-process-steps__step { text-align: center; position: relative; }
.block-process-steps__number-wrap { margin-bottom: var(--spacing-md); }
.block-process-steps__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: 1.25rem;
    font-weight: 700;
}
.block-process-steps__title {
    font-family: var(--font-family-heading);
    color: var(--color-secondary);
    margin-bottom: var(--spacing-xs);
}
.block-process-steps__description {
    color: var(--color-grey-600);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-base);
}
@media (max-width: 768px) {
    .block-process-steps__list {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 480px) {
    .block-process-steps__list {
        grid-template-columns: 1fr;
    }
}

/* --- 16. Testimonials --- */
.block-testimonials__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-sm); font-family: var(--font-family-heading); color: var(--color-secondary); text-align: center; }
.block-testimonials__subheading { text-align: center; color: var(--color-grey-600); margin-bottom: var(--spacing-xl); max-width: 600px; margin-left: auto; margin-right: auto; }
.block-testimonials__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--spacing-lg); }
.block-testimonials__card { background: var(--color-white); padding: var(--spacing-xl); border-radius: var(--border-radius); box-shadow: var(--shadow-sm); border: 1px solid var(--color-grey-200); }
.block-testimonials__stars { color: var(--color-primary); font-size: 1.1rem; margin-bottom: var(--spacing-sm); letter-spacing: 2px; }
.block-testimonials__quote { font-style: italic; color: var(--color-grey-700); line-height: var(--line-height-base); margin-bottom: var(--spacing-md); }
.block-testimonials__author { display: flex; align-items: center; gap: var(--spacing-sm); }
.block-testimonials__avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.block-testimonials__name { font-weight: 600; color: var(--color-secondary); }
.block-testimonials__role { font-size: var(--font-size-sm); color: var(--color-grey-500); }

/* --- 17. Trust Badges --- */
.block-trust-badges__heading {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: var(--spacing-2xl);
    text-align: center;
    font-family: var(--font-family-heading);
    color: var(--color-secondary);
    position: relative;
}
.block-trust-badges__heading::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: var(--color-primary);
    margin: var(--spacing-md) auto 0;
}
.block-trust-badges__row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-xl);
}
.block-trust-badges__badge {
    text-align: center;
    padding: var(--spacing-lg);
}
.block-trust-badges__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: var(--spacing-md);
    text-transform: capitalize;
}
.block-trust-badges__label {
    font-weight: 700;
    color: var(--color-secondary);
    font-size: var(--font-size-base);
    margin-bottom: var(--spacing-xs);
    display: block;
}
.block-trust-badges__description {
    font-size: var(--font-size-sm);
    color: var(--color-grey-600);
    line-height: var(--line-height-base);
}
@media (max-width: 768px) {
    .block-trust-badges__row {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 480px) {
    .block-trust-badges__row {
        grid-template-columns: 1fr;
    }
}

/* --- 18. Stats --- */
.block-stats__heading {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: var(--spacing-xl);
    font-family: var(--font-family-heading);
    color: inherit;
    text-align: center;
}
.block-stats__grid {
    display: grid;
    gap: var(--spacing-lg);
    text-align: center;
}
.block-stats__item { padding: var(--spacing-lg); }
.block-stats__number {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--color-primary);
    font-family: var(--font-family-heading);
    line-height: 1;
    margin-bottom: var(--spacing-xs);
}
.block-stats__prefix, .block-stats__suffix { font-size: 1.5rem; }
.block-stats__label {
    font-size: var(--font-size-sm);
    color: inherit;
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.7;
}

/* --- 19. Team --- */
.block-team__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-sm); font-family: var(--font-family-heading); color: var(--color-secondary); text-align: center; }
.block-team__description { color: var(--color-grey-600); margin-bottom: var(--spacing-xl); text-align: center; max-width: 700px; margin-left: auto; margin-right: auto; }
.block-team__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--spacing-xl); max-width: 900px; margin-left: auto; margin-right: auto; }
.block-team__card { text-align: center; }
.block-team__image { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; margin: 0 auto var(--spacing-md); display: block; }
.block-team__name { font-weight: 700; color: var(--color-secondary); font-family: var(--font-family-heading); margin-bottom: var(--spacing-xs); }
.block-team__role { color: var(--color-primary); font-size: var(--font-size-sm); font-weight: 600; margin-bottom: var(--spacing-sm); }
.block-team__bio { font-size: var(--font-size-sm); color: var(--color-grey-600); }

/* --- 20. CTA & Split CTA --- */
.block-cta {
    text-align: center;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: var(--color-white);
    padding: var(--spacing-3xl) var(--spacing-xl);
    border-radius: 0;
}
.block-cta__heading {
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-white);
    margin-bottom: var(--spacing-sm);
    font-family: var(--font-family-heading);
}
.block-cta__text {
    font-size: var(--font-size-lg);
    margin-bottom: var(--spacing-xl);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    opacity: 0.9;
}
.block-cta__buttons {
    display: flex;
    gap: var(--spacing-md);
    justify-content: center;
    flex-wrap: wrap;
}
.block-cta__button {
    display: inline-block;
    padding: 1rem 2rem;
    font-family: var(--font-family);
    font-size: var(--font-size-lg);
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    border-radius: var(--border-radius);
    border: 2px solid transparent;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
    line-height: 1.2;
}
.block-cta__button:hover { transform: translateY(-1px); }
.block-cta__button--primary {
    background: var(--color-white);
    color: var(--color-primary);
    border-color: var(--color-white);
}
.block-cta__button--primary:hover {
    background: transparent;
    color: var(--color-white);
}
.block-cta__button--secondary {
    background: transparent;
    color: var(--color-white);
    border-color: var(--color-white);
}
.block-cta__button--secondary:hover {
    background: var(--color-white);
    color: var(--color-primary);
}
.block-split-cta__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-xl); align-items: center; }
.block-split-cta--image-right .block-split-cta__image { order: 2; }
.block-split-cta__image img { width: 100%; height: auto; border-radius: var(--border-radius); display: block; }
.block-split-cta__content h2 { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-md); font-family: var(--font-family-heading); color: var(--color-secondary); }
.block-split-cta__content .btn { display: inline-block; padding: 0.75rem 1.5rem; background: var(--color-primary); color: var(--color-white); text-decoration: none; border-radius: var(--border-radius); font-weight: 600; transition: background var(--transition); margin-top: var(--spacing-md); }
.block-split-cta__content .btn:hover { background: var(--color-primary-dark); }
@media (max-width: 768px) { .block-split-cta__grid { grid-template-columns: 1fr; } .block-split-cta--image-right .block-split-cta__image { order: 0; } }

/* --- 21. Contact Block --- */
.block-contact__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-sm); font-family: var(--font-family-heading); color: var(--color-secondary); }
.block-contact__description { color: var(--color-grey-600); margin-bottom: var(--spacing-xl); }
.block-contact__items { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--spacing-lg); }
.block-contact__item { display: flex; gap: var(--spacing-md); align-items: flex-start; }
.block-contact__icon { font-size: 1.5rem; color: var(--color-primary); flex-shrink: 0; width: 40px; text-align: center; }
.block-contact__label { font-weight: 600; color: var(--color-secondary); font-size: var(--font-size-sm); text-transform: uppercase; letter-spacing: 0.5px; }
.block-contact__value { color: var(--color-grey-700); }
.block-contact__value a { color: var(--color-primary); text-decoration: none; }
.block-contact__value a:hover { text-decoration: underline; }
.block-contact__value address { font-style: normal; }

/* --- 22. Form Embed --- */
.block-form-embed__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-sm); font-family: var(--font-family-heading); color: var(--color-secondary); }
.block-form-embed__description { color: var(--color-grey-600); margin-bottom: var(--spacing-xl); }
.block-form-embed__notice { color: var(--color-grey-500); font-size: var(--font-size-sm); font-style: italic; }

/* --- 23. Map --- */
.block-map__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-lg); font-family: var(--font-family-heading); color: var(--color-secondary); }
.block-map__wrapper { border-radius: var(--border-radius); overflow: hidden; border: 1px solid var(--color-grey-200); }
.block-map__wrapper iframe { display: block; }

/* --- 24. Areas Covered --- */
.block-areas-covered__heading { font-size: 1.75rem; font-weight: 700; margin-bottom: var(--spacing-sm); font-family: var(--font-family-heading); color: var(--color-secondary); }
.block-areas-covered__description { color: var(--color-grey-600); margin-bottom: var(--spacing-xl); max-width: 700px; }
.block-areas-covered__grid { display: grid; gap: var(--spacing-md); }
.block-areas-covered__area { display: flex; align-items: flex-start; gap: var(--spacing-sm); padding: var(--spacing-md); background: var(--color-light); border-radius: var(--border-radius); }
.block-areas-covered__icon { color: var(--color-primary); font-size: 1.25rem; flex-shrink: 0; }
.block-areas-covered__area h3 { font-size: 1rem; font-weight: 600; color: var(--color-secondary); margin-bottom: var(--spacing-xs); }
.block-areas-covered__area p { font-size: var(--font-size-sm); color: var(--color-grey-600); margin: 0; }

/* ============================================================
   BUILDER STYLE SYSTEM — Responsive Visibility
   ============================================================ */
@media (max-width: 767px) {
  .builder-hide-mobile { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .builder-hide-tablet { display: none !important; }
}
@media (min-width: 1024px) {
  .builder-hide-desktop { display: none !important; }
}

/* ============================================================
   BUILDER STYLE SYSTEM — Entrance Animations
   ============================================================ */
.builder-animate {
  opacity: 0;
  transform: none;
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.builder-animate.is-visible {
  opacity: 1;
  transform: none;
}

/* Slide Up */
.builder-animate--slide-up { transform: translateY(40px); }
.builder-animate--slide-up.is-visible { transform: translateY(0); }

/* Slide Down */
.builder-animate--slide-down { transform: translateY(-40px); }
.builder-animate--slide-down.is-visible { transform: translateY(0); }

/* Slide Left */
.builder-animate--slide-left { transform: translateX(-40px); }
.builder-animate--slide-left.is-visible { transform: translateX(0); }

/* Slide Right */
.builder-animate--slide-right { transform: translateX(40px); }
.builder-animate--slide-right.is-visible { transform: translateX(0); }

/* Zoom In */
.builder-animate--zoom-in { transform: scale(0.9); }
.builder-animate--zoom-in.is-visible { transform: scale(1); }

/* Bounce In */
.builder-animate--bounce-in { transform: scale(0.85); }
.builder-animate--bounce-in.is-visible {
  transform: scale(1);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Zoom Out */
.builder-animate--zoom-out { transform: scale(1.05); }
.builder-animate--zoom-out.is-visible { transform: scale(1); }

/* Fade In (opacity only — transform already handled by base) */
.builder-animate--fade-in { transform: none; }

/* ============================================================
   BUILDER STYLE SYSTEM — Block Heading Colour Override
   ============================================================ */
.block[style*="color:"] h1,
.block[style*="color:"] h2,
.block[style*="color:"] h3,
.block[style*="color:"] h4,
.block[style*="color:"] h5,
.block[style*="color:"] h6 { color: inherit; }

/* ============================================================
   NEW BLOCKS — CSS starts here (Phases 3-17)
   ============================================================ */

/* ---------------------------------------------------------------
   Top Bar
   --------------------------------------------------------------- */
.block-top-bar {
    font-size: 0.875rem;
    line-height: 1;
}
.block-top-bar__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0.625rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}
.block-top-bar__left {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
}
.block-top-bar__item {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    text-decoration: none;
    color: inherit;
    white-space: nowrap;
}
.block-top-bar__item i { font-size: 0.8125rem; }
.block-top-bar__right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.block-top-bar__social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.8125rem;
    color: inherit;
    text-decoration: none;
    transition: opacity 0.2s ease;
}
.block-top-bar__social:hover { opacity: 0.7; }
/* Dark style */
.block-top-bar--dark {
    background: #1a1a2e;
    color: #ccc;
}
.block-top-bar--dark a:hover { color: #fff; }
/* Light style */
.block-top-bar--light {
    background: #f1f5f9;
    color: #475569;
    border-bottom: 1px solid #e2e8f0;
}
.block-top-bar--light a:hover { color: #1e293b; }
/* Transparent style */
.block-top-bar--transparent {
    background: transparent;
    color: #fff;
}
@media (max-width: 767px) {
    .block-top-bar__inner { justify-content: center; text-align: center; }
    .block-top-bar__left { justify-content: center; }
    .block-top-bar__extra { display: none; }
}

/* ---------------------------------------------------------------
   Page Title Banner
   --------------------------------------------------------------- */
.block-page-title-banner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #1a1a2e;
    background-size: cover;
    background-position: center;
    overflow: hidden;
}
.block-page-title-banner--small  { min-height: 200px; }
.block-page-title-banner--medium { min-height: 300px; }
.block-page-title-banner--large  { min-height: 400px; }
.block-page-title-banner__overlay {
    position: absolute;
    inset: 0;
    background: #000;
    pointer-events: none;
}
.block-page-title-banner__content {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    width: 100%;
}
.block-page-title-banner--align-left   .block-page-title-banner__content { text-align: left; }
.block-page-title-banner--align-center .block-page-title-banner__content { text-align: center; }
.block-page-title-banner--align-right  .block-page-title-banner__content { text-align: right; }
.block-page-title-banner__heading {
    font-size: 2.5rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 0.75rem;
    line-height: 1.2;
}
.block-page-title-banner__breadcrumbs ol {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.block-page-title-banner--align-center .block-page-title-banner__breadcrumbs ol { justify-content: center; }
.block-page-title-banner--align-right  .block-page-title-banner__breadcrumbs ol { justify-content: flex-end; }
.block-page-title-banner__breadcrumbs li {
    color: rgba(255,255,255,0.7);
    font-size: 0.875rem;
}
.block-page-title-banner__breadcrumbs li + li::before {
    content: '/';
    margin-right: 0.5rem;
    color: rgba(255,255,255,0.4);
}
.block-page-title-banner__breadcrumbs a {
    color: rgba(255,255,255,0.8);
    text-decoration: none;
    transition: color 0.2s ease;
}
.block-page-title-banner__breadcrumbs a:hover { color: #fff; }
@media (max-width: 767px) {
    .block-page-title-banner__heading { font-size: 1.75rem; }
    .block-page-title-banner--medium { min-height: 220px; }
    .block-page-title-banner--large  { min-height: 280px; }
}
/* =================================================================
   Block CSS — Batch 1
   11 block renderers: hero_slider, video_hero, hero_with_form,
   about_with_image, feature_boxes, tabbed_content, marquee_text,
   heading_block, text_with_list, custom_html, portfolio_grid
   ================================================================= */


/* ---------------------------------------------------------------
   Hero Slider
   --------------------------------------------------------------- */
.block-hero-slider {
    position: relative;
    overflow: hidden;
    width: 100%;
}
.block-hero-slider--medium { height: 500px; }
.block-hero-slider--large  { height: 600px; }
.block-hero-slider--fullscreen { height: 100vh; }

.block-hero-slider__track {
    position: relative;
    width: 100%;
    height: 100%;
}

.block-hero-slider__slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 0.8s ease;
    z-index: 1;
}
.block-hero-slider--slide .block-hero-slider__slide {
    opacity: 0;
    transform: translateX(100%);
    transition: transform 0.6s ease, opacity 0.6s ease;
}
.block-hero-slider--slide .block-hero-slider__slide--active {
    opacity: 1;
    transform: translateX(0);
}
.block-hero-slider__slide--active {
    opacity: 1;
    z-index: 2;
}

.block-hero-slider__overlay {
    position: absolute;
    inset: 0;
    background: #000;
    pointer-events: none;
    z-index: 1;
}

.block-hero-slider__content {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    width: 100%;
}

.block-hero-slider__slide--align-left .block-hero-slider__content   { text-align: left; }
.block-hero-slider__slide--align-center .block-hero-slider__content { text-align: center; margin-left: auto; margin-right: auto; }
.block-hero-slider__slide--align-right .block-hero-slider__content  { text-align: right; }

.block-hero-slider__subheading {
    font-size: 1rem;
    font-weight: 500;
    color: #e8491d;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 0.75rem;
}
.block-hero-slider__heading {
    font-size: 3rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 1rem;
    line-height: 1.15;
}
.block-hero-slider__description {
    font-size: 1.125rem;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 1.5rem;
    max-width: 600px;
}
.block-hero-slider__slide--align-center .block-hero-slider__description {
    margin-left: auto;
    margin-right: auto;
}

.block-hero-slider__buttons {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}
.block-hero-slider__slide--align-center .block-hero-slider__buttons { justify-content: center; }
.block-hero-slider__slide--align-right .block-hero-slider__buttons  { justify-content: flex-end; }

.block-hero-slider__btn {
    display: inline-block;
    padding: 0.75rem 2rem;
    border-radius: 4px;
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}
.block-hero-slider__btn--primary {
    background: #e8491d;
    color: #fff;
    border-color: #e8491d;
}
.block-hero-slider__btn--primary:hover {
    background: #cf3c14;
    border-color: #cf3c14;
}
.block-hero-slider__btn--secondary {
    background: transparent;
    color: #fff;
    border-color: #fff;
}
.block-hero-slider__btn--secondary:hover {
    background: #fff;
    color: #1a1a2e;
}
.block-hero-slider__btn--outline {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.6);
}
.block-hero-slider__btn--outline:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

/* Arrows */
.block-hero-slider__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background: rgba(0, 0, 0, 0.4);
    color: #fff;
    border: none;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    transition: all 0.3s ease;
}
.block-hero-slider__arrow:hover {
    background: rgba(0, 0, 0, 0.7);
}
.block-hero-slider__arrow--prev { left: 1.5rem; }
.block-hero-slider__arrow--next { right: 1.5rem; }

/* Dots */
.block-hero-slider__dots {
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: flex;
    gap: 0.5rem;
}
.block-hero-slider__dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid #fff;
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: all 0.3s ease;
}
.block-hero-slider__dot--active,
.block-hero-slider__dot:hover {
    background: #e8491d;
    border-color: #e8491d;
}

@media (max-width: 767px) {
    .block-hero-slider--medium { height: 400px; }
    .block-hero-slider--large  { height: 450px; }
    .block-hero-slider__heading { font-size: 2rem; }
    .block-hero-slider__description { font-size: 1rem; }
    .block-hero-slider__arrow { width: 36px; height: 36px; font-size: 0.875rem; }
    .block-hero-slider__arrow--prev { left: 0.75rem; }
    .block-hero-slider__arrow--next { right: 0.75rem; }
    .block-hero-slider__buttons { flex-direction: column; align-items: stretch; }
    .block-hero-slider__btn { text-align: center; }
}


/* ---------------------------------------------------------------
   Video Hero
   --------------------------------------------------------------- */
.block-video-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
}
.block-video-hero--medium     { min-height: 500px; }
.block-video-hero--large      { min-height: 600px; }
.block-video-hero--fullscreen { min-height: 100vh; }

.block-video-hero__video-wrap {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}
.block-video-hero__iframe,
.block-video-hero__video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
}
.block-video-hero__iframe {
    width: 177.78vh; /* 16:9 */
    height: 100vh;
    pointer-events: none;
}

.block-video-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.block-video-hero__content {
    position: relative;
    z-index: 2;
    max-width: 800px;
    padding: 3rem 1.5rem;
    width: 100%;
}

.block-video-hero--align-left .block-video-hero__content   { text-align: left; margin-right: auto; }
.block-video-hero--align-center .block-video-hero__content { text-align: center; margin: 0 auto; }
.block-video-hero--align-right .block-video-hero__content  { text-align: right; margin-left: auto; }

.block-video-hero__subheading {
    font-size: 1rem;
    font-weight: 500;
    color: #e8491d;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 0.75rem;
}
.block-video-hero__heading {
    font-size: 3rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 1rem;
    line-height: 1.15;
}
.block-video-hero__description {
    font-size: 1.125rem;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 2rem;
}
.block-video-hero__btn {
    display: inline-block;
    padding: 0.75rem 2rem;
    border-radius: 4px;
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}
.block-video-hero__btn--primary {
    background: #e8491d;
    color: #fff;
    border-color: #e8491d;
}
.block-video-hero__btn--primary:hover {
    background: #cf3c14;
    border-color: #cf3c14;
}
.block-video-hero__btn--secondary {
    background: transparent;
    color: #fff;
    border-color: #fff;
}
.block-video-hero__btn--secondary:hover {
    background: #fff;
    color: #1a1a2e;
}
.block-video-hero__btn--outline {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.6);
}
.block-video-hero__btn--outline:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

@media (max-width: 767px) {
    .block-video-hero--medium { min-height: 400px; }
    .block-video-hero--large  { min-height: 450px; }
    .block-video-hero__heading { font-size: 2rem; }
    .block-video-hero__description { font-size: 1rem; }
    /* Hide video on mobile, show fallback bg image */
    .block-video-hero__video-wrap { display: none; }
}


/* ---------------------------------------------------------------
   Hero with Form
   --------------------------------------------------------------- */
.block-hero-with-form {
    position: relative;
    background-size: cover;
    background-position: center;
    padding: 4rem 1.5rem;
    min-height: 500px;
    display: flex;
    align-items: center;
}

.block-hero-with-form__overlay {
    position: absolute;
    inset: 0;
    background: #000;
    pointer-events: none;
    z-index: 0;
}

.block-hero-with-form__inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.block-hero-with-form--form-left .block-hero-with-form__form-wrap { order: -1; }
.block-hero-with-form--form-left .block-hero-with-form__text      { order: 1; }

.block-hero-with-form__text {
    color: #fff;
}
.block-hero-with-form--align-left .block-hero-with-form__text   { text-align: left; }
.block-hero-with-form--align-center .block-hero-with-form__text { text-align: center; }

.block-hero-with-form__subheading {
    font-size: 1rem;
    font-weight: 500;
    color: #e8491d;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 0.75rem;
}
.block-hero-with-form__heading {
    font-size: 2.5rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 1rem;
    line-height: 1.2;
}
.block-hero-with-form__description {
    font-size: 1.125rem;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
    line-height: 1.6;
}

.block-hero-with-form__form-wrap {
    background: #fff;
    border-radius: 8px;
    padding: 2rem;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
}
.block-hero-with-form__form-heading {
    font-size: 1.375rem;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 1.5rem;
}
.block-hero-with-form__form-placeholder {
    color: #888;
    font-size: 0.9375rem;
}

@media (max-width: 767px) {
    .block-hero-with-form { padding: 2.5rem 1rem; }
    .block-hero-with-form__inner {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .block-hero-with-form--form-left .block-hero-with-form__form-wrap { order: 1; }
    .block-hero-with-form--form-left .block-hero-with-form__text      { order: -1; }
    .block-hero-with-form__heading { font-size: 1.75rem; }
}


/* ---------------------------------------------------------------
   About with Image
   --------------------------------------------------------------- */
.block-about-with-image {
    padding: 4rem 1.5rem;
}

.block-about-with-image__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.block-about-with-image--image-right .block-about-with-image__media   { order: 1; }
.block-about-with-image--image-right .block-about-with-image__content { order: -1; }

.block-about-with-image__image-wrap {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
}
.block-about-with-image__image {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
}

.block-about-with-image__play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 72px;
    height: 72px;
    background: #e8491d;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 16px rgba(232, 73, 29, 0.4);
}
.block-about-with-image__play-btn:hover {
    background: #cf3c14;
    transform: translate(-50%, -50%) scale(1.1);
}

.block-about-with-image__subheading {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #e8491d;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 0.5rem;
}
.block-about-with-image__heading {
    font-size: 2rem;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 1.25rem;
    line-height: 1.2;
}
.block-about-with-image__text {
    color: #555;
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}
.block-about-with-image__text p:last-child { margin-bottom: 0; }

/* Features list */
.block-about-with-image__features {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.block-about-with-image__feature {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}
.block-about-with-image__feature-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    background: rgba(232, 73, 29, 0.1);
    color: #e8491d;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
}
.block-about-with-image__feature-title {
    font-size: 1rem;
    font-weight: 600;
    color: #1a1a2e;
    margin: 0 0 0.25rem;
}
.block-about-with-image__feature-text {
    font-size: 0.875rem;
    color: #666;
    margin: 0;
    line-height: 1.5;
}

/* Signature */
.block-about-with-image__signature {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding-top: 1.25rem;
    border-top: 1px solid #eee;
    margin-top: 0.5rem;
}
.block-about-with-image__signature-image {
    height: 48px;
    width: auto;
}
.block-about-with-image__signature-info {
    display: flex;
    flex-direction: column;
}
.block-about-with-image__signature-name {
    font-size: 1rem;
    font-weight: 700;
    color: #1a1a2e;
}
.block-about-with-image__signature-title {
    font-size: 0.8125rem;
    color: #888;
}

/* Stats row */
.block-about-with-image__stats {
    max-width: 1200px;
    margin: 2.5rem auto 0;
    display: flex;
    justify-content: center;
    gap: 3rem;
    padding-top: 2.5rem;
    border-top: 1px solid #eee;
}
.block-about-with-image__stat {
    text-align: center;
}
.block-about-with-image__stat-number {
    display: block;
    font-size: 2.25rem;
    font-weight: 700;
    color: #e8491d;
    line-height: 1;
}
.block-about-with-image__stat-prefix,
.block-about-with-image__stat-suffix {
    font-size: 1.5rem;
}
.block-about-with-image__stat-label {
    display: block;
    font-size: 0.875rem;
    color: #666;
    margin-top: 0.375rem;
}

@media (max-width: 767px) {
    .block-about-with-image { padding: 2.5rem 1rem; }
    .block-about-with-image__inner {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .block-about-with-image--image-right .block-about-with-image__media   { order: 0; }
    .block-about-with-image--image-right .block-about-with-image__content { order: 0; }
    .block-about-with-image__heading { font-size: 1.625rem; }
    .block-about-with-image__stats {
        flex-wrap: wrap;
        gap: 1.5rem;
    }
    .block-about-with-image__stat-number { font-size: 1.75rem; }
}


/* ---------------------------------------------------------------
   Feature Boxes
   --------------------------------------------------------------- */
.block-feature-boxes {
    padding: 4rem 1.5rem;
}
.block-feature-boxes__container {
    max-width: 1200px;
    margin: 0 auto;
}

.block-feature-boxes__header {
    text-align: center;
    margin-bottom: 3rem;
}
.block-feature-boxes__heading {
    font-size: 2rem;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 0.75rem;
}
.block-feature-boxes__subheading {
    font-size: 1.0625rem;
    color: #666;
    max-width: 640px;
    margin: 0 auto;
    line-height: 1.6;
}

.block-feature-boxes__grid {
    display: grid;
    gap: 1.5rem;
}
.block-feature-boxes__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.block-feature-boxes__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.block-feature-boxes__grid--cols-4 { grid-template-columns: repeat(4, 1fr); }

/* Style: Card */
.block-feature-boxes--card .block-feature-boxes__item {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    padding: 2rem;
    text-align: center;
    transition: all 0.3s ease;
}
.block-feature-boxes--card .block-feature-boxes__item:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    transform: translateY(-4px);
}

/* Style: Minimal */
.block-feature-boxes--minimal .block-feature-boxes__item {
    text-align: center;
    padding: 1.5rem;
}

/* Style: Bordered */
.block-feature-boxes--bordered .block-feature-boxes__item {
    border: 2px solid #eee;
    border-radius: 8px;
    padding: 2rem;
    text-align: center;
    transition: all 0.3s ease;
}
.block-feature-boxes--bordered .block-feature-boxes__item:hover {
    border-color: #e8491d;
}

/* Style: Icon Top */
.block-feature-boxes--icon-top .block-feature-boxes__item {
    text-align: center;
    padding: 2rem 1.5rem;
}

/* Style: Icon Left */
.block-feature-boxes--icon-left .block-feature-boxes__item {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    padding: 1.5rem;
}
.block-feature-boxes--icon-left .block-feature-boxes__body {
    text-align: left;
}

.block-feature-boxes__icon {
    width: 56px;
    height: 56px;
    border-radius: 12px;
    background: rgba(232, 73, 29, 0.1);
    color: #e8491d;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.375rem;
    margin: 0 auto 1rem;
    flex-shrink: 0;
    transition: all 0.3s ease;
}
.block-feature-boxes--icon-left .block-feature-boxes__icon {
    margin: 0;
}
.block-feature-boxes__item:hover .block-feature-boxes__icon {
    background: #e8491d;
    color: #fff;
}

.block-feature-boxes__image-wrap {
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 1.25rem;
}
.block-feature-boxes__image {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}

.block-feature-boxes__title {
    font-size: 1.125rem;
    font-weight: 600;
    color: #1a1a2e;
    margin: 0 0 0.5rem;
}
.block-feature-boxes__description {
    font-size: 0.9375rem;
    color: #666;
    margin: 0 0 1rem;
    line-height: 1.6;
}
.block-feature-boxes__link {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #e8491d;
    text-decoration: none;
    transition: all 0.3s ease;
}
.block-feature-boxes__link:hover {
    color: #cf3c14;
}

/* Connector line */
.block-feature-boxes__grid--connected .block-feature-boxes__item {
    position: relative;
}
.block-feature-boxes__grid--connected .block-feature-boxes__item:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 28px;
    right: -0.75rem;
    width: calc(1.5rem);
    height: 2px;
    background: #ddd;
}

@media (max-width: 991px) {
    .block-feature-boxes__grid--cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .block-feature-boxes { padding: 2.5rem 1rem; }
    .block-feature-boxes__grid--cols-2,
    .block-feature-boxes__grid--cols-3,
    .block-feature-boxes__grid--cols-4 { grid-template-columns: 1fr; }
    .block-feature-boxes__heading { font-size: 1.625rem; }
    .block-feature-boxes__grid--connected .block-feature-boxes__item::after { display: none; }
}


/* ---------------------------------------------------------------
   Tabbed Content
   --------------------------------------------------------------- */
.block-tabbed-content {
    padding: 4rem 1.5rem;
}
.block-tabbed-content__container {
    max-width: 1200px;
    margin: 0 auto;
}

.block-tabbed-content__header {
    text-align: center;
    margin-bottom: 2.5rem;
}
.block-tabbed-content__heading {
    font-size: 2rem;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 0.75rem;
}
.block-tabbed-content__subheading {
    font-size: 1.0625rem;
    color: #666;
    max-width: 640px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Navigation styles */
.block-tabbed-content__nav {
    display: flex;
    gap: 0;
    margin-bottom: 0;
}

/* Horizontal style */
.block-tabbed-content--horizontal .block-tabbed-content__nav {
    border-bottom: 2px solid #eee;
    gap: 0;
}
.block-tabbed-content--horizontal .block-tabbed-content__tab-btn {
    padding: 0.875rem 1.5rem;
    border: none;
    background: none;
    font-size: 1rem;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    transition: all 0.3s ease;
}
.block-tabbed-content--horizontal .block-tabbed-content__tab-btn--active,
.block-tabbed-content--horizontal .block-tabbed-content__tab-btn:hover {
    color: #e8491d;
    border-bottom-color: #e8491d;
}

/* Vertical style */
.block-tabbed-content--vertical .block-tabbed-content__wrap {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 2rem;
}
.block-tabbed-content--vertical .block-tabbed-content__nav {
    flex-direction: column;
    border-right: 2px solid #eee;
    padding-right: 0;
}
.block-tabbed-content--vertical .block-tabbed-content__tab-btn {
    padding: 0.75rem 1.25rem;
    border: none;
    background: none;
    font-size: 1rem;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    text-align: left;
    border-right: 3px solid transparent;
    margin-right: -2px;
    transition: all 0.3s ease;
}
.block-tabbed-content--vertical .block-tabbed-content__tab-btn--active,
.block-tabbed-content--vertical .block-tabbed-content__tab-btn:hover {
    color: #e8491d;
    border-right-color: #e8491d;
    background: rgba(232, 73, 29, 0.04);
}

/* Pill style */
.block-tabbed-content--pill .block-tabbed-content__nav {
    gap: 0.5rem;
    justify-content: center;
    margin-bottom: 2rem;
}
.block-tabbed-content--pill .block-tabbed-content__tab-btn {
    padding: 0.625rem 1.5rem;
    border: none;
    background: #f0f0f0;
    border-radius: 50px;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    transition: all 0.3s ease;
}
.block-tabbed-content--pill .block-tabbed-content__tab-btn--active,
.block-tabbed-content--pill .block-tabbed-content__tab-btn:hover {
    background: #e8491d;
    color: #fff;
}

/* Underline style */
.block-tabbed-content--underline .block-tabbed-content__nav {
    gap: 2rem;
    justify-content: center;
    margin-bottom: 2rem;
}
.block-tabbed-content--underline .block-tabbed-content__tab-btn {
    padding: 0.5rem 0;
    border: none;
    background: none;
    font-size: 1rem;
    font-weight: 600;
    color: #999;
    cursor: pointer;
    position: relative;
    transition: all 0.3s ease;
}
.block-tabbed-content--underline .block-tabbed-content__tab-btn::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: #e8491d;
    transition: width 0.3s ease;
}
.block-tabbed-content--underline .block-tabbed-content__tab-btn--active::after,
.block-tabbed-content--underline .block-tabbed-content__tab-btn:hover::after {
    width: 100%;
}
.block-tabbed-content--underline .block-tabbed-content__tab-btn--active,
.block-tabbed-content--underline .block-tabbed-content__tab-btn:hover {
    color: #1a1a2e;
}

/* Tab icon */
.block-tabbed-content__tab-icon {
    margin-right: 0.5rem;
}

/* Panels */
.block-tabbed-content__panels {
    padding-top: 2rem;
}
.block-tabbed-content--horizontal .block-tabbed-content__panels {
    padding-top: 2rem;
}
.block-tabbed-content--vertical .block-tabbed-content__panels {
    padding-top: 0;
}

.block-tabbed-content__panel {
    display: none;
}
.block-tabbed-content__panel--active {
    display: block;
}

.block-tabbed-content__panel-inner--has-image {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: center;
}

.block-tabbed-content__panel-text {
    color: #555;
    font-size: 1rem;
    line-height: 1.7;
}
.block-tabbed-content__panel-text p:last-child { margin-bottom: 0; }

.block-tabbed-content__panel-image {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
}

.block-tabbed-content__btn {
    display: inline-block;
    margin-top: 1.25rem;
    padding: 0.75rem 2rem;
    border-radius: 4px;
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none;
    transition: all 0.3s ease;
}
.block-tabbed-content__btn--primary {
    background: #e8491d;
    color: #fff;
}
.block-tabbed-content__btn--primary:hover {
    background: #cf3c14;
}
.block-tabbed-content__btn--secondary {
    background: #1a1a2e;
    color: #fff;
}
.block-tabbed-content__btn--secondary:hover {
    background: #2a2a42;
}

@media (max-width: 767px) {
    .block-tabbed-content { padding: 2.5rem 1rem; }
    .block-tabbed-content--vertical .block-tabbed-content__wrap {
        grid-template-columns: 1fr;
    }
    .block-tabbed-content--vertical .block-tabbed-content__nav {
        flex-direction: row;
        border-right: none;
        border-bottom: 2px solid #eee;
        overflow-x: auto;
    }
    .block-tabbed-content--vertical .block-tabbed-content__tab-btn {
        border-right: none;
        border-bottom: 3px solid transparent;
        margin-right: 0;
        margin-bottom: -2px;
        white-space: nowrap;
    }
    .block-tabbed-content--vertical .block-tabbed-content__tab-btn--active {
        border-bottom-color: #e8491d;
    }
    .block-tabbed-content__panel-inner--has-image {
        grid-template-columns: 1fr;
    }
    .block-tabbed-content__heading { font-size: 1.625rem; }
    .block-tabbed-content--horizontal .block-tabbed-content__nav,
    .block-tabbed-content--underline .block-tabbed-content__nav {
        overflow-x: auto;
        flex-wrap: nowrap;
    }
    .block-tabbed-content--horizontal .block-tabbed-content__tab-btn,
    .block-tabbed-content--underline .block-tabbed-content__tab-btn {
        white-space: nowrap;
    }
}


/* ---------------------------------------------------------------
   Marquee Text
   --------------------------------------------------------------- */
.block-marquee-text {
    overflow: hidden;
    white-space: nowrap;
    padding: 1.5rem 0;
}

.block-marquee-text__track {
    display: inline-flex;
    align-items: center;
    gap: 0;
    animation: marqueeScroll 25s linear infinite;
    will-change: transform;
}

.block-marquee-text--pause-hover:hover .block-marquee-text__track {
    animation-play-state: paused;
}

@keyframes marqueeScroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.block-marquee-text__item {
    display: inline-block;
    padding: 0 0.75rem;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.2;
}
.block-marquee-text__item--outline {
    -webkit-text-stroke: 2px #1a1a2e;
    -webkit-text-fill-color: transparent;
}
.block-marquee-text--outline .block-marquee-text__item {
    -webkit-text-stroke: 2px #1a1a2e;
    -webkit-text-fill-color: transparent;
}

.block-marquee-text__separator {
    display: inline-block;
    padding: 0 1rem;
    color: #e8491d;
    opacity: 0.5;
}

/* Font sizes */
.block-marquee-text--medium .block-marquee-text__item   { font-size: 1.5rem; }
.block-marquee-text--medium .block-marquee-text__separator { font-size: 1.25rem; }
.block-marquee-text--large .block-marquee-text__item    { font-size: 2.5rem; }
.block-marquee-text--large .block-marquee-text__separator  { font-size: 2rem; }
.block-marquee-text--xlarge .block-marquee-text__item   { font-size: 3.5rem; }
.block-marquee-text--xlarge .block-marquee-text__separator { font-size: 2.5rem; }
.block-marquee-text--xxlarge .block-marquee-text__item  { font-size: 5rem; }
.block-marquee-text--xxlarge .block-marquee-text__separator { font-size: 3.5rem; }

@media (max-width: 767px) {
    .block-marquee-text--large .block-marquee-text__item   { font-size: 2rem; }
    .block-marquee-text--xlarge .block-marquee-text__item  { font-size: 2.5rem; }
    .block-marquee-text--xxlarge .block-marquee-text__item { font-size: 3rem; }
}


/* ---------------------------------------------------------------
   Heading Block
   --------------------------------------------------------------- */
.block-heading-block {
    padding: 3rem 1.5rem;
}
.block-heading-block__inner {
    max-width: 1200px;
    margin: 0 auto;
}

/* Alignment */
.block-heading-block--align-left   { text-align: left; }
.block-heading-block--align-center { text-align: center; }
.block-heading-block--align-right  { text-align: right; }

/* Max width */
.block-heading-block--narrow .block-heading-block__inner { max-width: 600px; }
.block-heading-block--medium .block-heading-block__inner { max-width: 800px; }

.block-heading-block__heading {
    font-weight: 700;
    color: #1a1a2e;
    margin: 0;
    line-height: 1.2;
}
h1.block-heading-block__heading { font-size: 2.5rem; }
h2.block-heading-block__heading { font-size: 2rem; }
h3.block-heading-block__heading { font-size: 1.625rem; }
h4.block-heading-block__heading { font-size: 1.375rem; }
h5.block-heading-block__heading { font-size: 1.125rem; }
h6.block-heading-block__heading { font-size: 1rem; }

.block-heading-block__subtitle {
    font-size: 1rem;
    font-weight: 600;
    color: #e8491d;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0 0 0.5rem;
}
/* When subtitle is below heading, add top margin */
.block-heading-block__heading + .block-heading-block__subtitle {
    margin: 0.75rem 0 0;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    color: #666;
    font-size: 1.0625rem;
}

/* Decorative lines */
.block-heading-block__line {
    margin-top: 1rem;
    display: flex;
    gap: 0.375rem;
}
.block-heading-block--align-center .block-heading-block__line { justify-content: center; }
.block-heading-block--align-right .block-heading-block__line  { justify-content: flex-end; }

.block-heading-block__line span {
    display: block;
    height: 3px;
    background: #e8491d;
    border-radius: 2px;
}

.block-heading-block__line--short span  { width: 60px; }
.block-heading-block__line--full span   { width: 100%; }
.block-heading-block__line--double span { width: 40px; }
.block-heading-block__line--double span:nth-child(2) { width: 20px; opacity: 0.5; }

@media (max-width: 767px) {
    .block-heading-block { padding: 2rem 1rem; }
    h1.block-heading-block__heading { font-size: 2rem; }
    h2.block-heading-block__heading { font-size: 1.625rem; }
    h3.block-heading-block__heading { font-size: 1.375rem; }
}


/* ---------------------------------------------------------------
   Text with List
   --------------------------------------------------------------- */
.block-text-with-list {
    padding: 4rem 1.5rem;
}
.block-text-with-list__container {
    max-width: 1200px;
    margin: 0 auto;
}

/* Right layout = side by side */
.block-text-with-list--right .block-text-with-list__container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
}

.block-text-with-list__heading {
    font-size: 2rem;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 1rem;
}
.block-text-with-list__content {
    color: #555;
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 2rem;
}
.block-text-with-list__content p:last-child { margin-bottom: 0; }

.block-text-with-list--right .block-text-with-list__content {
    margin-bottom: 0;
}

/* List */
.block-text-with-list__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.75rem;
}
.block-text-with-list__list--cols-2 { grid-template-columns: repeat(2, 1fr); }
.block-text-with-list__list--cols-3 { grid-template-columns: repeat(3, 1fr); }

/* Numbered list override */
ol.block-text-with-list__list {
    list-style: none;
    counter-reset: list-counter;
}
ol.block-text-with-list__list .block-text-with-list__item {
    counter-increment: list-counter;
}
ol.block-text-with-list__list .block-text-with-list__item::before {
    content: counter(list-counter);
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    background: #e8491d;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    font-weight: 700;
}

.block-text-with-list__item {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}

/* Bullet style */
.block-text-with-list--style-bullet .block-text-with-list__item::before {
    content: '';
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    background: #e8491d;
    border-radius: 50%;
    margin-top: 0.5rem;
}

/* Icon */
.block-text-with-list__item-icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    background: rgba(232, 73, 29, 0.1);
    color: #e8491d;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
}

.block-text-with-list__item-body {
    flex: 1;
}
.block-text-with-list__item-text {
    font-size: 1rem;
    font-weight: 500;
    color: #1a1a2e;
    line-height: 1.5;
}
.block-text-with-list__item-desc {
    font-size: 0.875rem;
    color: #666;
    margin: 0.25rem 0 0;
    line-height: 1.5;
}

@media (max-width: 767px) {
    .block-text-with-list { padding: 2.5rem 1rem; }
    .block-text-with-list--right .block-text-with-list__container {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .block-text-with-list__list--cols-2,
    .block-text-with-list__list--cols-3 { grid-template-columns: 1fr; }
    .block-text-with-list__heading { font-size: 1.625rem; }
}


/* ---------------------------------------------------------------
   Custom HTML
   --------------------------------------------------------------- */
.block-custom-html {
    /* Minimal wrapper — content is user-controlled */
}
.block-custom-html__content {
    max-width: 1200px;
    margin: 0 auto;
}


/* ---------------------------------------------------------------
   Portfolio Grid
   --------------------------------------------------------------- */
.block-portfolio-grid {
    padding: 4rem 1.5rem;
}
.block-portfolio-grid__container {
    max-width: 1200px;
    margin: 0 auto;
}

.block-portfolio-grid__header {
    text-align: center;
    margin-bottom: 2.5rem;
}
.block-portfolio-grid__heading {
    font-size: 2rem;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 0.75rem;
}
.block-portfolio-grid__subheading {
    font-size: 1.0625rem;
    color: #666;
    max-width: 640px;
    margin: 0 auto;
    line-height: 1.6;
}

/* Filters */
.block-portfolio-grid__filters {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}
.block-portfolio-grid__filter-btn {
    padding: 0.5rem 1.25rem;
    border: 2px solid #eee;
    background: transparent;
    border-radius: 4px;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    transition: all 0.3s ease;
}
.block-portfolio-grid__filter-btn:hover {
    border-color: #e8491d;
    color: #e8491d;
}
.block-portfolio-grid__filter-btn--active {
    background: #e8491d;
    border-color: #e8491d;
    color: #fff;
}

/* Grid */
.block-portfolio-grid__grid {
    display: grid;
}
.block-portfolio-grid__grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.block-portfolio-grid__grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.block-portfolio-grid__grid--cols-4 { grid-template-columns: repeat(4, 1fr); }

.block-portfolio-grid__item {
    transition: all 0.3s ease;
}
.block-portfolio-grid__item[data-hidden="true"] {
    display: none;
}

/* Image wrap */
.block-portfolio-grid__image-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
}
.block-portfolio-grid__image {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.block-portfolio-grid__item:hover .block-portfolio-grid__image {
    transform: scale(1.05);
}

/* Overlay style */
.block-portfolio-grid--overlay .block-portfolio-grid__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, transparent 60%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.block-portfolio-grid--overlay .block-portfolio-grid__item:hover .block-portfolio-grid__overlay {
    opacity: 1;
}
.block-portfolio-grid--overlay .block-portfolio-grid__title {
    font-size: 1.125rem;
    font-weight: 600;
    color: #fff;
    margin: 0 0 0.25rem;
}
.block-portfolio-grid--overlay .block-portfolio-grid__category {
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 0.5rem;
}
.block-portfolio-grid--overlay .block-portfolio-grid__link {
    font-size: 0.875rem;
    color: #e8491d;
    text-decoration: none;
    font-weight: 600;
}

/* Card style */
.block-portfolio-grid--card .block-portfolio-grid__item {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}
.block-portfolio-grid--card .block-portfolio-grid__item:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}
.block-portfolio-grid--card .block-portfolio-grid__image-wrap {
    border-radius: 0;
}
.block-portfolio-grid--card .block-portfolio-grid__body {
    padding: 1.25rem;
}
.block-portfolio-grid--card .block-portfolio-grid__category {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    color: #e8491d;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 0.375rem;
}
.block-portfolio-grid--card .block-portfolio-grid__title {
    font-size: 1.125rem;
    font-weight: 600;
    color: #1a1a2e;
    margin: 0 0 0.5rem;
}
.block-portfolio-grid--card .block-portfolio-grid__description {
    font-size: 0.9375rem;
    color: #666;
    margin: 0 0 1rem;
    line-height: 1.5;
}
.block-portfolio-grid--card .block-portfolio-grid__link {
    font-size: 0.9375rem;
    font-weight: 600;
    color: #e8491d;
    text-decoration: none;
    transition: color 0.3s ease;
}
.block-portfolio-grid--card .block-portfolio-grid__link:hover {
    color: #cf3c14;
}

/* Minimal style */
.block-portfolio-grid--minimal .block-portfolio-grid__body {
    padding: 1rem 0;
}
.block-portfolio-grid--minimal .block-portfolio-grid__category {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 600;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 0.25rem;
}
.block-portfolio-grid--minimal .block-portfolio-grid__title {
    font-size: 1.0625rem;
    font-weight: 600;
    color: #1a1a2e;
    margin: 0;
}
.block-portfolio-grid--minimal .block-portfolio-grid__description {
    font-size: 0.875rem;
    color: #666;
    margin: 0.375rem 0 0;
    line-height: 1.5;
}
.block-portfolio-grid--minimal .block-portfolio-grid__link {
    display: inline-block;
    margin-top: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: #e8491d;
    text-decoration: none;
}

@media (max-width: 991px) {
    .block-portfolio-grid__grid--cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .block-portfolio-grid { padding: 2.5rem 1rem; }
    .block-portfolio-grid__grid--cols-2,
    .block-portfolio-grid__grid--cols-3,
    .block-portfolio-grid__grid--cols-4 { grid-template-columns: 1fr; }
    .block-portfolio-grid__heading { font-size: 1.625rem; }
    .block-portfolio-grid__filters {
        overflow-x: auto;
        flex-wrap: nowrap;
        justify-content: flex-start;
        -webkit-overflow-scrolling: touch;
    }
    .block-portfolio-grid__filter-btn {
        white-space: nowrap;
        flex-shrink: 0;
    }
}
/**
 * TradeCMS Block Styles — Batch 2
 *
 * Blocks included:
 *   1. image_text_row     — Side-by-side image + text
 *   2. image_gallery      — Image grid with lightbox
 *   3. photo_collage      — Creative multi-size layout
 *   4. service_cards       — Service cards grid
 *   5. service_tabs        — Tabbed service interface
 *   6. service_carousel    — Horizontal scrolling services
 *   7. pricing_table       — Tiered pricing cards
 *   8. blog_preview        — Blog/news post cards
 *   9. testimonial_slider  — Single testimonial slider
 *  10. comparison_table    — Feature comparison grid
 *  11. newsletter_signup   — Email subscription section
 */


/* ---------------------------------------------------------------
   1. Image Text Row
   --------------------------------------------------------------- */
.block-image-text-row {
    padding: 4rem 1.5rem;
}

.block-image-text-row__grid {
    display: grid;
    gap: 3rem;
    max-width: 1200px;
    margin: 0 auto;
}

.block-image-text-row__image-col--order-last {
    order: 2;
}

.block-image-text-row__image {
    width: 100%;
    height: auto;
    display: block;
}

/* Style: standard */
.block-image-text-row--standard .block-image-text-row__image {
    border-radius: 0;
}

/* Style: rounded */
.block-image-text-row--rounded .block-image-text-row__image {
    border-radius: 12px;
}

/* Style: overlap */
.block-image-text-row--overlap .block-image-text-row__image-col {
    position: relative;
    z-index: 1;
}

.block-image-text-row--overlap .block-image-text-row__text-col {
    position: relative;
    z-index: 2;
    background: #fff;
    padding: 2.5rem;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    margin-left: -3rem;
}

.block-image-text-row--overlap.block-image-text-row--img-right .block-image-text-row__text-col {
    margin-left: 0;
    margin-right: -3rem;
}

/* Style: full-bleed */
.block-image-text-row--full-bleed {
    padding: 0;
}

.block-image-text-row--full-bleed .block-image-text-row__grid {
    max-width: 100%;
    gap: 0;
}

.block-image-text-row--full-bleed .block-image-text-row__image {
    height: 100%;
    object-fit: cover;
}

.block-image-text-row--full-bleed .block-image-text-row__text-col {
    padding: 4rem 3rem;
}

.block-image-text-row__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 1rem;
}

.block-image-text-row__content {
    color: #555;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.block-image-text-row__button {
    display: inline-block;
    padding: 0.75rem 2rem;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
}

.block-image-text-row__button--primary {
    background: #e8491d;
    color: #fff;
}

.block-image-text-row__button--primary:hover {
    background: #cf3d15;
}

.block-image-text-row__button--secondary {
    background: #1a1a2e;
    color: #fff;
}

.block-image-text-row__button--secondary:hover {
    background: #2d2d4a;
}

.block-image-text-row__button--outline {
    background: transparent;
    color: #e8491d;
    border: 2px solid #e8491d;
}

.block-image-text-row__button--outline:hover {
    background: #e8491d;
    color: #fff;
}

@media (max-width: 767px) {
    .block-image-text-row__grid {
        grid-template-columns: 1fr !important;
        gap: 2rem;
    }

    .block-image-text-row__image-col--order-last {
        order: 0;
    }

    .block-image-text-row--overlap .block-image-text-row__text-col {
        margin-left: 0;
        margin-right: 0;
    }

    .block-image-text-row--full-bleed .block-image-text-row__text-col {
        padding: 2rem 1.5rem;
    }

    .block-image-text-row__heading {
        font-size: 1.5rem;
    }
}


/* ---------------------------------------------------------------
   2. Image Gallery
   --------------------------------------------------------------- */
.block-image-gallery {
    padding: 4rem 1.5rem;
}

.block-image-gallery__header {
    max-width: 1200px;
    margin: 0 auto 2rem;
    text-align: center;
}

.block-image-gallery__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.block-image-gallery__subheading {
    color: #555;
    font-size: 1.1rem;
}

.block-image-gallery__grid {
    display: grid;
    max-width: 1200px;
    margin: 0 auto;
}

.block-image-gallery__item {
    overflow: hidden;
    display: block;
    position: relative;
    cursor: pointer;
}

.block-image-gallery__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: all 0.3s ease;
}

/* Aspect ratios */
.block-image-gallery--ratio-square .block-image-gallery__item {
    aspect-ratio: 1 / 1;
}

.block-image-gallery--ratio-landscape .block-image-gallery__item {
    aspect-ratio: 4 / 3;
}

.block-image-gallery--ratio-portrait .block-image-gallery__item {
    aspect-ratio: 3 / 4;
}

/* Hover effects */
.block-image-gallery--hover-zoom .block-image-gallery__item:hover .block-image-gallery__image {
    transform: scale(1.1);
}

.block-image-gallery--hover-lift .block-image-gallery__item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}

.block-image-gallery--hover-overlay .block-image-gallery__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.4);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.block-image-gallery--hover-overlay .block-image-gallery__item:hover .block-image-gallery__overlay {
    opacity: 1;
}

@media (max-width: 767px) {
    .block-image-gallery__grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .block-image-gallery__heading {
        font-size: 1.5rem;
    }
}


/* ---------------------------------------------------------------
   3. Photo Collage
   --------------------------------------------------------------- */
.block-photo-collage {
    padding: 4rem 1.5rem;
}

.block-photo-collage__grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    overflow: hidden;
}

.block-photo-collage__item {
    overflow: hidden;
    position: relative;
}

.block-photo-collage__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.block-photo-collage__item:hover .block-photo-collage__image {
    transform: scale(1.05);
}

/* Mosaic layout — CSS grid with spans */
.block-photo-collage--mosaic .block-photo-collage__grid {
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 1fr;
}

.block-photo-collage--mosaic .block-photo-collage__item--1 {
    grid-column: span 2;
    grid-row: span 2;
}

.block-photo-collage--mosaic .block-photo-collage__item--5 {
    grid-column: span 2;
}

/* Masonry layout — columns approach */
.block-photo-collage--masonry .block-photo-collage__grid {
    display: block;
    column-count: 3;
    column-gap: inherit;
}

.block-photo-collage--masonry .block-photo-collage__item {
    break-inside: avoid;
    margin-bottom: inherit;
}

/* Featured left — large image left, stack right */
.block-photo-collage--featured-left .block-photo-collage__grid {
    grid-template-columns: 2fr 1fr;
    grid-template-rows: repeat(auto-fill, 1fr);
}

.block-photo-collage--featured-left .block-photo-collage__item--1 {
    grid-row: 1 / -1;
}

/* Featured right — stack left, large image right */
.block-photo-collage--featured-right .block-photo-collage__grid {
    grid-template-columns: 1fr 2fr;
    grid-template-rows: repeat(auto-fill, 1fr);
}

.block-photo-collage--featured-right .block-photo-collage__item--1 {
    grid-column: 2;
    grid-row: 1 / -1;
}

@media (max-width: 767px) {
    .block-photo-collage--mosaic .block-photo-collage__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .block-photo-collage--mosaic .block-photo-collage__item--1 {
        grid-column: span 2;
        grid-row: span 1;
    }

    .block-photo-collage--mosaic .block-photo-collage__item--5 {
        grid-column: span 1;
    }

    .block-photo-collage--masonry .block-photo-collage__grid {
        column-count: 2;
    }

    .block-photo-collage--featured-left .block-photo-collage__grid,
    .block-photo-collage--featured-right .block-photo-collage__grid {
        grid-template-columns: 1fr;
    }

    .block-photo-collage--featured-left .block-photo-collage__item--1,
    .block-photo-collage--featured-right .block-photo-collage__item--1 {
        grid-column: 1;
        grid-row: auto;
    }

    .block-photo-collage__grid {
        height: auto !important;
    }
}


/* ---------------------------------------------------------------
   4. Service Cards
   --------------------------------------------------------------- */
.block-service-cards {
    padding: 4rem 1.5rem;
}

.block-service-cards__header {
    max-width: 1200px;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.block-service-cards__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.block-service-cards__subheading {
    color: #555;
    font-size: 1.1rem;
}

.block-service-cards__grid {
    display: grid;
    gap: 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}

/* Style: card */
.block-service-cards--card .block-service-cards__card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: all 0.3s ease;
}

.block-service-cards--card .block-service-cards__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.block-service-cards__image-wrap {
    position: relative;
    overflow: hidden;
}

.block-service-cards__image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    transition: all 0.3s ease;
}

.block-service-cards__image--hover {
    position: absolute;
    inset: 0;
    opacity: 0;
}

.block-service-cards__card:hover .block-service-cards__image--hover {
    opacity: 1;
}

.block-service-cards__body {
    padding: 1.5rem;
}

.block-service-cards__number {
    display: block;
    font-size: 2rem;
    font-weight: 700;
    color: #e8491d;
    opacity: 0.3;
    margin-bottom: 0.5rem;
    padding: 1.5rem 1.5rem 0;
}

.block-service-cards__icon {
    font-size: 2rem;
    color: #e8491d;
    margin-bottom: 0.5rem;
    padding: 0 1.5rem;
}

.block-service-cards__title {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
}

.block-service-cards__description {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 1rem;
}

.block-service-cards__link {
    color: #e8491d;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.3s ease;
}

.block-service-cards__link:hover {
    color: #cf3d15;
}

/* Style: overlay */
.block-service-cards--overlay .block-service-cards__card {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    min-height: 300px;
}

.block-service-cards--overlay .block-service-cards__image {
    height: 100%;
    position: absolute;
    inset: 0;
}

.block-service-cards--overlay .block-service-cards__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.1) 100%);
}

.block-service-cards--overlay .block-service-cards__body {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    min-height: 300px;
}

.block-service-cards--overlay .block-service-cards__title,
.block-service-cards--overlay .block-service-cards__description {
    color: #fff;
}

.block-service-cards--overlay .block-service-cards__link {
    color: #e8491d;
}

/* Style: icon-top */
.block-service-cards--icon-top .block-service-cards__card {
    text-align: center;
    padding: 2rem 1.5rem;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
}

.block-service-cards--icon-top .block-service-cards__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.block-service-cards--icon-top .block-service-cards__icon {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    display: inline-block;
    width: 64px;
    height: 64px;
    line-height: 64px;
    border-radius: 50%;
    background: rgba(232,73,29,0.1);
}

.block-service-cards--icon-top .block-service-cards__body {
    padding: 0;
}

/* Style: icon-left */
.block-service-cards--icon-left .block-service-cards__card {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
    padding: 1.5rem;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
}

.block-service-cards--icon-left .block-service-cards__card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.block-service-cards--icon-left .block-service-cards__icon {
    flex-shrink: 0;
    font-size: 1.5rem;
    width: 48px;
    height: 48px;
    line-height: 48px;
    text-align: center;
    border-radius: 8px;
    background: rgba(232,73,29,0.1);
}

.block-service-cards--icon-left .block-service-cards__body {
    padding: 0;
}

/* Style: flip */
.block-service-cards--flip .block-service-cards__card {
    perspective: 1000px;
    min-height: 280px;
}

.block-service-cards--flip .block-service-cards__card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 280px;
    transition: transform 0.6s ease;
    transform-style: preserve-3d;
}

.block-service-cards--flip .block-service-cards__card:hover .block-service-cards__card-inner {
    transform: rotateY(180deg);
}

.block-service-cards--flip .block-service-cards__card-front,
.block-service-cards--flip .block-service-cards__card-back {
    position: absolute;
    inset: 0;
    backface-visibility: hidden;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.block-service-cards--flip .block-service-cards__card-front {
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.block-service-cards--flip .block-service-cards__card-back {
    background: #e8491d;
    color: #fff;
    transform: rotateY(180deg);
    justify-content: center;
    align-items: center;
    padding: 2rem;
    text-align: center;
}

.block-service-cards--flip .block-service-cards__card-back .block-service-cards__description {
    color: #fff;
}

.block-service-cards--flip .block-service-cards__link--back {
    color: #fff;
    border: 2px solid #fff;
    padding: 0.5rem 1.5rem;
    border-radius: 4px;
    display: inline-block;
    margin-top: 1rem;
}

@media (max-width: 767px) {
    .block-service-cards__grid {
        grid-template-columns: 1fr !important;
    }

    .block-service-cards__heading {
        font-size: 1.5rem;
    }

    .block-service-cards--icon-left .block-service-cards__card {
        flex-direction: column;
    }
}


/* ---------------------------------------------------------------
   5. Service Tabs
   --------------------------------------------------------------- */
.block-service-tabs {
    padding: 4rem 1.5rem;
}

.block-service-tabs__header {
    max-width: 1200px;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.block-service-tabs__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.block-service-tabs__subheading {
    color: #555;
    font-size: 1.1rem;
}

.block-service-tabs__container {
    max-width: 1200px;
    margin: 0 auto;
}

/* Tab nav — top */
.block-service-tabs--top .block-service-tabs__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-bottom: 2px solid #e5e5e5;
    margin-bottom: 2rem;
}

.block-service-tabs__tab {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    font-size: 1rem;
    font-weight: 600;
    color: #555;
    cursor: pointer;
    transition: all 0.3s ease;
}

.block-service-tabs__tab:hover {
    color: #e8491d;
}

.block-service-tabs__tab--active {
    color: #e8491d;
    border-bottom-color: #e8491d;
}

.block-service-tabs__tab-icon {
    font-size: 1.1rem;
}

/* Tab nav — left */
.block-service-tabs--left .block-service-tabs__container {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 2rem;
}

.block-service-tabs--left .block-service-tabs__nav {
    display: flex;
    flex-direction: column;
    border-bottom: none;
    border-right: 2px solid #e5e5e5;
    padding-right: 0;
}

.block-service-tabs--left .block-service-tabs__tab {
    border-bottom: none;
    border-right: 3px solid transparent;
    margin-bottom: 0;
    margin-right: -2px;
    text-align: left;
    justify-content: flex-start;
}

.block-service-tabs--left .block-service-tabs__tab--active {
    border-right-color: #e8491d;
}

/* Panels */
.block-service-tabs__panel {
    display: none;
}

.block-service-tabs__panel--active {
    display: block;
}

.block-service-tabs__panel-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: center;
}

.block-service-tabs__panel-title {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

.block-service-tabs__panel-description {
    color: #555;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.block-service-tabs__features {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
}

.block-service-tabs__feature {
    padding: 0.4rem 0;
    color: #555;
    padding-left: 1.5rem;
    position: relative;
}

.block-service-tabs__feature::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: #e8491d;
    font-weight: 700;
}

.block-service-tabs__button {
    display: inline-block;
    padding: 0.75rem 2rem;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
}

.block-service-tabs__button--primary {
    background: #e8491d;
    color: #fff;
}

.block-service-tabs__button--primary:hover {
    background: #cf3d15;
}

.block-service-tabs__button--secondary {
    background: #1a1a2e;
    color: #fff;
}

.block-service-tabs__button--outline {
    background: transparent;
    color: #e8491d;
    border: 2px solid #e8491d;
}

.block-service-tabs__button--outline:hover {
    background: #e8491d;
    color: #fff;
}

.block-service-tabs__panel-image-wrap {
    border-radius: 8px;
    overflow: hidden;
}

.block-service-tabs__panel-image {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 767px) {
    .block-service-tabs--left .block-service-tabs__container {
        grid-template-columns: 1fr;
    }

    .block-service-tabs--left .block-service-tabs__nav {
        flex-direction: row;
        flex-wrap: wrap;
        border-right: none;
        border-bottom: 2px solid #e5e5e5;
        margin-bottom: 1.5rem;
    }

    .block-service-tabs--left .block-service-tabs__tab {
        border-right: none;
        border-bottom: 3px solid transparent;
        margin-right: 0;
        margin-bottom: -2px;
    }

    .block-service-tabs--left .block-service-tabs__tab--active {
        border-bottom-color: #e8491d;
        border-right-color: transparent;
    }

    .block-service-tabs__panel-inner {
        grid-template-columns: 1fr;
    }

    .block-service-tabs__heading {
        font-size: 1.5rem;
    }

    .block-service-tabs__tab {
        padding: 0.5rem 1rem;
        font-size: 0.9rem;
    }
}


/* ---------------------------------------------------------------
   6. Service Carousel
   --------------------------------------------------------------- */
.block-service-carousel {
    padding: 4rem 1.5rem;
}

.block-service-carousel__header {
    max-width: 1200px;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.block-service-carousel__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.block-service-carousel__subheading {
    color: #555;
    font-size: 1.1rem;
}

.block-service-carousel__viewport {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
}

.block-service-carousel__track {
    display: flex;
    gap: 1.5rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 0.5rem;
}

.block-service-carousel__track::-webkit-scrollbar {
    display: none;
}

.block-service-carousel__card {
    flex: 0 0 calc((100% - 3rem) / 3);
    scroll-snap-align: start;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: all 0.3s ease;
}

.block-service-carousel__card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.block-service-carousel__image-wrap {
    overflow: hidden;
}

.block-service-carousel__image {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
}

.block-service-carousel__body {
    padding: 1.5rem;
}

.block-service-carousel__icon {
    font-size: 2rem;
    color: #e8491d;
    margin-bottom: 0.75rem;
}

.block-service-carousel__title {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 1.15rem;
    margin-bottom: 0.5rem;
}

.block-service-carousel__description {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 1rem;
}

.block-service-carousel__link {
    color: #e8491d;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.3s ease;
}

.block-service-carousel__link:hover {
    color: #cf3d15;
}

/* Arrows */
.block-service-carousel__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid #ddd;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    font-size: 1.5rem;
    line-height: 1;
    color: #1a1a2e;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.block-service-carousel__arrow:hover {
    background: #e8491d;
    color: #fff;
    border-color: #e8491d;
}

.block-service-carousel__arrow--prev {
    left: -22px;
}

.block-service-carousel__arrow--next {
    right: -22px;
}

/* Dots */
.block-service-carousel__dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1.5rem;
}

.block-service-carousel__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: none;
    background: #ddd;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 0;
}

.block-service-carousel__dot--active,
.block-service-carousel__dot:hover {
    background: #e8491d;
}

/* Card width variants based on data-cards-visible (JS handles, CSS provides defaults) */
[data-cards-visible="2"] .block-service-carousel__card {
    flex: 0 0 calc((100% - 1.5rem) / 2);
}

[data-cards-visible="4"] .block-service-carousel__card {
    flex: 0 0 calc((100% - 4.5rem) / 4);
}

@media (max-width: 767px) {
    .block-service-carousel__card {
        flex: 0 0 85% !important;
    }

    .block-service-carousel__arrow {
        display: none;
    }

    .block-service-carousel__heading {
        font-size: 1.5rem;
    }
}


/* ---------------------------------------------------------------
   7. Pricing Table
   --------------------------------------------------------------- */
.block-pricing-table {
    padding: 4rem 1.5rem;
}

.block-pricing-table__header {
    max-width: 1200px;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.block-pricing-table__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.block-pricing-table__subheading {
    color: #555;
    font-size: 1.1rem;
}

.block-pricing-table__grid {
    display: grid;
    gap: 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
    align-items: stretch;
}

/* Style: card */
.block-pricing-table--card .block-pricing-table__plan {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: all 0.3s ease;
}

.block-pricing-table--card .block-pricing-table__plan:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

/* Style: flat */
.block-pricing-table--flat .block-pricing-table__plan {
    background: #f8f9fa;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: all 0.3s ease;
}

.block-pricing-table--flat .block-pricing-table__plan:hover {
    background: #fff;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

/* Style: bordered */
.block-pricing-table--bordered .block-pricing-table__plan {
    background: #fff;
    border: 2px solid #e5e5e5;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: all 0.3s ease;
}

.block-pricing-table--bordered .block-pricing-table__plan:hover {
    border-color: #e8491d;
}

/* Featured plan */
.block-pricing-table__plan--featured {
    transform: scale(1.05);
    z-index: 1;
}

.block-pricing-table--card .block-pricing-table__plan--featured {
    box-shadow: 0 8px 32px rgba(232,73,29,0.2);
}

.block-pricing-table--bordered .block-pricing-table__plan--featured {
    border-color: #e8491d;
}

.block-pricing-table__badge {
    position: absolute;
    top: 0;
    right: 1.5rem;
    background: #e8491d;
    color: #fff;
    padding: 0.35rem 1rem;
    border-radius: 0 0 4px 4px;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.block-pricing-table__plan-header {
    padding: 2rem 1.5rem;
    text-align: center;
    border-bottom: 1px solid #f0f0f0;
}

.block-pricing-table__plan-name {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 1.2rem;
    margin-bottom: 1rem;
}

.block-pricing-table__price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.15rem;
    margin-bottom: 0.5rem;
}

.block-pricing-table__currency {
    font-size: 1.5rem;
    font-weight: 600;
    color: #1a1a2e;
}

.block-pricing-table__amount {
    font-size: 3rem;
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1;
}

.block-pricing-table__period {
    font-size: 0.95rem;
    color: #888;
}

.block-pricing-table__plan-description {
    color: #555;
    font-size: 0.9rem;
    margin-top: 0.5rem;
}

.block-pricing-table__features {
    list-style: none;
    padding: 1.5rem;
    margin: 0;
    flex-grow: 1;
}

.block-pricing-table__feature {
    padding: 0.5rem 0;
    color: #555;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-bottom: 1px solid #f5f5f5;
}

.block-pricing-table__feature:last-child {
    border-bottom: none;
}

.block-pricing-table__feature-icon {
    flex-shrink: 0;
    font-size: 1rem;
    width: 20px;
    text-align: center;
}

.block-pricing-table__feature:not(.block-pricing-table__feature--excluded) .block-pricing-table__feature-icon {
    color: #22c55e;
}

.block-pricing-table__feature--excluded {
    color: #aaa;
}

.block-pricing-table__feature--excluded .block-pricing-table__feature-icon {
    color: #ef4444;
}

.block-pricing-table__plan-footer {
    padding: 0 1.5rem 2rem;
    text-align: center;
}

.block-pricing-table__button {
    display: inline-block;
    width: 100%;
    padding: 0.75rem 2rem;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    text-align: center;
    transition: all 0.3s ease;
}

.block-pricing-table__button--primary {
    background: #e8491d;
    color: #fff;
}

.block-pricing-table__button--primary:hover {
    background: #cf3d15;
}

.block-pricing-table__button--secondary {
    background: #1a1a2e;
    color: #fff;
}

.block-pricing-table__button--secondary:hover {
    background: #2d2d4a;
}

.block-pricing-table__button--outline {
    background: transparent;
    color: #e8491d;
    border: 2px solid #e8491d;
}

.block-pricing-table__button--outline:hover {
    background: #e8491d;
    color: #fff;
}

@media (max-width: 767px) {
    .block-pricing-table__grid {
        grid-template-columns: 1fr !important;
    }

    .block-pricing-table__plan--featured {
        transform: none;
    }

    .block-pricing-table__heading {
        font-size: 1.5rem;
    }
}


/* ---------------------------------------------------------------
   8. Blog Preview
   --------------------------------------------------------------- */
.block-blog-preview {
    padding: 4rem 1.5rem;
}

.block-blog-preview__header {
    max-width: 1200px;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.block-blog-preview__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.block-blog-preview__subheading {
    color: #555;
    font-size: 1.1rem;
}

.block-blog-preview__grid {
    display: grid;
    gap: 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}

.block-blog-preview__grid--list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* Style: card */
.block-blog-preview--card .block-blog-preview__post {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: all 0.3s ease;
}

.block-blog-preview--card .block-blog-preview__post:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.block-blog-preview__image-wrap {
    position: relative;
    overflow: hidden;
}

.block-blog-preview__image-link {
    display: block;
}

.block-blog-preview__image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.block-blog-preview__post:hover .block-blog-preview__image {
    transform: scale(1.05);
}

.block-blog-preview__body {
    padding: 1.5rem;
}

.block-blog-preview__category {
    display: inline-block;
    font-size: 0.8rem;
    font-weight: 600;
    color: #e8491d;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.5rem;
}

.block-blog-preview__title {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 1.15rem;
    margin-bottom: 0.5rem;
    line-height: 1.4;
}

.block-blog-preview__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.block-blog-preview__title a:hover {
    color: #e8491d;
}

.block-blog-preview__meta {
    display: flex;
    gap: 1rem;
    font-size: 0.85rem;
    color: #888;
    margin-bottom: 0.75rem;
}

.block-blog-preview__meta > * + *::before {
    content: "\00b7";
    margin-right: 1rem;
}

.block-blog-preview__excerpt {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 1rem;
}

.block-blog-preview__read-more {
    color: #e8491d;
    font-weight: 600;
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.3s ease;
}

.block-blog-preview__read-more:hover {
    color: #cf3d15;
}

/* Style: overlay */
.block-blog-preview--overlay .block-blog-preview__post {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    min-height: 300px;
}

.block-blog-preview--overlay .block-blog-preview__image {
    height: 100%;
    position: absolute;
    inset: 0;
}

.block-blog-preview--overlay .block-blog-preview__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.1) 60%);
}

.block-blog-preview--overlay .block-blog-preview__body {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 300px;
}

.block-blog-preview--overlay .block-blog-preview__title,
.block-blog-preview--overlay .block-blog-preview__title a {
    color: #fff;
}

.block-blog-preview--overlay .block-blog-preview__meta,
.block-blog-preview--overlay .block-blog-preview__excerpt {
    color: rgba(255,255,255,0.85);
}

.block-blog-preview--overlay .block-blog-preview__category {
    color: #e8491d;
}

/* Style: minimal */
.block-blog-preview--minimal .block-blog-preview__post {
    border-bottom: 1px solid #e5e5e5;
    padding-bottom: 1.5rem;
}

.block-blog-preview--minimal .block-blog-preview__post:last-child {
    border-bottom: none;
}

.block-blog-preview--minimal .block-blog-preview__image {
    border-radius: 8px;
    height: 180px;
}

/* Style: list */
.block-blog-preview--list .block-blog-preview__post {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 1.5rem;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
}

.block-blog-preview--list .block-blog-preview__image {
    height: 100%;
    min-height: 200px;
}

@media (max-width: 767px) {
    .block-blog-preview__grid {
        grid-template-columns: 1fr !important;
    }

    .block-blog-preview--list .block-blog-preview__post {
        grid-template-columns: 1fr;
    }

    .block-blog-preview--list .block-blog-preview__image {
        height: 200px;
    }

    .block-blog-preview__heading {
        font-size: 1.5rem;
    }
}


/* ---------------------------------------------------------------
   9. Testimonial Slider
   --------------------------------------------------------------- */
.block-testimonial-slider {
    padding: 4rem 1.5rem;
    position: relative;
    overflow: hidden;
}

.block-testimonial-slider--has-bg {
    background-size: cover;
    background-position: center;
}

.block-testimonial-slider__bg-overlay {
    position: absolute;
    inset: 0;
    background: rgba(26,26,46,0.75);
    z-index: 0;
}

.block-testimonial-slider__inner {
    position: relative;
    z-index: 1;
    max-width: 1200px;
    margin: 0 auto;
}

.block-testimonial-slider__header {
    text-align: center;
    margin-bottom: 2.5rem;
}

.block-testimonial-slider__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.block-testimonial-slider__subheading {
    color: #555;
    font-size: 1.1rem;
}

.block-testimonial-slider--has-bg .block-testimonial-slider__heading {
    color: #fff;
}

.block-testimonial-slider--has-bg .block-testimonial-slider__subheading {
    color: rgba(255,255,255,0.85);
}

.block-testimonial-slider__viewport {
    position: relative;
}

.block-testimonial-slider__track {
    overflow: hidden;
}

.block-testimonial-slider__slide {
    display: none;
}

.block-testimonial-slider__slide--active {
    display: block;
}

/* Style: centered */
.block-testimonial-slider--centered .block-testimonial-slider__slide-inner {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

/* Style: split */
.block-testimonial-slider--split .block-testimonial-slider__slide-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.block-testimonial-slider__photo--large {
    width: 100%;
    height: 400px;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}

/* Style: card */
.block-testimonial-slider--card .block-testimonial-slider__slide-inner {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    padding: 3rem;
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

/* Style: minimal */
.block-testimonial-slider--minimal .block-testimonial-slider__slide-inner {
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
}

/* Stars */
.block-testimonial-slider__stars {
    color: #f59e0b;
    font-size: 1.25rem;
    margin-bottom: 1rem;
    letter-spacing: 2px;
}

/* Quote */
.block-testimonial-slider__quote {
    margin: 0 0 2rem;
    border: none;
    padding: 0;
}

.block-testimonial-slider__quote p {
    font-size: 1.2rem;
    line-height: 1.8;
    color: #333;
    font-style: italic;
}

.block-testimonial-slider--has-bg .block-testimonial-slider__quote p {
    color: #fff;
}

.block-testimonial-slider--card .block-testimonial-slider__quote p {
    color: #333;
}

/* Author */
.block-testimonial-slider__author {
    display: flex;
    align-items: center;
    gap: 1rem;
    justify-content: center;
}

.block-testimonial-slider--split .block-testimonial-slider__author {
    justify-content: flex-start;
}

.block-testimonial-slider__avatar {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
}

.block-testimonial-slider__author-info {
    text-align: left;
}

.block-testimonial-slider__name {
    display: block;
    font-style: normal;
    font-weight: 700;
    color: #1a1a2e;
    font-size: 1rem;
}

.block-testimonial-slider--has-bg .block-testimonial-slider__name {
    color: #fff;
}

.block-testimonial-slider--card .block-testimonial-slider__name {
    color: #1a1a2e;
}

.block-testimonial-slider__role {
    display: block;
    color: #888;
    font-size: 0.9rem;
}

.block-testimonial-slider--has-bg .block-testimonial-slider__role {
    color: rgba(255,255,255,0.7);
}

/* Arrows */
.block-testimonial-slider__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid #ddd;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    font-size: 1.5rem;
    line-height: 1;
    color: #1a1a2e;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.block-testimonial-slider__arrow:hover {
    background: #e8491d;
    color: #fff;
    border-color: #e8491d;
}

.block-testimonial-slider__arrow--prev {
    left: -22px;
}

.block-testimonial-slider__arrow--next {
    right: -22px;
}

/* Dots */
.block-testimonial-slider__dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 2rem;
}

.block-testimonial-slider__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: none;
    background: #ddd;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 0;
}

.block-testimonial-slider--has-bg .block-testimonial-slider__dot {
    background: rgba(255,255,255,0.4);
}

.block-testimonial-slider__dot--active,
.block-testimonial-slider__dot:hover {
    background: #e8491d;
}

@media (max-width: 767px) {
    .block-testimonial-slider--split .block-testimonial-slider__slide-inner {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .block-testimonial-slider__photo--large {
        height: 250px;
    }

    .block-testimonial-slider__quote p {
        font-size: 1rem;
    }

    .block-testimonial-slider__arrow {
        display: none;
    }

    .block-testimonial-slider__heading {
        font-size: 1.5rem;
    }
}


/* ---------------------------------------------------------------
   10. Comparison Table
   --------------------------------------------------------------- */
.block-comparison-table {
    padding: 4rem 1.5rem;
}

.block-comparison-table__header {
    max-width: 1200px;
    margin: 0 auto 2.5rem;
    text-align: center;
}

.block-comparison-table__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.block-comparison-table__subheading {
    color: #555;
    font-size: 1.1rem;
}

.block-comparison-table__wrapper {
    max-width: 1200px;
    margin: 0 auto;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.block-comparison-table__table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.block-comparison-table__col-head {
    padding: 1.5rem 1rem;
    text-align: center;
    font-weight: 700;
    font-size: 1.1rem;
    color: #1a1a2e;
    background: #f8f9fa;
    border-bottom: 2px solid #e5e5e5;
}

.block-comparison-table__col-head--highlighted {
    background: #e8491d;
    color: #fff;
    border-bottom-color: #cf3d15;
}

.block-comparison-table__feature-label {
    padding: 0.75rem 1.25rem;
    font-weight: 600;
    color: #1a1a2e;
    text-align: left;
    background: #fafafa;
    white-space: nowrap;
}

.block-comparison-table__price-cell {
    padding: 1rem;
    text-align: center;
    border-bottom: 2px solid #e5e5e5;
}

.block-comparison-table__price-cell--highlighted {
    background: rgba(232,73,29,0.05);
}

.block-comparison-table__price {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a1a2e;
}

.block-comparison-table__row {
    border-bottom: 1px solid #f0f0f0;
}

.block-comparison-table__row:last-child {
    border-bottom: none;
}

.block-comparison-table__cell {
    padding: 0.75rem 1rem;
    text-align: center;
    color: #555;
    font-size: 0.95rem;
}

.block-comparison-table__cell--highlighted {
    background: rgba(232,73,29,0.03);
}

.block-comparison-table__check {
    color: #22c55e;
    font-size: 1.2rem;
    font-weight: 700;
}

.block-comparison-table__cross {
    color: #ef4444;
    font-size: 1.2rem;
    font-weight: 700;
}

.block-comparison-table__button-cell {
    padding: 1.5rem 1rem;
    text-align: center;
    background: #f8f9fa;
}

.block-comparison-table__button-cell--highlighted {
    background: rgba(232,73,29,0.05);
}

.block-comparison-table__button {
    display: inline-block;
    padding: 0.6rem 1.5rem;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

.block-comparison-table__button--primary {
    background: #e8491d;
    color: #fff;
}

.block-comparison-table__button--primary:hover {
    background: #cf3d15;
}

.block-comparison-table__button--secondary {
    background: #1a1a2e;
    color: #fff;
}

.block-comparison-table__button--secondary:hover {
    background: #2d2d4a;
}

.block-comparison-table__button--outline {
    background: transparent;
    color: #e8491d;
    border: 2px solid #e8491d;
}

.block-comparison-table__button--outline:hover {
    background: #e8491d;
    color: #fff;
}

@media (max-width: 767px) {
    .block-comparison-table__wrapper {
        margin-left: -1.5rem;
        margin-right: -1.5rem;
        padding: 0 0.5rem;
    }

    .block-comparison-table__col-head,
    .block-comparison-table__cell,
    .block-comparison-table__price-cell,
    .block-comparison-table__button-cell {
        min-width: 120px;
    }

    .block-comparison-table__feature-label {
        min-width: 140px;
    }

    .block-comparison-table__heading {
        font-size: 1.5rem;
    }
}


/* ---------------------------------------------------------------
   11. Newsletter Signup
   --------------------------------------------------------------- */
.block-newsletter-signup {
    padding: 4rem 1.5rem;
    position: relative;
    overflow: hidden;
}

.block-newsletter-signup--has-bg {
    background-size: cover;
    background-position: center;
}

.block-newsletter-signup__overlay {
    position: absolute;
    inset: 0;
    background: #1a1a2e;
    z-index: 0;
}

.block-newsletter-signup__inner {
    position: relative;
    z-index: 1;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.block-newsletter-signup--split .block-newsletter-signup__inner {
    max-width: 1200px;
    text-align: left;
}

.block-newsletter-signup__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.block-newsletter-signup__subheading {
    color: #555;
    font-size: 1.1rem;
    margin-bottom: 2rem;
}

.block-newsletter-signup--has-bg .block-newsletter-signup__heading {
    color: #fff;
}

.block-newsletter-signup--has-bg .block-newsletter-signup__subheading {
    color: rgba(255,255,255,0.85);
}

/* Split layout */
.block-newsletter-signup__split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.block-newsletter-signup__split .block-newsletter-signup__subheading {
    margin-bottom: 0;
}

/* Form styles */
.block-newsletter-signup__form--inline .block-newsletter-signup__field-group {
    display: flex;
    gap: 0;
}

.block-newsletter-signup__form--inline .block-newsletter-signup__input {
    border-radius: 4px 0 0 4px;
    border-right: none;
}

.block-newsletter-signup__form--inline .block-newsletter-signup__button {
    border-radius: 0 4px 4px 0;
    white-space: nowrap;
}

.block-newsletter-signup__form--stacked .block-newsletter-signup__field-group {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    max-width: 400px;
    margin: 0 auto;
}

.block-newsletter-signup__form--split .block-newsletter-signup__field-group {
    display: flex;
    gap: 0;
}

.block-newsletter-signup__form--split .block-newsletter-signup__input {
    border-radius: 4px 0 0 4px;
    border-right: none;
}

.block-newsletter-signup__form--split .block-newsletter-signup__button {
    border-radius: 0 4px 4px 0;
    white-space: nowrap;
}

.block-newsletter-signup__input {
    padding: 0.75rem 1.25rem;
    border: 2px solid #e5e5e5;
    border-radius: 4px;
    font-size: 1rem;
    width: 100%;
    outline: none;
    transition: border-color 0.3s ease;
}

.block-newsletter-signup__input:focus {
    border-color: #e8491d;
}

.block-newsletter-signup__button {
    background: #e8491d;
    color: #fff;
    padding: 0.75rem 2rem;
    border: 2px solid #e8491d;
    border-radius: 4px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.block-newsletter-signup__button:hover {
    background: #cf3d15;
    border-color: #cf3d15;
}

.block-newsletter-signup__privacy {
    color: #888;
    font-size: 0.8rem;
    margin-top: 0.75rem;
}

.block-newsletter-signup--has-bg .block-newsletter-signup__privacy {
    color: rgba(255,255,255,0.6);
}

/* Screen-reader only (for label) */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 767px) {
    .block-newsletter-signup__split {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .block-newsletter-signup__form--inline .block-newsletter-signup__field-group,
    .block-newsletter-signup__form--split .block-newsletter-signup__field-group {
        flex-direction: column;
        gap: 0.75rem;
    }

    .block-newsletter-signup__form--inline .block-newsletter-signup__input,
    .block-newsletter-signup__form--split .block-newsletter-signup__input {
        border-radius: 4px;
        border-right: 2px solid #e5e5e5;
    }

    .block-newsletter-signup__form--inline .block-newsletter-signup__input:focus,
    .block-newsletter-signup__form--split .block-newsletter-signup__input:focus {
        border-color: #e8491d;
    }

    .block-newsletter-signup__form--inline .block-newsletter-signup__button,
    .block-newsletter-signup__form--split .block-newsletter-signup__button {
        border-radius: 4px;
    }

    .block-newsletter-signup__heading {
        font-size: 1.5rem;
    }
}
/* ===============================================================
   TradeCMS Block CSS — Batch 3
   contact_split, icon_info_boxes, banner_strip, footer_columns,
   divider, spacer, social_links, custom_code, progress_bars,
   countdown, cost_calculator
   =============================================================== */

/* ---------------------------------------------------------------
   Contact Split
   --------------------------------------------------------------- */
.block-contact-split {
    padding: 4rem 1.5rem;
}
.block-contact-split__header {
    max-width: 1200px;
    margin: 0 auto 2.5rem;
    text-align: center;
}
.block-contact-split__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin: 0 0 0.5rem;
}
.block-contact-split__subheading {
    color: #555;
    font-size: 1.1rem;
    margin: 0;
}
.block-contact-split__grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
}
.block-contact-split--form-left .block-contact-split__form-side { order: 1; }
.block-contact-split--form-left .block-contact-split__info-side { order: 2; }
.block-contact-split--form-right .block-contact-split__form-side { order: 2; }
.block-contact-split--form-right .block-contact-split__info-side { order: 1; }

.block-contact-split__form {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    padding: 2rem;
}
.block-contact-split__no-form {
    color: #999;
    font-style: italic;
    padding: 2rem;
    text-align: center;
}
.block-contact-split__image {
    width: 100%;
    border-radius: 8px;
    margin-bottom: 1.5rem;
}
.block-contact-split__info-list {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.block-contact-split__info-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}
.block-contact-split__info-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e8491d;
    color: #fff;
    border-radius: 50%;
    font-size: 1rem;
}
.block-contact-split__info-text {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.block-contact-split__info-label {
    color: #1a1a2e;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.block-contact-split__info-value {
    color: #555;
}
.block-contact-split__info-link {
    color: #e8491d;
    text-decoration: none;
    transition: all 0.3s ease;
}
.block-contact-split__info-link:hover {
    text-decoration: underline;
}
.block-contact-split__map {
    margin-top: 1.5rem;
    border-radius: 8px;
    overflow: hidden;
}
.block-contact-split__map iframe {
    width: 100%;
    height: 250px;
    border: 0;
    display: block;
}

@media (max-width: 767px) {
    .block-contact-split__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .block-contact-split--form-left .block-contact-split__form-side,
    .block-contact-split--form-right .block-contact-split__form-side { order: 1; }
    .block-contact-split--form-left .block-contact-split__info-side,
    .block-contact-split--form-right .block-contact-split__info-side { order: 2; }
}


/* ---------------------------------------------------------------
   Icon Info Boxes
   --------------------------------------------------------------- */
.block-icon-info-boxes {
    padding: 4rem 1.5rem;
}
.block-icon-info-boxes__header {
    max-width: 1200px;
    margin: 0 auto 2.5rem;
    text-align: center;
}
.block-icon-info-boxes__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin: 0 0 0.5rem;
}
.block-icon-info-boxes__subheading {
    color: #555;
    font-size: 1.1rem;
    margin: 0;
}
.block-icon-info-boxes__grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    gap: 1.5rem;
}
.block-icon-info-boxes__box {
    padding: 1.5rem;
    transition: all 0.3s ease;
    text-decoration: none;
    color: inherit;
    display: block;
}
a.block-icon-info-boxes__box:hover {
    transform: translateY(-2px);
}
.block-icon-info-boxes__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    font-size: 1.25rem;
    color: #e8491d;
    margin-bottom: 1rem;
}
.block-icon-info-boxes__title {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 1.15rem;
    margin: 0 0 0.5rem;
}
.block-icon-info-boxes__line {
    color: #555;
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Style: card */
.block-icon-info-boxes--card .block-icon-info-boxes__box {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.block-icon-info-boxes--card .block-icon-info-boxes__box:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}

/* Style: minimal */
.block-icon-info-boxes--minimal .block-icon-info-boxes__box {
    background: transparent;
    padding: 1rem 0;
}

/* Style: centered */
.block-icon-info-boxes--centered .block-icon-info-boxes__box {
    text-align: center;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.block-icon-info-boxes--centered .block-icon-info-boxes__icon {
    width: 64px;
    height: 64px;
    font-size: 1.5rem;
    background: rgba(232, 73, 29, 0.1);
    border-radius: 50%;
    margin: 0 auto 1rem;
}

/* Style: bordered */
.block-icon-info-boxes--bordered .block-icon-info-boxes__box {
    border: 2px solid #eee;
    border-radius: 8px;
}
.block-icon-info-boxes--bordered .block-icon-info-boxes__box:hover {
    border-color: #e8491d;
}

@media (max-width: 1024px) {
    .block-icon-info-boxes__grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (max-width: 767px) {
    .block-icon-info-boxes__grid {
        grid-template-columns: 1fr !important;
    }
}


/* ---------------------------------------------------------------
   Banner Strip
   --------------------------------------------------------------- */
.block-banner-strip {
    position: relative;
    padding: 2rem 1.5rem;
    overflow: hidden;
}
.block-banner-strip__overlay {
    position: absolute;
    inset: 0;
    background: #000;
    pointer-events: none;
    z-index: 1;
}
.block-banner-strip__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 2rem;
    position: relative;
    z-index: 2;
}
.block-banner-strip__text-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.block-banner-strip__text {
    font-size: 1.35rem;
    font-weight: 700;
}
.block-banner-strip__subtext {
    font-size: 0.95rem;
    opacity: 0.9;
}

/* Alignment */
.block-banner-strip--align-left .block-banner-strip__inner { justify-content: flex-start; }
.block-banner-strip--align-center .block-banner-strip__inner { justify-content: center; text-align: center; }
.block-banner-strip--align-center .block-banner-strip__text-wrap { align-items: center; }
.block-banner-strip--align-space-between .block-banner-strip__inner { justify-content: space-between; }

/* Style: solid */
.block-banner-strip--solid {
    background: #e8491d;
    color: #fff;
}
.block-banner-strip--solid .block-banner-strip__button {
    background: #fff;
    color: #e8491d;
}

/* Style: gradient */
.block-banner-strip--gradient {
    background: linear-gradient(135deg, #e8491d, #c0392b);
    color: #fff;
}
.block-banner-strip--gradient .block-banner-strip__button {
    background: #fff;
    color: #e8491d;
}

/* Style: image */
.block-banner-strip--image {
    color: #fff;
}
.block-banner-strip--image .block-banner-strip__button--primary {
    background: #e8491d;
    color: #fff;
}

/* Buttons */
.block-banner-strip__button {
    display: inline-block;
    padding: 0.75rem 2rem;
    border-radius: 4px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.3s ease;
    flex-shrink: 0;
}
.block-banner-strip__button:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}
.block-banner-strip__button--secondary {
    background: transparent;
    border: 2px solid #fff;
    color: #fff;
}
.block-banner-strip__button--outline {
    background: transparent;
    border: 2px solid currentColor;
}

@media (max-width: 767px) {
    .block-banner-strip__inner {
        flex-direction: column;
        text-align: center;
    }
    .block-banner-strip__text-wrap {
        align-items: center;
    }
}


/* ---------------------------------------------------------------
   Footer Columns
   --------------------------------------------------------------- */
.block-footer-columns {
    padding: 4rem 1.5rem 0;
}
.block-footer-columns__inner {
    max-width: 1200px;
    margin: 0 auto;
}
.block-footer-columns__grid {
    display: grid;
    gap: 2rem;
}

/* Style: dark */
.block-footer-columns--dark {
    background: #1a1a2e;
    color: #ccc;
}
.block-footer-columns--dark .block-footer-columns__group-title {
    color: #fff;
}
.block-footer-columns--dark .block-footer-columns__link {
    color: #aaa;
}
.block-footer-columns--dark .block-footer-columns__link:hover {
    color: #e8491d;
}
.block-footer-columns--dark .block-footer-columns__copyright {
    border-top-color: rgba(255,255,255,0.1);
}

/* Style: light */
.block-footer-columns--light {
    background: #f8f9fa;
    color: #555;
}
.block-footer-columns--light .block-footer-columns__group-title {
    color: #1a1a2e;
}
.block-footer-columns--light .block-footer-columns__link {
    color: #555;
}
.block-footer-columns--light .block-footer-columns__link:hover {
    color: #e8491d;
}
.block-footer-columns--light .block-footer-columns__copyright {
    border-top-color: #ddd;
}

/* Style: transparent */
.block-footer-columns--transparent {
    background: transparent;
    color: #555;
}
.block-footer-columns--transparent .block-footer-columns__group-title {
    color: #1a1a2e;
}
.block-footer-columns--transparent .block-footer-columns__link {
    color: #555;
}
.block-footer-columns--transparent .block-footer-columns__link:hover {
    color: #e8491d;
}
.block-footer-columns--transparent .block-footer-columns__copyright {
    border-top-color: #ddd;
}

/* Logo + About */
.block-footer-columns__logo {
    max-width: 160px;
    height: auto;
    margin-bottom: 1rem;
}
.block-footer-columns__about {
    font-size: 0.9rem;
    line-height: 1.6;
    margin: 0 0 1rem;
}

/* Social links */
.block-footer-columns__social {
    display: flex;
    gap: 0.75rem;
}
.block-footer-columns__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,0.1);
    color: inherit;
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: 0.9rem;
}
.block-footer-columns--dark .block-footer-columns__social-link:hover {
    background: #e8491d;
    color: #fff;
}
.block-footer-columns--light .block-footer-columns__social-link,
.block-footer-columns--transparent .block-footer-columns__social-link {
    background: rgba(0,0,0,0.08);
}
.block-footer-columns--light .block-footer-columns__social-link:hover,
.block-footer-columns--transparent .block-footer-columns__social-link:hover {
    background: #e8491d;
    color: #fff;
}

/* Link groups */
.block-footer-columns__group-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.block-footer-columns__link-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.block-footer-columns__link-list li {
    margin-bottom: 0.5rem;
}
.block-footer-columns__link {
    text-decoration: none;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

/* Contact column */
.block-footer-columns__contact-item {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    font-size: 0.9rem;
}
.block-footer-columns__contact-item i {
    width: 16px;
    text-align: center;
    flex-shrink: 0;
    margin-top: 3px;
    color: #e8491d;
}
.block-footer-columns__contact-item a {
    color: inherit;
    text-decoration: none;
    transition: all 0.3s ease;
}
.block-footer-columns__contact-item a:hover {
    color: #e8491d;
}
.block-footer-columns__contact-item address {
    font-style: normal;
}

/* Copyright bar */
.block-footer-columns__copyright {
    max-width: 1200px;
    margin: 2rem auto 0;
    padding: 1.5rem 0;
    border-top: 1px solid rgba(255,255,255,0.1);
    text-align: center;
}
.block-footer-columns__copyright-text {
    font-size: 0.85rem;
    margin: 0;
    opacity: 0.7;
}

@media (max-width: 1024px) {
    .block-footer-columns__grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (max-width: 767px) {
    .block-footer-columns {
        padding: 3rem 1.5rem 0;
    }
    .block-footer-columns__grid {
        grid-template-columns: 1fr !important;
        gap: 2rem;
    }
}


/* ---------------------------------------------------------------
   Divider
   --------------------------------------------------------------- */
.block-divider {
    display: flex;
    justify-content: center;
    align-items: center;
}
.block-divider--spacing-small  { padding: 1rem 1.5rem; }
.block-divider--spacing-medium { padding: 2rem 1.5rem; }
.block-divider--spacing-large  { padding: 3rem 1.5rem; }

.block-divider__rule {
    display: block;
    margin: 0 auto;
    border: none;
}
.block-divider__rule--gradient {
    background: linear-gradient(90deg, transparent, #ddd, transparent);
    border: none;
}
.block-divider__double {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    width: 100%;
}
.block-divider__double .block-divider__rule {
    display: block;
    height: 0;
    border-bottom: none;
    border-left: none;
    border-right: none;
}

/* Icon / text centered divider */
.block-divider__with-center {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 0 auto;
    width: 100%;
}
.block-divider__line {
    flex: 1;
    display: block;
    height: 0;
    border-style: solid;
    border-bottom: none;
    border-left: none;
    border-right: none;
}
.block-divider__center {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.25rem;
}
.block-divider__text {
    font-size: 0.9rem;
    font-weight: 600;
}


/* ---------------------------------------------------------------
   Spacer
   --------------------------------------------------------------- */
.block-spacer__space {
    display: flex;
    align-items: center;
    justify-content: center;
}
.block-spacer__line {
    display: block;
    width: 40px;
    height: 1px;
    background: #ddd;
}
.block-spacer--has-line .block-spacer__space {
    position: relative;
}


/* ---------------------------------------------------------------
   Social Links
   --------------------------------------------------------------- */
.block-social-links {
    padding: 2rem 1.5rem;
}
.block-social-links__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 1.5rem;
    margin: 0 0 1.25rem;
}
.block-social-links__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}
.block-social-links__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-decoration: none;
    transition: all 0.3s ease;
    color: inherit;
}

/* Alignment */
.block-social-links--align-left .block-social-links__heading,
.block-social-links--align-left .block-social-links__list { text-align: left; justify-content: flex-start; }
.block-social-links--align-center .block-social-links__heading,
.block-social-links--align-center .block-social-links__list { text-align: center; justify-content: center; }
.block-social-links--align-right .block-social-links__heading,
.block-social-links--align-right .block-social-links__list { text-align: right; justify-content: flex-end; }

/* Size: small */
.block-social-links--small .block-social-links__item { font-size: 1rem; }
.block-social-links--small .block-social-links__label { font-size: 0.8rem; }

/* Size: medium */
.block-social-links--medium .block-social-links__item { font-size: 1.25rem; }
.block-social-links--medium .block-social-links__label { font-size: 0.9rem; }

/* Size: large */
.block-social-links--large .block-social-links__item { font-size: 1.5rem; }
.block-social-links--large .block-social-links__label { font-size: 1rem; }

/* Style: icons (icon only, circle on hover) */
.block-social-links--icons .block-social-links__item {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    color: #555;
}
.block-social-links--icons .block-social-links__item:hover {
    color: #e8491d;
    background: rgba(232, 73, 29, 0.1);
}
.block-social-links--icons.block-social-links--small .block-social-links__item { width: 36px; height: 36px; }
.block-social-links--icons.block-social-links--large .block-social-links__item { width: 52px; height: 52px; }

/* Style: buttons (icon + label) */
.block-social-links--buttons .block-social-links__item {
    background: #e8491d;
    color: #fff;
    padding: 0.5rem 1.25rem;
    border-radius: 4px;
    font-size: 0.9rem;
}
.block-social-links--buttons .block-social-links__item:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

/* Style: rounded (circle bg) */
.block-social-links--rounded .block-social-links__item {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #f0f0f0;
    color: #555;
}
.block-social-links--rounded .block-social-links__item:hover {
    background: #e8491d;
    color: #fff;
}
.block-social-links--rounded.block-social-links--small .block-social-links__item { width: 36px; height: 36px; }
.block-social-links--rounded.block-social-links--large .block-social-links__item { width: 56px; height: 56px; }

/* Style: minimal */
.block-social-links--minimal .block-social-links__item {
    color: #555;
    padding: 0.25rem;
}
.block-social-links--minimal .block-social-links__item:hover {
    color: #e8491d;
}


/* ---------------------------------------------------------------
   Custom Code
   --------------------------------------------------------------- */
.block-custom-code {
    /* Minimal styling — custom code manages its own layout */
}


/* ---------------------------------------------------------------
   Progress Bars
   --------------------------------------------------------------- */
.block-progress-bars {
    padding: 4rem 1.5rem;
}
.block-progress-bars__header {
    max-width: 1200px;
    margin: 0 auto 2.5rem;
    text-align: center;
}
.block-progress-bars__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin: 0 0 0.5rem;
}
.block-progress-bars__subheading {
    color: #555;
    font-size: 1.1rem;
    margin: 0;
}
.block-progress-bars__list {
    max-width: 1200px;
    margin: 0 auto;
}

/* Bar style (horizontal bars) */
.block-progress-bars--bar .block-progress-bars__item {
    margin-bottom: 1.5rem;
}
.block-progress-bars__meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 0.5rem;
}
.block-progress-bars--bar .block-progress-bars__label,
.block-progress-bars--gradient .block-progress-bars__label {
    color: #1a1a2e;
    font-weight: 600;
    font-size: 0.95rem;
}
.block-progress-bars__percentage {
    color: #555;
    font-size: 0.9rem;
    font-weight: 600;
}
.block-progress-bars__track {
    width: 100%;
    height: 12px;
    background: #eee;
    border-radius: 6px;
    overflow: hidden;
}
.block-progress-bars__fill {
    height: 100%;
    border-radius: 6px;
    transition: width 1.2s ease;
}

/* Gradient style — same as bar but fill uses gradient (set inline) */
.block-progress-bars--gradient .block-progress-bars__item {
    margin-bottom: 1.5rem;
}
.block-progress-bars--gradient .block-progress-bars__track {
    height: 14px;
    border-radius: 7px;
}

/* Circular style */
.block-progress-bars--circular .block-progress-bars__list {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem;
    justify-content: center;
}
.block-progress-bars__item--circular {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}
.block-progress-bars__circle-svg {
    display: block;
}
.block-progress-bars__circle-fill {
    transition: stroke-dashoffset 1.2s ease;
}
.block-progress-bars__circle-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 120px;
    height: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.block-progress-bars--circular .block-progress-bars__percentage {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a1a2e;
}
.block-progress-bars--circular .block-progress-bars__label {
    font-size: 0.8rem;
    color: #555;
    margin-top: 0.15rem;
}

@media (max-width: 767px) {
    .block-progress-bars--circular .block-progress-bars__list {
        gap: 1.5rem;
    }
}


/* ---------------------------------------------------------------
   Countdown
   --------------------------------------------------------------- */
.block-countdown {
    padding: 4rem 1.5rem;
    position: relative;
    overflow: hidden;
    text-align: center;
}
.block-countdown__overlay {
    position: absolute;
    inset: 0;
    background: #000;
    pointer-events: none;
    z-index: 1;
}
.block-countdown__inner {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
}
.block-countdown__header {
    margin-bottom: 2.5rem;
}
.block-countdown__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin: 0 0 0.5rem;
}
.block-countdown__subheading {
    color: #555;
    font-size: 1.1rem;
    margin: 0;
}
.block-countdown--has-bg .block-countdown__heading {
    color: #fff;
}
.block-countdown--has-bg .block-countdown__subheading {
    color: rgba(255,255,255,0.85);
}

.block-countdown__timer {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.block-countdown__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}
.block-countdown__value {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    color: #1a1a2e;
}
.block-countdown__label {
    font-size: 0.85rem;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-top: 0.5rem;
}
.block-countdown--has-bg .block-countdown__value {
    color: #fff;
}
.block-countdown--has-bg .block-countdown__label {
    color: rgba(255,255,255,0.8);
}

/* Style: card */
.block-countdown--card .block-countdown__unit {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    padding: 1.5rem 2rem;
    min-width: 100px;
}
.block-countdown--card.block-countdown--has-bg .block-countdown__unit {
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(4px);
}
.block-countdown--card.block-countdown--has-bg .block-countdown__value {
    color: #fff;
}
.block-countdown--card.block-countdown--has-bg .block-countdown__label {
    color: rgba(255,255,255,0.8);
}

/* Style: inline */
.block-countdown--inline .block-countdown__timer {
    gap: 0.5rem;
    align-items: baseline;
}
.block-countdown--inline .block-countdown__unit {
    flex-direction: row;
    gap: 0.35rem;
}
.block-countdown--inline .block-countdown__value {
    font-size: 2rem;
}
.block-countdown--inline .block-countdown__label {
    margin-top: 0;
    text-transform: lowercase;
}
.block-countdown--inline .block-countdown__unit::after {
    content: ':';
    font-size: 2rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-left: 0.35rem;
}
.block-countdown--inline .block-countdown__unit:last-child::after {
    display: none;
}
.block-countdown--inline.block-countdown--has-bg .block-countdown__unit::after {
    color: #fff;
}

/* Style: circle */
.block-countdown--circle .block-countdown__unit {
    position: relative;
}
.block-countdown__circle-svg {
    display: block;
}
.block-countdown__circle-ring {
    transition: stroke-dashoffset 0.5s ease;
}
.block-countdown--circle .block-countdown__value {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -65%);
    font-size: 1.75rem;
}
.block-countdown--circle .block-countdown__label {
    margin-top: 0.5rem;
}

/* Expired */
.block-countdown__expired-text {
    font-size: 1.25rem;
    color: #555;
    margin: 0;
}
.block-countdown--has-bg .block-countdown__expired-text {
    color: rgba(255,255,255,0.9);
}

@media (max-width: 767px) {
    .block-countdown__timer {
        gap: 1rem;
    }
    .block-countdown__value {
        font-size: 2rem;
    }
    .block-countdown--card .block-countdown__unit {
        padding: 1rem 1.25rem;
        min-width: 70px;
    }
    .block-countdown--circle .block-countdown__circle-svg {
        width: 80px;
        height: 80px;
    }
    .block-countdown--circle .block-countdown__value {
        font-size: 1.25rem;
    }
}


/* ---------------------------------------------------------------
   Cost Calculator
   --------------------------------------------------------------- */
.block-cost-calculator {
    padding: 4rem 1.5rem;
}
.block-cost-calculator__header {
    max-width: 800px;
    margin: 0 auto 2.5rem;
    text-align: center;
}
.block-cost-calculator__heading {
    color: #1a1a2e;
    font-weight: 700;
    font-size: 2rem;
    margin: 0 0 0.5rem;
}
.block-cost-calculator__subheading {
    color: #555;
    font-size: 1.1rem;
    margin: 0;
}
.block-cost-calculator__form {
    max-width: 800px;
    margin: 0 auto;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    padding: 2rem;
}
.block-cost-calculator__field {
    margin-bottom: 1.5rem;
}
.block-cost-calculator__field:last-child {
    margin-bottom: 0;
}
.block-cost-calculator__label {
    display: block;
    color: #1a1a2e;
    font-weight: 600;
    font-size: 0.95rem;
    margin-bottom: 0.5rem;
}

/* Slider */
.block-cost-calculator__slider-wrap {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.block-cost-calculator__slider {
    flex: 1;
    -webkit-appearance: none;
    appearance: none;
    height: 8px;
    background: #eee;
    border-radius: 4px;
    outline: none;
}
.block-cost-calculator__slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 22px;
    height: 22px;
    background: #e8491d;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s ease;
}
.block-cost-calculator__slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}
.block-cost-calculator__slider::-moz-range-thumb {
    width: 22px;
    height: 22px;
    background: #e8491d;
    border: none;
    border-radius: 50%;
    cursor: pointer;
}
.block-cost-calculator__slider-value {
    flex-shrink: 0;
    min-width: 80px;
    text-align: right;
    font-weight: 600;
    color: #1a1a2e;
    font-size: 1.1rem;
}

/* Select */
.block-cost-calculator__select {
    width: 100%;
    padding: 0.65rem 1rem;
    border: 2px solid #eee;
    border-radius: 4px;
    font-size: 1rem;
    color: #1a1a2e;
    background: #fff;
    transition: all 0.3s ease;
    outline: none;
}
.block-cost-calculator__select:focus {
    border-color: #e8491d;
}

/* Number */
.block-cost-calculator__number-wrap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.block-cost-calculator__number {
    width: 100%;
    max-width: 200px;
    padding: 0.65rem 1rem;
    border: 2px solid #eee;
    border-radius: 4px;
    font-size: 1rem;
    color: #1a1a2e;
    outline: none;
    transition: all 0.3s ease;
}
.block-cost-calculator__number:focus {
    border-color: #e8491d;
}
.block-cost-calculator__unit {
    color: #555;
    font-size: 0.9rem;
}

/* Description */
.block-cost-calculator__description {
    margin: 0.25rem 0 0.75rem;
    font-size: 0.875rem;
    color: #666;
    line-height: 1.4;
}

/* Checkboxes */
.block-cost-calculator__checkbox-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.block-cost-calculator__checkbox-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    padding: 0.625rem 0.875rem;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    transition: border-color 0.2s, background-color 0.2s;
}
.block-cost-calculator__checkbox-item:hover {
    border-color: #e8491d;
    background-color: #fef7f5;
}
.block-cost-calculator__checkbox-item input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #e8491d;
    flex-shrink: 0;
}
.block-cost-calculator__checkbox-label {
    flex: 1;
    font-size: 0.95rem;
}
.block-cost-calculator__checkbox-cost {
    font-size: 0.85rem;
    color: #888;
    font-weight: 500;
    white-space: nowrap;
}

/* Multi-select */
.block-cost-calculator__multi-select {
    width: 100%;
    min-height: 120px;
    padding: 0.5rem;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 1rem;
    background: #fff;
}
.block-cost-calculator__multi-select:focus {
    border-color: #e8491d;
    outline: none;
}
.block-cost-calculator__multi-select option {
    padding: 0.375rem 0.5rem;
}

/* Total */
.block-cost-calculator__total {
    max-width: 800px;
    margin: 2rem auto 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #f8f9fa;
    border-radius: 8px;
    padding: 1.25rem 2rem;
    border: 2px solid #e8491d;
}
.block-cost-calculator__total-label {
    font-size: 1.15rem;
    font-weight: 600;
    color: #1a1a2e;
}
.block-cost-calculator__total-value {
    font-size: 2rem;
    font-weight: 700;
    color: #e8491d;
}
.block-cost-calculator__currency {
    font-size: 1.25rem;
    vertical-align: super;
    margin-right: 2px;
}

/* CTA */
.block-cost-calculator__cta {
    max-width: 800px;
    margin: 1.5rem auto 0;
    text-align: center;
}
.block-cost-calculator__button {
    display: inline-block;
    padding: 0.75rem 2rem;
    border-radius: 4px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}
.block-cost-calculator__button--primary {
    background: #e8491d;
    color: #fff;
}
.block-cost-calculator__button--secondary {
    background: #1a1a2e;
    color: #fff;
}
.block-cost-calculator__button--outline {
    background: transparent;
    border: 2px solid #e8491d;
    color: #e8491d;
}
.block-cost-calculator__button:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

/* Disclaimer */
.block-cost-calculator__disclaimer {
    max-width: 800px;
    margin: 1.25rem auto 0;
    text-align: center;
    font-size: 0.8rem;
    color: #999;
    line-height: 1.5;
}

@media (max-width: 767px) {
    .block-cost-calculator__form {
        padding: 1.5rem;
    }
    .block-cost-calculator__slider-wrap {
        flex-direction: column;
        align-items: stretch;
    }
    .block-cost-calculator__slider-value {
        text-align: left;
    }
    .block-cost-calculator__total {
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
        padding: 1rem 1.5rem;
    }
    .block-cost-calculator__total-value {
        font-size: 1.5rem;
    }
}

/* ---------------------------------------------------------------
   Service Selector Block
   --------------------------------------------------------------- */

.block-service-selector {
    padding: 3rem 1.5rem;
}
.block-service-selector__header {
    text-align: center;
    margin-bottom: 2rem;
}
.block-service-selector__heading {
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
}
.block-service-selector__subheading {
    font-size: 1.1rem;
    color: #64748b;
    margin: 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* Progress bar */
.block-service-selector__progress {
    max-width: 400px;
    margin: 0 auto 2rem;
}
.block-service-selector__progress-bar {
    height: 6px;
    background: #e2e8f0;
    border-radius: 3px;
    overflow: hidden;
}
.block-service-selector__progress-fill {
    height: 100%;
    background: var(--color-primary, #2563eb);
    border-radius: 3px;
    transition: width 0.4s ease;
}

/* Step container & transitions */
.block-service-selector__wizard {
    position: relative;
}
.block-service-selector__step-container {
    position: relative;
    overflow: hidden;
}
.block-service-selector__step {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.block-service-selector__step--active {
    opacity: 1;
    transform: translateX(0);
}
.block-service-selector__step--exit-left {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    opacity: 0;
    transform: translateX(-30px);
    pointer-events: none;
}
.block-service-selector__step--exit-right {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    opacity: 0;
    transform: translateX(30px);
    pointer-events: none;
}
.block-service-selector__step--enter-left {
    opacity: 0;
    transform: translateX(30px);
}
.block-service-selector__step--enter-right {
    opacity: 0;
    transform: translateX(-30px);
}

/* Card grid */
.block-service-selector__cards {
    display: grid;
    gap: 1rem;
}
.block-service-selector__cards--cols-2 { grid-template-columns: repeat(2, 1fr); }
.block-service-selector__cards--cols-3 { grid-template-columns: repeat(3, 1fr); }
.block-service-selector__cards--cols-4 { grid-template-columns: repeat(4, 1fr); }

/* List layout */
.block-service-selector__cards--list {
    grid-template-columns: 1fr !important;
    max-width: 600px;
    margin: 0 auto;
}
.block-service-selector__cards--list .block-service-selector__card {
    flex-direction: row;
    text-align: left;
    align-items: center;
    gap: 0;
}
.block-service-selector__cards--list .block-service-selector__card-image {
    width: 80px;
    height: 80px;
    flex-shrink: 0;
    border-radius: 0;
}
.block-service-selector__cards--list .block-service-selector__card-icon {
    font-size: 1.5rem;
    padding: 1rem;
    flex-shrink: 0;
    width: 60px;
    text-align: center;
}
.block-service-selector__cards--list .block-service-selector__card-content {
    padding: 0.75rem 1rem;
}

/* Individual card */
.block-service-selector__card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    padding: 0;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    cursor: pointer;
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
    font-family: inherit;
    font-size: inherit;
    color: inherit;
    gap: 0;
    overflow: hidden;
}
.block-service-selector__card:hover {
    transform: translateY(-3px);
    border-color: #94a3b8;
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}
.block-service-selector__card:focus-visible {
    outline: 2px solid var(--color-primary, #2563eb);
    outline-offset: 2px;
}
.block-service-selector__card-image {
    width: 100%;
    height: 200px;
    overflow: hidden;
    flex-shrink: 0;
}
.block-service-selector__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.block-service-selector__card-icon {
    font-size: 2.5rem;
    color: var(--color-primary, #2563eb);
    padding: 1.5rem 1rem 0.5rem;
}
.block-service-selector__card-content {
    flex: 1;
    padding: 1rem 1.25rem;
}
.block-service-selector__card-content:last-child {
    padding-bottom: 1.25rem;
}
.block-service-selector__card-title {
    font-size: 1.05rem;
    font-weight: 600;
    margin: 0 0 0.25rem;
}
.block-service-selector__card-text {
    font-size: 0.875rem;
    color: #64748b;
    margin: 0;
    line-height: 1.4;
}
.block-service-selector__card-price {
    display: inline-block;
    margin-top: 0.5rem;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--color-primary, #2563eb);
    background: #eff6ff;
    padding: 0.2rem 0.6rem;
    border-radius: 4px;
}

/* Card layout: title-image-desc — title header above the image */
.block-service-selector__card--title-image-desc > .block-service-selector__card-content:first-child {
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #f1f5f9;
}

/* Price at top of card — less top margin */
.block-service-selector__card-content > .block-service-selector__card-price:first-child {
    margin-top: 0;
    margin-bottom: 0.25rem;
}

/* Navigation */
.block-service-selector__nav {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 1.5rem;
}
.block-service-selector__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.6rem 1.25rem;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    color: #374151;
    font-size: 0.9rem;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.block-service-selector__btn:hover {
    background: #f3f4f6;
    border-color: #9ca3af;
}

/* Summary */
.block-service-selector__summary {
    max-width: 600px;
    margin: 0 auto;
}
.block-service-selector__summary-heading {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 0.25rem;
    text-align: center;
}
.block-service-selector__summary-subheading {
    color: #64748b;
    text-align: center;
    margin: 0 0 1.5rem;
}
.block-service-selector__summary-list {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
}
.block-service-selector__summary-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px solid #e2e8f0;
}
.block-service-selector__summary-label {
    font-size: 0.9rem;
    color: #64748b;
}
.block-service-selector__summary-value {
    font-weight: 600;
    color: #1e293b;
}
.block-service-selector__summary-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    background: #f8fafc;
    border-radius: 8px;
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
}
.block-service-selector__summary-total strong {
    font-size: 1.25rem;
    color: var(--color-primary, #2563eb);
}
.block-service-selector__summary-nav {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 1.5rem;
}
.block-service-selector__form-container {
    margin: 1.5rem 0;
}

/* Message screen */
.block-service-selector__message {
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
    padding: 2rem 0;
}
.block-service-selector__message-content {
    font-size: 1.1rem;
    line-height: 1.6;
    color: #334155;
}

/* Success screen */
.block-service-selector__success {
    max-width: 500px;
    margin: 0 auto;
    text-align: center;
    padding: 2rem 0;
}
.block-service-selector__success-icon {
    font-size: 3rem;
    color: #22c55e;
    margin-bottom: 1rem;
}
.block-service-selector__success-heading {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
}
.block-service-selector__success-text {
    color: #64748b;
    font-size: 1rem;
    margin: 0;
}

/* Responsive */
@media (max-width: 768px) {
    .block-service-selector {
        padding: 2rem 1rem;
    }
    .block-service-selector__heading {
        font-size: 1.5rem;
    }
    .block-service-selector__cards--cols-3,
    .block-service-selector__cards--cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 480px) {
    .block-service-selector__cards--cols-2,
    .block-service-selector__cards--cols-3,
    .block-service-selector__cards--cols-4 {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   DARK SECTION OVERRIDES
   Must appear AFTER all block base styles so cascade order wins.
   Applied automatically by BuilderRenderService when section has a dark background.
   ========================================================================== */

.builder-section--dark { color: var(--color-white); }

/* --- Headings (all block types) --- */
.builder-section--dark h1,
.builder-section--dark h2,
.builder-section--dark h3,
.builder-section--dark h4,
.builder-section--dark [class*="__heading"],
.builder-section--dark [class*="__title"] { color: var(--color-white); }

/* --- Body text / descriptions --- */
.builder-section--dark p,
.builder-section--dark li,
.builder-section--dark [class*="__description"],
.builder-section--dark [class*="__content"],
.builder-section--dark [class*="__subheading"],
.builder-section--dark [class*="__text"],
.builder-section--dark [class*="__body"],
.builder-section--dark [class*="__intro"] { color: rgba(255, 255, 255, 0.85); }

/* --- Labels & secondary text --- */
.builder-section--dark [class*="__label"],
.builder-section--dark [class*="__caption"],
.builder-section--dark [class*="__meta"],
.builder-section--dark [class*="__desc"] { color: rgba(255, 255, 255, 0.7); }

/* --- Links --- */
.builder-section--dark a:not(.btn):not([class*="__button"]):not([class*="__card"]) { color: var(--color-white); }

/* --- Icons --- */
.builder-section--dark [class*="__icon"] { color: var(--color-white); }

/* --- Block-specific overrides --- */

/* Stats */
.builder-section--dark .block-stats__number { color: var(--color-white); }
.builder-section--dark .block-stats__label { color: rgba(255, 255, 255, 0.7); }
.builder-section--dark .block-stats__prefix,
.builder-section--dark .block-stats__suffix { color: var(--color-white); }

/* Contact */
.builder-section--dark .block-contact__label { color: rgba(255, 255, 255, 0.9); }
.builder-section--dark .block-contact__value { color: rgba(255, 255, 255, 0.8); }
.builder-section--dark .block-contact__value a { color: var(--color-white); }
.builder-section--dark .block-contact__icon { color: var(--color-white); }

/* Text with List */
.builder-section--dark .block-text-with-list__item-text { color: var(--color-white); }
.builder-section--dark .block-text-with-list__item-desc { color: rgba(255, 255, 255, 0.7); }
.builder-section--dark .block-text-with-list__item-icon { color: var(--color-white); background: rgba(255, 255, 255, 0.15); }
.builder-section--dark .block-text-with-list--style-bullet .block-text-with-list__item::before { color: var(--color-white); }

/* Testimonials */
.builder-section--dark .block-testimonials__card { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.15); }
.builder-section--dark .block-testimonials__quote { color: rgba(255, 255, 255, 0.9); }
.builder-section--dark .block-testimonials__author { color: var(--color-white); }
.builder-section--dark .block-testimonials__role { color: rgba(255, 255, 255, 0.6); }
.builder-section--dark .block-testimonials__stars { color: #fbbf24; }

/* CTA — make transparent so section background shows through */
.builder-section--dark .block-cta { background: transparent; }
.builder-section--dark .block-cta__heading { color: var(--color-white); }
.builder-section--dark .block-cta__text { color: rgba(255, 255, 255, 0.9); }
.builder-section--dark .block-cta__button--primary { background: var(--color-white); color: var(--color-secondary); border-color: var(--color-white); }
.builder-section--dark .block-cta__button--primary:hover { background: var(--color-grey-100); color: var(--color-secondary); }
.builder-section--dark .block-cta__button--secondary { border-color: var(--color-white); color: var(--color-white); }

/* Rich Text */
.builder-section--dark .block-rich_text p,
.builder-section--dark .block-rich_text li,
.builder-section--dark .block-rich-text p,
.builder-section--dark .block-rich-text li { color: rgba(255, 255, 255, 0.85); }
.builder-section--dark .block-rich_text h1,
.builder-section--dark .block-rich_text h2,
.builder-section--dark .block-rich_text h3,
.builder-section--dark .block-rich-text h1,
.builder-section--dark .block-rich-text h2,
.builder-section--dark .block-rich-text h3 { color: var(--color-white); }
.builder-section--dark .block-rich_text a,
.builder-section--dark .block-rich-text a { color: rgba(255, 255, 255, 0.9); text-decoration: underline; }
.builder-section--dark .block-rich_text strong,
.builder-section--dark .block-rich-text strong { color: var(--color-white); }

/* Image Text Row */
.builder-section--dark .block-image-text-row__heading { color: var(--color-white); }
.builder-section--dark .block-image-text-row__content { color: rgba(255, 255, 255, 0.85); }
.builder-section--dark .block-image-text-row__content li { color: rgba(255, 255, 255, 0.85); }

/* Accordion / FAQ */
.builder-section--dark .block-accordion__item-title,
.builder-section--dark .block-faq__question { color: var(--color-white); }
.builder-section--dark .block-accordion__item-content,
.builder-section--dark .block-faq__answer { color: rgba(255, 255, 255, 0.85); }
.builder-section--dark .block-accordion__item,
.builder-section--dark .block-faq__item { border-color: rgba(255, 255, 255, 0.15); }

/* Intro Text */
.builder-section--dark .block-intro-text__heading { color: var(--color-white); }
.builder-section--dark .block-intro-text__body { color: rgba(255, 255, 255, 0.85); }

/* Feature Boxes */
.builder-section--dark .block-feature-boxes__card { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.12); }
.builder-section--dark .block-feature-boxes__title { color: var(--color-white); }
.builder-section--dark .block-feature-boxes__description { color: rgba(255, 255, 255, 0.8); }

/* Process Steps */
.builder-section--dark .block-process-steps__step-title { color: var(--color-white); }
.builder-section--dark .block-process-steps__step-description { color: rgba(255, 255, 255, 0.8); }
.builder-section--dark .block-process-steps__step-number { color: var(--color-white); border-color: rgba(255, 255, 255, 0.3); }

/* Timeline */
.builder-section--dark .block-timeline__item-title { color: var(--color-white); }
.builder-section--dark .block-timeline__item-content { color: rgba(255, 255, 255, 0.85); }
.builder-section--dark .block-timeline__line { background: rgba(255, 255, 255, 0.2); }

/* Trust Badges */
.builder-section--dark .block-trust-badges__label { color: rgba(255, 255, 255, 0.8); }

/* Team */
.builder-section--dark .block-team__name { color: var(--color-white); }
.builder-section--dark .block-team__role { color: rgba(255, 255, 255, 0.7); }
.builder-section--dark .block-team__bio { color: rgba(255, 255, 255, 0.8); }

/* Pricing Table */
.builder-section--dark .block-pricing-table__card { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.12); }
.builder-section--dark .block-pricing-table__price { color: var(--color-white); }
.builder-section--dark .block-pricing-table__feature { color: rgba(255, 255, 255, 0.8); }

/* Form fields inside dark sections */
.builder-section--dark .form-group label { color: rgba(255, 255, 255, 0.9); }
.builder-section--dark .form-group input,
.builder-section--dark .form-group textarea,
.builder-section--dark .form-group select { background: rgba(255,255,255,0.1); color: var(--color-white); border-color: rgba(255,255,255,0.2); }
.builder-section--dark .form-group input::placeholder,
.builder-section--dark .form-group textarea::placeholder { color: rgba(255,255,255,0.4); }

/* Comparison Table */
.builder-section--dark .block-comparison-table th { color: var(--color-white); }
.builder-section--dark .block-comparison-table td { color: rgba(255, 255, 255, 0.85); border-color: rgba(255, 255, 255, 0.12); }

/* Service Cards / Grid */
.builder-section--dark .block-service-cards__card,
.builder-section--dark .block-services-grid__card { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.12); }

/* Two / Three Column */
.builder-section--dark .block-two-column__heading,
.builder-section--dark .block-three-column__heading { color: var(--color-white); }
.builder-section--dark .block-two-column__content,
.builder-section--dark .block-three-column__content { color: rgba(255, 255, 255, 0.85); }

/* Split CTA */
.builder-section--dark .block-split-cta__heading { color: var(--color-white); }
.builder-section--dark .block-split-cta__text { color: rgba(255, 255, 255, 0.85); }

