/* ==========================================================================
   Block System CSS — Currie Young Theme
   ========================================================================== */

.block { padding: var(--space-2xl) 0; }
.block--pad-large { padding: var(--space-3xl) 0; }
.block--pad-small { padding: var(--space-lg) 0; }

/* Backgrounds */
.block--bg-white { background: var(--color-white); }
.block--bg-light { background: var(--color-bg-services); }
.block--bg-navy { background: var(--color-navy); color: var(--color-white); }
.block--bg-navy .block-heading,
.block--bg-navy .block-label { color: var(--color-white); }
.block--bg-navy .btn-primary { background: var(--color-coral); border-color: var(--color-coral); }
.block--bg-coral { background: var(--color-coral); color: var(--color-white); }

/* Block typography */
.block-label {
    font-family: var(--font-body);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-coral);
    margin-bottom: 0.5rem;
}
.block-heading {
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    font-weight: 700;
    margin-bottom: 1.5rem;
}
.block-body {
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}
.block-header { margin-bottom: var(--space-xl); }

/* Two-column layout */
.block-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2xl);
    align-items: center;
}
.block-two-col--reversed { direction: rtl; }
.block-two-col--reversed > * { direction: ltr; }
.block-two-col__image img { width: 100%; border-radius: 10px; display: block; }

/* Two-column text */
.block-two-col-text {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-xl);
}

/* CTA grid */
.block-cta-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
}
.block-cta-card {
    background: var(--color-white);
    border-radius: 10px;
    padding: var(--space-lg);
    box-shadow: 0 2px 16px rgba(0,0,0,0.07);
}
.block-cta-card__title { font-size: 1.125rem; font-weight: 700; margin-bottom: 0.5rem; }

/* 4-column grid */
.block-4col-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-md);
}
.block-4col-item img { width: 100%; border-radius: 8px; display: block; }
.block-4col-caption { font-size: 0.875rem; color: #666; margin-top: 0.5rem; }

/* Services grid — alternating content / image columns */
.block--services-grid { position: relative; }
.sg-overlay {
    position: absolute; inset: 0;
    background: rgba(20,37,68,0.55);
    pointer-events: none; z-index: 0;
}

.sg-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: var(--space-lg);
    row-gap: var(--space-xl);
}

/* Content card */
.sg-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--space-sm);
    padding: var(--space-lg) 0;
}
.sg-card__icon {
    width: auto;
    height: 52px;
    object-fit: contain;
    margin-bottom: var(--space-xs);
    align-self: flex-start;
}
.sg-card__title {
    font-size: 1.25rem;
    font-weight: var(--fw-bold);
    color: var(--color-navy);
    margin: 0;
}
.sg-card__excerpt {
    font-size: var(--fs-sm);
    color: var(--color-text);
    line-height: 1.6;
    margin: 0;
}

/* Image column */
.sg-image {
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 3 / 4;
}
.sg-image a { display: block; height: 100%; }
.sg-image__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.sg-image:hover .sg-image__img { transform: scale(1.03); }
.sg-image__placeholder {
    width: 100%; height: 100%;
    background: var(--color-light-grey, #F3F4F5);
}

/* On dark/image background, invert card text */
.block--services-grid .sg-overlay ~ .container .sg-card__title,
.block--services-grid .sg-overlay ~ .container .sg-card__excerpt { color: var(--color-white); }

/* ── Job Vacancies ────────────────────────────────────────────────── */
.vacancies-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    border-top: 1px solid #E0E3E8;
}
.vacancy-item { border-bottom: 1px solid #E0E3E8; }

/* Each vacancy: grid with main content left, Apply now right */
.vacancy-item__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--space-xl);
    padding: var(--space-lg) 0;
    align-items: start;
}
.vacancy-item__main { min-width: 0; }
.vacancy-item__aside {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-sm);
    padding-top: 0.1rem;
}

/* Dates */
.vacancy-item__dates {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    font-size: var(--fs-xs);
    color: rgba(20,37,68,0.55);
    margin-bottom: 0.4rem;
}

