/*
 * Grupo Nosara - Capa visual Libro de Marca 2025
 * Se carga despues de estilos.css para mantener la funcionalidad existente.
 */

:root {
    --gn-brand-blue: #28509a;
    --gn-brand-blue-80: #5373ae;
    --gn-brand-blue-60: #7e96c2;
    --gn-brand-blue-40: #a9b9d7;
    --gn-brand-blue-20: #d4dceb;
    --gn-brand-yellow: #f3bf46;
    --gn-brand-yellow-80: #f5cc6b;
    --gn-brand-yellow-60: #f8d990;
    --gn-brand-yellow-40: #fae5b5;
    --gn-brand-yellow-20: #fdf2da;
    --gn-brand-green: #7ea34f;
    --gn-brand-green-20: #e5eddc;
    --gn-brand-gray: #818285;
    --gn-brand-gray-20: #e6e6e7;
    --gn-brand-black: #000000;
    --gn-brand-white: #ffffff;

    /* Compatibilidad con la hoja principal existente */
    --gn-primary: var(--gn-brand-blue);
    --gn-primary-dark: #1d3c75;
    --gn-primary-soft: #eef2f8;
    --gn-accent: var(--gn-brand-yellow);
    --gn-accent-dark: #9b6b00;
    --gn-accent-soft: var(--gn-brand-yellow-20);
    --gn-gold: var(--gn-brand-yellow);
    --gn-success: var(--gn-brand-green);
    --gn-warning: #a66d00;
    --gn-ink: #16243b;
    --gn-muted: #66686c;
    --gn-line: #dfe3ea;
    --gn-canvas: #f4f6f9;
    --gn-card: var(--gn-brand-white);

    --bs-primary: var(--gn-brand-blue);
    --bs-primary-rgb: 40, 80, 154;
    --bs-link-color: var(--gn-brand-blue);
    --bs-link-hover-color: #1d3c75;
    --bs-body-color: #202a3b;
    --bs-body-bg: #f4f6f9;
}

