/* ==========================================================
   DOCS — GUESTS
   ========================================================== */

.docs-page {
    max-width:1200px;
    margin:0 auto;
    padding:1rem;
}

.docs-intro {
    max-width:860px;
    margin:0 auto 2.5rem;
}


/* ==========================================================
   SEARCH
   ========================================================== */

.docs-search {
    position:relative;
    max-width:680px;
    margin:0 auto 3rem;
}

.docs-search .form-control {
    min-height:54px;
    padding:.75rem 3.25rem .75rem 1.1rem;

    border-color:var(--villa-border);
    border-radius:var(--villa-radius);

    background:var(--villa-surface-solid);

    box-shadow:var(--villa-shadow);
}

.docs-search .form-control:focus {
    border-color:rgba(var(--bs-villa-gr-rgb),.45);
    box-shadow:var(--villa-focus-ring);
}

.docs-search__icon {
    position:absolute;
    top:50%;
    right:1.15rem;

    transform:translateY(-50%);

    color:var(--villa-muted);

    pointer-events:none;
}


/* ==========================================================
   DOCUMENT CATEGORIES
   ========================================================== */

.docs-categories {
    display:flex;
    flex-direction:column;
    gap:1.5rem;
}

.docs-category {
    padding:1.5rem;

    border:1px solid var(--villa-border);
    border-radius:var(--villa-radius-lg);

    background:var(--villa-surface);
    box-shadow:var(--villa-shadow);
}

.docs-category:nth-child(even) {
    background:var(--villa-surface-soft);
}

.docs-category-header,
.docs-category__head {
    display:flex;
    align-items:center;
    gap:1rem;

    margin-bottom:1.25rem;
}

.docs-category-icon,
.docs-category__icon {
    display:flex;
    align-items:center;
    justify-content:center;

    flex:0 0 44px;

    width:44px;
    height:44px;

    border-radius:var(--villa-radius-sm);

    background:var(--villa-surface-green);

    color:var(--villa-green);
    font-size:1.15rem;
}

.docs-category-icon svg {
    width:22px;
    height:22px;
}

.docs-category-title,
.docs-category__title {
    margin:0;

    color:var(--villa-green-dark);

    font-size:1.2rem;
    font-weight:600;
    line-height:1.35;
}

.docs-category-count {
    margin-left:auto;

    color:var(--villa-muted);

    font-size:.82rem;
    white-space:nowrap;
}


/* ==========================================================
   DOCUMENT LIST
   ========================================================== */

.docs-items {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.65rem 1rem;
}

.docs-list-item {
    display:flex;
    align-items:center;
    gap:.9rem;

    min-width:0;

    padding:.8rem .9rem;

    border:1px solid transparent;
    border-radius:var(--villa-radius-sm);

    background:rgba(255,255,255,.72);

    color:var(--villa-text);
    text-decoration:none;

    transition:
        background-color var(--villa-transition),
        border-color var(--villa-transition),
        box-shadow var(--villa-transition),
        transform var(--villa-transition);
}

.docs-list-item:hover {
    transform:translateY(-1px);

    border-color:rgba(var(--bs-villa-gr-rgb),.18);

    background:var(--villa-surface-solid);

    color:var(--villa-green-dark);

    box-shadow:0 5px 16px rgba(var(--bs-villa-dg-rgb),.08);
}

.docs-list-icon {
    display:flex;
    align-items:center;
    justify-content:center;

    flex:0 0 38px;

    width:38px;
    height:42px;

    color:var(--villa-green);
}

.docs-list-icon svg {
    width:30px;
    height:35px;
}

.docs-list-content {
    min-width:0;
    flex:1;
}

.docs-list-title {
    display:block;

    font-size:.95rem;
    font-weight:500;
    line-height:1.4;
}

.docs-file-meta {
    display:flex;
    align-items:center;
    gap:.4rem;

    margin-top:.2rem;

    color:var(--villa-muted);

    font-size:.75rem;
}

.docs-file-type {
    text-transform:uppercase;
    letter-spacing:.035em;
}

.docs-list-arrow {
    flex:0 0 auto;

    margin-left:.25rem;

    color:rgba(var(--bs-villa-dg-rgb),.35);

    transition:
        color var(--villa-transition),
        transform var(--villa-transition);
}

