/* ═══════════════════════════════════════════════════════
   Cookie consent banner
   Gates Google Analytics (Consent Mode v2), Mixpanel and
   AdSense behind an explicit choice. Site-wide - including
   the journal/ section, which runs its own separate,
   monochrome stylesheet with no shared variables with the
   main site, so this is intentionally self-contained rather
   than depending on styles/styles.css tokens or .btn classes.
   ═══════════════════════════════════════════════════════ */
.cc-banner {
    position: fixed; left: 1.25rem; right: 1.25rem; bottom: 1.25rem; z-index: 960;
    max-width: 640px; margin: 0 auto;
    background: #FFFFFF; border: 1px solid rgba(20,33,61,0.14);
    border-radius: 6px; box-shadow: 0 20px 54px rgba(10,20,40,0.24);
    padding: 1.25rem 1.4rem;
    transform: translateY(140%); opacity: 0;
    transition: transform 0.4s cubic-bezier(0.25,1,0.5,1), opacity 0.4s cubic-bezier(0.25,1,0.5,1);
    pointer-events: none;
}
.cc-banner.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }

.cc-text {
    font-family: -apple-system, 'Segoe UI', Inter, sans-serif; font-size: 0.83rem; line-height: 1.55;
    color: #5C6470; margin: 0 0 1rem;
}
.cc-text a { color: #14213D; text-decoration: underline; text-underline-offset: 2px; }

.cc-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.cc-btn {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 0.65rem 1.4rem; border-radius: 4px;
    font-family: -apple-system, 'Segoe UI', Inter, sans-serif; font-weight: 600; font-size: 0.72rem;
    letter-spacing: 0.6px; text-transform: uppercase; cursor: pointer;
    border: 1px solid #14213D; transition: background-color 0.25s ease, color 0.25s ease;
}
.cc-btn-accept { background: #14213D; color: #FFFFFF; }
.cc-btn-accept:hover { background: #A9832E; border-color: #A9832E; }
.cc-btn-decline { background: transparent; color: #14213D; }
.cc-btn-decline:hover { background: #14213D; color: #FFFFFF; }

@media (max-width: 480px) {
    .cc-banner { left: 0.75rem; right: 0.75rem; bottom: calc(0.75rem + 66px); padding: 1.1rem; }
}
