/* RestInnov Elementor Bridge (v0.2.0)
 * Frontend styling for RestInnov widgets to match the reference listing layout.
 */

/* Header price pill */
.ri-el-listing-header{
  --ri-header-row-direction: row;
  --ri-header-row-justify: space-between;
  --ri-header-row-align: flex-start;
  --ri-header-copy-align: left;
  --ri-price-right-display: flex;
  --ri-price-below-title-display: none;
  --ri-price-below-subtitle-display: none;
}
.ri-el-listing-header .ri-el-header-row{
  display:flex;
  flex-direction:var(--ri-header-row-direction, row);
  gap:1rem;
  justify-content:var(--ri-header-row-justify, space-between);
  align-items:var(--ri-header-row-align, flex-start);
}
.ri-el-listing-header .ri-el-header-copy{
  text-align:var(--ri-header-copy-align, left);
}
.ri-el-price{
  font-weight:700;
  font-size:1rem;
  white-space:nowrap;
}
.ri-el-price--right{ display:var(--ri-price-right-display, flex); }
.ri-el-price--below-title{ display:var(--ri-price-below-title-display, none); }
.ri-el-price--below-subtitle{ display:var(--ri-price-below-subtitle-display, none); }
.ri-el-price__value{
  display:inline-block;
  padding:.45rem .75rem;
  border-radius:999px;
  background:rgba(31,63,130,.08);
  color:#1f3f82;
}

/* Gallery: large left + 2x2 grid right */
.ri-el-gallery{
  display:grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
  gap:18px;
  align-items:start;
}
.ri-el-gallery__main,
.ri-el-gallery__thumb{
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:0;
  background: rgba(2,6,23,.04);
}
.ri-el-gallery__main{
  min-height: 520px;
}
.ri-el-gallery__thumbs{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:18px;
  align-content:start;
}
.ri-el-gallery__thumb{
  aspect-ratio: 1 / 1;
  min-height: 0;
  height: auto;
}
.ri-el-gallery img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ri-el-gallery__thumb--more::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(2,6,23,.05), rgba(2,6,23,.55));
}
.ri-el-gallery__more{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:2;
  color:#fff;
  font-weight:700;
  font-size:.95rem;
  padding:.5rem .75rem;
  border-radius:0;
  background: rgba(2,6,23,.55);
  backdrop-filter: blur(6px);
  text-align:center;
}

