/*====================================================
                    ROOT
====================================================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:'Poppins',sans-serif;
    background:#f5f7fb;
    color:#1f2937;
}


/*====================================================
                    LAYOUT
====================================================*/

.studio{
    display:flex;
    min-height:100vh;
}


/*====================================================
                    SIDEBAR
====================================================*/

.studio-sidebar{

    width:320px;

    background:linear-gradient(180deg,#0f172a,#111827);

    color:#fff;

    padding:40px 30px;

    position:fixed;

    top:0;
    left:0;
    bottom:0;

    overflow-y:auto;

}


.brand{

    font-size:32px;
    font-weight:700;
    margin-bottom:40px;

}

.brand span{

    color:#FFC107;

}


.studio-title h2{

    font-size:24px;

    margin-bottom:8px;

}

.studio-title p{

    color:#cbd5e1;

    margin-bottom:35px;

}


/*====================================================
                STEP NAVIGATION
====================================================*/

.wizard-steps{

    list-style:none;

}

.wizard-step{

    display:flex;

    gap:15px;

    align-items:center;

    padding:15px;

    border-radius:14px;

    margin-bottom:15px;

    transition:.35s;

    cursor:pointer;

}

.wizard-step:hover{

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

}

.wizard-step.active{

    background:#FFC107;

    color:#111;

}

.step-icon{

    width:48px;

    height:48px;

    border-radius:50%;

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

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:20px;

}

.wizard-step.active .step-icon{

    background:#fff;

}

.wizard-step strong{

    display:block;

}

.wizard-step small{

    opacity:.8;

}


/*====================================================
                    CONTENT
====================================================*/

.studio-content{

    margin-left:320px;

    width:calc(100% - 320px);

    padding:45px;

}


/*====================================================
                    HEADER
====================================================*/

.studio-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:35px;

}

.studio-header h2{

    font-size:34px;

    font-weight:700;

}

.studio-header p{

    color:#64748b;

    margin-top:8px;

}


/*====================================================
                PROGRESS BAR
====================================================*/

.completion{

    width:260px;

}

.progress-wrapper{

    height:10px;

    background:#dbe4ee;

    border-radius:50px;

    overflow:hidden;

    margin-top:10px;

}

#progressBar{

    width:12%;

    height:100%;

    background:linear-gradient(90deg,#FFC107,#ffda58);

    border-radius:50px;

    transition:.4s;

}


/*====================================================
                    CARD
====================================================*/

.wizard-card{

    background:#fff;

    border-radius:22px;

    padding:45px;

    box-shadow:0 20px 60px rgba(0,0,0,.08);

    min-height:550px;

}

.step{

    display:none;

}

.step.active{

    display:block;

}

.step h3{

    font-size:30px;

    margin-bottom:10px;

}

.step p{

    color:#64748b;

    margin-bottom:35px;

}


/*====================================================
                FORM GROUPS
====================================================*/

.form-group{

    margin-bottom:24px;

}

.form-group label{

    display:block;

    font-weight:600;

    margin-bottom:10px;

}

.form-group input,

.form-group textarea,

.form-group select{

    width:100%;

    padding:16px;

    border:1px solid #d6dce5;

    border-radius:12px;

    font-size:15px;

    transition:.3s;

    outline:none;

}

.form-group input:focus,

.form-group textarea:focus,

.form-group select:focus{

    border-color:#FFC107;

    box-shadow:0 0 0 4px rgba(255,193,7,.15);

}

textarea{

    resize:none;

    height:140px;

}


/*====================================================
                TWO COLUMN
====================================================*/

.row{

    display:flex;

    gap:20px;

}

.col{

    flex:1;

}


/*====================================================
                FOOTER
====================================================*/

.wizard-footer{

    margin-top:35px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}


/*====================================================
                BUTTONS
====================================================*/

.btn-primary,

.btn-secondary,

.btn-draft{

    padding:15px 30px;

    border:none;

    border-radius:12px;

    cursor:pointer;

    font-weight:600;

    transition:.3s;

}

.btn-primary{

    background:#FFC107;

    color:#111;

}

.btn-primary:hover{

    transform:translateY(-3px);

    box-shadow:0 15px 35px rgba(255,193,7,.35);

}

.btn-secondary{

    background:#edf2f7;

}

.btn-secondary:hover{

    background:#dbe4ee;

}

.btn-draft{

    background:#111827;

    color:#fff;

}

.btn-draft:hover{

    background:#1e293b;

}


/*====================================================
                IMAGE PREVIEW
====================================================*/

