/*
 * Le Bon Repos — chambres (rooms listing) page styles
 */

.page-rooms .site-content-inner.safar-container { max-width: none; padding: 0; }
.page-rooms .safar-main-content-inner { margin: 0; }
.page-rooms #primary { padding: 0; }
.page-rooms .safar-single-page { margin: 0; }
.page-rooms .post-thumbnail,
.page-rooms .entry-title { display: none; }
.page-rooms .entry-content { margin: 0; padding: 0; }

/* Close the gap between the last content section (CTA) and the footer/parallax strip */
.page-rooms .entry-content > section:last-child { margin-bottom: 0 !important; }
.page-rooms main,
.page-rooms #main,
.page-rooms .site-main,
.page-rooms #primary,
.page-rooms .site-content,
.page-rooms .site-content-inner,
.page-rooms .safar-main-content,
.page-rooms .safar-main-content-inner,
.page-rooms .safar-row,
.page-rooms article.safar-single-page,
.page-rooms .entry-content {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}
/* Make the dark CTA fill any residual height from theme paddings above the footer */
.page-rooms .lbr-rm-cta { margin-bottom: 0 !important; }

/* ---- Hero ---- */
.lbr-rm-hero {
  position: relative;
  padding: 100px 24px 90px;
  background: #0d1f1c center/cover no-repeat;
  color: #fff;
  text-align: center;
}
.lbr-rm-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(13,31,28,.45) 0%, rgba(13,31,28,.75) 100%);
}
.lbr-rm-hero__inner { position: relative; max-width: 920px; margin: 0 auto; }
.lbr-rm-hero .lbr-eyebrow {
  letter-spacing: 5px; font-size: 13px; text-transform: uppercase;
  color: #E8C896; font-weight: 600; display: inline-block; margin-bottom: 16px;
}
.lbr-rm-hero h1 {
  font-family: Marcellus, Georgia, serif;
  font-size: clamp(38px, 5.5vw, 60px);
  line-height: 1.1; margin: 0 0 18px;
  color: #fff; font-weight: 400;
}
.lbr-rm-hero p {
  font-size: clamp(16px, 1.6vw, 19px);
  line-height: 1.6; color: #f4ebde; max-width: 720px; margin: 0 auto;
}

