:root{
    --akv-navy:#102a43;
    --akv-navy-2:#173f5f;
    --akv-orange:#f59e0b;
    --akv-orange-2:#ffb74d;
    --akv-ink:#102a43;
    --akv-muted:#66788a;
    --akv-line:#e7edf2;
    --akv-surface:#ffffff;
}
body{background:#f6f8fa;color:var(--akv-ink);}
a{transition:all .22s ease;}
.akv-card{border:1px solid rgba(16,42,67,.08);box-shadow:0 18px 55px rgba(16,42,67,.08);overflow:hidden;background:#fff;}
.akv-card:hover{transform:translateY(-5px);box-shadow:0 26px 70px rgba(16,42,67,.14);}
.akv-card-image{height:280px;}
.akv-card-image img,.akv-main-image{object-fit:cover;}
.akv-card-price{background:rgba(16,42,67,.9);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.14);}
.akv-card-button{background:linear-gradient(135deg,var(--akv-navy),var(--akv-navy-2));}
.akv-facility-item,.akv-facility-tag{background:rgba(245,158,11,.10);color:#9a6200;border:1px solid rgba(245,158,11,.16);}
.akv-single-hero{background:radial-gradient(circle at 80% 20%,rgba(245,158,11,.18),transparent 35%),linear-gradient(135deg,#0d253a,#173f5f);}
.akv-single-badge,.akv-booking-badge{letter-spacing:.12em;}
.akv-single-card,.akv-booking-card{border:1px solid rgba(16,42,67,.08);box-shadow:0 22px 65px rgba(16,42,67,.09);}
.akv-main-image-wrap{overflow:hidden;}
.akv-thumbnail-button{padding:0;border:2px solid transparent;background:transparent;cursor:pointer;border-radius:12px;overflow:hidden;}
.akv-thumbnail-button.active{border-color:var(--akv-orange);}
.akv-thumbnail-button img{display:block;width:100%;height:100%;object-fit:cover;}
.akv-single-price strong{color:var(--akv-navy);}
#booking_button{background:linear-gradient(135deg,var(--akv-orange),#e88900);box-shadow:0 12px 30px rgba(245,158,11,.22);}
#booking_button:hover{transform:translateY(-1px);}
.akv-filter-wrapper{border:1px solid rgba(16,42,67,.08);box-shadow:0 18px 55px rgba(16,42,67,.07);}
.akv-filter-group input:focus,.akv-filter-group select:focus,.akv-form-group input:focus{border-color:var(--akv-orange);box-shadow:0 0 0 4px rgba(245,158,11,.10);outline:0;}
.akv-resume-button{width:100%;border:0;border-radius:12px;padding:13px 16px;background:var(--akv-navy);color:#fff;font-weight:700;cursor:pointer;}

.akv-review-summary{display:flex;align-items:center;gap:10px;padding:16px 18px;margin:12px 0 18px;border:1px solid #edf1f5;border-radius:16px;background:#fafbfc}.akv-review-summary strong{font-size:30px;color:#102a43}.akv-review-summary span{color:#f59e0b;letter-spacing:2px}.akv-review-summary small{color:#66788a}.akv-review-list{display:grid;gap:12px}.akv-review-item{padding:16px;border:1px solid #edf1f5;border-radius:14px;background:#fff}.akv-review-head{display:flex;justify-content:space-between;gap:12px}.akv-review-head span{color:#f59e0b}.akv-review-item p{margin:8px 0;color:#4b5d70;line-height:1.7}.akv-review-item small{color:#8795a3}.akv-review-empty{padding:16px;border-radius:14px;background:#f8fafc;color:#66788a}.akv-review-form{margin-top:20px;padding-top:20px;border-top:1px solid #edf1f5}.akv-review-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.akv-review-form input,.akv-review-form textarea{width:100%;border:1px solid #dfe7ee;border-radius:12px;padding:12px}.akv-rating-input{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px;margin:12px 0}.akv-rating-input input{display:none}.akv-rating-input label{font-size:28px;color:#cbd5df;cursor:pointer}.akv-rating-input label:hover,.akv-rating-input label:hover~label,.akv-rating-input input:checked~label{color:#f59e0b}.akv-review-submit{margin-top:12px;border:0;border-radius:12px;padding:12px 18px;background:#102a43;color:#fff;font-weight:800;cursor:pointer}.akv-review-success,.akv-review-error{margin-top:10px;padding:10px 12px;border-radius:10px;font-size:12px}.akv-review-success{background:#ecfdf5;color:#166534}.akv-review-error{background:#fef2f2;color:#991b1b}@media(max-width:600px){.akv-review-form-grid{grid-template-columns:1fr}.akv-review-summary{flex-wrap:wrap}}


/* =========================================================
   AKUVILLA 3.2.1 — PREMIUM UI POLISH
   Visual-only overrides. Booking/payment logic unchanged.
========================================================= */

:root{
    --akv-navy:#0b2036;
    --akv-navy-2:#153b5c;
    --akv-orange:#f59e0b;
    --akv-orange-dark:#d97706;
    --akv-cream:#f7f8fa;
    --akv-ink:#14283d;
    --akv-muted:#6f7f90;
    --akv-line:#e6ebf0;
    --akv-white:#fff;
}

body{
    background:
        radial-gradient(circle at 100% 0%,rgba(245,158,11,.055),transparent 28%),
        #f7f8fa;
}

/* VILLA CARDS */
.akv-card{
    border:1px solid rgba(11,32,54,.08);
    border-radius:24px;
    background:#fff;
    box-shadow:0 12px 35px rgba(11,32,54,.07);
    transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.akv-card:hover{
    transform:translateY(-7px);
    border-color:rgba(245,158,11,.25);
    box-shadow:0 24px 55px rgba(11,32,54,.13);
}
.akv-card-image{
    height:290px;
    background:#e9edf1;
}
.akv-card-image img{transition:transform .65s cubic-bezier(.2,.7,.2,1);}
.akv-card-overlay{
    background:linear-gradient(180deg,rgba(5,17,29,.04) 18%,rgba(5,17,29,.72) 100%);
}
.akv-card-location{
    top:16px;
    left:16px;
    height:34px;
    padding:0 13px;
    background:rgba(11,32,54,.52);
    border:1px solid rgba(255,255,255,.2);
    backdrop-filter:blur(14px);
}
.akv-card-price{
    left:18px;
    bottom:18px;
}
.akv-card-price strong{font-size:25px;letter-spacing:-.7px;}
.akv-card-content{padding:21px;}
.akv-card-top{margin-bottom:9px;}
.akv-card-top h3{
    font-size:21px;
    letter-spacing:-.55px;
    color:var(--akv-ink);
}
.akv-card-rating{
    min-width:62px;
    height:30px;
    padding:0 9px;
    background:#fff7e8;
    color:#a16207;
    border:1px solid #f7dfae;
}
.akv-card-description{
    color:#718092;
    font-size:12.5px;
    min-height:42px;
}
.akv-card-facilities{gap:7px;margin-top:17px;}
.akv-facility-item{
    height:29px;
    padding:0 11px;
    background:#f7f9fb;
    color:#53677b;
    border:1px solid #e5eaf0;
}
.akv-card-footer{
    margin-top:18px;
    padding-top:17px;
    border-color:#edf1f4;
}
.akv-card-button{
    height:49px;
    border-radius:14px;
    padding:0 17px;
    background:linear-gradient(135deg,#0b2036,#173b5a);
    box-shadow:0 8px 18px rgba(11,32,54,.12);
}
.akv-card:hover .akv-card-button{
    background:linear-gradient(135deg,#173b5a,#0b2036);
}

/* BOOKING / PAYMENT FORM */
#akuvilla-booking.akv-booking-card{
    position:sticky;
    top:105px;
    border:1px solid rgba(11,32,54,.09);
    border-radius:26px;
    background:rgba(255,255,255,.97);
    box-shadow:0 22px 65px rgba(11,32,54,.11);
    overflow:hidden;
}
#akuvilla-booking .akv-booking-header{
    position:relative;
    padding:26px 26px 22px;
    margin:0 0 21px;
    background:linear-gradient(135deg,#0b2036,#173b5a);
    color:#fff;
}
#akuvilla-booking .akv-booking-header:after{
    content:"";
    position:absolute;
    width:150px;height:150px;
    right:-55px;top:-80px;
    border-radius:50%;
    background:rgba(245,158,11,.17);
}
#akuvilla-booking .akv-booking-badge{
    position:relative;
    z-index:1;
    padding:7px 12px;
    margin-bottom:13px;
    background:rgba(245,158,11,.16);
    border:1px solid rgba(245,158,11,.35);
    color:#ffd27a;
}
#akuvilla-booking .akv-booking-header h2,
#akuvilla-booking .akv-booking-header p{position:relative;z-index:1;}
#akuvilla-booking .akv-booking-header h2{
    color:#fff;
    font-size:26px;
    margin-bottom:8px;
}
#akuvilla-booking .akv-booking-header p{
    color:rgba(255,255,255,.72);
    line-height:1.65;
}
#akuvilla-booking .akv-booking-form,
#akuvilla-booking .akv-calendar-legend,
#akuvilla-booking #total_box,
#akuvilla-booking #booking_button{
    margin-left:24px;
    margin-right:24px;
}
#akuvilla-booking .akv-calendar-legend{
    padding:11px 13px;
    margin-bottom:18px;
    border:1px solid #e9eef3;
    border-radius:14px;
    background:#f8fafc;
}
#akuvilla-booking .akv-legend-item small{font-size:10px;color:#718092;}
#akuvilla-booking .akv-form-group label{
    color:#344b60;
    font-size:11px;
    font-weight:800;
    letter-spacing:.01em;
}
#akuvilla-booking .akv-form-group input{
    height:50px;
    border:1px solid #e2e8ee;
    border-radius:13px;
    background:#fbfcfd;
    color:#172d42;
    box-shadow:none;
}
#akuvilla-booking .akv-form-group input:hover{border-color:#cbd6e0;}
#akuvilla-booking .akv-form-group input:focus{
    background:#fff;
    border-color:#f59e0b;
    box-shadow:0 0 0 4px rgba(245,158,11,.10);
}
#akuvilla-booking #voucher_code{text-transform:uppercase;}
#akuvilla-booking #apply_voucher{
    min-width:74px;
    border:1px solid #d9e1e8;
    border-radius:13px;
    background:#fff;
    color:#17324b;
    font-weight:800;
    cursor:pointer;
    transition:.2s ease;
}
#akuvilla-booking #apply_voucher:hover{
    border-color:#f59e0b;
    color:#b45309;
    background:#fffaf0;
}
#akuvilla-booking #total_box{
    margin-top:22px;
    padding:21px;
    border:1px solid rgba(245,158,11,.28);
    border-radius:20px;
    background:linear-gradient(135deg,#0b2036,#173b5a);
    color:#fff;
    box-shadow:0 14px 32px rgba(11,32,54,.15);
}
#akuvilla-booking #total_box small{color:rgba(255,255,255,.66);}
#akuvilla-booking #total_price{font-size:29px;letter-spacing:-1.2px;}
#akuvilla-booking #total_night{color:rgba(255,255,255,.78);}
#akuvilla-booking #voucher_discount{color:#ffd27a!important;}
#akuvilla-booking #booking_button{
    width:calc(100% - 48px);
    margin-top:16px;
    margin-bottom:25px;
    height:55px;
    border:0;
    border-radius:15px;
    background:linear-gradient(135deg,#f59e0b,#d97706);
    box-shadow:0 12px 25px rgba(245,158,11,.23);
    font-size:14px;
    font-weight:800;
}
#akuvilla-booking #booking_button:hover{
    transform:translateY(-2px);
    box-shadow:0 17px 32px rgba(245,158,11,.29);
}
#akuvilla-booking #booking_button:disabled{opacity:.65;}