.preview{

    margin-top:25px;

    border:2px dashed #d6dce5;

    border-radius:16px;

    height:260px;

    display:flex;

    justify-content:center;

    align-items:center;

    overflow:hidden;

}

.preview img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:none;

}


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

@media(max-width:992px){

.studio{

    flex-direction:column;

}

.studio-sidebar{

    position:relative;

    width:100%;

    height:auto;

}

.studio-content{

    margin-left:0;

    width:100%;

    padding:25px;

}

.studio-header{

    flex-direction:column;

    align-items:flex-start;

    gap:20px;

}

.completion{

    width:100%;

}

.row{

    flex-direction:column;

}

.wizard-footer{

    flex-direction:column;

    gap:15px;

}

.btn-primary,
.btn-secondary,
.btn-draft{

    width:100%;

}

}

/*==================================
        PROPERTY TYPES
==================================*/

.property-types{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:25px;

    margin-top:30px;

}

.property-type{

    background:#fff;

    border:2px solid #e8edf4;

    border-radius:18px;

    padding:35px 20px;

    text-align:center;

    cursor:pointer;

    transition:.35s;

}

.property-type:hover{

    transform:translateY(-8px);

    border-color:#FFC107;

    box-shadow:0 18px 45px rgba(0,0,0,.08);

}

.property-type.active{

    background:#FFC107;

    border-color:#FFC107;

}

.property-type i{

    font-size:42px;

    margin-bottom:20px;

    display:block;

}

.property-type h4{

    font-size:20px;

    margin-bottom:8px;

}

.property-type small{

    color:#555;

}

.property-type.active small{

    color:#222;

}

@media(max-width:768px){

.property-types{

grid-template-columns:1fr;

}

}


/*=============================
        STEP HEADER
==============================*/

.step-header{

    margin-bottom:35px;

}

.step-badge{

    display:inline-block;

    background:#fff8e1;

    color:#d4a017;

    padding:8px 18px;

    border-radius:50px;

    font-weight:600;

    margin-bottom:15px;

}

.step-header h3{

    font-size:30px;

    font-weight:700;

    margin-bottom:10px;

}

.step-header p{

    color:#777;

    line-height:1.8;

}

/*=============================
        FORM
==============================*/

.form-group{

    margin-bottom:28px;

}

.form-group label{

    display:block;

    margin-bottom:10px;

    font-weight:600;

}

.form-group input,
.form-group textarea,
.form-group select{

    width:100%;

    border:1px solid #ddd;

    border-radius:14px;

    padding:15px 18px;

    font-size:15px;

    transition:.3s;

    outline:none;

}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus{

    border-color:#d4a017;

    box-shadow:0 0 0 4px rgba(212,160,23,.15);

}

.form-group textarea{

    resize:none;

}

.form-group small{

    display:block;

    margin-top:8px;

    color:#888;

}

/*=============================
        GRID
==============================*/

.form-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:25px;

}

/*=============================
        COUNTER
==============================*/

.character-counter{

    text-align:right;

    margin-top:10px;

    color:#777;

    font-size:14px;

}

/*=============================
        REFERENCE
==============================*/

.reference-box{

    display:flex;

    justify-content:space-between;

    align-items:center;

    background:#fafafa;

    border-radius:18px;

    padding:22px;

    margin-top:20px;

}

.reference-box h4{

    margin-top:6px;

    font-size:26px;

    font-weight:700;

}

.btn-generate{

    border:none;

    background:#d4a017;

    color:#fff;

    padding:12px 22px;

    border-radius:12px;

    cursor:pointer;

    transition:.3s;

}

.btn-generate:hover{

    transform:translateY(-2px);

    background:#b8860b;

}

@media(max-width:768px){

.form-grid{

grid-template-columns:1fr;

}

.reference-box{

flex-direction:column;

gap:20px;

align-items:flex-start;

}

}

/*==============================
        LOCATION PREVIEW
===============================*/

.location-preview{

display:flex;

align-items:center;

gap:18px;

background:#fffaf0;

padding:22px;

margin-top:25px;

border-radius:18px;

border-left:5px solid #d4a017;

}

.location-preview i{

font-size:40px;

color:#d4a017;

}

.location-preview strong{

display:block;

margin-bottom:5px;

font-size:17px;

}

.location-preview p{

margin:0;

color:#666;

}

/*===================================
        PRICING SUMMARY
====================================*/

.pricing-summary{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:20px;

margin-top:35px;

}

.summary-item{

background:#fff;

padding:28px;

border-radius:18px;

box-shadow:0 12px 35px rgba(0,0,0,.06);

text-align:center;

transition:.3s;

}

.summary-item:hover{

transform:translateY(-6px);

}

