/* Mini Bootstrap replacement — only classes actually used in templates */
/* Grid System */
*,*::before,*::after{box-sizing:border-box}
.row{display:flex;flex-wrap:wrap;margin-left:-0.78125vw;margin-right:-0.78125vw}
.row>*{flex-shrink:0;width:100%;max-width:100%;padding-left:0.78125vw;padding-right:0.78125vw}
.row.g-0{margin-left:0;margin-right:0}
.row.g-0>*{padding-left:0;padding-right:0}
.row-gap-4{row-gap:1.5rem}
.col-12{flex:0 0 auto;width:100%}
@media(min-width:768px){
  .col-md-4{flex:0 0 auto;width:33.333333%}
  .col-md-6{flex:0 0 auto;width:50%}
  .col-md-12{flex:0 0 auto;width:100%}
}
@media(min-width:992px){
  .col-lg-3{flex:0 0 auto;width:25%}
  .col-lg-5{flex:0 0 auto;width:41.666667%}
  .col-lg-6{flex:0 0 auto;width:50%}
  .col-lg-7{flex:0 0 auto;width:58.333333%}
  .col-lg-12{flex:0 0 auto;width:100%}
}
@media(min-width:1200px){
  .col-xl-4{flex:0 0 auto;width:33.333333%}
  .col-xl-8{flex:0 0 auto;width:66.666667%}
}

/* Display */
.d-flex{display:flex!important}
.d-block{display:block!important}
.d-none{display:none!important}
@media(min-width:576px){
  .d-sm-flex{display:flex!important}
  .d-sm-block{display:block!important}
  .d-sm-none{display:none!important}
}

/* Flexbox */
.flex-wrap{flex-wrap:wrap}
.align-items-center{align-items:center!important}
.justify-content-between{justify-content:space-between!important}
.justify-content-center{justify-content:center!important}
.justify-content-start{justify-content:flex-start!important}

/* Text */
.text-center{text-align:center!important}
.text-start{text-align:left!important}
.text-end{text-align:right!important}
.text-uppercase{text-transform:uppercase!important}
@media(min-width:576px){
  .text-sm-center{text-align:center!important}
}

/* Width */
.w-100{width:100%!important}

/* Tables (admin) */
.table{width:100%;margin-bottom:1rem;vertical-align:top;border-color:#dee2e6}
.table>:not(caption)>*>*{padding:.5rem;border-bottom-width:1px;border-bottom-color:inherit}
.table>thead{vertical-align:bottom}
.table-striped>tbody>tr:nth-of-type(odd)>*{background-color:rgba(0,0,0,.05)}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Alerts */
.alert{position:relative;padding:1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.375rem}
.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}
.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}

/* Buttons (admin) */
.btn-primary{color:#fff;background-color:#282525;border:1px solid #282525;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;transition:background .2s}
.btn-primary:hover{background:#1B1918}
.btn-secondary{color:#fff;background-color:#6c757d;border:1px solid #6c757d;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer}
.btn-block{width:100%}

/* Forms (admin) */
.form-group{margin-bottom:1rem}
.form-label{margin-bottom:.5rem;display:inline-block}

/* Modal (admin dashboard) */
.modal{display:none;position:fixed;z-index:1055;inset:0;background:rgba(0,0,0,.5);align-items:center;justify-content:center}
.modal.show{display:flex}
.modal-dialog{max-width:500px;width:90%;margin:1.75rem auto}
.modal-dialog-centered{display:flex;align-items:center;min-height:100%}
.modal-content{position:relative;background:#fff;border-radius:.5rem;box-shadow:0 .5rem 1rem rgba(0,0,0,.15);display:flex;flex-direction:column}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6}
.modal-title{margin:0;font-size:1.25rem}
.modal-body{position:relative;flex:1 1 auto;padding:1rem}
.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;gap:.5rem}

/* Cards (admin) */
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid rgba(0,0,0,.125);border-radius:.375rem}
.card-body{flex:1 1 auto;padding:1rem}

/* List */
.list-unstyled{padding-left:0;list-style:none}

/* Carousel (Slick replacement) */
.carousel{overflow:hidden;position:relative}
.carousel-track{display:flex;will-change:transform}
.carousel-slide{flex-shrink:0}

/* Marquee (amenities infinite scroll) */
.marquee{overflow:hidden}
.marquee-track{display:flex;animation:marquee 30s linear infinite}
.marquee-item{flex-shrink:0}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Hero zoom animation */
@keyframes zoomInImage{from{transform:scale(1)}to{transform:scale(1.1)}}
.zoom-active{animation:zoomInImage 20s ease forwards}
