:root{
    --pu-vino:#8b0f43;
    --pu-vino-oscuro:#6f1030;
    --pu-vino-claro:#c70d63;
    --pu-fondo:#f6f4f1;
    --pu-panel:#ffffff;
    --pu-linea:#ece3d8;
    --pu-cabecera:#e7e2db;
    --pu-texto:#374151;
    --pu-texto-suave:#64748b;
    --pu-texto-vino:#6d183b;
    --pu-azul:#203b68;
    --pu-sombra:0 14px 34px rgba(79,70,57,.08);
}

body.pu-interna,
.pu-interna #cuerpo{
    background:var(--pu-fondo);
    color:var(--pu-texto);
}

.pu-interna #cuerpo > .container,
.pu-interna .container-fluid > .container,
.pu-interna body > .container{
    max-width:1320px;
    width:calc(100% - 2rem);
    margin:0 auto 1.5rem auto;
    background:#fff;
    border:1px solid #e7e0d7;
    border-radius:24px;
    box-shadow:var(--pu-sombra);
    overflow:hidden;
    padding:0 18px 24px 18px !important;
}

.pu-interna .container > .row:first-child,
.pu-interna form > .row:first-child{
    padding-top:28px;
}

.pu-interna h1{
    margin:0 -18px 22px -18px;
    padding:32px 24px;
    background:linear-gradient(135deg,var(--pu-vino) 0%,var(--pu-vino-claro) 100%);
    color:#fff !important;
    font-size:1.75rem;
    font-weight:800;
    line-height:1.2;
    text-align:left !important;
    text-transform:uppercase;
}

.pu-interna h2,
.pu-interna h3,
.pu-interna h4{
    color:var(--pu-azul);
    font-weight:800;
}

.pu-interna .input-group,
.pu-interna .form-group,
.pu-interna .mb-2,
.pu-interna .mb-3{
    margin-bottom:1rem !important;
}

.pu-interna label,
.pu-interna .input-group-text{
    color:var(--pu-texto-vino);
    font-size:.94rem;
    font-weight:800;
}

.pu-interna .form-control,
.pu-interna .form-select,
.pu-interna select{
    min-height:46px;
    border:1px solid #e3e7ee;
    border-radius:12px;
    background:#fff;
    color:var(--pu-texto);
    box-shadow:none;
}

.pu-interna textarea.form-control{
    min-height:96px;
}

.pu-interna .form-control:focus,
.pu-interna .form-select:focus,
.pu-interna select:focus{
    border-color:#d8c7d1;
    box-shadow:0 0 0 .18rem rgba(139,15,67,.10);
}

.pu-interna .input-group-text{
    border:1px solid #e3e7ee;
    border-right:0;
    border-radius:12px 0 0 12px;
    background:#fcfbf9;
}

.pu-interna .input-group .form-control,
.pu-interna .input-group select{
    border-radius:0 12px 12px 0;
}

.pu-interna .btn-info,
.pu-interna .btn-primary,
.pu-interna .btn-success,
.pu-interna input[type="button"].btn-info,
.pu-interna input[type="submit"].btn-info{
    min-width:145px;
    border:none;
    border-radius:999px;
    background:linear-gradient(135deg,var(--pu-vino),var(--pu-vino-claro));
    color:#fff;
    font-weight:800;
    padding:11px 24px;
    box-shadow:none;
}

.pu-interna .btn-info:hover,
.pu-interna .btn-primary:hover,
.pu-interna .btn-success:hover,
.pu-interna input[type="button"].btn-info:hover,
.pu-interna input[type="submit"].btn-info:hover{
    background:linear-gradient(135deg,var(--pu-vino-oscuro),var(--pu-vino));
    color:#fff;
}

.pu-interna .btn-danger,
.pu-interna .btn-warning,
.pu-interna .btn-secondary{
    border-radius:999px;
    font-weight:800;
    padding:10px 20px;
}

.pu-interna .table-responsive,
.pu-interna .table-reponsive{
    border:1px solid var(--pu-linea);
    border-radius:18px;
    overflow:auto;
}

.pu-interna .table{
    margin-bottom:0;
}

.pu-interna .table thead th{
    position:sticky;
    top:0;
    z-index:5;
    background:var(--pu-cabecera) !important;
    color:var(--pu-texto-vino) !important;
    border:none;
    font-size:.84rem;
    font-weight:800;
    letter-spacing:.03em;
    text-transform:uppercase;
    vertical-align:middle;
    white-space:nowrap;
}