.summary-item small{

display:block;

color:#777;

margin-bottom:12px;

}

.summary-item h3{

font-size:28px;

font-weight:700;

color:#d4a017;

}

@media(max-width:768px){

.pricing-summary{

grid-template-columns:1fr;

}

}

/*===================================
        FEATURE SUMMARY
====================================*/

.feature-summary{

margin-top:40px;

padding:30px;

background:#fafafa;

border-radius:22px;

box-shadow:0 12px 30px rgba(0,0,0,.05);

}

.summary-header{

display:flex;

align-items:center;

gap:15px;

margin-bottom:25px;

}

.summary-header i{

font-size:35px;

color:#d4a017;

}

.summary-header h4{

margin:0;

font-size:24px;

font-weight:700;

}

.summary-grid{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:20px;

}

.summary-box{

background:white;

padding:25px;

border-radius:18px;

text-align:center;

transition:.3s;

box-shadow:0 5px 20px rgba(0,0,0,.05);

}

.summary-box:hover{

transform:translateY(-6px);

}

.summary-box span{

display:block;

font-size:14px;

color:#777;

margin-bottom:12px;

}

.summary-box strong{

font-size:28px;

color:#d4a017;

}

@media(max-width:768px){

.summary-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:500px){

.summary-grid{

grid-template-columns:1fr;

}

}

/*====================================
        STEP 6 - AMENITIES
=====================================*/

.amenities-grid{

display:grid;

grid-template-columns:repeat(auto-fit,minmax(180px,1fr));

gap:20px;

margin-top:35px;

}

.amenity-card{

position:relative;

display:flex;

flex-direction:column;

align-items:center;

justify-content:center;

padding:30px 20px;

background:#fff;

border:2px solid #ececec;

border-radius:18px;

cursor:pointer;

transition:.35s;

text-align:center;

min-height:170px;

overflow:hidden;

}

.amenity-card:hover{

transform:translateY(-8px);

border-color:#d4a017;

box-shadow:0 18px 40px rgba(0,0,0,.08);

}

.amenity-card input{

display:none;

}

.amenity-card i{

font-size:42px;

color:#d4a017;

margin-bottom:18px;

transition:.3s;

}

.amenity-card span{

font-weight:600;

font-size:15px;

color:#333;

}

.amenity-card.selected{

background:#d4a017;

color:white;

border-color:#d4a017;

}

.amenity-card.selected i{

color:white;

transform:scale(1.15);

}

.amenity-card.selected span{

color:white;

}

.selected-amenities{

margin-top:45px;

padding:30px;

background:#fafafa;

border-radius:20px;

}

.selected-amenities h5{

font-weight:700;

margin-bottom:18px;

}

#selectedAmenities{

display:flex;

flex-wrap:wrap;

gap:12px;

}

.amenity-tag{

background:#d4a017;

color:white;

padding:10px 18px;

border-radius:30px;

font-size:14px;

font-weight:600;

}

.empty{

color:#888;

font-style:italic;

}

@media(max-width:768px){

.amenities-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:500px){

.amenities-grid{

grid-template-columns:1fr;

}

}

/*====================================
        STEP 7 - PHOTO UPLOADER
=====================================*/

.upload-box{

margin-top:35px;

border:3px dashed #d4a017;

border-radius:24px;

padding:60px 30px;

text-align:center;

background:#fffdf6;

cursor:pointer;

transition:.35s;

}

.upload-box:hover{

background:#fff8e8;

transform:translateY(-4px);

}

.upload-box.dragover{

background:#fff3cf;

border-color:#b8860b;

}

.upload-box i{

font-size:70px;

color:#d4a017;

display:block;

margin-bottom:20px;

}

.upload-box h4{

font-weight:700;

margin-bottom:10px;

}

.upload-box p{

color:#777;

margin-bottom:25px;

}

.browse-btn{

border:none;

background:#d4a017;

color:white;

padding:14px 30px;

border-radius:12px;

font-weight:600;

cursor:pointer;

transition:.3s;

}

.browse-btn:hover{

background:#b8860b;

}

.photo-tips{

display:grid;

grid-template-columns:repeat(3,1fr);

gap:20px;

margin:35px 0;

}

.photo-tips div{

background:#fafafa;

padding:18px;

border-radius:14px;

display:flex;

align-items:center;

gap:12px;

font-weight:600;

}

.photo-tips i{

color:#d4a017;

font-size:20px;

}

.gallery-header{

display:flex;

justify-content:space-between;

align-items:center;

margin:35px 0 20px;

}

.gallery-header h4{

margin:0;

font-weight:700;

}

