/**
 * Shared styles for new Page Builder blocks:
 * team, countdown, announcement, tabs, accordion, contact modal, calendar,
 * newsletter, trust, section, features, compare, breadcrumbs, spacer,
 * families, whatsapp, product-carousel.
 * Uses theme CSS variables when available.
 */

.block-team-members,
.block-countdown,
.block-announcement,
.block-tabs,
.block-accordion,
.block-contact,
.block-calendar,
.block-newsletter,
.block-trust-badges,
.block-section,
.block-icon-features,
.block-comparison,
.block-breadcrumbs,
.block-spacer,
.block-product-categories,
.block-whatsapp,
.block-product-carousel {
    --pb-extra-text: var(--theme-text, var(--bs-body-color, #212529));
    --pb-extra-muted: var(--theme-muted, #6c757d);
    --pb-extra-primary: var(--theme-primary, var(--bs-primary, #0d6efd));
    --pb-extra-accent: var(--theme-accent, var(--theme-primary, #0d6efd));
    --pb-extra-card: var(--theme-card, #fff);
    --pb-extra-border: var(--theme-border, #dee2e6);
    --pb-extra-bg: var(--theme-bg, transparent);
}

/* ?? Team ?? */
.pb-team-card {
    background: var(--pb-extra-card);
    color: var(--pb-extra-text);
    height: 100%;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.pb-team-card--elevated { box-shadow: 0 0.35rem 1.25rem rgba(0, 0, 0, 0.08); }
.pb-team-card--outline { border: 1px solid var(--pb-extra-border); }
.pb-team-card--flat { background: transparent; }
.pb-team-card--align-center { text-align: center; align-items: center; }
.pb-team-card--align-left { text-align: left; align-items: flex-start; }
.pb-team-card--align-right { text-align: right; align-items: flex-end; }
.pb-team-photo { overflow: hidden; width: 7.5rem; height: 7.5rem; flex-shrink: 0; }
.pb-team-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pb-team-photo--circle { border-radius: 50%; }
.pb-team-photo--rounded { border-radius: 0.75rem; }
.pb-team-photo--square { border-radius: 0; }
.pb-team-name { font-size: 1.15rem; margin: 0; font-weight: 600; }
.pb-team-role { margin: 0; color: var(--pb-extra-muted); font-size: 0.95rem; }
.pb-team-bio { font-size: 0.95rem; }
.pb-team-social { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pb-team-social-link {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2rem; height: 2rem; border-radius: 50%;
    color: var(--pb-extra-primary); border: 1px solid var(--pb-extra-border);
    text-decoration: none;
}
.pb-team-social-link:hover { background: var(--pb-extra-primary); color: #fff; }
.pb-team-horizontal { display: flex; flex-direction: column; gap: 1.25rem; }
.pb-team-horizontal .pb-team-card { flex-direction: row; align-items: flex-start; }
.pb-team-horizontal .pb-team-card--align-center { align-items: center; }
.pb-team-spacing--compact { --pb-team-gap: 0.75rem; }
.pb-team-spacing--comfortable { --pb-team-gap: 1.25rem; }
.pb-team-spacing--relaxed { --pb-team-gap: 2rem; }
.pb-team-carousel-item { max-width: 28rem; margin: 0 auto; }

/* ?? Countdown ?? */
.pb-countdown {
    --pb-cd-text: var(--pb-extra-text);
    --pb-cd-bg: transparent;
    --pb-cd-accent: var(--pb-extra-accent);
    color: var(--pb-cd-text);
    background: var(--pb-cd-bg);
    padding: 1.5rem;
    border-radius: 0.5rem;
}
.pb-countdown--align-center { text-align: center; }
.pb-countdown--align-left { text-align: left; }
.pb-countdown--align-right { text-align: right; }
.pb-countdown-title { margin-bottom: 0.5rem; }
.pb-countdown-units {
    display: flex; flex-wrap: wrap; gap: 0.75rem;
    justify-content: inherit;
}
.pb-countdown--align-center .pb-countdown-units { justify-content: center; }
.pb-countdown--align-left .pb-countdown-units { justify-content: flex-start; }
.pb-countdown--align-right .pb-countdown-units { justify-content: flex-end; }
.pb-countdown-unit {
    min-width: 4.5rem; padding: 0.75rem 0.5rem;
}
.pb-countdown--cards .pb-countdown-unit {
    background: color-mix(in srgb, var(--pb-cd-accent) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--pb-cd-accent) 28%, transparent);
    border-radius: 0.5rem;
}
.pb-countdown--inline .pb-countdown-unit { min-width: auto; padding: 0.25rem 0.5rem; }
.pb-countdown-value {
    display: block; font-weight: 700; font-variant-numeric: tabular-nums;
    color: var(--pb-cd-accent); line-height: 1.1;
}
.pb-countdown--small .pb-countdown-value { font-size: 1.5rem; }
.pb-countdown--medium .pb-countdown-value { font-size: 2.25rem; }
.pb-countdown--large .pb-countdown-value { font-size: 3rem; }
.pb-countdown-label { font-size: 0.8rem; color: var(--pb-extra-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.pb-countdown-done { margin-top: 1rem; font-weight: 600; }

/* ?? Announcement ?? */
.block-announcement { margin: 0; padding: 0; }
.pb-announcement {
    --pb-ann-height: 48px;
    --pb-ann-bg: var(--pb-extra-primary);
    --pb-ann-text: #fff;
    background: var(--pb-ann-bg);
    color: var(--pb-ann-text);
    height: var(--pb-ann-height);
    overflow: hidden;
    display: flex;
    align-items: center;
}
.pb-ann-viewport { width: 100%; overflow: hidden; }
.pb-ann-track {
    display: flex; align-items: center; gap: 1.5rem; white-space: nowrap;
    width: max-content; will-change: transform;
}
.pb-announcement--speed-slow .pb-ann-track { animation-duration: 40s; }
.pb-announcement--speed-normal .pb-ann-track { animation-duration: 25s; }
.pb-announcement--speed-fast .pb-ann-track { animation-duration: 14s; }
.pb-announcement--left .pb-ann-track { animation-name: pb-ann-left; animation-timing-function: linear; animation-iteration-count: infinite; }
.pb-announcement--right .pb-ann-track { animation-name: pb-ann-right; animation-timing-function: linear; animation-iteration-count: infinite; }
.pb-announcement--pause-hover:hover .pb-ann-track { animation-play-state: paused; }
.pb-ann-track--static {
    width: 100%; justify-content: center; flex-wrap: wrap; white-space: normal;
    padding: 0 1rem; gap: 0.75rem 1.25rem;
}
.pb-ann-item a { color: inherit; text-decoration: underline; }
.pb-ann-sep { opacity: 0.55; }
@keyframes pb-ann-left {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@keyframes pb-ann-right {
    from { transform: translateX(-50%); }
    to { transform: translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
    .pb-announcement .pb-ann-track { animation: none !important; transform: none !important; }
    .pb-ann-viewport { overflow-x: auto; }
}

/* ?? Tabs ?? */
.pb-tabs { display: flex; gap: 1rem; }
.pb-tabs--top { flex-direction: column; }
.pb-tabs--left { flex-direction: row; }
.pb-tabs--right { flex-direction: row-reverse; }
.pb-tabs-nav { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.pb-tabs--left .pb-tabs-nav,
.pb-tabs--right .pb-tabs-nav { flex-direction: column; min-width: 10rem; flex-shrink: 0; }
.pb-tabs-btn {
    border: 0; background: transparent; color: var(--pb-extra-muted);
    padding: 0.65rem 1rem; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem;
    font: inherit; border-radius: 0.35rem;
}
.pb-tabs--underline .pb-tabs-btn { border-bottom: 2px solid transparent; border-radius: 0; }
.pb-tabs--underline .pb-tabs-btn.is-active { color: var(--pb-extra-primary); border-bottom-color: var(--pb-extra-primary); }
.pb-tabs--pills .pb-tabs-btn.is-active { background: var(--pb-extra-primary); color: #fff; }
.pb-tabs--boxed .pb-tabs-btn { border: 1px solid var(--pb-extra-border); }
.pb-tabs--boxed .pb-tabs-btn.is-active { border-color: var(--pb-extra-primary); color: var(--pb-extra-primary); }
.pb-tabs-panels { flex: 1; min-width: 0; }
.pb-tabs-panel { animation: pb-fade-in 0.25s ease; }
.pb-tabs-panel[hidden] { display: none !important; }
@keyframes pb-fade-in {
    from { opacity: 0; transform: translateY(0.25rem); }
    to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .pb-tabs-panel { animation: none; }
}
@media (max-width: 767.98px) {
    .pb-tabs--left, .pb-tabs--right { flex-direction: column; }
}

/* ?? Accordion ?? */
.pb-acc-item { border-bottom: 1px solid var(--pb-extra-border); }
.pb-accordion--bordered .pb-acc-item {
    border: 1px solid var(--pb-extra-border); border-bottom: 0; margin: 0;
}
.pb-accordion--bordered .pb-acc-item:last-child { border-bottom: 1px solid var(--pb-extra-border); }
.pb-accordion--flush .pb-acc-item { border: 0; border-bottom: 1px solid var(--pb-extra-border); }
.pb-acc-heading { margin: 0; font-size: inherit; }
.pb-acc-trigger {
    width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 0.75rem;
    padding: 0.9rem 0.25rem; border: 0; background: transparent; color: var(--pb-extra-text);
    font: inherit; font-weight: 600; text-align: left; cursor: pointer;
}
.pb-acc-trigger .bi { transition: transform 0.2s ease; }
.pb-acc-item.is-open .pb-acc-trigger .bi { transform: rotate(180deg); }
.pb-acc-panel[hidden] { display: none !important; }
.pb-acc-panel-inner { padding: 0 0.25rem 1rem; }
.pb-accordion--anim-slow .pb-acc-panel-inner { transition: opacity 0.45s ease; }
.pb-accordion--anim-normal .pb-acc-panel-inner { transition: opacity 0.28s ease; }
.pb-accordion--anim-fast .pb-acc-panel-inner { transition: opacity 0.15s ease; }

/* ?? Contact Bootstrap modal ?? */
.pb-contact-bs-modal .modal-content {
    border: 0;
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.22);
}
.pb-contact-bs-modal .modal-body {
    max-height: min(70vh, 32rem);
}
.pb-contact-bs-modal .modal-footer {
    border-top: 0;
    justify-content: flex-end;
    gap: 0.5rem;
}

/* ?? Progress / Skill bars ?? */
.pb-skills {
    --pb-skill-fill: var(--pb-extra-primary);
    --pb-skill-track: color-mix(in srgb, var(--pb-extra-border) 70%, transparent);
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    max-width: 48rem;
}
.pb-skills--align-center { margin-inline: auto; text-align: center; }
.pb-skills--align-right { margin-left: auto; text-align: right; }
.pb-skills--align-left { margin-right: auto; text-align: left; }
.pb-skills--cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 1rem;
    max-width: none;
}
.pb-skills--cards .pb-skill-item {
    background: var(--pb-extra-card);
    border: 1px solid var(--pb-extra-border);
    border-radius: 0.5rem;
    padding: 1rem 1.1rem;
}
.pb-skills--compact { gap: 0.65rem; }
.pb-skill-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}
.pb-skill-label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 600;
    color: var(--pb-extra-text);
}
.pb-skill-value {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--pb-extra-muted);
    font-size: 0.95rem;
}
.pb-skill-desc {
    margin: 0 0 0.45rem;
    font-size: 0.9rem;
    color: var(--pb-extra-muted);
}
.pb-skill-track {
    width: 100%;
    background: var(--pb-skill-track);
    overflow: hidden;
}
.pb-skills--rounded .pb-skill-track,
.pb-skills--rounded .pb-skill-fill { border-radius: 0.4rem; }
.pb-skills--pill .pb-skill-track,
.pb-skills--pill .pb-skill-fill { border-radius: 999px; }
.pb-skills--square .pb-skill-track,
.pb-skills--square .pb-skill-fill { border-radius: 0; }
.pb-skills--h-thin .pb-skill-track { height: 0.4rem; }
.pb-skills--h-medium .pb-skill-track { height: 0.7rem; }
.pb-skills--h-thick .pb-skill-track { height: 1.05rem; }
.pb-skill-fill {
    height: 100%;
    width: var(--pb-skill-width, 0);
    background: var(--pb-skill-fill);
    transition: width 1.1s ease;
}
@media (prefers-reduced-motion: reduce) {
    .pb-skill-fill { transition: none; }
}

/* ?? Calendar ?? */
.pb-cal-list { display: flex; flex-direction: column; gap: 1.25rem; }
.pb-cal-event {
    display: flex; gap: 1rem; flex-wrap: wrap;
    padding: 1rem; border: 1px solid var(--pb-extra-border); border-radius: 0.5rem;
    background: var(--pb-extra-card);
}
.pb-cal-event-media { width: 8rem; flex-shrink: 0; }
.pb-cal-event-media img { width: 100%; height: 6rem; object-fit: cover; border-radius: 0.35rem; }
.pb-cal-event-title { font-size: 1.1rem; margin: 0 0 0.35rem; }
.pb-cal-event-when, .pb-cal-event-where { margin: 0.15rem 0; color: var(--pb-extra-muted); font-size: 0.92rem; }
.pb-cal-month-title { text-align: center; margin-bottom: 1rem; }
.pb-cal-grid {
    display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0.35rem;
}
.pb-cal-dow {
    font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em;
    color: var(--pb-extra-muted); text-align: center; padding: 0.35rem;
}
.pb-cal-day {
    min-height: 5.5rem; border: 1px solid var(--pb-extra-border); border-radius: 0.35rem;
    padding: 0.35rem; background: var(--pb-extra-card);
}
.pb-cal-day.is-empty { background: transparent; border-color: transparent; }
.pb-cal-day.is-today { outline: 2px solid var(--pb-extra-primary); }
.pb-cal-day-num { font-weight: 600; font-size: 0.85rem; display: block; margin-bottom: 0.25rem; }
.pb-cal-day-event { font-size: 0.72rem; line-height: 1.25; margin-bottom: 0.2rem; }
.pb-cal-day-event a { color: var(--pb-extra-primary); text-decoration: none; }
.pb-cal-empty { color: var(--pb-extra-muted); }
@media (max-width: 767.98px) {
    .pb-cal-grid { gap: 0.2rem; }
    .pb-cal-day { min-height: 3.5rem; padding: 0.2rem; }
    .pb-cal-day-event { display: none; }
    .pb-cal-day.has-events .pb-cal-day-num::after {
        content: ""; display: inline-block; width: 0.35rem; height: 0.35rem;
        border-radius: 50%; background: var(--pb-extra-accent); margin-left: 0.2rem; vertical-align: middle;
    }
}

/* ?? Newsletter ?? */
.block-newsletter,
.pb-newsletter {
    --pb-nl-bg: transparent;
    --pb-nl-text: var(--theme-text, var(--bs-body-color, #212529));
}
.pb-newsletter {
    background: var(--pb-nl-bg);
    color: var(--pb-nl-text);
    padding: 1.5rem;
    border-radius: 0.5rem;
}
.pb-newsletter--card {
    border: 1px solid var(--theme-border, #dee2e6);
    box-shadow: 0 0.35rem 1.25rem rgba(0, 0, 0, 0.06);
    background: var(--pb-nl-bg, var(--theme-card, #fff));
}
.pb-newsletter-title { margin: 0 0 0.5rem; font-size: 1.35rem; }
.pb-newsletter-desc { margin-bottom: 1rem; opacity: 0.9; }
.pb-newsletter-fields { display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 0.75rem; }
.pb-newsletter--inline .pb-newsletter-fields {
    flex-direction: row; flex-wrap: wrap; align-items: flex-end;
}
.pb-newsletter--inline .pb-newsletter-field { flex: 1 1 10rem; min-width: 8rem; }
.pb-newsletter--inline .pb-newsletter-submit { align-self: flex-end; }

/* ?? Trust badges ?? */
.pb-trust-item {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    gap: 0.5rem; text-decoration: none; color: inherit; height: 100%;
    padding: 0.75rem;
}
.pb-trust--align-left .pb-trust-item { align-items: flex-start; text-align: left; }
.pb-trust--align-right .pb-trust-item { align-items: flex-end; text-align: right; }
.pb-trust-item--hover { transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease; }
.pb-trust-item--hover-lift:hover { transform: translateY(-0.2rem); box-shadow: 0 8px 18px rgba(15, 23, 42, 0.12); }
.pb-trust-item--hover-fade:hover { opacity: 0.72; }
.pb-trust-img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.pb-trust-img--sm { width: 3rem; height: 3rem; }
.pb-trust-img--md { width: 4.5rem; height: 4.5rem; }
.pb-trust-img--lg { width: 6.5rem; height: 6.5rem; }
.pb-trust-title { font-size: 1rem; margin: 0; font-weight: 600; }
.pb-trust-desc { font-size: 0.9rem; color: var(--theme-muted, #6c757d); }
.pb-trust-horizontal {
    display: flex; flex-wrap: wrap; gap: 1.25rem; justify-content: center;
}
.pb-trust--align-left.pb-trust-horizontal { justify-content: flex-start; }
.pb-trust--align-right.pb-trust-horizontal { justify-content: flex-end; }
.pb-trust-spacing--compact { gap: 0.75rem; }
.pb-trust-spacing--comfortable { gap: 1.25rem; }
.pb-trust-spacing--relaxed { gap: 2rem; }
.pb-trust-carousel-item { max-width: 20rem; margin: 0 auto; }

/* ?? Section band ?? */
.pb-section {
    --pb-section-bg: transparent;
    --pb-section-bg-image: none;
    --pb-section-padding: 3rem;
    --pb-section-margin: 0;
    --pb-section-min-h: 0;
    --pb-section-border: none;
    --pb-section-shadow: none;
    --pb-section-overlay: #000;
    --pb-section-overlay-opacity: 0;
    position: relative;
    isolation: isolate;
    background-color: var(--pb-section-bg);
    background-image: var(--pb-section-bg-image);
    background-size: cover;
    background-position: center;
    padding: var(--pb-section-padding);
    margin: var(--pb-section-margin);
    min-height: var(--pb-section-min-h);
    border: var(--pb-section-border);
    box-shadow: var(--pb-section-shadow);
}
.pb-section--full { width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
/* Contained sections share .container — keep horizontal gutters when padding shorthand is set */
.pb-section.container,
.pb-section.container-fluid {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}
.pb-section-video {
    position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none;
}
.pb-section-video video { width: 100%; height: 100%; object-fit: cover; }
.pb-section-overlay {
    position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background: var(--pb-section-overlay);
    opacity: var(--pb-section-overlay-opacity);
}
.pb-section-inner { position: relative; z-index: 2; }
.pb-section-inner--full { width: 100%; padding-inline: 1rem; }

/* ?? Icon features ?? */
.pb-features {
    --pb-feat-icon: var(--theme-primary, var(--bs-primary, #0d6efd));
    --pb-feat-text: var(--theme-text, var(--bs-body-color, #212529));
    --pb-feat-bg: transparent;
}
.pb-feature-item {
    display: flex; gap: 0.85rem; color: var(--pb-feat-text); text-decoration: none;
    background: var(--pb-feat-bg); height: 100%; padding: 0.5rem;
}
.pb-features--top .pb-feature-item { flex-direction: column; }
.pb-features--left .pb-feature-item { flex-direction: row; align-items: flex-start; }
.pb-features--right .pb-feature-item { flex-direction: row-reverse; align-items: flex-start; text-align: right; }
.pb-features--right .pb-feature-body { text-align: right; }
.pb-feature-icon {
    color: var(--pb-feat-icon); font-size: 1.75rem; line-height: 1;
    display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.pb-feature-item--circle .pb-feature-icon,
.pb-feature-item--square .pb-feature-icon {
    width: 3rem; height: 3rem;
    background: color-mix(in srgb, var(--pb-feat-icon) 12%, transparent);
}
.pb-feature-item--circle .pb-feature-icon { border-radius: 50%; }
.pb-feature-item--square .pb-feature-icon { border-radius: 0.35rem; }
.pb-feature-title { font-size: 1.1rem; margin: 0 0 0.35rem; font-weight: 600; }
.pb-feature-desc { font-size: 0.95rem; color: var(--theme-muted, #6c757d); }
.pb-features-spacing--compact { --bs-gutter-y: 0.75rem; }
.pb-features-spacing--relaxed { --bs-gutter-y: 2rem; }

/* ?? Comparison table ?? */
.pb-compare { overflow-x: auto; }
.pb-compare--header-dark .pb-compare-table thead th {
    background: var(--theme-text, #0f172a);
    color: #fff;
}
.pb-compare--header-accent .pb-compare-table thead th {
    background: color-mix(in srgb, var(--theme-primary, #0d6efd) 18%, transparent);
    color: var(--theme-primary, #0d6efd);
}
.pb-compare--no-border .pb-compare-table th,
.pb-compare--no-border .pb-compare-table td {
    border-color: transparent;
}
.pb-compare-table {
    width: 100%; border-collapse: collapse; min-width: 36rem;
}
.pb-compare-table th,
.pb-compare-table td {
    padding: 0.85rem 1rem; border: 1px solid var(--theme-border, #dee2e6);
    vertical-align: top;
}
.pb-compare-table thead th {
    background: color-mix(in srgb, var(--theme-primary, #0d6efd) 8%, transparent);
    font-weight: 600;
}
.pb-compare-table .is-featured {
    background: color-mix(in srgb, var(--theme-accent, var(--theme-primary, #0d6efd)) 10%, transparent);
    box-shadow: inset 0 0 0 2px var(--theme-primary, #0d6efd);
}
.pb-compare-check--yes { color: #198754; font-weight: 700; }
.pb-compare-check--no { color: #dc3545; font-weight: 700; }
@media (max-width: 767.98px) {
    .pb-compare--cardstack .pb-compare-table,
    .pb-compare--cardstack .pb-compare-table thead,
    .pb-compare--cardstack .pb-compare-table tbody,
    .pb-compare--cardstack .pb-compare-table th,
    .pb-compare--cardstack .pb-compare-table td,
    .pb-compare--cardstack .pb-compare-table tr { display: block; width: 100%; min-width: 0; }
    .pb-compare--cardstack .pb-compare-table thead { display: none; }
    .pb-compare--cardstack .pb-compare-table tr {
        margin-bottom: 1rem; border: 1px solid var(--theme-border, #dee2e6);
        border-radius: 0.5rem; overflow: hidden; background: var(--theme-card, #fff);
    }
    .pb-compare--cardstack .pb-compare-table td {
        border: 0; border-bottom: 1px solid var(--theme-border, #dee2e6);
        display: flex; justify-content: space-between; gap: 1rem;
    }
    .pb-compare--cardstack .pb-compare-table td:last-child { border-bottom: 0; }
    .pb-compare--cardstack .pb-compare-table td::before {
        content: attr(data-label); font-weight: 600; flex: 0 1 45%;
    }
}

/* ?? Breadcrumbs ?? */
.pb-breadcrumbs {
    --pb-bc-text: var(--theme-muted, #6c757d);
    --pb-bc-link: var(--theme-primary, var(--bs-primary, #0d6efd));
    color: var(--pb-bc-text); padding: 0.75rem 0;
}
.pb-breadcrumbs-list { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; margin: 0; padding: 0; }
.pb-breadcrumbs--center .pb-breadcrumbs-list { justify-content: center; }
.pb-breadcrumbs--right .pb-breadcrumbs-list { justify-content: flex-end; }
.pb-breadcrumbs-item { display: inline-flex; align-items: center; gap: 0.35rem; }
.pb-breadcrumbs-item a { color: var(--pb-bc-link); text-decoration: none; }
.pb-breadcrumbs-item a:hover { text-decoration: underline; }
.pb-breadcrumbs-item.is-current { color: var(--theme-text, #212529); font-weight: 600; }
.pb-breadcrumbs-sep { opacity: 0.55; }
.pb-breadcrumbs-icon { margin-right: 0.15rem; opacity: 0.75; }

/* ?? Spacer ?? */
.pb-spacer {
    --pb-spacer-d: 3rem;
    --pb-spacer-t: 2rem;
    --pb-spacer-m: 1.5rem;
    display: block; width: 100%; height: var(--pb-spacer-d); pointer-events: none;
}
@media (max-width: 991.98px) {
    .pb-spacer { height: var(--pb-spacer-t); }
}
@media (max-width: 575.98px) {
    .pb-spacer { height: var(--pb-spacer-m); }
}
@media (min-width: 992px) {
    .pb-spacer--hide-d { display: none !important; }
}
@media (min-width: 576px) and (max-width: 991.98px) {
    .pb-spacer--hide-t { display: none !important; }
}
@media (max-width: 575.98px) {
    .pb-spacer--hide-m { display: none !important; }
}

/* —— Product families —— */
.pb-family-card {
    display: flex; flex-direction: column; height: 100%;
    text-decoration: none; color: inherit; gap: 0.75rem;
    transition: transform .25s ease, box-shadow .25s ease;
}
.pb-family-card--elevated,
.pb-family-card--soft,
.pb-family-card--bordered {
    background: var(--theme-card, #fff);
    border: 1px solid var(--theme-border, #dee2e6);
    padding: 0.85rem;
}
.pb-family-card--elevated { box-shadow: 0 .25rem 1rem rgba(0,0,0,.06); }
.pb-family-card--soft { box-shadow: 0 .15rem .6rem rgba(0,0,0,.04); border-color: transparent; }
.pb-family-card--bordered { box-shadow: none; }
.pb-family-card--plain { background: transparent; border: 0; padding: 0; }

/* Layout: Cards — flush media, padded body, clear card chrome (distinct from grid) */
.pb-families-block--cards .pb-family-card {
    overflow: hidden;
    gap: 0;
    background: var(--theme-card, #fff);
    border: 1px solid var(--theme-border, #dee2e6);
    box-shadow: 0 .35rem 1.15rem rgba(15, 23, 42, .08);
}
.pb-families-block--cards .pb-family-card--elevated,
.pb-families-block--cards .pb-family-card--soft,
.pb-families-block--cards .pb-family-card--bordered,
.pb-families-block--cards .pb-family-card--plain {
    padding: 0;
}
.pb-families-block--cards .pb-family-media {
    border-radius: 0;
    width: 100%;
}
.pb-families-block--cards .pb-family-body {
    padding: 1rem 1.1rem 1.15rem;
    gap: .4rem;
}
.pb-families-block--cards .pb-family-name {
    font-size: 1.05rem;
    letter-spacing: -0.01em;
}
.pb-families-block--cards.pb-families-hover--lift .pb-family-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 .65rem 1.75rem rgba(15, 23, 42, .12);
}

/* Layout: Grid — image-forward tiles, lighter chrome */
.pb-families-block--grid .pb-family-card--plain .pb-family-media {
    border-radius: inherit;
}

.pb-families-radius--none .pb-family-card,
.pb-families-radius--none .pb-family-media { border-radius: 0; }
.pb-families-radius--sm .pb-family-card,
.pb-families-radius--sm .pb-family-media { border-radius: .35rem; }
.pb-families-radius--md .pb-family-card,
.pb-families-radius--md .pb-family-media { border-radius: .65rem; }
.pb-families-radius--lg .pb-family-card,
.pb-families-radius--lg .pb-family-media { border-radius: 1rem; }
.pb-families-radius--xl .pb-family-card,
.pb-families-radius--xl .pb-family-media { border-radius: 1.35rem; }

.pb-families-shadow--sm .pb-family-card { box-shadow: 0 .2rem .75rem rgba(0,0,0,.06); }
.pb-families-shadow--md .pb-family-card { box-shadow: 0 .4rem 1.25rem rgba(0,0,0,.1); }
.pb-families-shadow--lg .pb-family-card { box-shadow: 0 .65rem 1.75rem rgba(0,0,0,.14); }

.pb-families-hover--lift .pb-family-card:hover { transform: translateY(-4px); }
.pb-families-hover--glow .pb-family-card:hover { box-shadow: 0 0 0 3px color-mix(in srgb, var(--theme-primary, #0d6e6e) 28%, transparent); }
.pb-families-hover--zoom .pb-family-card:hover { transform: scale(1.015); }

.pb-family-media {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 0.35rem;
    background: color-mix(in srgb, var(--theme-border, #dee2e6) 40%, transparent);
}
.pb-families-aspect--1x1 .pb-family-media { aspect-ratio: 1 / 1; }
.pb-families-aspect--4x3 .pb-family-media { aspect-ratio: 4 / 3; }
.pb-families-aspect--16x9 .pb-family-media { aspect-ratio: 16 / 9; }
.pb-families-aspect--custom .pb-family-media { aspect-ratio: var(--pb-fam-aspect, 4 / 3); }

.pb-family-media img {
    width: 100%; height: 100%; display: block;
    object-fit: cover;
    transition: transform .35s ease;
}
.pb-families-fit--contain .pb-family-media img { object-fit: contain; }
.pb-families-fit--original .pb-family-media {
    aspect-ratio: auto;
    min-height: 8rem;
}
.pb-families-fit--original .pb-family-media img {
    height: auto; object-fit: contain;
}
.pb-families-zoom .pb-family-card:hover .pb-family-media img { transform: scale(1.06); }

.pb-family-overlay {
    position: absolute; inset: 0; pointer-events: none;
    opacity: var(--pb-fam-overlay-o, .4);
}
.pb-families-overlay--light .pb-family-overlay { background: rgba(255,255,255,.7); }
.pb-families-overlay--dark .pb-family-overlay { background: rgba(15,23,42,.55); }
.pb-families-overlay--gradient .pb-family-overlay {
    background: linear-gradient(180deg, transparent 35%, rgba(15,23,42,.65));
}

.pb-family-media--placeholder {
    display: flex; align-items: center; justify-content: center;
    font-size: 2.25rem; color: var(--theme-muted, #6c757d);
    background: color-mix(in srgb, var(--theme-primary, #0d6e6e) 8%, #f4f7f9);
}
.pb-family-media-icon {
    position: absolute; left: .65rem; bottom: .65rem;
    width: 2.1rem; height: 2.1rem; border-radius: 999px;
    display: grid; place-items: center;
    background: rgba(255,255,255,.92); color: var(--theme-primary, #0d6e6e);
    font-size: 1rem; box-shadow: 0 .2rem .5rem rgba(0,0,0,.12);
}
.pb-family-body { display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.pb-families-align--center .pb-family-body { text-align: center; align-items: center; }
.pb-families-align--right .pb-family-body { text-align: right; align-items: flex-end; }
.pb-family-body-icon { font-size: 1.35rem; color: var(--theme-primary, #0d6e6e); line-height: 1; }
.pb-family-name { font-size: 1.1rem; margin: 0; font-weight: 600; }
.pb-family-desc {
    margin: 0; font-size: 0.9rem; color: var(--theme-muted, #6c757d);
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.pb-family-count { font-size: .82rem; color: var(--theme-muted, #6c757d); font-weight: 600; }
.pb-family-cta { margin-top: .35rem; align-self: flex-start; }
.pb-families-align--center .pb-family-cta { align-self: center; }
.pb-families-align--right .pb-family-cta { align-self: flex-end; }
.pb-families-carousel-item { max-width: 22rem; margin: 0 auto; }

@media (prefers-reduced-motion: reduce) {
    .pb-family-card,
    .pb-family-media img { transition: none !important; }
    .pb-families-hover--lift .pb-family-card:hover,
    .pb-families-hover--zoom .pb-family-card:hover { transform: none; }
    .pb-families-zoom .pb-family-card:hover .pb-family-media img { transform: none; }
}

/* ?? WhatsApp ?? */
.pb-whatsapp {
    display: inline-flex; align-items: center; gap: 0.5rem; text-decoration: none;
}
.pb-whatsapp--floating {
    position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1080;
    background: #25d366; color: #fff !important;
    width: 3.5rem; height: 3.5rem; border-radius: 50%;
    justify-content: center; box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
    transition: transform 0.2s ease;
}
.pb-whatsapp--floating:hover { transform: scale(1.06); color: #fff; }
.pb-whatsapp--floating .pb-whatsapp-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.pb-whatsapp--floating i { font-size: 1.6rem; }
.pb-whatsapp--inline i { font-size: 1.2rem; }

/* ?? Product carousel ?? */
.pb-product-carousel-shell {
    position: relative;
}
.pb-product-carousel--arrows-outside .pb-product-carousel-shell {
    padding-inline: 2.75rem;
}
.pb-product-carousel-scroll {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 0.5rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.pb-product-carousel-scroll-item {
    flex: 0 0 calc(25% - 0.75rem);
    min-width: 10rem;
    scroll-snap-align: start;
}
@media (max-width: 1199.98px) {
    .pb-product-carousel-scroll-item { flex-basis: calc(33.333% - 0.75rem); }
}
@media (max-width: 991.98px) {
    .pb-product-carousel-scroll-item { flex-basis: calc(33.333% - 0.75rem); }
}
@media (max-width: 767.98px) {
    .pb-product-carousel-scroll-item { flex-basis: calc(50% - 0.5rem); min-width: 8.5rem; }
}
.pb-product-carousel-btn {
    position: absolute;
    top: 42%;
    transform: translateY(-50%);
    z-index: 3;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid color-mix(in srgb, #fff 35%, transparent);
    border-radius: var(--theme-radius, 999px);
    /* High-contrast default: dark translucent disc + white icon (works on white/dark/photos) */
    background: var(
        --pb-pcar-arrow-bg,
        var(--theme-carousel-arrow-bg, rgba(15, 23, 42, 0.78))
    );
    color: var(
        --pb-pcar-arrow-color,
        var(--theme-carousel-arrow-icon, #ffffff)
    );
    box-shadow:
        0 2px 8px rgba(15, 23, 42, 0.28),
        0 0 0 1px rgba(15, 23, 42, 0.12);
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    pointer-events: auto;
}
.pb-product-carousel-btn:hover {
    background: var(
        --pb-pcar-arrow-bg,
        var(--theme-carousel-arrow-bg, rgba(15, 23, 42, 0.92))
    );
    color: var(
        --pb-pcar-arrow-color,
        var(--theme-carousel-arrow-icon, #ffffff)
    );
    box-shadow:
        0 4px 14px rgba(15, 23, 42, 0.35),
        0 0 0 1px rgba(15, 23, 42, 0.18);
}
.pb-product-carousel-btn:focus-visible {
    outline: 2px solid var(--pb-pcar-arrow-color, var(--theme-focus, #fff));
    outline-offset: 2px;
    box-shadow:
        0 0 0 3px var(--pb-pcar-arrow-bg, rgba(15, 23, 42, 0.78)),
        0 4px 14px rgba(15, 23, 42, 0.3);
}
.pb-product-carousel-btn:disabled {
    opacity: 0.4;
    pointer-events: none;
}
.pb-product-carousel-btn i {
    font-size: 1.15rem;
    line-height: 1;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.35));
}
.pb-product-carousel-prev { left: 0; }
.pb-product-carousel-next { right: 0; }
.pb-product-carousel--arrows-outside .pb-product-carousel-prev { left: 0; }
.pb-product-carousel--arrows-outside .pb-product-carousel-next { right: 0; }
.pb-product-carousel--arrows-inside .pb-product-carousel-prev { left: 0.35rem; }
.pb-product-carousel--arrows-inside .pb-product-carousel-next { right: 0.35rem; }
.pb-product-carousel--arrows-inside .pb-product-carousel-shell {
    padding-inline: 0;
}
@media (max-width: 767.98px) {
    .pb-product-carousel--arrows-outside .pb-product-carousel-shell {
        padding-inline: 2.25rem;
    }
    .pb-product-carousel-btn {
        width: 2.15rem;
        height: 2.15rem;
        top: 36%;
    }
    /* Keep arrows clear of product media / body CTAs on small screens */
    .pb-product-carousel--arrows-inside .pb-product-carousel-btn {
        top: auto;
        bottom: 0.35rem;
        transform: none;
    }
    .pb-product-carousel--arrows-inside .pb-product-carousel-prev { left: 0.5rem; }
    .pb-product-carousel--arrows-inside .pb-product-carousel-next { right: 0.5rem; }
}
.pb-product-carousel-bs .carousel-indicators {
    position: static;
    margin: 0.85rem 0 0;
    display: flex;
    justify-content: center;
    gap: 0.45rem;
}
.pb-product-carousel-bs .carousel-indicators [data-bs-target] {
    width: 0.55rem;
    height: 0.55rem;
    margin: 0;
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--pb-pcar-dot-inactive, rgba(15, 23, 42, 0.55)) 70%, #fff);
    border-radius: 999px;
    background-color: var(
        --pb-pcar-dot-inactive,
        var(--theme-carousel-indicator-inactive, rgba(15, 23, 42, 0.35))
    );
    opacity: 1;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.55);
    transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.pb-product-carousel-bs .carousel-indicators .active {
    background-color: var(
        --pb-pcar-dot-active,
        var(--theme-carousel-indicator, var(--theme-primary, #0f172a))
    );
    border-color: color-mix(in srgb, var(--pb-pcar-dot-active, #0f172a) 80%, #fff);
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.75),
        0 1px 3px rgba(15, 23, 42, 0.25);
    transform: scale(1.15);
}
.pb-product-carousel-bs .carousel-indicators [data-bs-target]:focus-visible {
    outline: 2px solid var(--pb-pcar-dot-active, var(--theme-primary, #0f172a));
    outline-offset: 3px;
}
.pb-product-carousel-bs:focus-visible {
    outline: 2px solid var(--theme-primary, #0d6efd);
    outline-offset: 4px;
}
.product-card-excerpt { line-height: 1.35; }

/* Social links */
.pb-social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.pb-social--align-center { justify-content: center; }
.pb-social--align-left { justify-content: flex-start; }
.pb-social--align-right { justify-content: flex-end; }
.pb-social-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--pb-social-color, var(--theme-primary, #0f172a));
    text-decoration: none;
    transition: transform 0.15s ease, opacity 0.15s ease;
}
.pb-social-link:hover { opacity: 0.92; transform: translateY(-2px); }
.pb-social--icons .pb-social-link {
    width: 2.5rem;
    height: 2.5rem;
    justify-content: center;
    border-radius: 999px;
    background: color-mix(in srgb, var(--pb-social-color, #0f172a) 10%, transparent);
}
.pb-social--buttons .pb-social-link {
    padding: 0.45rem 0.9rem;
    border-radius: 0.4rem;
    border: 1px solid color-mix(in srgb, var(--pb-social-color, #0f172a) 25%, transparent);
    background: color-mix(in srgb, var(--pb-social-color, #0f172a) 6%, #fff);
}
.pb-social--circles .pb-social-link {
    width: 2.75rem;
    height: 2.75rem;
    justify-content: center;
    border-radius: 999px;
    color: #fff;
    background: var(--pb-social-color, var(--theme-primary, #0f172a));
}
.pb-social--sm .pb-social-link { font-size: 0.9rem; }
.pb-social--sm.pb-social--icons .pb-social-link,
.pb-social--sm.pb-social--circles .pb-social-link { width: 2rem; height: 2rem; }
.pb-social--lg .pb-social-link { font-size: 1.25rem; }
.pb-social--lg.pb-social--icons .pb-social-link,
.pb-social--lg.pb-social--circles .pb-social-link { width: 3rem; height: 3rem; }
.pb-social--brand .pb-social-link--facebook { --pb-social-brand: #1877f2; }
.pb-social--brand .pb-social-link--instagram { --pb-social-brand: #e4405f; }
.pb-social--brand .pb-social-link--linkedin { --pb-social-brand: #0a66c2; }
.pb-social--brand .pb-social-link--twitter { --pb-social-brand: #111111; }
.pb-social--brand .pb-social-link--youtube { --pb-social-brand: #ff0000; }
.pb-social--brand .pb-social-link--tiktok { --pb-social-brand: #010101; }
.pb-social--brand .pb-social-link--whatsapp { --pb-social-brand: #25d366; }
.pb-social--brand .pb-social-link--github { --pb-social-brand: #24292f; }
.pb-social--brand .pb-social-link--pinterest { --pb-social-brand: #bd081c; }
.pb-social--brand .pb-social-link--telegram { --pb-social-brand: #26a5e4; }
.pb-social--brand .pb-social-link--email { --pb-social-brand: #0f172a; }
.pb-social--brand.pb-social--icons .pb-social-link {
    color: var(--pb-social-brand, var(--pb-social-color, var(--theme-primary, #0f172a)));
    background: color-mix(in srgb, var(--pb-social-brand, var(--pb-social-color, #0f172a)) 12%, transparent);
}
.pb-social--brand.pb-social--circles .pb-social-link {
    background: var(--pb-social-brand, var(--pb-social-color, var(--theme-primary, #0f172a)));
    color: #fff;
}
.pb-social--brand.pb-social--buttons .pb-social-link {
    color: var(--pb-social-brand, var(--pb-social-color, var(--theme-primary, #0f172a)));
    border-color: color-mix(in srgb, var(--pb-social-brand, #0f172a) 30%, transparent);
    background: color-mix(in srgb, var(--pb-social-brand, #0f172a) 8%, #fff);
}

.pb-html-inner { max-width: var(--pb-html-max-width, none); }
.pb-html-inner--left { margin-right: auto; }
.pb-html-inner--center { margin-left: auto; margin-right: auto; }
.pb-html-inner--right { margin-left: auto; }
.pb-html-inner.is-framed {
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--theme-border, #cbd5e1) 80%, transparent);
    border-radius: var(--radius, 0.5rem);
    background: color-mix(in srgb, var(--theme-secondary, #13202e) 3%, #fff);
}
.pb-html-inner :where(iframe, img, video) { max-width: 100%; }

.pb-cal-toolbar .block-section-title { margin-bottom: 0; }
.pb-cal-ics { white-space: nowrap; }

/* Pages feed */
.pb-pages-feed--list .pb-pages-feed-item {
    padding: 0.85rem 0;
    border-bottom: 1px solid color-mix(in srgb, var(--theme-border, #cbd5e1) 70%, transparent);
}
.pb-pages-feed--list .pb-pages-feed-item:last-child { border-bottom: 0; }
.pb-pages-feed-link {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: baseline;
    text-decoration: none;
    color: inherit;
}
.pb-pages-feed-title { font-weight: 600; }
.pb-pages-feed-date {
    font-size: 0.85rem;
    color: var(--theme-muted, #64748b);
}
.pb-pages-feed-excerpt {
    margin-top: 0.35rem;
    color: var(--theme-muted, #64748b);
    font-size: 0.95rem;
}
.pb-pages-feed-card {
    height: 100%;
    padding: 1rem 0;
}
.pb-pages-feed-card .pb-pages-feed-title a {
    text-decoration: none;
    color: inherit;
}
.pb-pages-feed-card .pb-pages-feed-title a:hover {
    color: var(--theme-primary, #0d6efd);
}

/* Custom form */
.pb-custom-form {
    max-width: 40rem;
}
.pb-custom-form-result {
    padding: 1rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, #198754 12%, #fff);
}

/* Video embed responsive iframe */
.pb-video-iframe-wrap,
.cms-video-embed .pb-video-iframe-wrap {
    position: relative;
    width: 100%;
    max-width: var(--cms-video-width, 100%);
    aspect-ratio: 16 / 9;
    background: #0f172a;
    overflow: hidden;
}
.pb-video-iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.cms-video-align-center .pb-video-iframe-wrap { margin-inline: auto; }
.cms-video-align-right .pb-video-iframe-wrap { margin-left: auto; }

/* Hero mobile height overrides */
@media (max-width: 767.98px) {
    .block-hero--mheight-small { min-height: min(42vh, 360px) !important; }
    .block-hero--mheight-medium { min-height: min(62vh, 560px) !important; }
    .block-hero--mheight-large { min-height: min(78vh, 720px) !important; }
    .block-hero--mheight-fullscreen { min-height: 100vh !important; min-height: 100dvh !important; }
}



/* Social links */
.pb-social-links,
.pb-social { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.pb-social-links--left, .pb-social--align-left { justify-content: flex-start; }
.pb-social-links--center, .pb-social--align-center { justify-content: center; }
.pb-social-links--right, .pb-social--align-right { justify-content: flex-end; }
.pb-social-links--sm a, .pb-social--sm a { font-size: 1rem; }
.pb-social-links--md a, .pb-social--md a { font-size: 1.35rem; }
.pb-social-links--lg a, .pb-social--lg a { font-size: 1.75rem; }
.pb-social-link,
.pb-social a {
  color: var(--pb-social-color, var(--pb-social-icon, var(--theme-primary, #0d6efd)));
  text-decoration: none;
  display: inline-flex; align-items: center; gap: 0.4rem;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.pb-social-link:hover,
.pb-social a:hover { opacity: 0.85; transform: translateY(-1px); }
.pb-social-links--buttons .pb-social-link,
.pb-social--buttons a {
  padding: 0.45rem 0.85rem;
  border-radius: var(--theme-radius, 0.5rem);
  background: color-mix(in srgb, var(--pb-social-color, var(--theme-primary, #0d6efd)) 12%, transparent);
}

/* Pages feed */
.pb-pages-feed-grid { display: grid; gap: 1.25rem; }
.pb-pages-feed-grid--1 { grid-template-columns: 1fr; }
.pb-pages-feed-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pb-pages-feed-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pb-pages-feed-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 991.98px) {
  .pb-pages-feed-grid--3, .pb-pages-feed-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .pb-pages-feed-grid--2, .pb-pages-feed-grid--3, .pb-pages-feed-grid--4 { grid-template-columns: 1fr; }
}
.pb-pages-feed-item,
.pb-pages-feed-card { display: block; text-decoration: none; color: inherit; }
.pb-pages-feed-item h3,
.pb-pages-feed-title { margin: 0 0 0.35rem; font-size: 1.1rem; }
.pb-pages-feed-excerpt { color: var(--theme-muted, #6c757d); font-size: 0.95rem; margin: 0; }
.pb-pages-feed-date { font-size: 0.85rem; color: var(--theme-muted, #6c757d); }
.pb-pages-feed--list .pb-pages-feed-item { padding: 0.85rem 0; border-bottom: 1px solid color-mix(in srgb, var(--theme-text, #0f172a) 10%, transparent); }
.pb-pages-feed-link { color: inherit; text-decoration: none; display: block; }
.pb-pages-feed-link:hover .pb-pages-feed-title { text-decoration: underline; }

/* Blog block */
.pb-blog-header .block-section-title { margin-bottom: 0.35rem; }
.pb-blog-view-all {
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.pb-blog-view-all:hover { text-decoration: underline; }
.pb-blog-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  color: inherit;
  background: var(--theme-surface, #fff);
  border-radius: var(--theme-radius, 0.75rem);
}
.pb-blog-card--elevated {
  box-shadow: 0 8px 24px color-mix(in srgb, var(--theme-text, #0f172a) 10%, transparent);
}
.pb-blog-card--bordered {
  border: 1px solid color-mix(in srgb, var(--theme-text, #0f172a) 12%, transparent);
}
.pb-blog-card--flat { background: transparent; }
.pb-blog-cover {
  display: block;
  overflow: hidden;
  background: color-mix(in srgb, var(--theme-muted, #94a3b8) 18%, transparent);
}
.pb-blog-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}
.pb-blog-card:hover .pb-blog-cover img { transform: scale(1.03); }
.pb-blog-cover--landscape { aspect-ratio: 16 / 10; }
.pb-blog-cover--square { aspect-ratio: 1 / 1; }
.pb-blog-cover--auto { aspect-ratio: auto; }
.pb-blog-cover--auto img { height: auto; object-fit: contain; }
.pb-blog-body { padding: 1rem 1.1rem 1.15rem; display: flex; flex-direction: column; gap: 0.4rem; flex: 1; }
.pb-blog-card--flat .pb-blog-body { padding-left: 0; padding-right: 0; }
.pb-blog-title { margin: 0; font-size: 1.15rem; line-height: 1.35; }
.pb-blog-title a { color: inherit; text-decoration: none; }
.pb-blog-title a:hover { text-decoration: underline; }
.pb-blog-date {
  font-size: 0.85rem;
  color: var(--theme-muted, #6c757d);
}
.pb-blog-excerpt {
  margin: 0;
  color: var(--theme-muted, #64748b);
  font-size: 0.95rem;
  line-height: 1.5;
  flex: 1;
}
.pb-blog-more {
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none;
  margin-top: 0.25rem;
}
.pb-blog-more:hover { text-decoration: underline; }
.pb-blog-card--featured {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 0;
}
.pb-blog-card--featured .pb-blog-cover { min-height: 100%; aspect-ratio: auto; }
.pb-blog-card--featured .pb-blog-body {
  padding: 1.5rem 1.75rem;
  justify-content: center;
}
.pb-blog-card--featured .pb-blog-title { font-size: 1.6rem; }
.pb-blog-list-item {
  display: flex;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--theme-text, #0f172a) 10%, transparent);
}
.pb-blog-list-item:last-child { border-bottom: 0; }
.pb-blog-list-thumb {
  flex: 0 0 7.5rem;
  width: 7.5rem;
  overflow: hidden;
  border-radius: var(--theme-radius, 0.5rem);
  background: color-mix(in srgb, var(--theme-muted, #94a3b8) 18%, transparent);
}
.pb-blog-list-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pb-blog-list--compact .pb-blog-list-thumb { flex-basis: 4.5rem; width: 4.5rem; }
.pb-blog-list--compact .pb-blog-list-item { padding: 0.65rem 0; }
.pb-blog-list-content { min-width: 0; flex: 1; }
@media (max-width: 767.98px) {
  .pb-blog-card--featured { grid-template-columns: 1fr; }
  .pb-blog-list-thumb { flex-basis: 5.5rem; width: 5.5rem; }
}

/* Custom form */
.pb-custom-form { max-width: 42rem; }
.pb-custom-form-result { padding: 1rem; border-radius: var(--theme-radius, 0.5rem); background: color-mix(in srgb, var(--theme-primary, #0d6efd) 10%, transparent); }

/* Video embeds */
.cms-video-embed,
.pb-video-iframe-wrap { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #0f172a; border-radius: var(--theme-radius, 0.5rem); overflow: hidden; }
.cms-video-embed iframe,
.pb-video-iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