/* ALERTS */
#akuvilla-booking .akv-alert-box{
    border:1px solid rgba(11,32,54,.08);
    box-shadow:0 8px 22px rgba(11,32,54,.06);
}

/* FLATPICKR */
#akuvilla-booking .flatpickr-calendar{
    border:1px solid #e2e8ee;
    border-radius:18px;
    box-shadow:0 20px 50px rgba(11,32,54,.16);
    overflow:hidden;
}
#akuvilla-booking .flatpickr-months{
    background:#0b2036;
    color:#fff;
}
#akuvilla-booking .flatpickr-current-month,
#akuvilla-booking .flatpickr-weekdays,
#akuvilla-booking span.flatpickr-weekday{color:#fff;}
#akuvilla-booking .flatpickr-day.selected,
#akuvilla-booking .flatpickr-day.startRange,
#akuvilla-booking .flatpickr-day.endRange{
    background:#f59e0b;
    border-color:#f59e0b;
}
#akuvilla-booking .flatpickr-day:hover{background:#fff4d9;border-color:#fff4d9;}

/* SINGLE VILLA */
.akv-single-card{
    border:1px solid rgba(11,32,54,.08);
    box-shadow:0 18px 55px rgba(11,32,54,.08);
}
.akv-single-section-box{
    border-color:#e8edf2;
    border-radius:20px;
}
.akv-facility-tag{
    background:#f7f9fb;
    color:#53677b;
    border:1px solid #e3e9ef;
}

