/* RMGW Cookie Consent — styling. Scoped under .rmgw-cc-* to avoid clashing with
   Bootstrap / Site.css. Light theme to match the host dashboard. */

:root {
    --rmgw-cc-bg: #ffffff;
    --rmgw-cc-fg: #212529;
    --rmgw-cc-muted: #5c636a;
    --rmgw-cc-border: #dee2e6;
    --rmgw-cc-shadow: 0 -2px 18px rgba(0, 0, 0, .18);
    --rmgw-cc-shadow-modal: 0 12px 48px rgba(0, 0, 0, .30);
    --rmgw-cc-accent: #ffc107;       /* matches the site's primary (btn-warning) call to action */
    --rmgw-cc-accent-fg: #1f2329;
    --rmgw-cc-accent-hover: #e0a800;
    --rmgw-cc-primary: #0d6efd;
    --rmgw-cc-on: #198754;
    --rmgw-cc-track: #adb5bd;
    --rmgw-cc-radius: .375rem;
    --rmgw-cc-focus: 0 0 0 .25rem rgba(13, 110, 253, .45);
}

/* ---------- bottom banner ---------- */

.rmgw-cc-banner {
    position: fixed;
    inset: auto 0 0 0;
    z-index: 1080;
    background: var(--rmgw-cc-bg);
    color: var(--rmgw-cc-fg);
    border-top: 1px solid var(--rmgw-cc-border);
    box-shadow: var(--rmgw-cc-shadow);
    padding: 1rem 1.25rem;
    animation: rmgw-cc-slide-up .28s ease-out;
}

.rmgw-cc-banner__inner {
    max-width: 1140px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.5rem;
}

.rmgw-cc-banner__text { flex: 1 1 360px; min-width: 260px; }
.rmgw-cc-banner__title { margin: 0 0 .25rem; font-size: 1.05rem; font-weight: 600; }
.rmgw-cc-banner__body { margin: 0; font-size: .9rem; line-height: 1.5; color: var(--rmgw-cc-muted); }
.rmgw-cc-banner__body a { color: var(--rmgw-cc-primary); }