.pu-interna .table tbody td,
.pu-interna .table tbody th{
    padding:14px 12px;
    border-color:#ede5dc;
    color:var(--pu-texto);
    font-size:.9rem;
    vertical-align:middle;
}

.pu-interna .table tbody tr:hover td,
.pu-interna .table tbody tr:hover th{
    background:#fcfaf8;
}

.pu-registro .pu-registro-shell{
    max-width:1180px;
}

.pu-registro .pu-registro-shell form > .row:first-child{
    padding-top:0;
}

.pu-registro h1{
    margin-bottom:0;
}

.pu-register-card{
    margin:18px 0 0;
    padding:20px 20px 10px;
    border:1px solid var(--pu-linea);
    border-radius:18px;
    background:#fffdfb;
}

.pu-register-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
    padding-bottom:12px;
    border-bottom:1px solid var(--pu-linea);
}

.pu-register-heading h2{
    margin:0;
    color:var(--pu-texto-vino);
    font-size:1.08rem;
    text-transform:uppercase;
}

.pu-register-heading p{
    margin:0;
    color:var(--pu-texto-suave);
    font-size:.9rem;
    text-align:right;
}

.pu-registro label{
    margin-bottom:6px;
}

.pu-registro .form-control,
.pu-registro select{
    background:#fff;
}

.pu-register-note{
    color:var(--pu-texto-suave);
    font-weight:700;
}

.pu-pago-aviso{
    max-width:1120px;
    margin:0 auto;
    padding:22px;
    border:1px solid var(--pu-linea);
    border-radius:18px;
    background:#fffdfb;
    text-align:left;
}

.pu-pago-aviso h2{
    margin:0 0 18px 0;
    color:#111827;
    font-size:2rem;
    font-weight:500;
    text-transform:uppercase;
}

.pu-pago-aviso p{
    color:#111827;
    font-size:1rem;
    line-height:1.55;
}

.pu-pago-aviso table thead th{
    background:#5b9bd5 !important;
    color:#fff !important;
    font-size:1rem;
    text-transform:none;
}

.pu-pago-aviso table tbody td{
    background:#d8e3f3;
    color:#111827;
    font-size:1rem;
    font-weight:700;
}

.pago-shell{
    max-width:1120px;
    margin:0 auto;
}

.pago-hero,
.pago-panel{
    border:1px solid var(--pu-linea);
    border-radius:18px;
    background:#fffdfb;
}

.pago-hero{
    margin-bottom:18px;
    padding:24px;
}

.pago-hero h1{
    margin:0 0 10px;
    color:var(--pu-texto-vino);
    font-size:1.8rem;
}

.pago-hero p,
.pago-note{
    margin:0;
    color:var(--pu-texto-suave);
    line-height:1.55;
}

.pago-grid{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:16px;
}

.pago-panel{
    padding:20px;
}

.pago-panel h2{
    margin:0 0 12px;
    color:var(--pu-texto-vino);
    font-size:1.05rem;
    font-weight:800;
    text-transform:uppercase;
}

.pago-taller-list{
    display:grid;
    gap:10px;
}

.pago-taller-item{
    display:flex;
    gap:12px;
    align-items:flex-start;
    margin:0;
    padding:12px 14px;
    border:1px solid var(--pu-linea);
    border-radius:12px;
    background:#fff;
    cursor:pointer;
}

.pago-taller-item input{
    margin-top:4px;
}

.pago-taller-item strong,
.pago-taller-item small{
    display:block;
}

.pago-taller-item strong{
    color:var(--pu-texto);
}

.pago-taller-item small{
    margin-top:3px;
    color:var(--pu-texto-suave);
}

@media (max-width:767.98px){
    .pu-interna #cuerpo > .container,
    .pu-interna .container-fluid > .container,
    .pu-interna body > .container{
        width:calc(100% - 1rem);
        padding:0 12px 18px 12px !important;
    }

    .pu-interna h1{
        margin-left:-12px;
        margin-right:-12px;
        padding:26px 18px;
        font-size:1.35rem;
    }

    .pu-interna .btn-info,
    .pu-interna .btn-primary,
    .pu-interna .btn-success,
    .pu-interna input[type="button"].btn-info,
    .pu-interna input[type="submit"].btn-info{
        width:100%;
    }

    .pu-register-card{
        padding:16px 14px 8px;
    }

    .pu-register-heading{
        display:block;
    }

    .pu-register-heading p{
        margin-top:6px;
        text-align:left;
    }

    .pago-grid{
        grid-template-columns:1fr;
    }
}
