/* CMS Page Builder — responsive, animation, layout */
[x-cloak] { display: none !important; }
.cms-page-blocks {
    display: flex;
    flex-direction: column;
}

.cms-block--hide-mobile {
    display: none;
}
@media (min-width: 640px) {
    .cms-block--hide-mobile {
        display: block;
    }
    .cms-block--hide-tablet {
        display: none;
    }
}
@media (min-width: 1024px) {
    .cms-block--hide-tablet {
        display: block;
    }
    .cms-block--hide-desktop {
        display: none;
    }
}

.cms-block--pt-none { padding-top: 0; }
.cms-block--pt-sm { padding-top: 1.5rem; }
.cms-block--pt-md { padding-top: 2.5rem; }
.cms-block--pt-lg { padding-top: 4rem; }
.cms-block--pt-xl { padding-top: 5.5rem; }

.cms-block--pb-none { padding-bottom: 0; }
.cms-block--pb-sm { padding-bottom: 1.5rem; }
.cms-block--pb-md { padding-bottom: 2.5rem; }
.cms-block--pb-lg { padding-bottom: 4rem; }
.cms-block--pb-xl { padding-bottom: 5.5rem; }

.cms-block--spacing-compact { --spacing-scale: 0.75; }
.cms-block--spacing-relaxed { --spacing-scale: 1.25; }

.cms-block--mx-none { margin-top: 0; }
.cms-block--mx-sm { margin-top: 0.75rem; }
.cms-block--mx-md { margin-top: 1.5rem; }
.cms-block--mx-lg { margin-top: 2.5rem; }

.cms-block--mb-none { margin-bottom: 0; }
.cms-block--mb-sm { margin-bottom: 0.75rem; }
.cms-block--mb-md { margin-bottom: 1.5rem; }
.cms-block--mb-lg { margin-bottom: 2.5rem; }

.cms-block--width-full > * { max-width: none; }
.cms-block--width-narrow > * { max-width: 42rem; margin-inline: auto; }
.cms-block--width-wide > * { max-width: 72rem; margin-inline: auto; }

.cms-block--align-left { text-align: left; }
.cms-block--align-center { text-align: center; }
.cms-block--align-right { text-align: right; }

@keyframes cms-fade-up {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes cms-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes cms-slide-left {
    from { opacity: 0; transform: translateX(24px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes cms-slide-right {
    from { opacity: 0; transform: translateX(-24px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes cms-zoom-in {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

.cms-block--animate {
    animation-fill-mode: both;
    animation-timing-function: ease-out;
}
.cms-animate-fade-up { animation-name: cms-fade-up; }
.cms-animate-fade-in { animation-name: cms-fade-in; }
.cms-animate-slide-left { animation-name: cms-slide-left; }
.cms-animate-slide-right { animation-name: cms-slide-right; }
.cms-animate-zoom-in { animation-name: cms-zoom-in; }

@keyframes cms-bounce-in {
    from { opacity: 0; transform: translateY(24px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
.cms-animate-bounce-in { animation-name: cms-bounce-in; }

.cms-block__inner {
    width: 100%;
}

.cms-animate-duration-fast { animation-duration: 0.35s; }
.cms-animate-duration-normal { animation-duration: 0.6s; }
.cms-animate-duration-slow { animation-duration: 0.9s; }

@media (prefers-reduced-motion: reduce) {
    .cms-block--animate {
        animation: none !important;
    }
}

/* Slider */
.cms-slider { position: relative; overflow: hidden; }
.cms-slider .cms-slider__track { display: flex; width: 100%; }
.cms-slider__track { display: flex; transition: transform 0.4s ease; }
.cms-slider__slide { min-width: 100%; flex-shrink: 0; }

/* Tabs */
.cms-tabs__nav { display: flex; flex-wrap: wrap; gap: 0.5rem; border-bottom: 1px solid #e2e8f0; margin-bottom: 1rem; }
.cms-tabs__btn { padding: 0.5rem 1rem; border: none; background: transparent; cursor: pointer; font-weight: 600; color: #64748b; }
.cms-tabs__btn[aria-selected="true"] { color: #2563eb; border-bottom: 2px solid #2563eb; margin-bottom: -1px; }
.cms-tabs__panel[hidden] { display: none; }

/* Accordion */
.cms-accordion details { border: 1px solid #e2e8f0; border-radius: 0.5rem; margin-bottom: 0.5rem; }
.cms-accordion summary { padding: 1rem; font-weight: 600; cursor: pointer; list-style: none; }
.cms-accordion summary::-webkit-details-marker { display: none; }
.cms-accordion__body { padding: 0 1rem 1rem; }

/* Timeline */
.cms-timeline { border-left: 2px solid #e2e8f0; margin-left: 1rem; padding-left: 1.5rem; }
.cms-timeline__item { position: relative; padding-bottom: 1.5rem; }
.cms-timeline__year { font-size: 0.875rem; font-weight: 700; color: #2563eb; }
