
.milera-package-erp-details{
  width:100%;
}

.mped-loading,
.mped-empty{
  padding:14px 16px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:10px;
  background:#fafafa;
}

.mped-section{
  margin:28px 0;
}

.mped-section > h3{
  margin:0 0 18px!important;
  font-size:24px!important;
  line-height:1.2!important;
}

.mped-package-includes{
  margin-bottom:16px;
  line-height:1.65;
}

.mped-service-groups{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.mped-service-group{
  padding:16px;
  border:1px solid rgba(0,0,0,.09);
  border-radius:12px;
  background:#fff;
}

.mped-service-group h4{
  margin:0 0 12px!important;
  font-size:17px!important;
}

.mped-service-list{
  display:grid;
  gap:9px;
}

.mped-service{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding-bottom:9px;
  border-bottom:1px solid rgba(0,0,0,.06);
}

.mped-service:last-child{
  padding-bottom:0;
  border-bottom:0;
}

.mped-service span{
  white-space:nowrap;
  font-weight:700;
}

.mped-itinerary-list{
  display:grid;
}

.mped-day{
  position:relative;
  margin-left:18px;
  padding:0 0 25px 32px;
  border-left:2px solid rgba(0,0,0,.10);
}

.mped-day:last-child{
  padding-bottom:0;
  border-left-color:transparent;
}

.mped-day-badge{
  position:relative;
  display:inline-flex;
  padding:5px 11px;
  margin-bottom:9px;
  border-radius:999px;
  background:#edf5ef;
  font-size:13px;
  font-weight:700;
}

.mped-day-badge:before{
  content:'';
  position:absolute;
  left:-40px;
  top:50%;
  width:14px;
  height:14px;
  margin-top:-7px;
  border-radius:50%;
  background:#fff;
  border:4px solid #2f7d4a;
  box-sizing:border-box;
}

.mped-day h4{
  margin:0 0 8px!important;
  font-size:18px!important;
  line-height:1.35!important;
}

.mped-day-description{
  line-height:1.65;
}

.mped-day-meta{
  margin-top:8px;
  font-size:13px;
  opacity:.78;
}

@media(max-width:700px){
  .mped-service-groups{
    grid-template-columns:1fr;
  }

  .mped-day{
    margin-left:9px;
    padding-left:25px;
  }

  .mped-day-badge:before{
    left:-33px;
  }
}


/* v1.1 rich package content */
.mped-memorable{
  padding:20px;
  border-radius:14px;
  background:#edf5ef;
}

.mped-richtext{
  line-height:1.7;
}

.mped-richtext p:first-child{
  margin-top:0;
}

.mped-richtext p:last-child{
  margin-bottom:0;
}

.mped-additional-list{
  display:grid;
  gap:14px;
}

.mped-additional-item{
  padding:16px;
  border:1px solid rgba(0,0,0,.09);
  border-radius:12px;
  background:#fff;
}

.mped-additional-item h4{
  margin:0 0 8px!important;
  font-size:17px!important;
}

.mped-room-list{
  display:grid;
  gap:18px;
}

.mped-room{
  padding:18px;
  border:1px solid rgba(0,0,0,.09);
  border-radius:14px;
  background:#fff;
}

.mped-room-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
}

.mped-room-head h4{
  margin:0!important;
  font-size:18px!important;
}

.mped-room-head span{
  font-size:12px;
  opacity:.6;
}

.mped-batch{
  padding:14px 0;
  border-top:1px solid rgba(0,0,0,.07);
}

.mped-batch:first-of-type{
  border-top:0;
  padding-top:0;
}

.mped-batch-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin-bottom:10px;
  font-size:13px;
}

