:root {
    --ccf-container-max: 1200px;
    --ccf-container-wide: 1280px;
    --ccf-container-narrow: 960px;
    --ccf-reading-max: 52rem;
    --ccf-page-gutter: clamp(1rem, 3vw, 2rem);
    --ccf-section-y: clamp(3rem, 6vw, 6rem);
    --ccf-card-gap: clamp(1rem, 2vw, 1.5rem);
}

img,
svg,
video,
canvas {
    max-width: 100%;
    height: auto;
}

pre {
    max-width: 100%;
    overflow-x: auto;
}

.ccf-container {
    width: min(calc(100% - (var(--ccf-page-gutter) * 2)), var(--ccf-container-max));
    margin-inline: auto;
}

.ccf-container-wide { max-width: var(--ccf-container-wide); }

.ccf-reading-column {
    width: min(calc(100% - (var(--ccf-page-gutter) * 2)), var(--ccf-reading-max));
    margin-inline: auto;
}

.ccf-section { padding-block: var(--ccf-section-y); }

.ccf-grid {
    display: grid;
    gap: var(--ccf-card-gap);
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

@media (min-width: 1200px) {
    .ccf-nav > .container,
    .ccf-hero > .container,
    .ccf-footer > .container,
    main > section > .container {
        max-width: var(--ccf-container-max);
    }
}

@media (max-width: 575.98px) {
    .hero .row,
    .section .row,
    main .row {
        margin-inline: 0;
    }

    .ccf-hero h1 {
        font-size: clamp(2.25rem, 12vw, 3.25rem);
        line-height: 1;
        overflow-wrap: anywhere;
    }

    .btn {
        max-width: 100%;
        min-height: 2.75rem;
        white-space: normal;
    }
}

@media (max-width: 991.98px) {
    .book-wrap .definition::after {
        position: fixed;
        inset: auto 1rem 1rem;
        width: auto;
        max-width: none;
        transform: none;
    }
}
body:has(.ccf-fixed-offers) { padding-bottom: 5.25rem; }

.ccf-fixed-offers {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1040;
    border-top: 1px solid rgba(255,255,255,.28);
    background: #000;
    box-shadow: 0 -10px 30px rgba(0,0,0,.35);
    color: #fff;
}

.ccf-fixed-offers__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 4.5rem;
    padding: .65rem 0;
}

.ccf-fixed-offers__label {
    flex: 0 0 auto;
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ccf-fixed-offers__actions { display: flex; justify-content: flex-end; gap: .65rem; width: 100%; }

.ccf-offer-btn,
.ccf-offer-checkout-btn {
    border: 1px solid #fff;
    border-radius: 999px;
    background: #8f1d1d;
    color: #fff;
    font-size: .82rem;
    font-weight: 800;
    white-space: nowrap;
}

.ccf-offer-btn:hover,
.ccf-offer-btn:focus,
.ccf-offer-checkout-btn:hover,
.ccf-offer-checkout-btn:focus {
    border-color: #fff;
    background: #fff;
    color: #8f1d1d;
}

.ccf-offer-modal {
    position: relative;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 1.25rem;
    background: #121212;
    color: #fff;
}

.ccf-offer-modal > .btn-close { align-self: flex-end; margin: .85rem .85rem 0 auto; }
.ccf-offer-modal .billing-toggle-switch { display: inline-flex; gap: .4rem; margin: .65rem 0; }
.ccf-offer-modal .billing-toggle-choice {
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 999px;
    background: transparent;
    color: #fff;
    font-weight: 700;
    padding: .45rem .8rem;
}
.ccf-offer-modal .billing-toggle-choice.active { background: #8f1d1d; border-color: #8f1d1d; }

@media (max-width: 991.98px) {
    body:has(.ccf-fixed-offers) { padding-bottom: 8.5rem; }
    .ccf-fixed-offers__inner { align-items: stretch; flex-direction: column; gap: .4rem; }
    .ccf-fixed-offers__label { text-align: center; }
    .ccf-fixed-offers__actions { justify-content: center; }
}

@media (max-width: 575.98px) {
    body:has(.ccf-fixed-offers) { padding-bottom: 12.5rem; }
    .ccf-fixed-offers__actions { align-items: stretch; flex-direction: column; gap: .35rem; }
    .ccf-offer-btn { width: 100%; min-height: 2.35rem; padding: .35rem .75rem; }
}