/* Apply now — outline circle, fills on hover */
.vacancy-apply-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--color-navy, #142544);
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
    transition: color 0.2s;
}
.vacancy-apply-btn:hover { color: var(--color-coral, #EB5C63); }
.vacancy-apply-btn__icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1.5px solid var(--color-coral, #EB5C63);
    background: transparent;
    color: var(--color-navy, #142544);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.2s, color 0.2s;
}
.vacancy-apply-btn:hover .vacancy-apply-btn__icon {
    background: var(--color-coral, #EB5C63);
    color: #fff;
}

/* Title & intro text */
.vacancy-item__title {
    font-size: var(--fs-xl);
    font-weight: 700;
    color: var(--color-navy, #142544);
    margin: 0 0 0.6rem;
    line-height: 1.3;
}
.vacancy-item__intro {
    font-size: var(--fs-base);
    color: rgba(20,37,68,0.75);
    margin: 0;
    line-height: 1.7;
}

/* Read more/less — left-aligned, below excerpt/content */
.vacancy-item__read-more {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    background: none;
    border: none;
    cursor: pointer;
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--color-navy, #142544);
    padding: var(--space-md) 0 var(--space-lg);
    transition: color 0.2s;
}
.vacancy-item__read-more:hover { color: var(--color-coral, #EB5C63); }
.vacancy-item__toggle-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1.5px solid var(--color-coral, #EB5C63);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-navy, #142544);
    transition: background 0.2s, color 0.2s;
}
.vacancy-item__read-more:hover .vacancy-item__toggle-icon,
.vacancy-item__read-more[aria-expanded="true"] .vacancy-item__toggle-icon {
    background: var(--color-coral, #EB5C63);
    color: #fff;
}
.vacancy-toggle-icon { display: none; }
.vacancy-toggle-icon--plus { display: block; }
.vacancy-item__read-more[aria-expanded="true"] .vacancy-toggle-icon--plus { display: none; }
.vacancy-item__read-more[aria-expanded="true"] .vacancy-toggle-icon--minus { display: block; }


/* Expanded body */
.vacancy-item__body { padding-bottom: var(--space-lg); }
.vacancy-item__content {
    font-size: var(--fs-base);
    line-height: 1.7;
    color: var(--color-navy, #142544);
    margin-bottom: var(--space-lg);
}
.vacancy-item__content p { margin-bottom: 0.75rem; }
.vacancy-item__content ul,
.vacancy-item__content ol {
    padding-left: 1.25rem;
    margin-bottom: 0.75rem;
}
.vacancy-item__content li { margin-bottom: 0.25rem; }
.vacancy-item__content strong { font-weight: 700; }
.vacancy-item__actions { display: flex; gap: var(--space-md); flex-wrap: wrap; }
.vacancy-apply-btn { display: inline-flex; align-items: center; gap: 0.5rem; }

.vacancies-empty { color: rgba(20,37,68,0.6); font-style: italic; }
.vacancies-cv-cta { margin-top: var(--space-xl); }

@media (max-width: 640px) {
    .vacancy-item__inner { grid-template-columns: 1fr; }
    .vacancy-item__aside { padding-top: 0; }
    .vacancy-item__dates { flex-direction: column; gap: 0.25rem; }
    .vacancy-item__title { font-size: var(--fs-lg); }
}

/* ── CV Upload block ──────────────────────────────────────────────── */
.block--cv-upload { position: relative; padding: 0 !important; }
.cv-overlay {
    position: absolute;
    inset: 0;
    background: rgba(20,37,68,0.65);
    z-index: 0;
}
.cv-layout {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2xl);
    align-items: center;
    padding-top: var(--space-3xl);
    padding-bottom: var(--space-3xl);
}

/* Left panel */
.cv-left {
    color: #fff;
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}
.cv-left__heading {
    font-size: var(--fs-3xl);
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    margin: 0;
}
.cv-left__body {
    font-size: var(--fs-base);
    line-height: 1.7;
    opacity: 0.9;
}
.cv-left__body p { margin: 0; }
.cv-left__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-size: var(--fs-sm);
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    transition: opacity 0.2s;
}
.cv-left__cta:hover { opacity: 0.8; }
.cv-left__cta .btn-arrow-circle {
    background: transparent;
    border-color: #fff;
    color: #fff;
}
.cv-left__cta:hover .btn-arrow-circle {
    background: #fff;
    color: var(--color-navy, #142544);
}

/* Right panel: white card */
.cv-card {
    background: #F3F5F7;
    border-radius: 12px;
    padding: var(--space-2xl);
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}
.cv-card__heading {
    font-size: var(--fs-2xl);
    font-weight: 700;
    color: var(--color-navy, #142544);
    margin: 0;
}
.cv-card__sub {
    font-size: var(--fs-sm);
    color: rgba(20,37,68,0.65);
    margin: 0;
}
.cv-card__disclaimer {
    font-size: var(--fs-xs);
    color: rgba(20,37,68,0.55);
    line-height: 1.5;
}
.cv-card__disclaimer p { margin: 0 0 0.25rem; }
.cv-card__notice {
    font-size: var(--fs-sm);
    color: rgba(20,37,68,0.6);
    font-style: italic;
}

/* CF7 form inside the card */
.cv-card .wpcf7 { margin: 0; }
.cv-card .wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
/* Strip default <p> margins CF7 adds */
.cv-card .wpcf7-form > p { margin: 0; }

/* Two-column rows — add class="cv-row-half" to wrapper divs in CF7 editor */
.cv-card .cv-row-half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}
/* Full-width row */
.cv-card .cv-row-full { display: block; }

/* All text inputs, file inputs */
.cv-card .wpcf7-form input[type="text"],
.cv-card .wpcf7-form input[type="email"],
.cv-card .wpcf7-form input[type="tel"],
.cv-card .wpcf7-form input[type="number"],
.cv-card .wpcf7-form select,
.cv-card .wpcf7-form textarea {
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1px solid #E0E3E8;
    border-radius: 8px;
    font-family: inherit;
    font-size: var(--fs-sm);
    color: var(--color-navy, #142544);
    background: #fff;
    transition: border-color 0.2s;
    box-sizing: border-box;
}
.cv-card .wpcf7-form input::placeholder,
.cv-card .wpcf7-form textarea::placeholder { color: rgba(20,37,68,0.45); }
.cv-card .wpcf7-form input:focus,
.cv-card .wpcf7-form textarea:focus {
    outline: none;
    border-color: var(--color-coral, #EB5C63);
}

/* File upload field — white box with upload icon */
.cv-card .wpcf7-form input[type="file"] {
    width: 100%;
    padding: 0.875rem 1rem;
    border: 1px solid #E0E3E8;
    border-radius: 8px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M9 12V4M9 4L6 7M9 4L12 7M3 14H15' stroke='%23EB5C63' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1rem center;
    font-family: inherit;
    font-size: var(--fs-sm);
    color: rgba(20,37,68,0.45);
    box-sizing: border-box;
    cursor: pointer;
}
.cv-card .wpcf7-form input[type="file"]::-webkit-file-upload-button { display: none; }
.cv-card .wpcf7-form input[type="file"]::file-selector-button { display: none; }

/* Submit row: disclaimer left, button right */
.cv-card .cv-row-submit {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    margin-top: 0.25rem;
}
.cv-card .cv-row-submit .cv-disclaimer-inline {
    font-size: 11px;
    color: rgba(20,37,68,0.55);
    line-height: 1.5;
    flex: 1 1 0;
    min-width: 0;
}
.cv-card .wpcf7-form input[type="submit"] {
    background: var(--color-coral, #EB5C63);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 0.875rem 2rem;
    font-weight: 700;
    font-size: var(--fs-sm);
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    margin-left: auto;
    transition: opacity 0.2s;
}
.cv-card .wpcf7-form input[type="submit"]:hover { opacity: 0.85; }

/* CF7 injects spinner between disclaimer and button — hide it (button opacity change gives feedback) */
.cv-card .wpcf7-spinner { display: none !important; }

/* Span wrappers CF7 adds — ensure they fill their grid cell */
.cv-card .wpcf7-form-control-wrap { display: block; }

/* Mobile */
@media (max-width: 640px) {
    .cv-card .cv-row-half { grid-template-columns: 1fr; }
    .cv-card .cv-row-submit { flex-direction: column; align-items: flex-start; }
}

/* Mobile */
@media (max-width: 768px) {
    .cv-layout {
        grid-template-columns: 1fr;
        padding-top: var(--space-2xl);
        padding-bottom: var(--space-2xl);
    }
    .cv-left__heading { font-size: var(--fs-2xl); }
    .cv-card { padding: var(--space-xl); }
}

/* ── Contact Hero block ─────────────────────────────────────────── */
.block--contact-hero { position: relative; }
.ch-overlay {
    position: absolute;
    inset: 0;
    background: rgba(20,37,68,0.65);
    pointer-events: none;
    z-index: 0;
}

.ch-grid {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: var(--space-2xl);
    align-items: start;
}

/* Left panel */
.ch-left { padding-top: var(--space-lg); }
.ch-heading {
    font-size: clamp(2.5rem, 5vw, 3.5rem);
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: var(--space-lg);
    color: inherit;
}
.ch-body { font-size: var(--fs-base); line-height: 1.7; color: inherit; margin-bottom: var(--space-lg); }
.ch-body a { color: inherit; }

.ch-contact-details { margin-bottom: var(--space-xl); }
.ch-contact-details p { margin-bottom: 0.5rem; font-size: var(--fs-sm); color: inherit; }
.ch-contact-details a { color: inherit; }

.ch-quick-links__title {
    font-size: var(--fs-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: var(--space-md);
    color: inherit;
}
.ch-quick-links__list { list-style: none; display: flex; flex-direction: column; gap: 0; }
.ch-quick-links__list li { border-top: 1px solid rgba(255,255,255,0.15); }
.ch-quick-links__list li:last-child { border-bottom: 1px solid rgba(255,255,255,0.15); }
.ch-quick-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-sm) 0;
    color: inherit;
    text-decoration: none;
    font-size: var(--fs-sm);
    font-weight: 500;
    transition: opacity 0.2s;
}
.ch-quick-link__icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid var(--color-coral, #EB5C63);
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    flex-shrink: 0;
    transition: background 0.2s, border-color 0.2s;
}
.ch-quick-link:hover .ch-quick-link__icon {
    background: var(--color-coral, #EB5C63);
    border-color: var(--color-coral, #EB5C63);
    color: #fff;
}

/* Right panel: coral form card */
.ch-card {
    background: var(--color-coral, #EB5C63);
    border-radius: 12px;
    padding: var(--space-xl) var(--space-xl);
}
.ch-card__heading {
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    font-weight: 700;
    color: #fff;
    margin-bottom: var(--space-lg);
}
.ch-card__notice { color: rgba(255,255,255,0.8); font-size: var(--fs-sm); }

/* CF7 form inside the card */
.ch-card .wpcf7 { margin: 0; }
.ch-card .wpcf7-form { display: flex; flex-direction: column; gap: var(--space-sm); }
.ch-card .wpcf7-form > p { margin: 0; }
.ch-card .wpcf7-spinner { display: none !important; }

/* Two-column rows */
.ch-row-half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-sm);
}

/* Inputs */
.ch-card .wpcf7-form input[type="text"],
.ch-card .wpcf7-form input[type="email"],
.ch-card .wpcf7-form input[type="tel"],
.ch-card .wpcf7-form select,
.ch-card .wpcf7-form textarea {
    width: 100%;
    padding: 0.875rem 1rem;
    background: #fff;
    border: none;
    border-radius: 8px;
    font-size: var(--fs-sm);
    font-family: inherit;
    color: var(--color-navy, #142544);
    box-sizing: border-box;
}
.ch-card .wpcf7-form textarea { resize: vertical; min-height: 110px; }
.ch-card .wpcf7-form input::placeholder,
.ch-card .wpcf7-form textarea::placeholder { color: rgba(20,37,68,0.45); }
.ch-card .wpcf7-form input:focus,
.ch-card .wpcf7-form textarea:focus { outline: 2px solid rgba(255,255,255,0.6); outline-offset: 1px; }
.ch-card .wpcf7-form-control-wrap { display: block; }

/* Consent row */
.ch-consent-row {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
}
.ch-consent-row input[type="checkbox"] { flex-shrink: 0; margin-top: 3px; accent-color: var(--color-navy,#142544); }
.ch-consent-row .wpcf7-list-item { margin: 0; }
.ch-consent-row .wpcf7-list-item-label { font-size: 12px; color: rgba(255,255,255,0.9); line-height: 1.5; }

/* Submit row */
.ch-submit-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-top: var(--space-xs);
}
.ch-card .wpcf7-form input[type="submit"] {
    background: var(--color-navy, #142544);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 0.875rem 2.5rem;
    font-weight: 700;
    font-size: var(--fs-sm);
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity 0.2s;
}
.ch-card .wpcf7-form input[type="submit"]:hover { opacity: 0.85; }

/* Mobile */
@media (max-width: 768px) {
    .ch-grid { grid-template-columns: 1fr; gap: var(--space-xl); }
    .ch-card { padding: var(--space-lg); }
    .ch-row-half { grid-template-columns: 1fr; }
}

/* Toggle map */
.block--toggle-map { padding: 0 !important; }
.tm-wrapper {
    position: relative;
    width: 100%;
    height: 520px;
    overflow: hidden;
}
.tm-iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
.tm-iframe--placeholder {
    background: #e9eef3;
}
.tm-card {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: var(--space-2xl);
    width: 100%;
    max-width: 460px;
    background: var(--color-navy);
    border-radius: 16px;
    padding: var(--space-xl) var(--space-xl);
    color: #fff;
    z-index: 2;
}
.tm-card__heading {
    font-size: 1.375rem;
    font-weight: var(--fw-bold);
    color: #fff;
    margin: 0 0 var(--space-md);
}
.tm-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: var(--space-md);
}
.tm-tab {
    padding: 6px 14px;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,0.3);
    background: transparent;
    color: rgba(255,255,255,0.75);
    font-size: 0.875rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    white-space: nowrap;
}
.tm-tab:hover { background: rgba(255,255,255,0.1); color: #fff; }
.tm-tab.is-active { background: var(--color-coral); border-color: var(--color-coral); color: #fff; }
.tm-divider { border: none; border-top: 1px solid rgba(255,255,255,0.2); margin: 0 0 var(--space-md); }
.tm-detail { display: none; }
.tm-detail.is-active { display: block; }
.tm-detail__name {
    font-size: 1rem;
    font-weight: var(--fw-bold);
    color: #fff;
    margin: 0 0 6px;
}
.tm-detail__address {
    font-size: 0.875rem;
    color: rgba(255,255,255,0.75);
    margin: 0 0 var(--space-md);
    line-height: 1.5;
}
.tm-detail__contacts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
}
.tm-contact-link {
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,0.85);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    transition: color 0.2s;
}
.tm-contact-link:hover { color: #fff; }
.tm-contact-link svg { flex-shrink: 0; opacity: 0.8; }

@media (max-width: 768px) {
    .tm-wrapper { height: auto; display: flex; flex-direction: column; }
    .tm-iframe { position: relative; inset: auto; width: 100%; height: 300px; flex-shrink: 0; }
    .tm-card {
        position: relative;
        top: auto; left: auto;
        transform: none;
        max-width: 100%;
        border-radius: 0;
        padding: var(--space-xl) var(--space-lg);
    }
}

/* FAQs */
.faqs-layout {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: var(--space-3xl);
    align-items: start;
}
.faqs-left { position: sticky; top: var(--space-2xl); }
.faqs-heading {
    font-size: 2rem;
    font-weight: var(--fw-bold);
    margin: 0 0 var(--space-lg);
}
.faqs-body { font-size: var(--fs-md); line-height: var(--lh-relaxed); color: var(--color-body); }
.faqs-list { margin: 0; padding: 0; }
.faq-item { border-bottom: 1px solid rgba(20,37,68,0.12); }
.faq-item:first-child { border-top: 1px solid rgba(20,37,68,0.12); }
.faq-toggle {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-md) 0;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 600;
    color: inherit;
}
.faq-toggle__text { flex: 1; transition: color 0.2s; }
.faq-toggle__chevron { flex-shrink: 0; transition: transform 0.25s, color 0.2s; color: var(--color-coral); }
.faq-toggle[aria-expanded=true] .faq-toggle__chevron { transform: rotate(180deg); }
.faq-toggle[aria-expanded=true] .faq-toggle__text { color: var(--color-coral); }
.faq-answer { padding: 0 0 var(--space-lg); }
.faq-answer__body { font-size: var(--fs-md); line-height: var(--lh-relaxed); color: var(--color-body); }
.faq-answer__body p:last-child { margin-bottom: 0; }

@media (max-width: 768px) {
    .faqs-layout { grid-template-columns: 1fr; gap: var(--space-xl); }
    .faqs-left { position: static; }
    .faqs-heading { font-size: 1.5rem; text-align: center; }
    .faqs-body { text-align: center; }
    .faq-toggle { font-size: 0.9375rem; }
}

/* ── Two Column Content ───────────────────────────────────────────── */
.tcc-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    align-items: center;
}
.tcc-grid--reversed { direction: rtl; }
.tcc-grid--reversed > * { direction: ltr; }
.tcc-text { display: flex; flex-direction: column; gap: var(--space-md); }
.tcc-images {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-md);
    align-items: start;
}
.tcc-img-wrap--secondary { margin-top: var(--space-2xl); }
.tcc-img { width: 100%; height: auto; display: block; border-radius: 12px; object-fit: cover; }
.tcc-img-wrap--primary .tcc-img { aspect-ratio: 3/4; }
.tcc-img-wrap--secondary .tcc-img { aspect-ratio: 3/4; }

@media (max-width: 900px) {
    .tcc-grid { grid-template-columns: 1fr; }
    .tcc-grid--reversed { direction: ltr; }
    .tcc-images { grid-template-columns: 1fr 1fr; }
    .tcc-img-wrap--secondary { margin-top: 0; }
    .tcc-img-wrap--primary { margin-top: var(--space-lg); }
}
/* ── Testimonials ─────────────────────────────────────────────────── */
.block--testimonial { padding: 0 !important; }

.testimonial-layout {
    display: grid;
    grid-template-columns: 1fr 2fr;
    min-height: 480px;
}

/* Left panel */
.testimonial-left {
    display: flex;
    align-items: center;
    padding: var(--space-2xl) var(--space-xl);
}
.testimonial-left__inner { max-width: 100%; }
.testimonial-icon { width: 56px; height: auto; margin-bottom: var(--space-md); display: block; }
.testimonial-heading {
    font-size: var(--fs-3xl);
    line-height: 1.2;
    margin-bottom: var(--space-md);
    color: inherit;
}
.testimonial-body {
    font-size: var(--fs-base);
    line-height: 1.7;
    opacity: 0.85;
}

/* Right panel — arrows sit on left/right edges, slides fill the middle */
.testimonial-right {
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
}

/* Arrows — outlined circle style (border only, no fill), vertically centred */
.testimonial-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1.5px solid var(--color-coral, #EB5C63);
    background: transparent;
    color: var(--color-navy, #142544);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background var(--transition), color var(--transition);
}
.testimonial-arrow:hover {
    background: var(--color-coral, #EB5C63);
    color: var(--color-white, #fff);
}
.testimonial-arrow--prev { left: var(--space-md); }
.testimonial-arrow--next { right: var(--space-md); }

/* Slides wrapper — padded inward to clear the arrows */
.testimonial-slides-wrapper {
    flex: 1;
    padding: var(--space-3xl) calc(40px + var(--space-xl));
    display: flex;
    align-items: center;
}

.testimonial-slide {
    display: none;
    flex-direction: column;
    gap: var(--space-lg);
    width: 100%;
}
.testimonial-slide.is-active { display: flex; }

.testimonial-slide__quote {
    font-size: var(--fs-lg);
    line-height: 1.8;
    font-style: italic;
    color: var(--color-navy, #142544);
    margin: 0;
    text-align: center;
    padding: 25px;
}
.testimonial-slide__quote p { margin: 0; }
/* Inline curly quote marks */
.testimonial-slide__quote p::before { content: '\201C'; }
.testimonial-slide__quote p::after  { content: '\201D'; }

.testimonial-slide__cite {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-style: normal;
    text-align: center;
}
.testimonial-slide__company {
    font-size: var(--fs-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-navy, #142544);
}
.testimonial-slide__name {
    font-size: var(--fs-sm);
    color: var(--color-navy, #142544);
    opacity: 0.7;
}
.testimonial-slide__role { opacity: 0.6; }

/* Dots — hidden */
.testimonial-dots { display: none; }

/* Mobile: stack */
@media (max-width: 768px) {
    .testimonial-layout { grid-template-columns: 1fr; }
    .testimonial-left { padding: var(--space-xl) var(--space-md); }
    .testimonial-heading { font-size: var(--fs-2xl); }
    .testimonial-right { min-height: 340px; }
    .testimonial-slides-wrapper { padding: var(--space-xl) calc(44px + var(--space-md)); }
}

/* Stats */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--space-lg);
    text-align: center;
}
.stat-item__value {
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 700;
    color: var(--color-coral);
    line-height: 1;
    margin-bottom: 0.25rem;
}
.stat-item__label {
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* ==========================================================================
   Two Column CTA List
   ========================================================================== */
.block--two-col-cta-list { padding: var(--space-2xl) 0; }

.tccl-header {
    max-width: 680px;
    margin: 0 auto var(--space-xl);
    text-align: center;
}
.tccl-icon {
    display: flex;
    justify-content: center;
    margin-bottom: var(--space-md);
}
.tccl-icon__img {
    width: 80px;
    height: 80px;
    object-fit: contain;
}
.tccl-heading {
    font-size: clamp(1.625rem, 3vw, 2.25rem);
    font-weight: 700;
    margin-bottom: var(--space-sm);
    line-height: 1.2;
}
.tccl-body {
    font-size: 1rem;
    line-height: 1.7;
    opacity: 0.8;
    margin: 0;
}

.tccl-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 var(--space-2xl);
    border-top: 1px solid rgba(255,255,255,0.2);
    padding-top: var(--space-sm);
}
.block--two-col-cta-list[style*="background-color:#FFFFFF"] .tccl-columns,
.block--two-col-cta-list[style*="background-color:#F5F7FA"] .tccl-columns {
    border-top-color: rgba(0,0,0,0.12);
}

.tccl-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    padding: 14px 0;
    border-bottom: 1px solid rgba(255,255,255,0.15);
}
.block--two-col-cta-list[style*="background-color:#FFFFFF"] .tccl-item,
.block--two-col-cta-list[style*="background-color:#F5F7FA"] .tccl-item {
    border-bottom-color: rgba(0,0,0,0.1);
}
.tccl-item__title {
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.4;
}
.tccl-item__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-coral, #EB5C63);
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
    transition: gap 0.2s ease;
}
.tccl-item__link:hover { gap: 10px; }
.tccl-item__link svg { flex-shrink: 0; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 768px) {
    .tccl-columns { grid-template-columns: 1fr; }
    .block-two-col,
    .block-two-col-text,
    .block-cta-grid,
    .ch-grid { grid-template-columns: 1fr; }
    .block-4col-grid { grid-template-columns: repeat(2, 1fr); }
    .sg-grid { grid-template-columns: 1fr 1fr; }
    .sg-image { aspect-ratio: 4 / 3; }
}

@media (max-width: 480px) {
    .sg-grid { grid-template-columns: 1fr; }
    .sg-image { aspect-ratio: 16 / 9; }
}