#imageCounter{

font-weight:600;

color:#777;

}

.photo-gallery{

display:grid;

grid-template-columns:repeat(auto-fill,minmax(220px,1fr));

gap:22px;

}

.photo-card{

position:relative;

overflow:hidden;

border-radius:18px;

background:white;

box-shadow:0 12px 30px rgba(0,0,0,.08);

}

.photo-card img{

width:100%;

height:180px;

object-fit:cover;

display:block;

}

.photo-actions{

display:flex;

justify-content:space-between;

align-items:center;

padding:14px;

}

.cover-btn{

border:none;

background:#d4a017;

color:white;

padding:8px 16px;

border-radius:8px;

font-size:13px;

cursor:pointer;

}

.cover-btn.active{

background:#198754;

}

.delete-btn{

border:none;

background:#dc3545;

color:white;

width:38px;

height:38px;

border-radius:50%;

cursor:pointer;

}

.cover-label{

position:absolute;

top:12px;

left:12px;

background:#198754;

color:white;

padding:6px 12px;

border-radius:30px;

font-size:12px;

font-weight:600;

}

@media(max-width:768px){

.photo-tips{

grid-template-columns:1fr;

}

}

/*====================================
        STEP 8 - REVIEW & PUBLISH
=====================================*/

.review-card{

    background:#fff;

    border-radius:22px;

    padding:35px;

    margin-bottom:30px;

    box-shadow:0 15px 40px rgba(0,0,0,.06);

    border:1px solid #eee;

}

.review-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:30px;

}

.review-header h4{

    margin:0;

    font-size:24px;

    font-weight:700;

    color:#222;

}

.review-status{

    background:#198754;

    color:#fff;

    padding:10px 18px;

    border-radius:50px;

    font-size:14px;

    font-weight:600;

}

.review-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:25px;

}

.review-grid label{

    display:block;

    color:#888;

    font-size:14px;

    margin-bottom:8px;

    font-weight:500;

}

.review-grid p{

    margin:0;

    font-size:17px;

    font-weight:600;

    color:#222;

}

.review-card h4{

    margin-bottom:20px;

    font-weight:700;

}

#reviewDescription{

    color:#555;

    line-height:1.8;

    font-size:16px;

}

/*==============================
        Amenities
==============================*/

#reviewAmenities{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

}

.review-tag{

    background:#d4a017;

    color:#fff;

    padding:10px 18px;

    border-radius:30px;

    font-size:14px;

    font-weight:600;

}

/*==============================
        Gallery
==============================*/

.review-gallery{

    display:grid;

    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));

    gap:20px;

}

.review-gallery img{

    width:100%;

    height:170px;

    object-fit:cover;

    border-radius:18px;

    transition:.35s;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}

.review-gallery img:hover{

    transform:scale(1.04);

}

/*==============================
        Checklist
==============================*/

.publish-checklist{

    background:#fafafa;

    padding:35px;

    border-radius:22px;

    margin-top:35px;

}

.publish-checklist h4{

    margin-bottom:25px;

    font-weight:700;

}

.publish-checklist label{

    display:flex;

    align-items:center;

    gap:14px;

    margin-bottom:18px;

    cursor:pointer;

    font-weight:500;

    color:#444;

}

.publish-checklist input{

    width:20px;

    height:20px;

    accent-color:#d4a017;

}

/*==============================
        Action Buttons
==============================*/

.publish-actions{

    display:flex;

    justify-content:flex-end;

    gap:18px;

    margin-top:40px;

}

.publish-actions button{

    border:none;

    padding:16px 32px;

    border-radius:12px;

    font-size:16px;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

}

.publish-actions button i{

    margin-right:10px;

}

.publish-actions .btn-primary{

    background:#d4a017;

    color:#fff;

}

.publish-actions .btn-primary:hover{

    background:#b8860b;

    transform:translateY(-3px);

}

.publish-actions .btn-secondary{

    background:#f1f1f1;

    color:#333;

}

.publish-actions .btn-secondary:hover{

    background:#e5e5e5;

    transform:translateY(-3px);

}

/*==============================
        Responsive
==============================*/

@media(max-width:992px){

.review-grid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:768px){

.review-grid{

grid-template-columns:1fr;

}

.review-header{

flex-direction:column;

align-items:flex-start;

gap:15px;

}

.publish-actions{

flex-direction:column;

}

.publish-actions button{

width:100%;

}

.review-gallery{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:480px){

.review-gallery{

grid-template-columns:1fr;

}

.review-card{

padding:25px;

}

.publish-checklist{

padding:25px;

}

}