/* Additions of ours, kept out of checkout.css so regenerating the captured
   page stylesheet can't wipe them. */

/* --- hero image ------------------------------------------------------------
   Gold edge matching the checkout frame, with a very slight breathing pulse:
   0.6% scale and a glow that swells over 6s. Deliberately small — it should
   register peripherally, not read as an animation. */
.kcu-hero {
    display: block;
    border-radius: 14px;
    border: 2px solid rgba(245, 196, 81, .55);
    animation: kcuBreathe 6s ease-in-out infinite;
    transform-origin: center center;
    will-change: transform;
}

@keyframes kcuBreathe {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 20px rgba(245, 196, 81, .13),
                    0 10px 34px rgba(0, 0, 0, .45);
    }
    50% {
        transform: scale(1.006);
        box-shadow: 0 0 40px rgba(245, 196, 81, .27),
                    0 12px 40px rgba(0, 0, 0, .5);
    }
}

@media (max-width: 768px) {
    .kcu-hero {
        border-radius: 11px;
        border-width: 1.5px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .kcu-hero {
        animation: none;
        box-shadow: 0 0 26px rgba(245, 196, 81, .18);
    }
}

/* --- countdown -------------------------------------------------------------
   Fills the GHL countdown container captured from the original page, so it
   inherits that page's .count / .label / .time-grid sizing. Only the bits GHL
   rendered client-side (and therefore weren't captured) are defined here. */
.kcu-timer-label {
    text-align: center;
    color: #f5c451;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-size: 14px;
    margin-bottom: 10px;
}

#kcu-timer {
    justify-content: center;
    margin: 0 auto;
    color: #fff;
}

#kcu-timer .count {
    color: #f5c451;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

#kcu-timer .label {
    color: #cfcfcf;
    text-transform: uppercase;
    letter-spacing: .06em;
}

/* Expired: drop the urgency colour rather than keep flashing gold at 00:00:00 */
#kcu-timer.kcu-timer-done .count {
    color: #6b6b6b;
}

/* --- payment agreement -----------------------------------------------------
   Explicit consent to the full payment schedule, directly above the submit
   button, and gating it. Styled as a deliberate block rather than a stray
   line: a native checkbox renders as a bright system square that reads as
   broken against a black checkout. */
.kcu-agree {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    margin: 20px 24px 0;
    padding: 15px 17px;
    border: 1px solid #262626;
    border-radius: 11px;
    background: #0b0b0b;
    cursor: pointer;
    color: #b4b4b4;
    font: 500 13.5px/1.5 Montserrat, system-ui, sans-serif;
    transition: border-color .15s ease, background .15s ease;
}

.kcu-agree:hover {
    border-color: #3c3c3c;
    background: #101010;
}

.kcu-agree:has(input:checked) {
    border-color: rgba(245, 196, 81, .45);
    background: rgba(245, 196, 81, .05);
}

.kcu-agree input {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin: 0;
    border: 1.5px solid #4d4d4d;
    border-radius: 6px;
    background: #000;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}

.kcu-agree input:checked {
    background: #f5c451;
    border-color: #f5c451;
}

/* drawn rather than a glyph, so it can't shift with font loading */
.kcu-agree input:checked::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #1a1204;
    border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg);
}

.kcu-agree input:focus-visible {
    outline: 2px solid #f5c451;
    outline-offset: 2px;
}

.kcu-agree-text strong {
    color: #fff;
    font-weight: 700;
}

/* only reachable if the disabled button is bypassed */
.kcu-agree.kcu-agree-missing {
    border-color: #7f3a3a;
    background: #150b0b;
}

@media (max-width: 768px) {
    .kcu-agree {
        margin: 16px 16px 0;
        padding: 13px 14px;
        gap: 11px;
        font-size: 13px;
    }
}

/* --- payment summary (unused; kept for the old top block) ------------------ */
.kcu-summary {
    max-width: 1180px;
    margin: 0 auto 18px;
    padding: 0 6px;
    text-align: center;
    font-family: Montserrat, system-ui, sans-serif;
}

.kcu-sum-title {
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.kcu-sum-price {
    color: #f5c451;
    font-size: 34px;
    font-weight: 800;
    line-height: 1.15;
    margin-top: 4px;
}

.kcu-sum-due {
    color: #cfcfcf;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .01em;
}

.kcu-sum-line {
    color: #cfcfcf;
    font-size: 14px;
    margin-top: 6px;
}

.kcu-sum-desc {
    color: #9a9a9a;
    font-size: 14px;
    margin-top: 6px;
}

@media (max-width: 768px) {
    .kcu-sum-title { font-size: 17px; }
    .kcu-sum-price { font-size: 28px; }
    .kcu-summary { margin-bottom: 14px; }
}