/* MOBILE */
@media(max-width:900px){
    #akuvilla-booking.akv-booking-card{position:relative;top:auto;}
}
@media(max-width:640px){
    .akv-card-image{height:250px;}
    .akv-card-content{padding:18px;}
    .akv-card-top h3{font-size:19px;}
    #akuvilla-booking .akv-booking-header{padding:23px 20px 20px;}
    #akuvilla-booking .akv-booking-form,
    #akuvilla-booking .akv-calendar-legend,
    #akuvilla-booking #total_box,
    #akuvilla-booking #booking_button{margin-left:18px;margin-right:18px;}
    #akuvilla-booking #booking_button{width:calc(100% - 36px);}
}

#akuvilla-booking .akv-voucher-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;}
#akuvilla-booking .akv-voucher-message{display:block;min-height:16px;margin-top:7px;color:#718092;font-size:11px;line-height:1.45;}
#akuvilla-booking .akv-voucher-discount{display:none;margin-top:7px;font-size:12px;color:#ffd27a!important;line-height:1.5;}
@media(max-width:380px){#akuvilla-booking .akv-voucher-row{grid-template-columns:1fr;}#akuvilla-booking #apply_voucher{height:46px;}}


/* =========================================================
   AKUVILLA 3.2.2 — UNIFIED VILLA CARD SYSTEM
   Home + /villa use exactly the same visual card component.
   Visual-only changes. Booking/business logic untouched.
========================================================= */

.akv-card{
    position:relative;
    display:flex;
    flex-direction:column;
    width:100%;
    min-width:0;
    height:100%;
    border:1px solid #e7ebef;
    border-radius:22px;
    overflow:hidden;
    background:#ffffff;
    box-shadow:0 8px 28px rgba(11,32,54,.055);
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}

.akv-card:hover{
    transform:translateY(-5px);
    border-color:#dce3e9;
    box-shadow:0 18px 42px rgba(11,32,54,.105);
}

.akv-card-link{
    display:flex;
    flex-direction:column;
    width:100%;
    height:100%;
    color:inherit;
    text-decoration:none;
}

.akv-card-image{
    position:relative;
    width:100%;
    height:250px;
    flex:0 0 250px;
    overflow:hidden;
    background:#eef1f3;
}

.akv-card-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    transition:transform .55s cubic-bezier(.2,.7,.2,1);
}