/* ---- Booking widget overlay ---- */
.lbr-rm-booking {
  max-width: 1100px;
  margin: -60px auto 60px;
  background: #fff;
  padding: 30px 30px 22px;
  border-radius: 12px;
  box-shadow: 0 14px 50px rgba(54,38,24,.14);
  position: relative;
  z-index: 5;
}
.lbr-rm-booking__title {
  font-family: Marcellus, Georgia, serif; font-size: 24px;
  color: #362618; margin: 0 0 18px; font-weight: 400; text-align: center;
}
.lbr-rm-booking .mphb_sc_search-form {
  display: grid; grid-template-columns: 1fr 1fr 0.7fr 0.7fr auto;
  gap: 14px; align-items: end;
}
.lbr-rm-booking .mphb-required-fields-tip { display: none; }
.lbr-rm-booking .mphb_sc_search-form > p { margin: 0; }
.lbr-rm-booking .mphb_sc_search-form label {
  display: block; font-size: 11px; letter-spacing: 1.5px;
  text-transform: uppercase; color: #777; margin-bottom: 6px; font-weight: 600;
}
.lbr-rm-booking .mphb_sc_search-form label abbr { display: none; }
.lbr-rm-booking .mphb_sc_search-form input,
.lbr-rm-booking .mphb_sc_search-form select {
  width: 100%; padding: 12px 14px; font-size: 15px;
  border: 1px solid #EAEAEA; border-radius: 6px;
  background: #fff; color: #362618; font-family: inherit;
}
.lbr-rm-booking .mphb_sc_search-form input:focus,
.lbr-rm-booking .mphb_sc_search-form select:focus {
  outline: 2px solid #C97A4F; outline-offset: -1px;
}
.lbr-rm-booking .mphb_sc_search-form input[type="submit"] {
  background: #C97A4F; color: #fff; border-color: #C97A4F;
  padding: 14px 28px; font-size: 14px; font-weight: 600;
  letter-spacing: 1.5px; text-transform: uppercase; cursor: pointer;
}
.lbr-rm-booking .mphb_sc_search-form input[type="submit"]:hover { background: #B16638; }

/* ---- Filters ---- */
.lbr-rm-filters {
  max-width: 1100px;
  margin: 0 auto 50px;
  padding: 0 24px;
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
}
.lbr-rm-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 20px;
  background: #fff; border: 1px solid #EAEAEA;
  border-radius: 100px;
  font-size: 13px; font-weight: 600;
  color: #362618; letter-spacing: .3px;
  cursor: pointer; transition: all .2s; user-select: none;
  font-family: inherit;
}
.lbr-rm-chip:hover { border-color: #C97A4F; color: #C97A4F; }
.lbr-rm-chip--active { background: #362618; color: #fff; border-color: #362618; }

/* ---- Room cards ---- */
.lbr-rm-grid {
  max-width: 1280px; margin: 0 auto; padding: 0 24px 80px;
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px;
}
.lbr-rm-card {
  background: #fff; border-radius: 14px; overflow: hidden;
  border: 1px solid #EAEAEA;
  display: grid; grid-template-columns: 1fr; grid-template-rows: auto auto;
  transition: transform .25s, box-shadow .25s;
}
.lbr-rm-card:hover { transform: translateY(-5px); box-shadow: 0 20px 50px rgba(54,38,24,.14); }
.lbr-rm-card.is-hidden { display: none !important; }
.lbr-rm-card__media {
  position: relative;
  width: 100%; padding-top: 60%;
  background: #FAF5F1 center/cover no-repeat;
}
.lbr-rm-card__badge {
  position: absolute; top: 16px; left: 16px;
  background: rgba(255,255,255,.95); color: #362618;
  padding: 6px 14px; border-radius: 100px;
  font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase;
  backdrop-filter: blur(4px);
}
/* Price badge intentionally hidden — rates are surfaced inside the
 * Cubilis booking engine only, never on the public site. Kept in the
 * stylesheet (legacy class) in case it needs to be re-enabled later. */
.lbr-rm-card__price { display: none !important; }
.lbr-rm-card__price--legacy {
  position: absolute; top: 16px; right: 16px;
  background: rgba(13,31,28,.92); color: #fff;
  padding: 6px 14px; border-radius: 100px;
  font-size: 13px; font-weight: 700; letter-spacing: .3px;
}
.lbr-rm-card__price small {
  font-size: 10px; font-weight: 500; opacity: .7; letter-spacing: 1px;
  text-transform: uppercase; margin-right: 4px;
}
.lbr-rm-card__body { padding: 26px 30px 30px; }
.lbr-rm-card__title {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  margin-bottom: 8px;
}
.lbr-rm-card h3 {
  font-family: Marcellus, Georgia, serif;
  font-size: 26px; line-height: 1.15;
  color: #362618; margin: 0; font-weight: 400;
}
.lbr-rm-card h3 a { color: inherit; text-decoration: none; }
.lbr-rm-card h3 a:hover { color: #C97A4F; }
.lbr-rm-card__excerpt {
  font-size: 14.5px; line-height: 1.55; color: #555E63; margin: 0 0 18px;
}
.lbr-rm-card__specs {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 0 0 18px;
  border-top: 1px solid #EAEAEA; border-bottom: 1px solid #EAEAEA;
  padding: 16px 0;
}
.lbr-rm-spec { text-align: center; }
.lbr-rm-spec__icon {
  display: block; font-size: 18px; color: #C97A4F; line-height: 1; margin-bottom: 5px;
}
.lbr-rm-spec__label {
  font-size: 11px; letter-spacing: .5px; color: #777;
  text-transform: uppercase; font-weight: 600; line-height: 1.2;
}
.lbr-rm-spec__value {
  font-size: 14px; font-weight: 700; color: #362618; line-height: 1.2;
}
.lbr-rm-card__amenities {
  display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 22px;
}
.lbr-rm-amenity {
  display: inline-block; padding: 4px 11px;
  background: #FAF5F1; color: #362618;
  border-radius: 100px; font-size: 12px; font-weight: 600; letter-spacing: .2px;
}
.lbr-rm-card__footer {
  display: flex; align-items: center; gap: 12px;
}
.lbr-rm-card__btn {
  flex: 1; text-align: center;
  padding: 12px 24px;
  background: #C97A4F; color: #fff; text-decoration: none;
  border-radius: 6px;
  font-size: 13px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;
  transition: background .2s;
}
.lbr-rm-card__btn:hover { background: #B16638; color: #fff; }
.lbr-rm-card__btn--ghost {
  background: transparent; color: #362618; border: 1.5px solid #362618;
  padding: 10.5px 22px;
}
.lbr-rm-card__btn--ghost:hover { background: #362618; color: #fff; }

/* ---- Promise strip ---- */
.lbr-rm-promise {
  background: #FAF5F1;
  padding: 60px 24px;
}
.lbr-rm-promise__inner {
  max-width: 1180px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px;
  text-align: center;
}
.lbr-rm-promise__item h4 {
  font-family: Marcellus, Georgia, serif;
  font-size: 17px; color: #362618; margin: 12px 0 6px; font-weight: 400;
}
.lbr-rm-promise__item p {
  font-size: 13.5px; color: #555E63; margin: 0; line-height: 1.5;
}
.lbr-rm-promise__icon {
  font-size: 28px; color: #C97A4F; line-height: 1;
}

/* ---- FAQ section ---- */
.lbr-rm-faq { padding: 80px 24px; }
.lbr-rm-faq__inner { max-width: 880px; margin: 0 auto; }
.lbr-rm-faq__head { text-align: center; margin-bottom: 40px; }
.lbr-rm-faq h2 {
  font-family: Marcellus, Georgia, serif; font-size: clamp(28px, 4vw, 40px);
  color: #362618; margin: 0 0 16px; font-weight: 400;
}
.lbr-rm-faq .lbr-eyebrow {
  display: inline-block; letter-spacing: 4px; font-size: 12px;
  text-transform: uppercase; color: #C97A4F; font-weight: 600; margin-bottom: 12px;
}
.lbr-rm-faq__item {
  border-bottom: 1px solid #EAEAEA;
}
.lbr-rm-faq__item[open] { background: #FAF5F1; border-radius: 8px; margin: 8px 0; border-bottom: none; }
.lbr-rm-faq__item summary {
  list-style: none; cursor: pointer;
  padding: 22px 16px;
  font-size: 16.5px; font-weight: 600; color: #362618;
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  transition: color .15s;
}
.lbr-rm-faq__item summary::-webkit-details-marker { display: none; }
.lbr-rm-faq__item summary::after {
  content: '+'; font-size: 24px; color: #C97A4F; font-weight: 300; line-height: 1; flex-shrink: 0;
}
.lbr-rm-faq__item[open] summary::after { content: '−'; }
.lbr-rm-faq__item summary:hover { color: #C97A4F; }
.lbr-rm-faq__body {
  padding: 0 16px 22px; font-size: 15.5px; line-height: 1.7; color: #555E63;
}
.lbr-rm-faq__body p { margin: 0 0 12px; }
.lbr-rm-faq__body p:last-child { margin: 0; }
.lbr-rm-faq__body a { color: #C97A4F; font-weight: 600; text-decoration: none; }
.lbr-rm-faq__body a:hover { text-decoration: underline; }

/* ---- Final CTA ---- */
.lbr-rm-cta {
  background: #362618; color: #f4ebde;
  padding: 80px 24px; text-align: center;
}
.lbr-rm-cta .lbr-eyebrow { color: #E8C896; display: inline-block; letter-spacing: 4px; font-size: 13px; text-transform: uppercase; font-weight: 600; margin-bottom: 12px; }
.lbr-rm-cta h2 {
  font-family: Marcellus, Georgia, serif;
  font-size: clamp(28px, 4vw, 38px);
  margin: 0 0 14px; color: #fff; font-weight: 400;
}
.lbr-rm-cta p { font-size: 17px; line-height: 1.6; max-width: 640px; margin: 0 auto 26px; color: #f4ebde; }
.lbr-rm-cta a.btn {
  display: inline-block; padding: 14px 30px;
  background: #C97A4F; color: #fff; text-decoration: none;
  border-radius: 6px; font-weight: 600;
  letter-spacing: 1.5px; font-size: 14px; text-transform: uppercase;
}
.lbr-rm-cta a.btn:hover { background: #B16638; }

/* ---- Empty state ---- */
.lbr-rm-empty {
  display: none; text-align: center; padding: 60px 24px;
  color: #777; font-size: 16px;
}
.lbr-rm-empty.is-visible { display: block; }

/* ---- Responsive ---- */
@media (max-width: 992px) {
  .lbr-rm-hero { padding: 80px 22px 70px; }
  .lbr-rm-grid { grid-template-columns: 1fr; gap: 28px; padding: 0 18px 60px; }
  .lbr-rm-booking { margin: -50px 18px 50px; padding: 24px 22px 18px; }
  .lbr-rm-booking .mphb_sc_search-form { grid-template-columns: 1fr 1fr; }
  .lbr-rm-booking .mphb_sc_search-form > p:last-child { grid-column: 1 / -1; }
  .lbr-rm-promise__inner { grid-template-columns: repeat(2, 1fr); gap: 22px; }
  .lbr-rm-promise { padding: 50px 22px; }
  .lbr-rm-faq { padding: 60px 22px; }
}
@media (max-width: 600px) {
  .lbr-rm-hero { padding: 60px 18px 50px; }
  .lbr-rm-hero h1 { font-size: 30px; }
  .lbr-rm-booking { margin: -40px 14px 40px; padding: 20px 18px 14px; }
  .lbr-rm-booking__title { font-size: 20px; }
  .lbr-rm-booking .mphb_sc_search-form { grid-template-columns: 1fr; }
  .lbr-rm-card__body { padding: 22px 22px 26px; }
  .lbr-rm-card h3 { font-size: 22px; }
  .lbr-rm-card__specs { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .lbr-rm-card__footer { flex-direction: column; gap: 10px; }
  .lbr-rm-card__btn { width: 100%; }
  .lbr-rm-promise__inner { grid-template-columns: 1fr 1fr; gap: 22px; }
  .lbr-rm-cta { padding: 60px 20px; }
  .lbr-rm-cta h2 { font-size: 26px; }
  .lbr-rm-filters { padding: 0 18px; margin-bottom: 32px; }
}