html,
body,
button,
input,
select,
textarea,
optgroup,
option,
table,
.btn,
.form-control,
.form-select,
.navbar,
.card,
.badge,
.dropdown-menu,
.modal {
    font-family: "Red Hat Display", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

body {
    color: #202a3b;
    background: var(--gn-canvas);
    font-weight: 400;
    line-height: 1.6;
}

h1,
h2,
h3,
.display-title,
.dashboard-welcome h1,
.application-intro h1,
.login-brand-content h1,
.success-card h1,
.admin-page main > h1,
.admin-page main .d-flex > h1 {
    color: var(--gn-primary-dark);
    font-weight: 700 !important;
    letter-spacing: -.035em !important;
}

h4,
h5,
h6,
.section-heading h2,
.card-header,
.form-label,
.metric-label,
.job-card h3,
.confidential-section-title {
    font-weight: 600 !important;
}

p,
li,
td,
.form-control,
.form-select,
.form-text,
small {
    font-weight: 400;
}

::selection {
    color: var(--gn-brand-white);
    background: var(--gn-brand-blue);
}

a {
    color: var(--gn-brand-blue);
}

a:hover {
    color: #1d3c75;
}

/* Logotipo: sin sombras, degradados, marcos o deformaciones */
.brand-logo,
.admin-brand-logo,
.success-brand-logo {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    filter: none !important;
    box-shadow: none !important;
    transform: none !important;
    object-fit: contain;
}

.brand-logo-link,
.success-brand-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .35rem .65rem;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.brand-picture {
    display: inline-flex;
    align-items: center;
}

.brand-logo-public {
    width: 196px;
    max-height: 68px;
}

.brand-logo-card {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.brand-logo-login {
    width: 220px;
    max-height: 78px;
}

/* Botones */
.btn {
    border-radius: 8px;
    font-weight: 600;
    letter-spacing: -.01em;
    box-shadow: none !important;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.btn-primary,
.btn-primary:focus {
    color: var(--gn-brand-white);
    border-color: var(--gn-brand-blue);
    background: var(--gn-brand-blue);
}

.btn-primary:hover,
.btn-primary:active {
    color: var(--gn-brand-white) !important;
    border-color: #1d3c75 !important;
    background: #1d3c75 !important;
}

.btn-outline-primary {
    color: var(--gn-brand-blue);
    border-color: var(--gn-brand-blue-40);
    background: var(--gn-brand-white);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    color: var(--gn-brand-white);
    border-color: var(--gn-brand-blue);
    background: var(--gn-brand-blue);
}

.btn-outline-secondary {
    color: #55575a;
    border-color: #c9cbd0;
    background: var(--gn-brand-white);
}

.btn-warning,
.btn-brand-accent {
    color: #17243a;
    border-color: var(--gn-brand-yellow);
    background: var(--gn-brand-yellow);
}

.btn-warning:hover,
.btn-brand-accent:hover {
    color: #17243a;
    border-color: #e2aa28;
    background: #e2aa28;
}

/* Formularios */
.form-label {
    color: #25344d;
}

.form-control,
.form-select,
.input-group-text {
    border-color: #cfd6e1;
    border-radius: 8px;
    background-color: var(--gn-brand-white);
    box-shadow: none;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--gn-brand-blue);
    box-shadow: 0 0 0 .22rem rgba(40, 80, 154, .14);
}

.form-check-input:checked {
    border-color: var(--gn-brand-blue);
    background-color: var(--gn-brand-blue);
}

.form-check-input:focus {
    border-color: var(--gn-brand-blue);
    box-shadow: 0 0 0 .2rem rgba(40, 80, 154, .13);
}

.form-text,
.text-muted {
    color: var(--gn-brand-gray) !important;
}

.required-star,
.text-danger {
    color: #b33a3a !important;
}

/* Alertas y estados */
.alert {
    border: 1px solid transparent;
    border-radius: 10px;
    box-shadow: none;
}

.alert-info {
    color: #1d3c75;
    border-color: var(--gn-brand-blue-20);
    background: #eef2f8;
}

.alert-warning {
    color: #6e4a00;
    border-color: var(--gn-brand-yellow-60);
    background: var(--gn-brand-yellow-20);
}

.alert-success {
    color: #49662e;
    border-color: #cbdab9;
    background: var(--gn-brand-green-20);
}

.badge.bg-success,
.status-badge.status-active,
.estado-contratado {
    color: #fff !important;
    background: var(--gn-brand-green) !important;
}

/* Navegacion publica */
.public-nav {
    min-height: 96px;
    padding: .55rem 0;
    border-bottom: 1px solid var(--gn-brand-blue-20);
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 7px 24px rgba(28, 49, 82, .06);
    backdrop-filter: blur(14px);
}

.public-nav::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    content: "";
    background: linear-gradient(90deg, var(--gn-brand-blue) 0 88%, var(--gn-brand-yellow) 88% 100%);
}

.public-nav .container {
    min-height: 76px;
}

.public-nav-actions {
    gap: .8rem;
}

.public-nav .btn-link {
    color: var(--gn-brand-blue);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--gn-brand-yellow);
    text-decoration-thickness: 2px;
    text-underline-offset: .28rem;
}

/* Portada publica */
.public-home {
    background: var(--gn-brand-white);
}