.akv-card:hover .akv-card-image img{
    transform:scale(1.035);
}

.akv-card-overlay{
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(
        180deg,
        rgba(7,18,29,.04) 15%,
        rgba(7,18,29,.12) 48%,
        rgba(7,18,29,.68) 100%
    );
    pointer-events:none;
}

.akv-card-location{
    position:absolute;
    top:14px;
    left:14px;
    z-index:3;
    display:inline-flex;
    align-items:center;
    max-width:calc(100% - 28px);
    height:32px;
    padding:0 11px;
    border:1px solid rgba(255,255,255,.26);
    border-radius:999px;
    background:rgba(9,25,40,.58);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    color:#fff;
    font-size:11px;
    font-weight:700;
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.akv-card-price{
    position:absolute;
    left:17px;
    bottom:16px;
    z-index:3;
    margin:0;
    padding:0;
    color:#fff;
    background:transparent;
    border:0;
    box-shadow:none;
}

.akv-card-price small{
    display:block;
    margin-bottom:4px;
    color:rgba(255,255,255,.74);
    font-size:10px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.akv-card-price strong{
    display:inline;
    color:#fff;
    font-size:21px;
    font-weight:800;
    letter-spacing:-.45px;
    line-height:1.1;
}

.akv-card-price span{
    margin-left:4px;
    color:rgba(255,255,255,.76);
    font-size:11px;
    font-weight:600;
}

.akv-card-content{
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    min-width:0;
    padding:18px 19px 17px;
    background:#fff;
}

.akv-card-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    min-height:31px;
    margin:0 0 8px;
}

.akv-card-top h3{
    flex:1 1 auto;
    min-width:0;
    margin:0;
    color:#14283d;
    font-size:19px;
    font-weight:800;
    line-height:1.28;
    letter-spacing:-.35px;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
}

.akv-card-rating{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:58px;
    height:28px;
    padding:0 8px;
    border:1px solid #eee2c8;
    border-radius:999px;
    background:#fffaf0;
    color:#9a6a13;
    font-size:11px;
    font-weight:800;
    line-height:1;
    white-space:nowrap;
}

.akv-card-rating small{
    margin-left:2px;
    color:#8b98a5;
    font-size:9px;
    font-weight:700;
}

.akv-card-description{
    min-height:38px;
    margin:0;
    color:#748291;
    font-size:12px;
    font-weight:500;
    line-height:1.58;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
}

.akv-card-facilities{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px;
    min-height:29px;
    margin:15px 0 0;
}

.akv-facility-item{
    display:inline-flex;
    align-items:center;
    height:27px;
    padding:0 9px;
    border:1px solid #e8edf1;
    border-radius:999px;
    background:#f8fafb;
    color:#56697a;
    font-size:10px;
    font-weight:700;
    line-height:1;
    white-space:nowrap;
}

.akv-card-footer{
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #edf1f4;
}

.akv-card-button{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:46px;
    padding:0 15px;
    border:1px solid #173b5a;
    border-radius:13px;
    background:#102a43;
    color:#fff;
    font-size:12px;
    font-weight:800;
    line-height:1;
    transition:background .2s ease,border-color .2s ease,transform .2s ease;
}

.akv-card-button span{
    margin-left:8px;
    font-size:16px;
    line-height:1;
    transition:transform .2s ease;
}

.akv-card:hover .akv-card-button{
    background:#173b5a;
    border-color:#173b5a;
}

.akv-card:hover .akv-card-button span{
    transform:translateX(3px);
}

/* Keep both grids visually identical. */
.akv-villa-grid{
    align-items:stretch;
}

.akv-villa-grid .akv-card,
.akv-villa-grid .akv-card-link{
    height:100%;
}

/* Home-page villa grids commonly use these wrappers. */
.akv-villas-grid,
.akv-featured-villas,
.akv-home-villa-grid{
    align-items:stretch;
}

.akv-villas-grid .akv-card,
.akv-featured-villas .akv-card,
.akv-home-villa-grid .akv-card{
    height:100%;
}

/* Prevent global/theme rules from changing the shared card proportions. */
.akv-card img{
    max-width:100%;
}

@media (max-width: 1100px){
    .akv-card-image{
        height:230px;
        flex-basis:230px;
    }

    .akv-card-content{
        padding:17px;
    }
}

@media (max-width: 768px){
    .akv-card{
        border-radius:19px;
    }

    .akv-card-image{
        height:220px;
        flex-basis:220px;
    }

    .akv-card-content{
        padding:16px;
    }

    .akv-card-top h3{
        font-size:18px;
    }

    .akv-card-description{
        font-size:11.5px;
    }

    .akv-card-button{
        height:44px;
    }
}

@media (max-width: 480px){
    .akv-card-image{
        height:205px;
        flex-basis:205px;
    }

    .akv-card-location{
        top:12px;
        left:12px;
        max-width:calc(100% - 24px);
        height:30px;
        padding:0 10px;
        font-size:10px;
    }

    .akv-card-price{
        left:14px;
        bottom:14px;
    }

    .akv-card-price strong{
        font-size:19px;
    }

    .akv-card-content{
        padding:15px;
    }

    .akv-card-top{
        gap:8px;
    }

    .akv-card-rating{
        min-width:54px;
        height:26px;
        padding:0 7px;
        font-size:10px;
    }

    .akv-facility-item{
        height:25px;
        padding:0 8px;
        font-size:9.5px;
    }
}

.akv-payment-methods{display:grid;gap:10px;margin-top:8px}.akv-payment-option{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;cursor:pointer;transition:.2s}.akv-payment-option:has(input:checked){border-color:#111827;box-shadow:0 0 0 2px rgba(17,24,39,.06)}.akv-payment-option input{width:18px;height:18px;margin:0}.akv-payment-option-content{display:grid;gap:3px}.akv-payment-option-content strong{font-size:14px}.akv-payment-option-content small{color:#64748b;line-height:1.5}.akv-payment-unavailable{padding:14px 16px;border-radius:14px;background:#fff7ed;color:#9a3412}.akv-bank-payment-result{margin-top:18px;padding:20px;border:1px solid #e5e7eb;border-radius:18px;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.08)}.akv-bank-payment-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.akv-bank-payment-head span{font-size:12px;font-weight:700;color:#92400e;background:#fffbeb;padding:7px 10px;border-radius:999px}.akv-bank-order{margin-top:12px;color:#64748b}.akv-bank-total{font-size:28px;font-weight:800;margin:14px 0 18px}.akv-bank-detail{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-top:1px solid #f1f5f9}.akv-bank-detail span{color:#64748b}.akv-bank-detail strong{text-align:right}.akv-bank-instruction{margin-top:14px;padding:13px 14px;border-radius:12px;background:#f8fafc;color:#475569;line-height:1.65}
@media(max-width:640px){.akv-bank-payment-head{align-items:flex-start;flex-direction:column}.akv-bank-total{font-size:24px}.akv-bank-detail{display:grid;gap:4px}.akv-bank-detail strong{text-align:left}}