.mped-prices{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.mped-price{
  padding:12px;
  border-radius:10px;
  background:#f7f7f7;
}

.mped-price strong{
  display:block;
  font-size:17px;
}

.mped-price small{
  display:block;
  margin-top:4px;
  opacity:.65;
}

@media(max-width:800px){
  .mped-prices{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:550px){
  .mped-prices{
    grid-template-columns:1fr;
  }

  .mped-room-head{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* v2.0 hotel details */
.mped-title{margin:20px 0}
.mped-title h2{margin:0 0 5px!important}
.mped-title>div{opacity:.7}

.mped-gallery{margin-bottom:20px}
.mped-gallery-main{
  aspect-ratio:16/8;
  overflow:hidden;
  border-radius:14px;
  background:#f3f3f3;
}
.mped-gallery-main img{width:100%;height:100%;object-fit:cover;display:block}
.mped-gallery-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:8px}
.mped-gallery-thumb{padding:0!important;border:2px solid transparent!important;border-radius:8px;overflow:hidden;background:none!important;aspect-ratio:4/3;cursor:pointer}
.mped-gallery-thumb.is-active{border-color:#2f7d4a!important}
.mped-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}

.mped-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 26px}
.mped-summary>div{padding:14px;border:1px solid #e8e8e8;border-radius:10px}
.mped-summary small{display:block;opacity:.65;margin-bottom:3px}
.mped-summary strong{display:block}

.mped-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.mped-offer-card{padding:16px;border-radius:12px;background:#edf5ef}
.mped-offer-card strong{display:block;font-size:17px}
.mped-offer-card span{display:block;margin-top:4px}

.mped-shortdesc{font-size:17px;line-height:1.6}
.mped-richtext{line-height:1.7}

.mped-facilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.mped-facility{display:flex;gap:10px;padding:13px;border:1px solid #e9e9e9;border-radius:10px}
.mped-facility img{width:30px;height:30px;object-fit:contain}
.mped-facility strong,.mped-facility span,.mped-facility small{display:block}
.mped-facility span{margin-top:3px;font-size:13px}
.mped-facility small{margin-top:4px;color:#995500}
.mped-simple-services{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.mped-simple-services span,.mped-room-tags span{padding:6px 9px;border-radius:999px;background:#f2f4f2;font-size:12px}

.mped-detail-list{display:grid;gap:12px}
.mped-detail{padding:15px;border:1px solid #e9e9e9;border-radius:10px}
.mped-detail h4{margin:0 0 7px!important}

.mped-room-description{margin-bottom:12px;line-height:1.6}
.mped-room-tags{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.mped-occupancies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.mped-occupancies>div{padding:10px;border-radius:8px;background:#f7f7f7}
.mped-occupancies strong,.mped-occupancies span{display:block}
.mped-occupancies span{font-size:13px;margin-top:2px}

.mped-price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mped-price{padding:14px;border:1px solid #e8e8e8;border-radius:10px}
.mped-price strong,.mped-price b,.mped-price span,.mped-price small{display:block}
.mped-price b{font-size:18px;margin:4px 0}
.mped-price span,.mped-price small{font-size:12px;opacity:.7}

@media(max-width:900px){
  .mped-summary,.mped-facilities,.mped-price-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .mped-gallery-main{aspect-ratio:4/3}
  .mped-gallery-thumbs{display:flex;overflow-x:auto}
  .mped-gallery-thumb{flex:0 0 82px}
  .mped-summary,.mped-offers,.mped-facilities,.mped-occupancies,.mped-price-grid{grid-template-columns:1fr}
}


/* v2.2 focused output */
.mped-classification-value{
  display:inline-flex;
  padding:9px 13px;
  border-radius:999px;
  background:#edf5ef;
  font-weight:700;
}
.mped-richtext{line-height:1.7}


/* v2.3 resort + hotel details */
.mped-gallery-section{margin:28px 0}
.mped-gallery-section>h3{margin:0 0 16px!important}
.mped-gallery-main{aspect-ratio:16/8;overflow:hidden;border-radius:14px;background:#f3f3f3}
.mped-gallery-main img{width:100%;height:100%;object-fit:cover;display:block}
.mped-gallery-thumbs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:8px}
.mped-gallery-thumb{padding:0!important;border:2px solid transparent!important;border-radius:8px;overflow:hidden;background:none!important;aspect-ratio:4/3;cursor:pointer}
.mped-gallery-thumb.is-active{border-color:#2f7d4a!important}
.mped-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.mped-file-link{display:inline-flex;padding:10px 14px;border-radius:8px;background:#2f7d4a;color:#fff!important;text-decoration:none;font-weight:700}


/* v2.4 GetHotelRooms + GetRoomDetails */
.mped-room-summary{
  margin-bottom:14px;
  opacity:.72;
}
.mped-room-rich-list{
  display:grid;
  gap:18px;
}
.mped-room-rich{
  display:grid;
  grid-template-columns:minmax(220px,320px) 1fr;
  gap:18px;
  padding:16px;
  border:1px solid #e8e8e8;
  border-radius:14px;
  background:#fff;
}
.mped-room-gallery-main{
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:10px;
  background:#f3f3f3;
}
.mped-room-gallery-main img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.mped-room-gallery-thumbs{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:5px;
  margin-top:5px;
}
.mped-room-thumb{
  padding:0!important;
  border:2px solid transparent!important;
  border-radius:6px;
  overflow:hidden;
  background:none!important;
  aspect-ratio:4/3;
  cursor:pointer;
}
.mped-room-thumb.is-active{
  border-color:#2f7d4a!important;
}
.mped-room-thumb img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.mped-room-rich-content h4{
  margin:0 0 6px!important;
  font-size:20px!important;
}
.mped-room-rich-meta{
  margin-bottom:12px;
  font-size:13px;
  opacity:.65;
}
.mped-room-description{
  line-height:1.65;
}
@media(max-width:700px){
  .mped-room-rich{
    grid-template-columns:1fr;
  }
}

/* room grid */
.mped-facilities-grid,.mped-services-grid,.mped-room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.mped-facility-card,.mped-service-card,.mped-room-card{border:1px solid #e8e8e8;border-radius:14px;background:#fff}
.mped-facility-card{display:flex;gap:10px;padding:14px}
.mped-facility-card img{width:34px;height:34px;object-fit:contain}
.mped-facility-card strong,.mped-facility-card span,.mped-facility-card small{display:block}
.mped-facility-card span{margin-top:4px;font-size:13px}
.mped-service-card{padding:13px 15px;font-weight:600}
.mped-room-card{overflow:hidden}
.mped-room-card-image{aspect-ratio:4/3;background:#f3f3f3}
.mped-room-card-image img{width:100%;height:100%;object-fit:cover;display:block}
.mped-room-card-body{padding:16px}
.mped-room-card-body h4{margin:0 0 6px!important;font-size:19px!important}
.mped-room-card-desc{line-height:1.55;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.mped-room-more{margin-top:12px;border:0;border-radius:8px;background:#2f7d4a;color:#fff;padding:9px 13px;font-weight:700;cursor:pointer}
.mped-room-modal[hidden]{display:none!important}
.mped-room-modal{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:20px}
.mped-room-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.65)}
.mped-room-modal-card{position:relative;z-index:1;width:min(900px,100%);max-height:90vh;overflow:auto;padding:24px;border-radius:16px;background:#fff}
.mped-room-modal-close{float:right;width:38px;height:38px;border:0;border-radius:50%;font-size:24px;cursor:pointer}
.mped-modal-open{overflow:hidden}
@media(max-width:900px){.mped-facilities-grid,.mped-services-grid,.mped-room-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.mped-facilities-grid,.mped-services-grid,.mped-room-grid,.mped-room-modal{padding:8px}.mped-room-modal-card{padding:16px}}

/* v2.8 room types */
.mped-room-card:not(:has(.mped-room-card-image)) .mped-room-card-body{
  padding-top:18px;
}


/* v3.0 room photos */
.mped-room-card-image{
  position:relative;
}
.mped-room-card-image:after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);
}
.mped-room-card-image img{
  transition:transform .25s ease;
}
.mped-room-card:hover .mped-room-card-image img{
  transform:scale(1.025);
}



/* v3.4 modular sections + package gallery */
.mped-section-shortcode{
  width:100%;
}

.mped-gallery-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
}

.mped-gallery-grid-item{
  overflow:hidden;
  border-radius:12px;
  background:#f3f3f3;
  aspect-ratio:4/3;
}

.mped-gallery-grid-item img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}

.mped-gallery-grid-item:hover img{
  transform:scale(1.025);
}

@media(max-width:600px){
  .mped-gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
}


/* v3.4.1 - silent empty section shortcodes */
.milera-package-section:empty,
.milera-package-shortcode:empty,
.mperp-section:empty,
[data-milera-section]:empty{
  display:none!important;
  margin:0!important;
  padding:0!important;
}


/* v3.4.2 - never show empty ERP fallback messages */
.mperp-empty,
.milera-package-empty,
.milera-erp-empty,
.mperp-message:empty,
.mperp-section:empty,
.milera-package-section:empty{
  display:none!important;
}


/* v3.4.3 - Hotel details grid */
.mperp-hotel-details-grid,
.mperp-details-grid,
.milera-hotel-details-grid,
.milera-package-details-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
}

@media(max-width:700px){
  .mperp-hotel-details-grid,
  .mperp-details-grid,
  .milera-hotel-details-grid,
  .milera-package-details-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}


/* v3.4.4 - Room popup thumbnails: 3 cols desktop / 2 cols mobile */
.mped-room-detail-thumbs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  width:100%!important;
  margin-top:12px!important;
}

.mped-room-detail-thumbs button{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  border-radius:10px!important;
  overflow:hidden!important;
  cursor:pointer!important;
  aspect-ratio:4/3!important;
}

.mped-room-detail-thumbs button img,
.mped-room-detail-thumbs img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  border-radius:10px!important;
}

@media(max-width:700px){
  .mped-room-detail-thumbs{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
}


/* v3.4.5 - collapse long room lists */
.mped-room-card-extra[hidden]{
  display:none!important;
}

.mped-room-toggle-wrap{
  display:flex;
  justify-content:center;
  width:100%;
  margin-top:24px;
}

.mped-room-toggle{
  appearance:none;
  border:1px solid currentColor;
  border-radius:8px;
  background:transparent;
  padding:11px 20px;
  font:inherit;
  font-weight:600;
  cursor:pointer;
}