.hero-section {
    position: relative;
    padding: clamp(4.6rem, 8vw, 7rem) 0 6rem;
    background:
        linear-gradient(90deg, rgba(40, 80, 154, .075), transparent 40%),
        linear-gradient(180deg, #fbfcfe 0%, #ffffff 100%);
}

.hero-section::before {
    top: 2.8rem;
    right: 4vw;
    width: 220px;
    height: 100px;
    border: 0;
    border-radius: 0;
    background: url("../img/rayos-sol-grupo-nosara.png") center/contain no-repeat;
    opacity: .22;
    filter: none;
}

.hero-section::after {
    right: auto;
    bottom: -105px;
    left: -80px;
    width: 260px;
    height: 260px;
    border: 46px solid rgba(40, 80, 154, .035);
}

.section-eyebrow {
    color: var(--gn-brand-blue);
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .13em;
}

.section-eyebrow::before {
    height: 3px;
    background: var(--gn-brand-yellow);
}

.display-title {
    color: #17243a;
    font-weight: 700 !important;
    letter-spacing: -.045em !important;
}

.text-gradient {
    color: var(--gn-brand-blue);
    background: none;
    -webkit-text-fill-color: currentColor;
    position: relative;
}

.text-gradient::after {
    position: absolute;
    right: 0;
    bottom: -.12em;
    left: 0;
    height: .12em;
    content: "";
    border-radius: 999px;
    background: var(--gn-brand-yellow);
}

.hero-lead,
.hero-trust {
    color: #5c626c;
}

.hero-trust i {
    color: var(--gn-brand-green);
}

.hero-actions .btn-outline-primary {
    color: #17243a;
    border-color: var(--gn-brand-yellow);
    background: var(--gn-brand-yellow);
}

.hero-actions .btn-outline-primary:hover {
    color: #17243a;
    border-color: #e2aa28;
    background: #e2aa28;
}

.hero-panel {
    border: 0;
    border-radius: 22px;
    background: var(--gn-brand-blue);
    box-shadow: 0 24px 56px rgba(24, 49, 94, .18);
}

.hero-panel::before {
    position: absolute;
    inset: 0;
    content: "";
    background: url("../img/isotipo-grupo-nosara-oficial-blanco.png") right -34px bottom -44px/240px auto no-repeat;
    opacity: .045;
    pointer-events: none;
}

.hero-panel::after {
    border-color: rgba(243, 191, 70, .14);
}

.hero-panel-label {
    color: rgba(255, 255, 255, .78);
    font-weight: 600;
}

.hero-panel h2 {
    color: var(--gn-brand-white);
    font-weight: 700;
}

.hero-panel-item {
    border-color: rgba(255, 255, 255, .18);
    border-radius: 10px;
    background: rgba(255, 255, 255, .09);
}

.hero-panel-item i {
    color: #17243a;
    background: var(--gn-brand-yellow);
}

.hero-mini-card {
    border-color: var(--gn-brand-blue-20);
    border-radius: 12px;
    box-shadow: 0 14px 34px rgba(24, 49, 94, .13);
}

.hero-mini-card strong {
    color: var(--gn-brand-blue);
}

.jobs-section {
    background: var(--gn-brand-white);
}

.section-heading h2 {
    color: var(--gn-primary-dark);
    font-weight: 700 !important;
}

.job-card {
    border-color: var(--gn-brand-blue-20);
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(28, 49, 82, .07);
}

.job-card:hover {
    border-color: var(--gn-brand-blue-60);
    box-shadow: 0 18px 38px rgba(28, 49, 82, .11);
}

.job-card::before {
    height: 4px;
    background: linear-gradient(90deg, var(--gn-brand-blue) 0 88%, var(--gn-brand-yellow) 88% 100%);
}

.job-icon {
    color: var(--gn-brand-blue);
    border-radius: 10px;
    background: var(--gn-primary-soft);
}

.job-meta span {
    color: #4e5d73;
    background: #f0f3f7;
}

.empty-jobs {
    border-color: var(--gn-brand-blue-40);
    background: #f7f9fc;
}

.public-cta-card {
    border-radius: 20px;
    background: var(--gn-brand-blue);
    box-shadow: 0 22px 52px rgba(24, 49, 94, .17);
}

.public-cta-card::before {
    position: absolute;
    right: 3rem;
    bottom: -2rem;
    width: 220px;
    height: 130px;
    content: "";
    background: url("../img/rayos-sol-grupo-nosara.png") center/contain no-repeat;
    opacity: .16;
}

.public-cta-card .btn-light {
    color: #17243a;
    border-color: var(--gn-brand-yellow);
    background: var(--gn-brand-yellow);
}

.public-cta-card .btn-light:hover {
    background: #e2aa28;
}

.public-footer {
    color: rgba(255, 255, 255, .78);
    border-top: 4px solid var(--gn-brand-yellow);
    background: #1d3c75;
}

/* Formulario publico */
.application-page {
    background:
        linear-gradient(180deg, rgba(40, 80, 154, .065), transparent 280px),
        #f4f6f9;
}

.application-intro {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    background: var(--gn-brand-blue);
    box-shadow: 0 16px 38px rgba(24, 49, 94, .13);
}

.application-intro::after {
    position: absolute;
    right: 2rem;
    bottom: -1.7rem;
    width: 190px;
    height: 100px;
    content: "";
    background: url("../img/rayos-sol-grupo-nosara.png") center/contain no-repeat;
    opacity: .15;
}

.application-intro h1 {
    color: var(--gn-brand-white);
}

.application-card {
    border-color: var(--gn-brand-blue-20);
    border-radius: 16px;
    box-shadow: 0 14px 36px rgba(28, 49, 82, .08);
}

.application-form h4 {
    color: var(--gn-primary-dark);
    font-weight: 600 !important;
}

.application-form h4::before {
    color: var(--gn-brand-white);
    border-radius: 8px;
    background: var(--gn-brand-blue);
    box-shadow: none;
}

.application-form h4::after {
    position: absolute;
    bottom: -1px;
    left: 3rem;
    width: 52px;
    height: 3px;
    content: "";
    background: var(--gn-brand-yellow);
}

.form-security-card,
.job-document-requirements,
.additional-documents-panel {
    border-color: var(--gn-brand-blue-20);
    border-radius: 12px;
    background: #f7f9fc;
}

.form-security-copy > i,
.required-document-heading i,
.confidential-data-notice > i {
    color: var(--gn-brand-blue);
    border-radius: 8px;
    background: var(--gn-primary-soft);
}

.required-document-card {
    border-color: var(--gn-brand-blue-20);
    border-radius: 12px;
    box-shadow: none;
}

.required-document-card.is-required {
    border-color: var(--gn-brand-yellow);
    background: var(--gn-brand-yellow-20);
    box-shadow: none;
}

.required-document-card.is-required .required-document-heading i {
    color: #17243a;
    background: var(--gn-brand-yellow);
}

/* Inicio de sesion */
.login-page {
    background:
        linear-gradient(135deg, rgba(40, 80, 154, .12), transparent 45%),
        #f4f6f9;
}

.login-shell {
    border-color: var(--gn-brand-blue-20);
    border-radius: 20px;
    box-shadow: 0 24px 64px rgba(24, 49, 94, .16);
}

.login-brand-panel {
    background: var(--gn-brand-blue);
}

.login-brand-panel::before {
    width: 230px;
    height: 118px;
    border: 0;
    border-radius: 0;
    background: url("../img/rayos-sol-grupo-nosara.png") center/contain no-repeat;
    opacity: .17;
}

.login-brand-panel::after {
    border-color: rgba(255, 255, 255, .055);
}

.login-brand-content h1 {
    color: var(--gn-brand-white);
}

.login-security-note i {
    color: var(--gn-brand-yellow);
}

.login-form-panel .section-eyebrow {
    color: var(--gn-brand-blue);
}

/* Confirmacion de envio */
.success-page {
    background:
        linear-gradient(180deg, rgba(40, 80, 154, .08), transparent 48%),
        #f4f6f9;
}

.success-card {
    border-color: var(--gn-brand-blue-20);
    border-radius: 18px;
    box-shadow: 0 20px 56px rgba(24, 49, 94, .13);
}

.success-brand-link {
    margin-bottom: 1.5rem;
}

.success-brand-logo {
    width: 210px;
}

.success-icon {
    color: #17243a;
    background: var(--gn-brand-yellow);
    box-shadow: none;
}

/* Panel administrativo */
.admin-page {
    background: #f2f4f7;
}

.admin-page > nav.navbar {
    min-height: 84px;
    padding: .65rem 1.6rem;
    border-bottom: 4px solid var(--gn-brand-yellow);
    background: var(--gn-brand-blue) !important;
    box-shadow: 0 8px 24px rgba(24, 49, 94, .16);
}

.admin-page > nav .navbar-brand::before {
    display: none !important;
    content: none !important;
}

.admin-brand {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    padding: .15rem 0;
    color: var(--gn-brand-white) !important;
}

.admin-brand-logo {
    width: 180px;
    max-height: 62px;
}

.admin-brand-context {
    padding-left: 1rem;
    color: rgba(255, 255, 255, .82);
    border-left: 1px solid rgba(255, 255, 255, .32);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .11em;
    text-transform: uppercase;
    white-space: nowrap;
}

.admin-brand-badge,
.admin-brand-copy {
    display: none !important;
}

.admin-page > nav .btn-outline-light {
    color: var(--gn-brand-white);
    border-color: rgba(255, 255, 255, .48);
    background: transparent;
}

.admin-page > nav .btn-outline-light:hover {
    color: #17243a;
    border-color: var(--gn-brand-yellow);
    background: var(--gn-brand-yellow);
}

.admin-page > .container-fluid {
    padding-top: 84px;
}

.admin-page > .container-fluid > .row {
    min-height: calc(100vh - 84px);
}

.admin-page aside {
    top: 84px;
    border-right: 1px solid var(--gn-brand-blue-20) !important;
    background: var(--gn-brand-white) !important;
    box-shadow: 8px 0 30px rgba(28, 49, 82, .035);
}

.admin-page aside h6 {
    color: var(--gn-brand-gray) !important;
    font-size: .72rem;
    font-weight: 600 !important;
    letter-spacing: .13em;
}

.admin-page aside .list-group-item {
    color: #42516a;
    border-radius: 8px;
    font-weight: 500;
}

.admin-page aside .list-group-item > i {
    color: var(--gn-brand-blue);
    border-radius: 7px;
    background: var(--gn-primary-soft);
}

.admin-page aside .list-group-item:hover {
    color: var(--gn-brand-blue);
    background: #f4f6fa;
}

.admin-page aside .list-group-item.active {
    color: #1d3c75;
    background: var(--gn-brand-yellow-20);
    box-shadow: inset 4px 0 0 var(--gn-brand-yellow);
}

.admin-page aside .list-group-item.active > i {
    color: #17243a;
    background: var(--gn-brand-yellow);
}

.admin-page main {
    background:
        linear-gradient(180deg, rgba(40, 80, 154, .045), transparent 240px),
        #f4f6f9;
}

.admin-page .card {
    border-color: var(--gn-brand-blue-20);
    border-radius: 12px;
    box-shadow: 0 9px 26px rgba(28, 49, 82, .055) !important;
}

.admin-page .card-header {
    color: #25344d;
    border-bottom-color: var(--gn-brand-blue-20);
    background: var(--gn-brand-white);
}

.dashboard-welcome {
    border-radius: 16px;
    background: var(--gn-brand-blue);
    box-shadow: 0 16px 38px rgba(24, 49, 94, .13);
}

.dashboard-welcome::before {
    position: absolute;
    right: 2.3rem;
    bottom: -2rem;
    width: 220px;
    height: 120px;
    content: "";
    background: url("../img/rayos-sol-grupo-nosara.png") center/contain no-repeat;
    opacity: .14;
}

.dashboard-welcome::after {
    border-color: rgba(255, 255, 255, .045);
}

.dashboard-welcome h1 {
    color: var(--gn-brand-white) !important;
}

.metric-card::after {
    background: rgba(40, 80, 154, .045);
}

.metric-card .metric-icon,
.metric-card.metric-new .metric-icon {
    color: var(--gn-brand-blue);
    background: var(--gn-primary-soft);
}

.metric-card.metric-review .metric-icon,
.metric-card.metric-interview .metric-icon {
    color: #725000;
    background: var(--gn-brand-yellow-20);
}

.metric-card.metric-jobs .metric-icon {
    color: #547632;
    background: var(--gn-brand-green-20);
}

.admin-page .table thead th {
    color: #4e5d73;
    border-bottom-color: var(--gn-brand-blue-20);
    background: #f3f5f8;
    font-weight: 600;
}

.admin-page .table tbody tr:hover {
    background: #f7f9fc;
}

.confidential-employment-card {
    border-color: var(--gn-brand-yellow-60) !important;
}

.confidential-employment-card > .card-header {
    color: #1d3c75;
    background: linear-gradient(90deg, var(--gn-brand-yellow-20), #fff 70%);
}

.confidential-data-notice {
    color: #5f4810;
    border-color: var(--gn-brand-yellow-60);
    background: var(--gn-brand-yellow-20);
}

/* Herramientas y modales */
.modal-header,
.offcanvas-header {
    border-bottom-color: var(--gn-brand-blue-20);
}

.dropdown-item:active,
.dropdown-item.active {
    background: var(--gn-brand-blue);
}

/* Accesibilidad: foco visible consistente */
:focus-visible {
    outline: 3px solid rgba(243, 191, 70, .9);
    outline-offset: 3px;
}

/* Responsive */
@media (max-width: 991.98px) {
    .admin-page aside {
        top: 76px;
    }

    .admin-page > nav.navbar {
        min-height: 76px;
    }

    .admin-page > .container-fluid {
        padding-top: 76px;
    }

    .admin-brand-logo {
        width: 150px;
    }

    .admin-brand-context {
        font-size: .65rem;
    }

    .hero-section::before,
    .public-cta-card::before,
    .application-intro::after,
    .dashboard-welcome::before {
        opacity: .09;
    }
}

@media (max-width: 767.98px) {
    .public-nav {
        min-height: 78px;
    }

    .public-nav .container {
        min-height: 62px;
    }

    .hero-section {
        padding-top: 3.8rem;
    }

    .hero-panel {
        border-radius: 16px;
    }

    .admin-brand-context {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .brand-logo-public {
        width: 48px;
        max-height: 48px;
    }

    .brand-logo-login {
        width: 180px;
    }

    .public-nav-actions {
        gap: .35rem;
    }

    .public-nav-actions .btn {
        min-height: 38px;
        padding: .45rem .65rem;
        font-size: .82rem;
    }

    .admin-page > nav.navbar {
        padding-inline: .85rem;
    }

    .admin-brand-logo {
        width: 132px;
    }

    .admin-page > nav .d-flex > span {
        display: none;
    }

    .success-brand-logo {
        width: 185px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}


/* Campos repetibles: experiencia, referencias y licencias */
.section-helper-text {
    margin: -.2rem 0 1.25rem;
    color: #667085;
    font-size: .92rem;
}

.repeatable-stack {
    display: grid;
    gap: 1rem;
}

.repeatable-entry {
    overflow: hidden;
    border: 1px solid var(--gn-brand-blue-20);
    border-radius: 14px;
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.repeatable-entry[open] {
    border-color: rgba(40, 80, 154, .38);
    box-shadow: 0 12px 30px rgba(40, 80, 154, .07);
}

.repeatable-entry summary {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem 1.15rem;
    cursor: pointer;
    list-style: none;
    color: #17386f;
    background: linear-gradient(90deg, #f5f8fd, #fff);
}

.repeatable-entry summary::-webkit-details-marker {
    display: none;
}

.repeatable-entry summary > span:nth-child(2) {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.repeatable-entry summary strong {
    font-weight: 700;
}

.repeatable-entry summary small {
    margin-top: .12rem;
    color: #7a8494;
    font-size: .78rem;
}

.repeatable-entry-number,
.detail-record-number {
    display: inline-grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    color: #fff;
    border-radius: 10px;
    background: var(--gn-brand-blue);
    font-weight: 700;
}

.repeatable-entry-chevron {
    color: var(--gn-brand-blue);
    transition: transform .2s ease;
}

.repeatable-entry[open] .repeatable-entry-chevron {
    transform: rotate(180deg);
}

.repeatable-entry-body {
    padding: 1.15rem 1.15rem .25rem;
}

.license-groups {
    display: grid;
    gap: .75rem;
}

.license-group {
    margin: 0;
    padding: .8rem .9rem;
    border: 1px solid #dce4f0;
    border-radius: 12px;
    background: #fbfcfe;
}

.license-group legend {
    float: none;
    width: auto;
    margin: 0 0 .55rem;
    padding: 0;
    color: #42526b;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.license-options {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.license-option {
    margin: 0;
    padding: .48rem .7rem .48rem 2rem;
    border: 1px solid #d8e1ee;
    border-radius: 10px;
    background: #fff;
}

.license-option:has(.form-check-input:checked) {
    border-color: var(--gn-brand-yellow);
    background: var(--gn-brand-yellow-20);
}

.license-option .form-check-input {
    margin-top: .18rem;
}

.reference-group-card {
    height: 100%;
    padding: 1.2rem;
    border: 1px solid var(--gn-brand-blue-20);
    border-radius: 14px;
    background: #fbfcfe;
}

.reference-group-heading {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    margin-bottom: 1rem;
}

.reference-group-heading > i {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    color: #fff;
    border-radius: 11px;
    background: var(--gn-brand-blue);
}

.reference-group-heading h5 {
    margin: 0;
    color: #17386f;
    font-size: 1rem;
    font-weight: 700;
}

.reference-group-heading p {
    margin: .25rem 0 0;
    color: #737f91;
    font-size: .8rem;
}

.reference-entry + .reference-entry {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e3e8f0;
}

.detail-record-grid {
    display: grid;
    gap: 1rem;
}

.detail-record-card {
    padding: 1.1rem;
    border: 1px solid #dfe6f0;
    border-radius: 14px;
    background: #fbfcfe;
}

.detail-record-heading {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin-bottom: 1rem;
}

.detail-record-heading h4 {
    margin: 0;
    color: #17386f;
    font-size: 1rem;
    font-weight: 700;
}

.detail-record-heading p {
    margin: .15rem 0 0;
    color: #687386;
    font-size: .85rem;
}

.detail-record-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
    margin: 0 0 1rem;
}

.detail-record-list > div {
    padding: .75rem;
    border-radius: 10px;
    background: #fff;
}

.detail-record-list dt {
    color: #778297;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.detail-record-list dd {
    margin: .25rem 0 0;
    color: #253a5b;
}

.detail-record-description strong,
.detail-subheading {
    color: #17386f;
    font-size: .88rem;
    font-weight: 700;
}

.detail-record-description p {
    margin: .35rem 0 0;
    color: #4f5f75;
}

.license-badge-list {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.license-badge {
    display: inline-flex;
    padding: .38rem .62rem;
    color: #17386f;
    border: 1px solid var(--gn-brand-yellow-60);
    border-radius: 999px;
    background: var(--gn-brand-yellow-20);
    font-size: .78rem;
    font-weight: 700;
}

.reference-detail-list {
    display: grid;
    gap: .65rem;
    margin: .75rem 0 0;
    padding-left: 1.35rem;
}

.reference-detail-list li {
    padding: .7rem .8rem;
    border: 1px solid #e1e7f0;
    border-radius: 10px;
    background: #fbfcfe;
}

@media (max-width: 767.98px) {
    .detail-record-list {
        grid-template-columns: 1fr;
    }

    .repeatable-entry summary {
        padding: .9rem;
    }

    .repeatable-entry-body {
        padding: 1rem 1rem .2rem;
    }
}