.rmgw-cc-banner__actions {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

/* ---------- buttons ---------- */

.rmgw-cc-btn {
    font: inherit;
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.4;
    border: 1px solid transparent;
    border-radius: var(--rmgw-cc-radius);
    padding: .5rem 1.1rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.rmgw-cc-btn:focus-visible { outline: 0; box-shadow: var(--rmgw-cc-focus); }

/* Accept and Reject are equally prominent (GDPR: reject must be as easy as accept). */
.rmgw-cc-btn--accept { background: var(--rmgw-cc-accent); border-color: var(--rmgw-cc-accent); color: var(--rmgw-cc-accent-fg); }
.rmgw-cc-btn--accept:hover { background: var(--rmgw-cc-accent-hover); border-color: var(--rmgw-cc-accent-hover); }

.rmgw-cc-btn--reject { background: #fff; border-color: #6c757d; color: #343a40; }
.rmgw-cc-btn--reject:hover { background: #f1f3f5; }

.rmgw-cc-btn--save { background: var(--rmgw-cc-primary); border-color: var(--rmgw-cc-primary); color: #fff; }
.rmgw-cc-btn--save:hover { background: #0b5ed7; border-color: #0a58ca; }

/* Settings is a lower-emphasis tertiary action. */
.rmgw-cc-btn--link {
    background: transparent;
    border-color: transparent;
    color: var(--rmgw-cc-primary);
    text-decoration: underline;
    padding: .5rem .5rem;
}
.rmgw-cc-btn--link:hover { color: #0a58ca; }

/* ---------- preferences modal ---------- */

.rmgw-cc-modal {
    position: fixed;
    inset: 0;
    z-index: 1090;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.rmgw-cc-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .5);
    animation: rmgw-cc-fade .2s ease-out;
}

.rmgw-cc-modal__dialog {
    position: relative;
    background: var(--rmgw-cc-bg);
    color: var(--rmgw-cc-fg);
    border-radius: .5rem;
    box-shadow: var(--rmgw-cc-shadow-modal);
    width: 100%;
    max-width: 640px;
    max-height: calc(100vh - 2rem);
    display: flex;
    flex-direction: column;
    animation: rmgw-cc-zoom .2s ease-out;
}

.rmgw-cc-modal__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.4rem;
    border-bottom: 1px solid var(--rmgw-cc-border);
}
.rmgw-cc-modal__title { margin: 0; font-size: 1.2rem; font-weight: 600; }

.rmgw-cc-modal__close {
    border: 0;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    color: var(--rmgw-cc-muted);
    padding: .15rem .35rem;
    border-radius: var(--rmgw-cc-radius);
}
.rmgw-cc-modal__close:hover { color: var(--rmgw-cc-fg); }
.rmgw-cc-modal__close:focus-visible { outline: 0; box-shadow: var(--rmgw-cc-focus); }

.rmgw-cc-modal__body { padding: 1.1rem 1.4rem; overflow-y: auto; }
.rmgw-cc-modal__intro { margin: 0 0 1rem; font-size: .92rem; line-height: 1.55; color: var(--rmgw-cc-muted); }
.rmgw-cc-modal__intro a { color: var(--rmgw-cc-primary); }

.rmgw-cc-modal__footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
    padding: 1rem 1.4rem;
    border-top: 1px solid var(--rmgw-cc-border);
}

/* ---------- category rows ---------- */

.rmgw-cc-cat {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 0;
    border-bottom: 1px solid var(--rmgw-cc-border);
}
.rmgw-cc-cat:last-child { border-bottom: 0; }
.rmgw-cc-cat__title { margin: 0 0 .2rem; font-size: 1rem; font-weight: 600; }
.rmgw-cc-cat__desc { margin: 0; font-size: .85rem; line-height: 1.5; color: var(--rmgw-cc-muted); }
.rmgw-cc-cat__control { flex: 0 0 auto; padding-top: .15rem; }

.rmgw-cc-always {
    font-size: .8rem;
    font-weight: 600;
    color: var(--rmgw-cc-on);
    white-space: nowrap;
}

/* ---------- toggle switch (built from a checkbox) ---------- */

.rmgw-cc-switch { position: relative; display: inline-block; width: 46px; height: 26px; }
.rmgw-cc-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.rmgw-cc-switch .rmgw-cc-slider {
    position: absolute;
    inset: 0;
    background: var(--rmgw-cc-track);
    border-radius: 26px;
    transition: background-color .15s ease;
}
.rmgw-cc-switch .rmgw-cc-slider::before {
    content: "";
    position: absolute;
    height: 20px;
    width: 20px;
    left: 3px;
    top: 3px;
    background: #fff;
    border-radius: 50%;
    transition: transform .15s ease;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}
.rmgw-cc-switch input:checked + .rmgw-cc-slider { background: var(--rmgw-cc-on); }
.rmgw-cc-switch input:checked + .rmgw-cc-slider::before { transform: translateX(20px); }
.rmgw-cc-switch input:focus-visible + .rmgw-cc-slider { box-shadow: var(--rmgw-cc-focus); }
.rmgw-cc-switch input:disabled + .rmgw-cc-slider { opacity: .6; cursor: not-allowed; }
.rmgw-cc-switch input:disabled { cursor: not-allowed; }

/* ---------- utilities ---------- */

.rmgw-cc-noscroll { overflow: hidden; }

@keyframes rmgw-cc-slide-up { from { transform: translateY(100%); } to { transform: translateY(0); } }
@keyframes rmgw-cc-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes rmgw-cc-zoom { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
    .rmgw-cc-banner,
    .rmgw-cc-modal__backdrop,
    .rmgw-cc-modal__dialog { animation: none; }
    .rmgw-cc-btn,
    .rmgw-cc-switch .rmgw-cc-slider,
    .rmgw-cc-switch .rmgw-cc-slider::before { transition: none; }
}

@media (max-width: 575.98px) {
    .rmgw-cc-banner__actions { width: 100%; }
    .rmgw-cc-banner__actions .rmgw-cc-btn { flex: 1 1 auto; text-align: center; }
    .rmgw-cc-modal__footer .rmgw-cc-btn { flex: 1 1 auto; text-align: center; }
}