@media (max-width: 980px){
  .ri-el-gallery{ grid-template-columns: 1fr; }
  .ri-el-gallery__main{ min-height: 360px; }
  .ri-el-gallery__thumbs{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ri-el-gallery__thumb{ aspect-ratio: 1 / 1; }
}

/* Features list with icons */
.ri-el-features__title{ display:block; }
.ri-el-features__sub{ margin-top:.35rem; color: var(--ri-muted, #64748b); font-size:.9rem; }
.ri-el-features__list{
  list-style:none;
  padding:0;
  margin:.75rem 0 0;
  display:grid;
  grid-template-columns: repeat(var(--ri-feat-cols, 2), minmax(0, 1fr));
  gap:.65rem 1.15rem;
}
@media (max-width: 760px){
  .ri-el-features__list{ grid-template-columns:1fr; }
}
.ri-el-feature{ display:flex; align-items:flex-start; gap:.6rem; }
.ri-el-feature__icon{
  width:28px;
  height:28px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(2,6,23,.04);
  color:#1f3f82;
  flex:0 0 auto;
}
.ri-el-feature__label{ line-height:1.35; }

/* Key-value blocks */
.ri-el-kv{ display:grid; gap:.5rem; }
.ri-el-kv__row{ display:flex; justify-content:space-between; gap:1rem; }
.ri-el-kv__k{ color: var(--ri-muted, #64748b); }
.ri-el-kv__v{ font-weight:600; }

/* Classification chips */
.ri-el-classification{ display:grid; gap:1rem; }

/* Map */
.ri-el-map{ width:100%; border-radius:14px; background:#e5e7eb; overflow:hidden; min-height:320px; }
.ri-el-map--empty{ display:flex; align-items:center; justify-content:center; padding:1rem; background:rgba(2,6,23,.04); min-height:220px; border-radius:14px; }

/* Shortcode card: booking form styling (works with restinnov_booking_form shortcode) */
.ri-el-shortcode-card .restinnov-booking-form{ display:block; }
.ri-el-shortcode-card .restinnov-booking-form p{ margin: 0 0 10px; }
.ri-el-shortcode-card .restinnov-booking-form label{ display:block; font-size:.85rem; color: #0f172a; }
.ri-el-shortcode-card .restinnov-booking-form input[type="text"],
.ri-el-shortcode-card .restinnov-booking-form input[type="email"],
.ri-el-shortcode-card .restinnov-booking-form input[type="number"],
.ri-el-shortcode-card .restinnov-booking-form textarea,
.ri-el-shortcode-card .restinnov-booking-form select{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  padding:10px 12px;
  border:1px solid rgba(2,6,23,.12);
  border-radius:10px;
  background:#fff;
  outline:none;
}
.ri-el-shortcode-card .restinnov-booking-form textarea{ min-height:92px; resize:vertical; }
.ri-el-shortcode-card .restinnov-booking-form input:focus,
.ri-el-shortcode-card .restinnov-booking-form textarea:focus,
.ri-el-shortcode-card .restinnov-booking-form select:focus{
  border-color: rgba(31,63,130,.5);
  box-shadow: 0 0 0 3px rgba(31,63,130,.10);
}

/* Simple icons via background (matches the reference feel) */
.ri-el-shortcode-card .restinnov-booking-form input[name="check_in_date"],
.ri-el-shortcode-card .restinnov-booking-form input[name="check_out_date"],
.ri-el-shortcode-card .restinnov-booking-form input[name="guest_name"],
.ri-el-shortcode-card .restinnov-booking-form input[name="guest_email"],
.ri-el-shortcode-card .restinnov-booking-form input[name="guest_phone"],
.ri-el-shortcode-card .restinnov-booking-form input[name="guests_count"]{
  padding-left: 38px;
  background-repeat:no-repeat;
  background-position: 12px center;
  background-size: 16px 16px;
}

/* calendar icon */
.ri-el-shortcode-card .restinnov-booking-form input[name="check_in_date"],
.ri-el-shortcode-card .restinnov-booking-form input[name="check_out_date"]{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%2364758b' d='M7 2h2v2h6V2h2v2h3a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h4V2Zm14 8H3v12h18V10Z'/%3E%3C/svg%3E");
}
/* user */
.ri-el-shortcode-card .restinnov-booking-form input[name="guest_name"]{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%2364758b' d='M12 12a5 5 0 1 0-5-5 5 5 0 0 0 5 5Zm0 2c-4.4 0-8 2.2-8 5v1h16v-1c0-2.8-3.6-5-8-5Z'/%3E%3C/svg%3E");
}
/* mail */
.ri-el-shortcode-card .restinnov-booking-form input[name="guest_email"]{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%2364758b' d='M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Zm0 4-8 5L4 8V6l8 5 8-5v2Z'/%3E%3C/svg%3E");
}
/* phone */
.ri-el-shortcode-card .restinnov-booking-form input[name="guest_phone"]{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%2364758b' d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.24 11.4 11.4 0 0 0 3.6.58 1 1 0 0 1 1 1V21a1 1 0 0 1-1 1A18 18 0 0 1 3 5a1 1 0 0 1 1-1h3.66a1 1 0 0 1 1 1 11.4 11.4 0 0 0 .58 3.6 1 1 0 0 1-.24 1Z'/%3E%3C/svg%3E");
}
/* guests */
.ri-el-shortcode-card .restinnov-booking-form input[name="guests_count"]{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%2364758b' d='M16 11a4 4 0 1 0-4-4 4 4 0 0 0 4 4ZM8 12a3 3 0 1 0-3-3 3 3 0 0 0 3 3Zm8 2c-3.3 0-6 1.7-6 4v2h12v-2c0-2.3-2.7-4-6-4ZM8 14c-2.8 0-5 1.4-5 3.3V20h6v-2c0-1.2.4-2.2 1.2-3A7.5 7.5 0 0 0 8 14Z'/%3E%3C/svg%3E");
}

.ri-el-shortcode-card .restinnov-booking-calendar-help{ font-size:.8rem; color: var(--ri-muted, #64748b); margin-top:6px; }

.ri-el-shortcode-card .restinnov-booking-form button[type="submit"]{
  width:100%;
  border:none;
  border-radius:10px;
  padding:11px 14px;
  font-weight:700;
  cursor:pointer;
  background:#1f3f82;
  color:#fff;
}
.ri-el-shortcode-card .restinnov-booking-form button[type="submit"]:hover{ opacity:.92; }

/* Availability calendar (2 months) */
.ri-el-availability{ overflow:hidden; }
.ri-el-availability__wrap{ position:relative; }
.ri-el-availability__nav{
  position:absolute;
  top:0;
  right:0;
  display:flex;
  gap:8px;
}
.ri-cal-nav{
  width:36px;
  height:36px;
  border-radius:10px;
  border:1px solid rgba(2,6,23,.12);
  background:#fff;
  cursor:pointer;
  font-size:18px;
  line-height:1;
}
.ri-el-availability__months{
  display:grid;
  grid-template-columns: repeat(var(--ri-cal-cols, 2), minmax(0,1fr));
  gap:22px;
  margin-top:10px;
}
@media (max-width: 980px){
  .ri-el-availability__months{ grid-template-columns:1fr; }
  .ri-el-availability__nav{ position:static; margin-top:10px; justify-content:flex-end; }
}
.ri-cal-month__title{ font-weight:700; margin: 0 0 8px; }
.ri-cal-table{ width:100%; border-collapse:separate; border-spacing:6px; }
.ri-cal-table th{ font-size:.75rem; color: var(--ri-muted, #64748b); font-weight:600; text-align:center; }
.ri-cal-day{
  background: rgba(2,6,23,.03);
  border-radius:10px;
  text-align:center;
  padding:10px 6px;
  min-height:52px;
}
.ri-cal-day--empty{ background:transparent; padding:0; }
.ri-cal-day--past{ opacity:.45; }
.ri-cal-day--booked{ background: rgba(31,63,130,.12); }
.ri-cal-day--today{ outline:2px solid rgba(31,63,130,.35); }
.ri-cal-day__num{ font-weight:700; font-size:.9rem; }
.ri-cal-day__price{ margin-top:4px; font-size:.7rem; color:#334155; }

.ri-el-availability__legend{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
  font-size:.8rem;
  color: var(--ri-muted, #64748b);
}
.ri-legend-item{ display:inline-flex; align-items:center; gap:6px; }
.ri-legend-swatch{ width:12px; height:12px; border-radius:4px; background: rgba(2,6,23,.10); }
.ri-legend-swatch--past{ background: rgba(2,6,23,.10); }
.ri-legend-swatch--today{ background: rgba(31,63,130,.20); }
.ri-legend-swatch--booked{ background: rgba(31,63,130,.35); }

/* Lightbox modal */
.ri-lightbox{
  position:fixed;
  inset:0;
  background: rgba(2,6,23,.75);
  z-index: 999999;
  display:none;
  align-items:center;
  justify-content:center;
  padding: 24px;
}
.ri-lightbox[aria-hidden="false"]{ display:flex; }
.ri-lightbox__inner{
  max-width: 1100px;
  width: 100%;
  max-height: 86vh;
  position:relative;
}
.ri-lightbox__img{
  width:100%;
  height: 86vh;
  max-height: 86vh;
  object-fit: contain;
  border-radius:14px;
  background: rgba(255,255,255,.04);
}
.ri-lightbox__close{
  position:absolute;
  top:-10px;
  right:-10px;
  width:40px;
  height:40px;
  border-radius:999px;
  border: none;
  background: rgba(255,255,255,.92);
  cursor:pointer;
  font-size:18px;
}
.ri-lightbox__nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:44px;
  height:44px;
  border-radius:999px;
  border:none;
  background: rgba(255,255,255,.92);
  cursor:pointer;
  font-size:20px;
}
.ri-lightbox__nav--prev{ left:-10px; }
.ri-lightbox__nav--next{ right:-10px; }


/* v1.3.18: align hero height with 2x2 square thumbs */
.ri-el-listing-header .ri-el-gallery{align-items:stretch;}
.ri-el-listing-header .ri-el-gallery__main{aspect-ratio:1.65 / 1; min-height:0 !important; height:auto;}
.ri-el-listing-header .ri-el-gallery__thumbs{align-content:stretch; align-self:stretch;}
.ri-el-listing-header .ri-el-gallery__thumb{aspect-ratio:1 / 1; min-height:0 !important;}
@media (max-width: 980px){
  .ri-el-listing-header .ri-el-gallery__main{aspect-ratio:16 / 10; min-height:0 !important;}
}