.docs-list-arrow svg {
    width:17px;
    height:17px;
}

.docs-list-item:hover .docs-list-arrow {
    transform:translateX(2px);

    color:var(--villa-green);
}


/* ==========================================================
   FINANCE
   ========================================================== */

.docs-category--finance {
    margin-top:2rem;
}

.docs-finance-card {
    display:flex;
    flex-direction:column;
}

.docs-finance-actions {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
    gap:.75rem;

    margin-top:auto;
}

.docs-finance-actions .uni-button {
    width:100%;
    max-width:100%;
    height:100%;
}


/* ==========================================================
   TAX DEDUCTION
   ========================================================== */

.docs-tax-disclosure {
    box-shadow:var(--villa-shadow);
}

.docs-tax-disclosure__summary {
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:1.5rem;
}

.docs-tax-disclosure__body {
    line-height:1.65;
}

.docs-tax-disclosure__body > *:first-child {
    margin-top:0;
}

.docs-tax-disclosure__body > *:last-child {
    margin-bottom:0;
}


/* Inner legal disclosure */

.docs-legal-details {
    overflow:hidden;

    border:1px solid var(--villa-border);
    border-radius:var(--villa-radius-sm);

    background:var(--villa-surface-soft);
}

.docs-legal-details summary {
    position:relative;

    padding:.9rem 2.75rem .9rem 1rem;

    color:var(--villa-green-dark);

    font-weight:500;

    cursor:pointer;
    list-style:none;
}

.docs-legal-details summary::-webkit-details-marker {
    display:none;
}

.docs-legal-details summary::after {
    content:"+";

    position:absolute;
    top:50%;
    right:1rem;

    transform:translateY(-50%);

    color:var(--villa-green);

    font-size:1.2rem;
}

.docs-legal-details[open] summary::after {
    content:"−";
}

.docs-legal-details__body {
    padding:0 1rem 1rem;

    color:var(--villa-text-soft);

    font-size:.92rem;
    line-height:1.6;
}



.docs-legal-note {
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    gap:1rem;
    align-items:start;

    padding:1rem 1.1rem;

    border:1px solid var(--villa-border);
    border-radius:var(--villa-radius-sm);

    background:var(--villa-surface-soft);
}

.docs-legal-note__icon {
    display:flex;
    align-items:center;
    justify-content:center;

    width:42px;
    height:42px;

    border-radius:.75rem;

    background:var(--villa-surface-green);
    color:var(--villa-green);
}

.docs-legal-note__title {
    margin-bottom:.25rem;

    color:var(--villa-green-dark);

    font-weight:600;
}

.docs-legal-note__text {
    color:var(--villa-text-soft);

    font-size:.92rem;
    line-height:1.6;
}



/* ==========================================================
   EMPTY SEARCH
   ========================================================== */

.docs-search-empty {
    display:none;

    margin-top:1.5rem;
    padding:2rem;

    border:1px dashed var(--villa-border);
    border-radius:var(--villa-radius);

    color:var(--villa-muted);

    text-align:center;
}


/* Anchors */

#tax-deduction,
#tax-deduction-info {
    scroll-margin-top:110px;
}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width:767.98px) {
    
    .docs-legal-note {
        display: block;
    }

    .docs-page {
        padding:.5rem;
    }

    .docs-intro {
        margin-bottom:2rem;
    }

    .docs-search {
        margin-bottom:2rem;
    }

    .docs-category {
        padding:1rem;
    }

    .docs-category-header,
    .docs-category__head {
        align-items:flex-start;
    }

    .docs-category-count {
        display:none;
    }

    .docs-items {
        grid-template-columns:1fr;
        gap:.45rem;
    }

    .docs-list-item {
        padding:.75rem;
    }

    .docs-tax-disclosure__summary {
        grid-template-columns:1fr;
        gap:.75rem;
    }

    .docs-tax-disclosure__summary .villa-disclosure__action {
        justify-self:start;
    }

}

@media (prefers-reduced-motion:reduce) {

    .docs-list-item,
    .docs-list-arrow {
        transition:none!important;
    }

    .docs-list-item:hover,
    .docs-list-item:hover .docs-list-arrow {
        transform:none!important;
    }

}


