/* Ingeniería RM · Privacidad y consentimiento. Sin dependencias de JavaScript. */
.rm-privacy-banner,
.rm-privacy-page,
.rm-form-privacy,
.rm-privacy-result {
    font-family: "Segoe UI", Arial, sans-serif;
    color: var(--rm-ink, #21324b);
    line-height: 1.6;
    box-sizing: border-box;
}
.rm-privacy-banner *, .rm-privacy-page * { box-sizing: border-box; }
.rm-privacy-banner {
    position: fixed;
    z-index: 1080;
    left: 24px;
    right: 24px;
    bottom: 24px;
    max-width: 1280px;
    margin: 0 auto;
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #fff;
    border: 1px solid #c6d6e5;
    border-top: 4px solid var(--rm-cyan, #009fe3);
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(16, 33, 101, .2);
}
.rm-privacy-banner-inner {
    display: flex;
    align-items: center;
    gap: 32px;
    padding: 24px 28px;
}
.rm-privacy-copy { flex: 1 1 0; min-width: 0; }
.rm-privacy-eyebrow {
    display: block;
    color: #006eae;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.rm-privacy-banner h2 { margin: 0 0 10px; font-size: 1.35rem; color: #102165; font-weight: 700; }
.rm-privacy-banner p { margin: 0 0 8px; font-size: .92rem; }
.rm-privacy-banner p:last-child { margin-bottom: 0; }
.rm-privacy-banner a, .rm-privacy-page a, .rm-form-privacy a, .rm-privacy-result a {
    color: #006497;
    text-decoration: underline;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}
.rm-privacy-detail { font-size: .85rem !important; color: #52647b; }
.rm-privacy-actions { display: flex; flex: 0 0 248px; flex-direction: column; gap: 10px; }
.rm-site .rm-privacy-choice, .rm-privacy-choice {
    display: inline-block;
    border: 2px solid #006eae;
    border-radius: 8px;
    background: #fff;
    color: #005f96;
    padding: 11px 16px;
    min-height: 48px;
    font: 600 .94rem/1.35 "Segoe UI", Arial, sans-serif;
    text-align: center;
    cursor: pointer;
    white-space: normal;
}
.rm-site .rm-privacy-choice:hover, .rm-privacy-choice:hover { background: #eaf5fc; color: #102165; }
.rm-site .rm-privacy-choice:disabled, .rm-privacy-choice:disabled { opacity: .6; cursor: default; }
.rm-privacy-banner :focus-visible, .rm-privacy-page :focus-visible,
.rm-form-privacy a:focus-visible, .rm-privacy-result a:focus-visible {
    outline: 3px solid #102165;
    outline-offset: 3px;
}
.rm-privacy-configure { text-align: center; padding: 5px; font-weight: 600; font-size: .9rem; }
.rm-privacy-page { max-width: 960px; margin: 0 auto; padding: 0 0 36px; }
.rm-privacy-hero { padding: 32px; background: #f5f8fc; border: 1px solid #dce5ef; border-radius: 16px; margin-bottom: 24px; }
.rm-privacy-page h1 { color: #102165; font-size: clamp(1.8rem, 4vw, 2.5rem); font-weight: 700; margin: 0 0 16px; }
.rm-privacy-page h2 { color: #102165; font-size: 1.25rem; font-weight: 700; margin: 0 0 10px; }
.rm-privacy-card { padding: 28px; border: 1px solid #dce5ef; border-radius: 16px; background: #fff; margin-top: 20px; }
.rm-privacy-category { display: flex; align-items: flex-start; gap: 24px; padding-bottom: 22px; }
.rm-privacy-category + .rm-privacy-category { padding-top: 22px; border-top: 1px solid #dce5ef; }
.rm-privacy-category > div { flex: 1; min-width: 0; }
.rm-privacy-required { color: #102165; background: #eaf5fc; border-radius: 8px; padding: 5px 10px; font-size: .8rem; font-weight: 700; white-space: nowrap; }
.rm-privacy-checkbox { display: block; padding: 12px; border: 1px solid #bbcfdf; border-radius: 8px; }
.rm-privacy-checkbox input { width: 20px; height: 20px; margin-right: 10px; vertical-align: middle; accent-color: #006eae; }
.rm-privacy-checkbox label { display: inline; cursor: pointer; font-weight: 600; }
.rm-privacy-save-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 16px 0; }
.rm-privacy-status { padding: 0 4px; }
.rm-privacy-status p { font-size: .9rem; color: #52647b; margin-top: 4px; }
.rm-privacy-signal { background: #f0f6fc; border-left: 3px solid #006eae; padding: 12px 16px; font-size: .9rem; }
.rm-privacy-feedback, .rm-privacy-result { padding: 16px 20px; margin-top: 18px; margin-bottom: 18px; background: #edf6fc; border: 1px solid #b4d2e5; border-radius: 8px; }
.rm-form-privacy { font-size: .86rem; margin-bottom: 24px; padding-top: 16px; border-top: 1px solid #dce5ef; }
.rm-form-privacy p { margin-bottom: 0; }
.rm-privacy-footer-links { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 12px; }
.rm-footer .rm-privacy-footer-links a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.rm-mobile-header { padding: 18px 24px; background: #fff; border-bottom: 1px solid #dce5ef; }
.rm-mobile-brand { display: flex; align-items: center; gap: 16px; color: #102165; font-size: 1.2rem; font-weight: 700; text-decoration: none; }
.rm-mobile-brand img { width: 75px; height: auto; }
@media (max-width: 767px) {
    .rm-privacy-banner { left: 12px; right: 12px; bottom: 12px; max-height: calc(100vh - 24px); border-radius: 12px; }
    .rm-privacy-banner-inner { flex-direction: column; align-items: stretch; gap: 16px; padding: 18px; }
    .rm-privacy-actions { flex: 0 0 auto; }
    .rm-privacy-banner p { font-size: .86rem; }
    .rm-privacy-hero, .rm-privacy-card { padding: 20px; }
    .rm-privacy-category { flex-direction: column; gap: 12px; }
    .rm-privacy-save-actions { flex-direction: column; }
    .rm-privacy-choice { width: 100%; }
}
