/* ==========================================================
   PARTNERS
   ========================================================== */

.partners-page {
    max-width:1200px;
    margin:0 auto;
    padding:1rem;
}

.partners-intro {
    max-width:880px;
    margin:0 auto 3rem;
}

.partners-section {
    margin-bottom:4rem;
}


/* ==========================================================
   COLLABORATION
   ========================================================== */

.partner-card {
    display:flex;
    flex-direction:column;
}

.partner-card__icon,
.contract-docs-card__icon {
    display:flex;
    align-items:center;
    justify-content:center;

    width:48px;
    height:48px;

    margin-bottom:1rem;

    border-radius:var(--villa-radius-sm);

    background:var(--villa-surface-green);

    color:var(--villa-green);

    font-size:1.15rem;
}

.partner-card__title {
    margin-bottom:.55rem;

    color:var(--villa-green-dark);

    font-size:1.1rem;
}

.partner-card__text {
    margin:0;

    color:var(--villa-text-soft);

    font-size:.94rem;
    line-height:1.65;
}


/* ==========================================================
   CONTACT
   ========================================================== */

.partner-contact {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:2rem;

    padding:1.5rem 1.75rem;

    border:1px solid var(--villa-border);
    border-radius:var(--villa-radius-lg);

    background:var(--villa-surface-green);
    box-shadow:var(--villa-shadow);
}

.partner-contact__content {
    max-width:620px;
}

.partner-contact__title {
    margin:.25rem 0 .4rem;

    color:var(--villa-green-dark);

    font-size:1.25rem;
}

.partner-contact__text {
    margin:0;

    color:var(--villa-text-soft);

    line-height:1.6;
}

.partner-contact__actions {
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:.75rem;
}


/* ==========================================================
   PARTNER DOCUMENTS
   ========================================================== */

.partner-docs {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.75rem 1rem;
}

.partner-doc {
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    align-items:center;
    gap:.9rem;

    min-width:0;

    padding:.9rem 1rem;

    border:1px solid var(--villa-border);
    border-radius:var(--villa-radius-sm);

    background:var(--villa-surface);

    color:var(--villa-text);
    text-decoration:none;

    transition:
        border-color var(--villa-transition),
        box-shadow var(--villa-transition),
        transform var(--villa-transition),
        background-color var(--villa-transition);
}

.partner-doc:hover {
    transform:translateY(-1px);

    border-color:rgba(var(--bs-villa-gr-rgb),.2);

    background:var(--villa-surface-solid);

    color:var(--villa-green-dark);

    box-shadow:0 5px 16px rgba(var(--bs-villa-dg-rgb),.08);
}

.partner-doc__icon {
    display:flex;
    align-items:center;
    justify-content:center;

    width:42px;
    height:42px;

    border-radius:var(--villa-radius-sm);

    background:var(--villa-surface-green);

    color:var(--villa-green);

    font-size:1.15rem;
}

.partner-doc__content {
    display:flex;
    flex-direction:column;

    min-width:0;
}

.partner-doc__content strong {
    font-size:.94rem;
    font-weight:500;
    line-height:1.4;
}

.partner-doc__content small {
    margin-top:.15rem;

    color:var(--villa-muted);

    font-size:.7rem;
    letter-spacing:.035em;
}

.partner-doc__arrow {
    color:rgba(var(--bs-villa-dg-rgb),.35);

    font-size:.8rem;

    transition:
        color var(--villa-transition),
        transform var(--villa-transition);
}

.partner-doc:hover .partner-doc__arrow {
    transform:translateX(2px);

    color:var(--villa-green);
}


/* ==========================================================
   REQUISITES
   ========================================================== */

.requisites-card {
    overflow:hidden;

    border:1px solid var(--villa-border);
    border-radius:var(--villa-radius-lg);

    background:var(--villa-surface);
    box-shadow:var(--villa-shadow);
}

.requisites-card__head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;

    padding:1.4rem 1.5rem;

    border-bottom:1px solid var(--villa-border);

    background:var(--villa-surface-soft);
}

.requisites-card__name {
    margin:0;

    color:var(--villa-green-dark);

    font-size:1.2rem;
}

.requisites-card__actions {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-end;
    gap:.75rem;
}

.requisites-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.requisite {
    min-width:0;

    padding:1rem 1.2rem;

    border-right:1px solid var(--villa-border);
    border-bottom:1px solid var(--villa-border);
}

.requisite:nth-child(2n) {
    border-right:0;
}

.requisite--wide {
    grid-column:1 / -1;
    border-right:0;
}

.requisite__label {
    display:block;

    margin-bottom:.2rem;

    color:var(--villa-muted);

    font-size:.7rem;
    line-height:1.3;

    text-transform:uppercase;
    letter-spacing:.04em;
}

.requisite__value {
    display:block;

    color:var(--villa-text);

    font-size:.92rem;
    line-height:1.5;

    overflow-wrap:anywhere;
}


/* ==========================================================
   CONTRACT DOCUMENTS
   ========================================================== */

.contract-docs-card {
    display:flex;
    flex-direction:column;
}

.contract-docs-card .list-villa {
    color:var(--villa-text-soft);
}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width:767.98px) {

    .partners-page {
        padding:.5rem;
    }

    .partners-intro {
        margin-bottom:2.5rem;
    }

    .partners-section {
        margin-bottom:3rem;
    }

    .partner-contact {
        flex-direction:column;
        align-items:stretch;

        padding:1.25rem;
    }

    .partner-contact__actions {
        flex-direction:column;
        justify-content:stretch;
    }

    .partner-contact__actions .uni-button {
        width:100%;
    }

    .partner-docs {
        grid-template-columns:1fr;
    }

    .requisites-card__head {
        flex-direction:column;
        align-items:stretch;
    }

    .requisites-card__actions {
        flex-direction:column;
        align-items:stretch;
    }

    .requisites-card__actions > .btn,
    .requisites-card__actions > .uni-button {
        width:100%;
    }

    .requisites-grid {
        grid-template-columns:1fr;
    }

    .requisite,
    .requisite:nth-child(2n),
    .requisite--wide {
        grid-column:auto;
        border-right:0;
    }

}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion:reduce) {

    .partner-doc,
    .partner-doc__arrow {
        transition:none!important;
    }

    .partner-doc:hover,
    .partner-doc:hover .partner-doc__arrow {
        transform:none!important;
    }

}