/* ==========================================================================
   Elkton Lodge: site overrides on top of the Hostily theme.
   Written mobile-first: base rules target phones, min-width queries scale up.
   ========================================================================== */
:root {
  --el-blue: #4A90D9;      /* logo mark */
  --el-red: #D9553B;       /* logo tagline */
  --primary-color: #B89146; /* theme gold, kept for buttons */
  --el-ink: #0E1317;
  --el-muted: #666667;
  --el-line: #E7E7E8;
  --el-cream: #F7F5F0;
  --sticky-h: 64px;
}
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { padding-bottom: var(--sticky-h); }
img { max-width: 100%; height: auto; }
.skip-link { position: absolute; left: -999px; top: 0; background: var(--el-ink); color: #fff; padding: 10px 14px; z-index: 9999; }
.skip-link:focus { left: 8px; top: 8px; }
.theme-loader { display: none; }
.theme-btn, .theme-border-btn, .simple-btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
.section-padding { padding: 60px 0; }
.subtitle__one { color: var(--primary-color); }
.section-title h2 { font-size: 30px; line-height: 1.2; }

/* ---------- Top bar & header ---------- */
.top__bar { background: var(--el-ink); color: #cfd0d1; font-size: 13px; }
.top__bar-inner { display: flex; justify-content: space-between; align-items: center; min-height: 40px; gap: 16px; }
.top__bar ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; }
.top__bar i { color: var(--primary-color); margin-right: 6px; }
.top__bar a:hover { color: #fff; }
.header__area { padding: 10px 0; }
.header__area-menubar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.header__area-menubar-left-logo img { width: 150px; height: auto; }
.header__area-menubar-right-box { display: flex; align-items: center; gap: 14px; }
.header__area-menubar-right-box-btn { display: none; }
.header__call { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--el-ink); }
.header__call i { color: var(--primary-color); }
.mean-container .mean-bar { background: transparent; padding: 0; min-height: 0; }
.mean-container .mean-nav { margin-top: 0; }
.mean-container .mean-nav ul li a { min-height: 44px; display: flex; align-items: center; }
.mobile-book-link { color: var(--primary-color) !important; font-weight: 700; }
.header__area-menubar-right-menu > ul > li.active > a { color: var(--primary-color); }
@media (min-width: 768px) { .header__area-menubar-left-logo img { width: 180px; } }
@media (min-width: 992px) {
  .header__area-menubar-right-box-btn { display: block; }
  .header__area-menubar-left-logo img { width: 200px; }
}

/* ---------- Sticky mobile action bar ---------- */
.sticky-book { position: fixed; left: 0; right: 0; bottom: 0; z-index: 998; height: var(--sticky-h); display: flex; background: #fff; border-top: 1px solid var(--el-line); box-shadow: 0 -6px 24px rgba(0,0,0,.08); padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); gap: 10px; }
.sticky-book__call { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 0 18px; border: 1px solid var(--el-line); border-radius: 4px; font-weight: 700; color: var(--el-ink); }
.sticky-book__call i { color: var(--primary-color); }
.sticky-book__btn { flex: 1; padding: 0 18px; }
@media (min-width: 992px) { body { padding-bottom: 0; } .sticky-book { display: none !important; } }

/* ---------- Hero ---------- */
.hero { position: relative; background: var(--el-ink) center/cover no-repeat; color: #fff; padding: 56px 0 28px; }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,19,23,.55) 0%, rgba(14,19,23,.75) 100%); }
.hero .container { position: relative; }
.hero__kicker { display: inline-block; letter-spacing: 3px; text-transform: uppercase; font-size: 12px; font-weight: 700; color: var(--primary-color); margin-bottom: 12px; }
.hero h1 { color: #fff; font-size: 34px; line-height: 1.15; margin-bottom: 12px; }
.hero h1 span { display: block; color: var(--primary-color); }
.hero__lead { color: #dfe3e6; font-size: 16px; max-width: 560px; margin-bottom: 22px; }
.hero__badges { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13px; color: #e6e9ec; }
.hero__badges i { color: var(--primary-color); margin-right: 6px; }
@media (min-width: 768px) { .hero { padding: 90px 0 40px; } .hero h1 { font-size: 48px; } }
@media (min-width: 1200px) { .hero { padding: 130px 0 60px; } .hero h1 { font-size: 62px; } }

/* ---------- Booking search widget ---------- */
.check__area { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; background: #fff; padding: 16px; border-radius: 6px; box-shadow: var(--box-shadow-1); margin: 0; }
.check__area-item { display: flex; flex-direction: column; gap: 6px; grid-column: span 2; }
.check__area-item--half { grid-column: span 1; }
.check__area-item label { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; font-weight: 700; color: var(--el-muted); }
.check__area-item input, .check__area-item select.plain-select { width: 100%; min-height: 48px; border: 1px solid var(--el-line); border-radius: 4px; padding: 0 12px; font-size: 16px; color: var(--el-ink); background: #fff; }
.check__area-item.button { justify-content: flex-end; }
.check__area-item.button .theme-btn { width: 100%; }
.check__area .nice-select { display: none; }
@media (min-width: 768px) {
  .check__area { grid-template-columns: repeat(2, 1fr) repeat(2, .6fr) 1.1fr; align-items: end; padding: 20px; }
  .check__area-item, .check__area-item--half { grid-column: auto; }
}
.check__area--compact { box-shadow: none; border: 1px solid var(--el-line); }

/* ---------- Section blocks ---------- */
.section-head { margin-bottom: 30px; }
.section-head h2 { margin: 6px 0 10px; }
.section-head p { max-width: 640px; }
.about-block__images { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 26px; }
.about-block__images img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 6px; }
.about-block__images img:first-child { grid-column: span 2; aspect-ratio: 16/9; }
.about-block__stats { display: flex; gap: 28px; margin: 22px 0; }
.about-block__stats h3 { font-size: 34px; color: var(--primary-color); margin: 0; }
.about-block__stats span { font-size: 13px; color: var(--el-muted); text-transform: uppercase; letter-spacing: 1px; }
.award-badge { display: inline-flex; align-items: center; gap: 10px; background: var(--el-cream); border-left: 3px solid var(--primary-color); padding: 10px 14px; font-weight: 700; color: var(--el-ink); margin-bottom: 18px; }
.award-badge i { color: var(--primary-color); font-size: 20px; }
@media (min-width: 992px) { .about-block__images { margin-bottom: 0; } }

/* Room cards */
.room-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 768px) { .room-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .room-grid { grid-template-columns: repeat(3, 1fr); } .room-grid--two { grid-template-columns: 1fr 1fr; } }
.room-card { background: #fff; box-shadow: var(--box-shadow-2); border-radius: 6px; overflow: hidden; display: flex; flex-direction: column; height: 100%; }
.room-card__image { position: relative; display: block; }
.room-card__image img { width: 100%; aspect-ratio: 3/2; object-fit: cover; transition: transform .5s; }
.room-card:hover .room-card__image img { transform: scale(1.04); }
.room-card__price { position: absolute; left: 14px; bottom: 14px; background: var(--el-ink); color: #fff; padding: 6px 12px; font-size: 13px; border-radius: 3px; }
.room-card__price strong { color: var(--primary-color); font-size: 16px; }
.room-card__body { padding: 20px; display: flex; flex-direction: column; flex: 1; }
.room-card__body h4 { font-size: 20px; margin-bottom: 8px; }
.room-card__meta { list-style: none; padding: 0; margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: var(--el-muted); }
.room-card__meta i { color: var(--primary-color); margin-right: 6px; }
.room-card__body p { flex: 1; }
.room-card__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 8px; }
.room-card__actions .theme-btn, .room-card__actions .theme-border-btn { padding-left: 12px; padding-right: 12px; font-size: 14px; }

/* Amenities */
.amenity-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (min-width: 768px) { .amenity-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
@media (min-width: 1200px) { .amenity-grid { grid-template-columns: repeat(4, 1fr); } }
.amenity-card { background: #fff; border: 1px solid var(--el-line); border-radius: 6px; padding: 20px 16px; text-align: center; height: 100%; transition: box-shadow .3s, transform .3s; }
.amenity-card:hover { box-shadow: var(--box-shadow-1); transform: translateY(-3px); }
.amenity-card i { font-size: 30px; color: var(--primary-color); margin-bottom: 12px; display: block; }
.amenity-card h6 { font-size: 15px; margin-bottom: 6px; }
.amenity-card p { font-size: 13px; margin: 0; color: var(--el-muted); }
.amenity-group h4 { font-size: 20px; border-bottom: 2px solid var(--primary-color); display: inline-block; padding-bottom: 6px; margin: 30px 0 16px; }

/* Offers */
.offers-band { background: var(--el-ink); color: #fff; }
.offers-band .subtitle__one { color: var(--primary-color); }
.offers-band h2 { color: #fff; }
.offer-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 768px) { .offer-grid { grid-template-columns: repeat(3, 1fr); } }
.offer-card { background: #161d22; border: 1px solid #263038; border-radius: 6px; padding: 24px; display: flex; flex-direction: column; height: 100%; }
.offer-card__badge { align-self: flex-start; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; background: var(--primary-color); color: #fff; padding: 4px 10px; border-radius: 3px; margin-bottom: 14px; }
.offer-card h4 { color: #fff; font-size: 20px; }
.offer-card p { color: #c9d0d5; flex: 1; }
.offer-card__code { display: flex; align-items: center; justify-content: space-between; border: 1px dashed #4a5660; border-radius: 4px; padding: 10px 14px; margin: 10px 0 14px; font-family: monospace; font-size: 15px; letter-spacing: 1px; }
.offer-card__code button { background: none; border: 0; color: var(--primary-color); font-weight: 700; font-family: var(--body-font); }
.offer-card small { color: #8a949c; }
.page-light .offer-card { background: #fff; border-color: var(--el-line); }
.page-light .offer-card h4 { color: var(--el-ink); }
.page-light .offer-card p { color: var(--body-color); }
.page-light .offer-card__code { border-color: #c9c9c9; }

/* Why book direct / rewards */
.why-direct { background: var(--el-cream); }
.why-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 768px) { .why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .why-grid { grid-template-columns: repeat(4, 1fr); } }
.why-item { background: #fff; padding: 22px; border-radius: 6px; box-shadow: var(--box-shadow-2); height: 100%; }
.why-item i { font-size: 28px; color: var(--primary-color); margin-bottom: 12px; display: block; }
.why-item h5 { font-size: 17px; margin-bottom: 6px; }
.why-item p { margin: 0; font-size: 14px; }
.tier-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (min-width: 768px) { .tier-grid { grid-template-columns: repeat(4, 1fr); } }
.tier { border: 1px solid var(--el-line); border-radius: 6px; padding: 18px; text-align: center; }
.tier strong { display: block; font-size: 18px; color: var(--el-ink); }
.tier--bronze { border-top: 4px solid #B07A4B; } .tier--silver { border-top: 4px solid #9AA4AE; } .tier--gold { border-top: 4px solid var(--primary-color); } .tier--vip { border-top: 4px solid var(--el-ink); }

/* Testimonials */
.testimonial__area-bg { background: var(--el-cream); border-radius: 6px; }
.testimonial__area-item { padding: 26px; }
.testimonial__area-item-content h4 { font-size: 18px; }
.testimonial__area-item-content p { font-size: 15px; }
.stars { color: var(--primary-color); font-size: 13px; margin-bottom: 8px; }
.testimonial__area-item-image { display: none; }
.testimonial__area-item-content { width: 100%; }
.google-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--el-muted); }

/* Attractions */
.attraction-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 576px) { .attraction-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 992px) { .attraction-grid { grid-template-columns: repeat(3, 1fr); } }
.attraction { position: relative; border-radius: 6px; overflow: hidden; background: #fff; box-shadow: var(--box-shadow-2); height: 100%; }
.attraction img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.attraction__distance { position: absolute; top: 12px; left: 12px; background: var(--primary-color); color: #fff; font-size: 12px; font-weight: 700; padding: 5px 10px; border-radius: 3px; }
.attraction__body { padding: 16px 18px 20px; }
.attraction__body h5 { font-size: 17px; margin-bottom: 6px; }
.attraction__body p { margin: 0; font-size: 14px; }

/* Gallery */
.gallery-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media (min-width: 768px) { .gallery-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; } }
@media (min-width: 1200px) { .gallery-grid { grid-template-columns: repeat(4, 1fr); } }
.gallery-grid a { display: block; border-radius: 4px; overflow: hidden; }
.gallery-grid img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .4s; }
.gallery-grid a:hover img { transform: scale(1.05); }

/* FAQ (reuses theme accordion) */
.room__details-right-faq-item-card-header { cursor: pointer; min-height: 48px; }
.room__details-right-faq-item-card-header h5 { font-size: 16px; }

/* Page banner */
.page__banner { padding: 70px 0; }
.page__banner-sub { color: #dfe3e6; margin: 6px 0 12px; font-size: 15px; }
@media (min-width: 992px) { .page__banner { padding: 120px 0; } }

/* Call band */
.call__area-bg { background: var(--el-ink) url(/theme/img/call.jpg) center/cover; }

/* ---------- Room details ---------- */
.room-hero { position: relative; }
.room-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.room-gallery a:first-child { grid-column: span 3; }
.room-gallery a { display: block; overflow: hidden; border-radius: 4px; }
.room-gallery img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }
.room-gallery a:first-child img { aspect-ratio: 16/9; }
@media (min-width: 768px) { .room-gallery { grid-template-columns: repeat(4, 1fr); } .room-gallery a:first-child { grid-column: span 4; } }
.room-facts { list-style: none; padding: 0; margin: 18px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.room-facts li { background: var(--el-cream); padding: 12px 14px; border-radius: 4px; font-size: 14px; }
.room-facts li i { color: var(--primary-color); margin-right: 8px; }
.feature-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 576px) { .feature-list { grid-template-columns: 1fr 1fr; } }
.feature-list li i { color: var(--primary-color); margin-right: 8px; }
.policy-box { border: 1px solid var(--el-line); border-radius: 6px; padding: 18px 20px; margin-top: 24px; }
.policy-box h5 { font-size: 16px; margin-bottom: 8px; }
.policy-box ul { margin: 0; padding-left: 18px; font-size: 14px; }
.all__sidebar { position: static; }
@media (min-width: 992px) { .all__sidebar.sidebar-sticky { position: sticky; top: 100px; } }
.all__sidebar-item .form-field { margin-bottom: 10px; }
.all__sidebar-item .form-field label { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; font-weight: 700; color: var(--el-muted); display: block; margin-bottom: 4px; }
.all__sidebar-item .form-field input, .all__sidebar-item .form-field select { width: 100%; min-height: 46px; border: 1px solid var(--el-line); border-radius: 4px; padding: 0 12px; font-size: 16px; background: #fff; }
.all__sidebar-item .nice-select { display: none; }

/* ---------- Booking flow ---------- */
.book-steps { list-style: none; padding: 0; margin: 0 0 26px; display: flex; gap: 6px; counter-reset: step; }
.book-steps li { flex: 1; text-align: center; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--el-muted); position: relative; padding-top: 34px; }
.book-steps li::before { counter-increment: step; content: counter(step); position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--el-line); display: flex; align-items: center; justify-content: center; font-weight: 700; background: #fff; }
.book-steps li.done::before { background: var(--primary-color); border-color: var(--primary-color); color: #fff; content: "\2713"; }
.book-steps li.current { color: var(--el-ink); font-weight: 700; }
.book-steps li.current::before { border-color: var(--primary-color); color: var(--primary-color); }
@media (min-width: 768px) { .book-steps li { font-size: 13px; } }
.book-card { background: #fff; border: 1px solid var(--el-line); border-radius: 6px; padding: 20px; }
@media (min-width: 768px) { .book-card { padding: 30px; } }
.book-card h3 { font-size: 22px; margin-bottom: 16px; }
.form-field { margin-bottom: 16px; }
.form-field label { display: block; font-weight: 700; font-size: 14px; margin-bottom: 6px; color: var(--el-ink); }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-height: 48px; border: 1px solid var(--el-line); border-radius: 4px; padding: 10px 14px; font-size: 16px; background: #fff; }
.form-field textarea { min-height: 110px; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: 2px solid var(--primary-color); outline-offset: 1px; border-color: var(--primary-color); }
.form-field .field-validation-error { display: block; color: #c0392b; font-size: 13px; margin-top: 4px; }
.form-field .input-validation-error { border-color: #c0392b; }
.form-check-row { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; }
.form-check-row input { width: 20px; height: 20px; min-height: 0; margin-top: 2px; flex: 0 0 auto; }
.validation-summary-errors { background: #fdecea; border-left: 4px solid #c0392b; padding: 12px 16px; border-radius: 4px; margin-bottom: 18px; }
.validation-summary-errors ul { margin: 0; padding-left: 18px; }
.alert-soft { background: #fff7e6; border-left: 4px solid var(--primary-color); padding: 12px 16px; border-radius: 4px; margin-bottom: 18px; font-size: 14px; }
.alert-ok { background: #eaf3ee; border-left: 4px solid #3C7A5C; padding: 12px 16px; border-radius: 4px; margin-bottom: 18px; }
.alert-bad { background: #fdecea; border-left: 4px solid #c0392b; padding: 12px 16px; border-radius: 4px; margin-bottom: 18px; }
.avail-list { display: flex; flex-direction: column; gap: 18px; }
.avail-item { display: grid; grid-template-columns: 1fr; background: #fff; border: 1px solid var(--el-line); border-radius: 6px; overflow: hidden; }
.avail-item__img img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }
.avail-item__body { padding: 18px; }
.avail-item__body h4 { font-size: 20px; margin-bottom: 6px; }
.avail-item__meta { list-style: none; padding: 0; margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: var(--el-muted); }
.avail-item__meta i { color: var(--primary-color); margin-right: 5px; }
.avail-item__price { border-top: 1px solid var(--el-line); padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--el-cream); }
.avail-item__price strong { font-size: 24px; color: var(--el-ink); display: block; line-height: 1; }
.avail-item__price small { color: var(--el-muted); font-size: 12px; }
.avail-item--full { opacity: .65; }
@media (min-width: 768px) {
  .avail-item { grid-template-columns: 260px 1fr; }
  .avail-item__price { grid-column: 1 / -1; }
}
@media (min-width: 1200px) {
  .avail-item { grid-template-columns: 280px 1fr 220px; }
  .avail-item__price { grid-column: auto; border-top: 0; border-left: 1px solid var(--el-line); flex-direction: column; align-items: stretch; text-align: center; justify-content: center; }
}
.stay-summary { background: var(--el-cream); border-radius: 6px; padding: 18px 20px; margin-bottom: 20px; }
.stay-summary h5 { font-size: 16px; margin-bottom: 10px; }
.stay-summary dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; margin: 0; font-size: 14px; }
.stay-summary dt { color: var(--el-muted); font-weight: 400; }
.stay-summary dd { margin: 0; font-weight: 700; }
.stay-summary img { width: 100%; aspect-ratio: 3/2; object-fit: cover; border-radius: 4px; margin-bottom: 12px; }
.price-summary { background: #fff; border: 1px solid var(--el-line); border-radius: 6px; padding: 18px 20px; }
.price-summary h5 { font-size: 16px; margin-bottom: 12px; }
.price-summary ul { list-style: none; padding: 0; margin: 0; }
.price-summary li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--el-line); font-size: 14px; }
.price-summary li small { color: var(--el-muted); }
.price-summary__discount strong { color: #3C7A5C; }
.price-summary__total { border-bottom: 0 !important; font-size: 17px !important; padding-top: 12px !important; }
.price-summary__total strong { color: var(--el-ink); font-size: 22px; }
.price-summary__note { margin: 12px 0 0; font-size: 12px; color: var(--el-muted); }
.price-summary__note i { color: #3C7A5C; margin-right: 4px; }
.secure-note { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--el-muted); margin-top: 14px; }
.secure-note i { color: #3C7A5C; font-size: 18px; }
.card-brands { display: flex; gap: 8px; font-size: 26px; color: #8a949c; margin-bottom: 14px; }
.confirm-hero { text-align: center; padding: 20px 0 10px; }
.confirm-hero i { font-size: 56px; color: #3C7A5C; }
.confirm-hero h2 { margin: 12px 0 6px; }
.confirm-ref { display: inline-block; background: var(--el-ink); color: #fff; padding: 8px 18px; border-radius: 4px; font-family: monospace; font-size: 20px; letter-spacing: 2px; margin: 8px 0 18px; }
.booking-sidebar-note { font-size: 13px; color: var(--el-muted); margin-top: 12px; }
.mobile-order-first { order: -1; }
@media (min-width: 992px) { .mobile-order-first { order: 0; } }

/* Contact */
.contact__area-form-item input, .contact__area-form-item textarea { min-height: 48px; font-size: 16px; }
.contact__area-map iframe { width: 100%; height: 320px; border: 0; border-radius: 6px; }
@media (min-width: 768px) { .contact__area-map iframe { height: 420px; } }
.contact__area-info-item-content h6 a { word-break: break-word; }

/* Prose pages */
.prose { max-width: 820px; }
.prose h3 { font-size: 20px; margin: 26px 0 10px; }
.prose ul { padding-left: 20px; }

/* Error */
.error-page { text-align: center; padding: 80px 0; }
.error-page h1 { font-size: 72px; color: var(--primary-color); }

/* Reduce motion */
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } html { scroll-behavior: auto; } }

/* ---------- Header: solid, in-flow (theme default is transparent/absolute) ---------- */
.header__area { position: relative; background: #fff; padding: 8px 0; border-bottom: 1px solid var(--el-line); }
.header__sticky-sticky-menu { position: fixed; top: 0; background: #fff; }
.header__sticky-sticky-menu .header__area { border-bottom: 0; }
.header__area-menubar-right-menu > ul > li > a { color: var(--el-ink); font-size: 15px; }
.header__area-menubar-right-menu > ul > li > a:hover, .header__area-menubar-right-menu > ul > li.active > a { color: var(--primary-color); }
.header__area-menubar-right-menu ul li .sub-menu li a { color: var(--el-ink); font-size: 14px; }
.mean-container .mean-bar { background: transparent; }
.mean-container a.meanmenu-reveal { color: var(--el-ink); padding: 14px 12px; }
.mean-container a.meanmenu-reveal span { background: var(--el-ink); }
.mean-container .mean-nav { background: #fff; border-top: 1px solid var(--el-line); }
.mean-container .mean-nav ul li a { color: var(--el-ink); border-top: 1px solid var(--el-line); }
.mean-container .mean-nav ul li a.mean-expand { color: var(--el-ink); }
.check__area-item { padding: 0; border-right: 0; }

/* ---------- Mobile menu placement ---------- */
.header__area-menubar { position: relative; }
.header__area-menubar-left { flex: 1; }
.header__area-menubar-left-logo { display: flex; align-items: center; justify-content: space-between; }
.mean-container .mean-bar { position: static; float: none; }
.mean-container a.meanmenu-reveal { position: absolute; top: 50%; right: 0; transform: translateY(-50%); float: none; width: 26px; height: 22px; padding: 0; text-indent: 0; }
.mean-container a.meanmenu-reveal span { display: block; height: 3px; margin-top: 4px; border-radius: 2px; }
.mean-container a.meanmenu-reveal i { font-size: 22px; line-height: 22px; }
.mean-container .mean-nav { position: absolute; left: 0; right: 0; top: 100%; margin: 0; z-index: 1000; box-shadow: 0 12px 30px rgba(0,0,0,.12); max-height: calc(100vh - 140px); overflow-y: auto; }
.mean-container .mean-nav ul li a { padding: 12px 20px; width: 100%; font-size: 15px; font-weight: 600; }
.mean-container .mean-nav ul li li a { padding-left: 34px; font-weight: 400; opacity: 1; }
.mean-container .mean-nav ul li a.mean-expand { width: 44px; height: 44px; padding: 0 !important; display: flex; align-items: center; justify-content: center; border: 0 !important; background: transparent; }
@media (min-width: 768px) { .mean-container a.meanmenu-reveal { right: 0; } }

/* ---------- Page banner sizing ---------- */
.page__banner { padding-top: 60px; padding-bottom: 60px; }
.page__banner-title h1 { font-size: 30px; line-height: 1.2; }
@media (min-width: 768px) { .page__banner { padding-top: 90px; padding-bottom: 90px; } .page__banner-title h1 { font-size: 44px; } }
@media (min-width: 992px) { .page__banner { padding-top: 120px; padding-bottom: 110px; } .page__banner-title h1 { font-size: 56px; } }
.header__area-menubar-left-logo { position: relative; }
.responsive-menu { position: static; }

/* ---------- Desktop header density (992 to 1199px) ---------- */
@media (min-width: 992px) {
  .header__area-menubar-right-menu ul li { margin: 0 9px; }
  .header__area-menubar-right-menu > ul > li > a { font-size: 14px; white-space: nowrap; }
  .header__call span { display: none; }
  .header__area-menubar-right-box-btn .theme-btn { white-space: nowrap; padding: 0 18px; min-height: 44px; }
  .header__area-menubar-right-box { flex: 0 0 auto; }
  .header__area-menubar-right { flex: 1; display: flex; justify-content: center; }
}
@media (min-width: 1200px) {
  .header__area-menubar-right-menu ul li { margin: 0 14px; }
  .header__area-menubar-right-menu > ul > li > a { font-size: 15px; }
  .header__call span { display: inline; white-space: nowrap; }
}

/* ---------- Desktop menu row + sticky header colours ---------- */
.header__sticky.header__sticky-sticky-menu .header__area { background: #fff; }
@media (min-width: 992px) {
  .header__area-menubar-right-menu > ul { display: flex; flex-wrap: nowrap; align-items: center; }
  .header__area-menubar-right-menu ul li.menu-item-has-children > a { padding-right: 26px; }
  .header__area-menubar-right-menu ul li.menu-item-has-children > a::before,
  .header__area-menubar-right-menu ul li.menu-item-has-children > a::after { background: var(--el-ink); right: 8px; }
  .header__area-menubar-right-menu ul li.menu-item-has-children > a::after { right: 5px; }
  .header__area-menubar-right-menu ul li.menu-item-has-children:hover > a::before,
  .header__area-menubar-right-menu ul li.menu-item-has-children:hover > a::after { background: var(--primary-color); }
}

/* ---------- Compact search widget inside narrow columns ---------- */
@media (min-width: 768px) and (max-width: 1199px) {
  .check__area--compact { grid-template-columns: 1fr 1fr; }
  .check__area--compact .check__area-item { grid-column: span 1; }
  .check__area--compact .check__area-item.button { grid-column: span 2; }
}
@media (min-width: 768px) { .check__area-item select.plain-select { min-width: 110px; } }

/* ---------- Image sizing that respects each photo's real shape (no upscaling/stretching) ---------- */
.about-block__images img:first-child { aspect-ratio: 3/2; }
.about-block__images img { aspect-ratio: 4/3; }
.gallery-grid img { aspect-ratio: 1/1; }
.room-gallery a:first-child img { aspect-ratio: 3/2; max-height: 520px; }
.room-gallery img { aspect-ratio: 5/3; }
.room-card__image img { aspect-ratio: 3/2; }
.attraction img { aspect-ratio: 4/3; }
img { image-rendering: auto; }

/* Testimonials on the cream card need dark text (theme assumes a dark card) */
.testimonial__area-bg { padding: 30px 20px; }
@media (min-width: 768px) { .testimonial__area-bg { padding: 50px 60px; } }
.testimonial__area-item-content h4 { color: var(--el-ink); }
.testimonial__area-item-content p { color: var(--body-color); font-size: 17px; line-height: 28px; }
.testimonial__area-item { padding: 0; }
.testimonial__area-item-dots { position: static; margin-top: 16px; }

/* ---------- Compact sticky header ---------- */
.header__sticky-sticky-menu { animation-duration: .35s; }
.header__sticky-sticky-menu .header__area-menubar-left-logo img { width: 130px; }
@media (min-width: 992px) { .header__sticky-sticky-menu .header__area-menubar-left-logo img { width: 150px; } }

/* Square source photos: show at native shape, capped so they are never upscaled */
.room-gallery a:first-child img[src*="standard-king-2"] { aspect-ratio: 1/1; max-height: none; max-width: 400px; margin: 0 auto; display: block; }
.room-gallery a:first-child:has(img[src*="standard-king-2"]) { background: var(--el-cream); }

/* ==========================================================================
   Design pass 2: theme-faithful polish
   ========================================================================== */
/* Container never touches the viewport edge (fixes clipped Book Now on wide screens) */
.custom__container { max-width: 1440px; padding-left: 20px; padding-right: 20px; }
@media (min-width: 1400px) { .custom__container { padding-left: 40px; padding-right: 40px; } }
.header__area-menubar-right-box-btn .theme-btn { padding: 0 24px; }
@media (min-width: 1400px) { .header__area-menubar-right-menu ul li { margin: 0 20px; } .header__area-menubar-right-menu > ul > li > a { font-size: 16px; } }

/* Headings: consistent scale */
h2 { font-size: 30px; line-height: 1.2; }
@media (min-width: 768px) { h2 { font-size: 36px; } }
@media (min-width: 1200px) { h2 { font-size: 42px; } }
.subtitle__one { display: inline-block; letter-spacing: 2px; text-transform: uppercase; font-size: 13px; font-weight: 700; position: relative; padding-left: 34px; }
.subtitle__one::before { content: ""; position: absolute; left: 0; top: 50%; width: 24px; height: 2px; background: var(--primary-color); }

/* Booking search widget in the theme's dark style */
.check__area { background: var(--el-ink); border-radius: 6px; box-shadow: 0 20px 50px rgba(0,0,0,.18); }
.check__area-item label { color: var(--primary-color); }
.check__area-item input, .check__area-item select.plain-select { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.18); color: #fff; }
.check__area-item select.plain-select option { color: var(--el-ink); }
.check__area-item input::-webkit-calendar-picker-indicator { filter: invert(1); opacity: .8; cursor: pointer; }
.check__area-item input:focus, .check__area-item select.plain-select:focus { outline: 2px solid var(--primary-color); outline-offset: 1px; }
.check__area--compact { border: 0; box-shadow: none; }

/* Booking steps: connected progress line */
.book-steps { position: relative; max-width: 760px; margin-left: auto; margin-right: auto; }
.book-steps::before { content: ""; position: absolute; top: 14px; left: 10%; right: 10%; height: 2px; background: var(--el-line); }
.book-steps li { position: relative; z-index: 1; }
.book-steps li.current::before { background: var(--el-ink); border-color: var(--el-ink); color: var(--primary-color); }
.book-card { border: 0; border-top: 3px solid var(--primary-color); box-shadow: var(--box-shadow-1); }
.book-card h3 { position: relative; padding-bottom: 12px; margin-bottom: 22px; }
.book-card h3::after { content: ""; position: absolute; left: 0; bottom: 0; width: 40px; height: 2px; background: var(--primary-color); }
.stay-summary, .price-summary { border-radius: 6px; }
.price-summary { border-top: 3px solid var(--el-ink); }
.avail-item { box-shadow: var(--box-shadow-2); border: 0; }

/* Page banner: readable titles, gold breadcrumb */
.page__banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14,19,23,.45), rgba(14,19,23,.7)); z-index: -1; }
.page__banner-title h1 { text-shadow: 0 2px 20px rgba(0,0,0,.4); }

/* Cards: uniform corner radius + hover lift */
.room-card, .attraction, .amenity-card, .why-item, .offer-card, .tier { border-radius: 6px; transition: transform .3s, box-shadow .3s; }
.room-card:hover, .attraction:hover, .why-item:hover, .offer-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0,0,0,.12); }
.room-card__body h4 a:hover, .attraction__body h5:hover { color: var(--primary-color); }

/* Footer: tidy widget spacing on desktop */
.footer__area { padding-top: 70px; }
.footer__area-widget-about-logo img { width: 170px; }
.footer__area-widget h5 { position: relative; padding-bottom: 12px; margin-bottom: 20px; }
.footer__area-widget h5::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 2px; background: var(--primary-color); }
.footer__area-widget-menu ul li a { transition: color .3s, padding-left .3s; }
.footer__area-widget-menu ul li a:hover { color: var(--primary-color); padding-left: 4px; }
.copyright__area { border-top: 1px solid rgba(255,255,255,.08); }
.check__area .theme-btn { white-space: nowrap; font-size: 14px; letter-spacing: .5px; }
@media (min-width: 992px) { .check__area { grid-template-columns: 1.1fr 1.1fr .8fr .8fr auto; } .check__area-item.button .theme-btn { padding: 0 26px; } }

/* ---------- Search widget: never overflow. 1 col (phone) → 4-col/2-row (tablet) → 5-col/1-row (desktop) ---------- */
.check__area { max-width: 100%; overflow: hidden; }
.check__area .theme-btn { white-space: normal; line-height: 1.2; }
@media (min-width: 768px) and (max-width: 1199px) {
  .check__area, .check__area--compact { grid-template-columns: repeat(4, 1fr); }
  .check__area-item { grid-column: span 2; }
  .check__area-item--half { grid-column: span 1; }
  .check__area-item.button { grid-column: span 2; }
  .check__area--compact .check__area-item.button { grid-column: span 4; }
}
@media (min-width: 1200px) {
  .check__area { grid-template-columns: 1.1fr 1.1fr .8fr .8fr minmax(200px, auto); }
  .check__area .theme-btn { white-space: nowrap; }
}
.check__area-item select.plain-select { min-width: 0; }

/* ---------- Footer logo & text legibility on the dark footer ---------- */
.footer__area-widget-about-logo a { display: inline-block; background: #fff; border-radius: 6px; padding: 10px 14px; margin-bottom: 18px; }
.footer__area-widget-about-logo img { width: 170px; display: block; }
.footer__area-widget-contact-item-content span, .footer__area-widget-contact-item-content span a { color: #cfd4d8; }
.footer__area-widget-contact-item-content span a:hover { color: var(--primary-color); }
.footer__area-widget-about p { color: #cfd4d8; }

/* Map: full colour (theme forces greyscale, which looks blacked out) */
.contact__area-map iframe { filter: none; -webkit-filter: none; height: 320px; border-radius: 6px; }
@media (min-width: 768px) { .contact__area-map iframe { height: 440px; } }

/* ==========================================================================
   Home hero slider (two slides from the original site)
   ========================================================================== */
.hero--slider { padding: 0; background: var(--el-ink); }
.hero--slider::before { display: none; }
.hero-slider { width: 100%; }
.hero-slide { position: relative; min-height: 520px; display: flex; align-items: center; background: var(--el-ink) center/cover no-repeat; padding: 70px 0 150px; }
.hero-slide::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,19,23,.78) 0%, rgba(14,19,23,.45) 60%, rgba(14,19,23,.25) 100%); }
.hero-slide .container { position: relative; }
.hero-slide__content { max-width: 680px; }
.hero-slide h1 { color: #fff; font-size: 36px; line-height: 1.12; margin: 0 0 14px; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.theme-border-btn--light { color: #fff; border-color: rgba(255,255,255,.7); }
.theme-border-btn--light:hover { background: #fff; color: var(--el-ink); border-color: #fff; }
.hero-slider__nav { position: absolute; left: 0; right: 0; bottom: 118px; z-index: 5; display: flex; align-items: center; justify-content: center; gap: 14px; pointer-events: none; }
.hero-slider__nav > * { pointer-events: auto; }
.hero-slider__arrow { width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.5); background: rgba(14,19,23,.35); color: #fff; display: inline-flex; align-items: center; justify-content: center; transition: background .3s, border-color .3s; }
.hero-slider__arrow:hover { background: var(--primary-color); border-color: var(--primary-color); }
.hero-slider__dots { display: flex; gap: 8px; }
.hero-slider__dots .swiper-pagination-bullet { width: 10px; height: 10px; background: rgba(255,255,255,.55); opacity: 1; margin: 0; }
.hero-slider__dots .swiper-pagination-bullet-active { background: var(--primary-color); }
.hero__search { position: relative; z-index: 6; margin-top: -100px; padding-bottom: 36px; }
.hero__search .hero__badges { color: #fff; margin-bottom: 14px; }
.hero__search .check__area { box-shadow: 0 20px 50px rgba(0,0,0,.3); }
@media (min-width: 768px) {
  .hero-slide { min-height: 600px; padding: 90px 0 170px; }
  .hero-slide h1 { font-size: 54px; }
  .hero-slider__nav { justify-content: flex-start; padding-left: calc((100% - 720px) / 2 + 12px); bottom: 125px; }
}
@media (min-width: 992px) { .hero-slider__nav { padding-left: calc((100% - 960px) / 2 + 12px); } }
@media (min-width: 1200px) {
  .hero-slide { min-height: 680px; padding: 110px 0 190px; }
  .hero-slide h1 { font-size: 66px; }
  .hero-slider__nav { padding-left: calc((100% - 1140px) / 2 + 12px); bottom: 135px; }
  .hero__search { margin-top: -110px; }
}
@media (min-width: 1400px) { .hero-slider__nav { padding-left: calc((100% - 1320px) / 2 + 12px); } }
@media (prefers-reduced-motion: reduce) { .hero-slide [data-animation] { animation: none !important; opacity: 1 !important; } }
.hero-slider__dots.swiper-pagination-horizontal, .hero-slider__dots { width: auto; position: static; }

/* ==========================================================================
   Premium hero: full-height cinematic slides, centred copy, floating booking bar
   ========================================================================== */
.hero--slider { background: var(--el-ink); }
.hero-slide { min-height: 72vh; padding: 110px 0 200px; justify-content: center; text-align: center; overflow: hidden; }
.hero-slide::before { background: radial-gradient(ellipse at center, rgba(14,19,23,.35) 0%, rgba(14,19,23,.7) 70%, rgba(14,19,23,.9) 100%); }
.hero-slide__content { max-width: 820px; margin: 0 auto; }
.hero__kicker { position: relative; display: inline-block; padding: 0 44px; letter-spacing: 5px; font-size: 12px; color: #E9DDBB; }
.hero__kicker::before, .hero__kicker::after { content: ""; position: absolute; top: 50%; width: 30px; height: 1px; background: var(--primary-color); }
.hero__kicker::before { left: 0; } .hero__kicker::after { right: 0; }
.hero-slide h1 { font-size: 40px; font-weight: 600; letter-spacing: -.5px; text-shadow: 0 4px 30px rgba(0,0,0,.45); margin: 14px 0 16px; }
.hero__lead { margin: 0 auto 26px; color: #E6E9EC; font-size: 16px; max-width: 620px; }
.hero__actions { justify-content: center; }
.hero__actions .theme-btn, .hero__actions .theme-border-btn { min-width: 170px; }
.hero-slider__nav { bottom: auto; top: 50%; transform: translateY(-50%); justify-content: space-between; padding: 0 12px !important; }
.hero-slider__nav .hero-slider__dots { display: none; }
.hero-slider__arrow { width: 48px; height: 48px; background: rgba(255,255,255,.08); backdrop-filter: blur(4px); border-color: rgba(255,255,255,.35); }
.hero-slider__pager { position: absolute; left: 0; right: 0; bottom: 160px; z-index: 5; display: flex; justify-content: center; align-items: center; gap: 12px; color: #fff; font-size: 12px; letter-spacing: 3px; pointer-events: none; }
.hero-slider__pager .hero-slider__dots { pointer-events: auto; }
.hero-slider__dots .swiper-pagination-bullet { width: 28px; height: 3px; border-radius: 2px; background: rgba(255,255,255,.4); transition: background .3s, width .3s; }
.hero-slider__dots .swiper-pagination-bullet-active { background: var(--primary-color); width: 44px; }
.hero__search { margin-top: -130px; padding-bottom: 40px; max-width: 1140px; }
.hero__search .hero__badges { display: none; }
.hero__search .check__area { border-radius: 8px; padding: 22px; border: 1px solid rgba(255,255,255,.08); box-shadow: 0 30px 60px rgba(0,0,0,.35); background: rgba(14,19,23,.94); backdrop-filter: blur(6px); }
.hero__search .check__area-item label { font-size: 11px; letter-spacing: 2px; }
.hero__trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; margin: 22px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--el-muted); }
.hero__trust i { color: var(--primary-color); margin-right: 6px; }
@media (min-width: 768px) {
  .hero-slide { min-height: 82vh; padding: 140px 0 230px; }
  .hero-slide h1 { font-size: 62px; }
  .hero__lead { font-size: 18px; }
  .hero-slider__nav { padding: 0 28px !important; }
  .hero-slider__pager { bottom: 180px; }
  .hero__search { margin-top: -150px; }
}
@media (min-width: 1200px) {
  .hero-slide { min-height: 88vh; max-height: 900px; padding: 160px 0 250px; }
  .hero-slide h1 { font-size: 76px; }
  .hero-slider__nav { padding: 0 48px !important; }
  .hero-slider__pager { bottom: 195px; }
  .hero__search { margin-top: -160px; }
  .hero__search .check__area { padding: 26px 28px; }
}
@media (max-width: 767px) { .hero-slider__nav { display: none; } .hero-slider__pager { bottom: 150px; } }
@media (min-width: 1400px) { .header__area-menubar-right-menu ul li { margin: 0 13px; } .header__area-menubar-right-menu > ul > li > a { font-size: 15px; } }
.header__area-menubar-right-box { flex-shrink: 0; }
/* Header must never exceed the viewport: show phone digits only from 1500px up */
html, body { overflow-x: hidden; }
@media (min-width: 1200px) and (max-width: 1499px) { .header__call span { display: none; } .header__area-menubar-right-menu ul li { margin: 0 11px; } }
@media (min-width: 1500px) { .header__call span { display: inline; } }

/* ==========================================================================
   Premium banner controls: hairline chevrons, numbered pager, scroll cue
   ========================================================================== */
.hero-slider__arrow {
  width: 58px; height: 58px; border-radius: 50%;
  background: rgba(14,19,23,.18); border: 1px solid rgba(255,255,255,.28);
  color: #fff; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  display: inline-flex; align-items: center; justify-content: center;
  position: relative; transition: border-color .4s, background .4s, color .4s, transform .4s;
}
.hero-slider__arrow::after {
  content: ""; position: absolute; inset: -7px; border-radius: 50%;
  border: 1px solid rgba(184,145,70,0); transition: border-color .4s, inset .4s;
}
.hero-slider__arrow svg { transition: transform .4s cubic-bezier(.2,.8,.2,1); }
.hero-slider__arrow:hover { background: rgba(14,19,23,.45); border-color: var(--primary-color); color: #E9DDBB; }
.hero-slider__arrow:hover::after { border-color: rgba(184,145,70,.45); inset: -10px; }
.hero-slider__arrow--prev:hover svg { transform: translateX(-3px); }
.hero-slider__arrow--next:hover svg { transform: translateX(3px); }
.hero-slider__arrow:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 4px; }

/* Numbered pager: 01 --- 02 with gold progress lines */
.hero-slider__pager { gap: 22px; }
.hero-slider__count { display: inline-flex; align-items: center; gap: 12px; font-family: var(--heading-font); color: rgba(255,255,255,.6); font-size: 13px; letter-spacing: 2px; }
.hero-slider__count b { color: #fff; font-weight: 600; font-size: 18px; letter-spacing: 1px; }
.hero-slider__count i { display: block; width: 36px; height: 1px; background: rgba(255,255,255,.35); }
.hero-slider__dots { display: flex !important; gap: 10px; }
.hero-slider__dots .swiper-pagination-bullet { width: 34px; height: 2px; border-radius: 0; background: rgba(255,255,255,.3); position: relative; overflow: hidden; margin: 0 !important; }
.hero-slider__dots .swiper-pagination-bullet-active { width: 34px; background: rgba(255,255,255,.3); }
.hero-slider__dots .swiper-pagination-bullet-active::after { content: ""; position: absolute; inset: 0; background: var(--primary-color); transform-origin: left; animation: heroProgress 6s linear forwards; }
@keyframes heroProgress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Slide CTA arrows */
.hero__actions .btn-arrow { margin-left: 12px; transition: transform .35s cubic-bezier(.2,.8,.2,1); }
.hero__actions a:hover .btn-arrow { transform: translateX(5px); }
.hero__actions .theme-btn, .hero__actions .theme-border-btn { letter-spacing: 1.5px; font-size: 14px; padding: 0 30px; min-height: 54px; }

/* Mouse scroll cue (desktop) */
.hero-slider__scroll { display: none; }
@media (min-width: 1200px) {
  .hero-slider__scroll { display: block; position: absolute; right: 48px; bottom: 200px; z-index: 5; width: 26px; height: 42px; border: 1px solid rgba(255,255,255,.45); border-radius: 14px; }
  .hero-slider__scroll span { position: absolute; left: 50%; top: 8px; width: 2px; height: 8px; margin-left: -1px; border-radius: 1px; background: var(--primary-color); animation: heroScroll 1.8s ease-in-out infinite; }
  @keyframes heroScroll { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }
}
@media (max-width: 767px) { .hero-slider__count { display: none; } }
@media (prefers-reduced-motion: reduce) { .hero-slider__dots .swiper-pagination-bullet-active::after { animation: none; transform: scaleX(1); } .hero-slider__scroll span { animation: none; } }

/* In-place navigation progress */
.soft-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: var(--primary-color, #B89146); z-index: 3000; opacity: 0; pointer-events: none; transition: width .25s ease, opacity .3s ease .1s; }
html.is-soft-loading .soft-progress { opacity: 1; width: 75%; transition: width 6s cubic-bezier(.1,.7,.3,1), opacity .1s; }
html.is-soft-loading #main { opacity: .6; transition: opacity .2s ease .15s; }
#main { transition: opacity .15s ease; }
#main:focus { outline: none; }
@media (prefers-reduced-motion: reduce) { .soft-progress, #main { transition: none !important; } }

/* ---------- Reusable carousels (attractions, gallery, rooms) ---------- */
.el-strip--cream { background: var(--el-cream); }
.el-strip--dark { background: var(--el-ink); color: #fff; }
.el-strip--dark h2, .el-strip--dark h5, .el-strip--dark p { color: #fff; }
.el-strip__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.el-carousel__nav { display: none; gap: 10px; flex: 0 0 auto; padding-bottom: 6px; }
@media (min-width: 768px) { .el-carousel__nav { display: inline-flex; } }
.el-carousel__arrow { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--el-line); background: #fff; color: var(--el-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.el-carousel__arrow:hover:not(:disabled) { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
.el-carousel__arrow:disabled { opacity: .35; cursor: default; }
.el-carousel__arrow:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 2px; }
.el-carousel { overflow: hidden; padding-bottom: 34px; }
.el-carousel .swiper-slide { height: auto; }
.el-carousel .swiper-slide > * { height: 100%; }
.el-carousel__dots { position: absolute; left: 0; right: 0; bottom: 4px; display: flex; justify-content: center; gap: 6px; }
.el-carousel__dots .swiper-pagination-bullet { width: 8px; height: 8px; margin: 0 !important; border-radius: 4px; background: var(--el-line); opacity: 1; transition: width .25s, background .25s; }
.el-strip--dark .el-carousel__dots .swiper-pagination-bullet { background: rgba(255,255,255,.3); }
.el-carousel__dots .swiper-pagination-bullet-active { width: 24px; background: var(--primary-color); }
.el-carousel--gallery { padding-bottom: 30px; }
.gallery-tile { display: block; position: relative; border-radius: 6px; overflow: hidden; background: #ddd; }
.gallery-tile img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; transition: transform .5s; }
.gallery-tile:hover img { transform: scale(1.04); }
.gallery-tile__caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 14px 12px; font-size: 13px; color: #fff; background: linear-gradient(to top, rgba(0,0,0,.65), transparent); opacity: 0; transition: opacity .3s; }
.gallery-tile:hover .gallery-tile__caption, .gallery-tile:focus-visible .gallery-tile__caption { opacity: 1; }
.attraction--card { display: flex; flex-direction: column; }
.attraction__media { position: relative; }
.attraction__media img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.attraction--card .attraction__distance { display: inline-flex; align-items: center; gap: 6px; }
.attraction--card .attraction__body { flex: 1; }
.attraction__type { display: block; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--primary-color); font-weight: 700; margin-bottom: 6px; }
.el-carousel--rooms .room-card { height: 100%; display: flex; flex-direction: column; }
.el-carousel--rooms .room-card__body { flex: 1; display: flex; flex-direction: column; }
.el-carousel--rooms .room-card__actions { margin-top: auto; }
@media (max-width: 767px) { .el-strip__head { margin-bottom: 20px; } .el-carousel { margin-right: -16px; padding-right: 16px; } }

/* Amenities: even rows on desktop, tighter on phones */
@media (min-width: 1200px) { .amenity-grid { grid-template-columns: repeat(3, 1fr); } .amenity-grid--six { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 575px) { .amenity-card { padding: 16px 12px; } .amenity-card i { font-size: 26px; margin-bottom: 8px; } .amenity-card p { display: none; } }
.amenity-group .amenity-grid { max-width: none; }

/* ---------- Highlights (numbered feature slider) ---------- */
.highlights__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.highlights__layout > * { min-width: 0; max-width: 100%; }
.hl-carousel { width: 100%; overflow: hidden; border-radius: 6px; }
.hl-carousel img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.hl-controls { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.hl-arrow { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--el-line); background: #fff; color: var(--el-ink); font-size: 18px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background .25s, color .25s; }
.hl-arrow:hover { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
.hl-arrow:focus-visible, .hl-index button:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 2px; }
.hl-index { list-style: none; display: flex; gap: 4px; margin: 0 0 0 8px; padding: 0; }
.hl-index button { min-width: 44px; min-height: 44px; border: 0; background: none; font-weight: 700; font-size: 15px; color: var(--el-muted); letter-spacing: 1px; cursor: pointer; position: relative; }
.hl-index button.is-active { color: var(--el-ink); }
.hl-index button.is-active::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 6px; height: 2px; background: var(--primary-color); }
.hl-item h3 { font-size: 26px; margin: 8px 0 12px; line-height: 1.25; }
.hl-item p { color: var(--el-muted); margin-bottom: 18px; }
.hl-item { animation: hlIn .45s ease both; }
@keyframes hlIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (min-width: 992px) { .highlights__layout { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; gap: 48px; } .hl-carousel img { aspect-ratio: 5/4; } .hl-item h3 { font-size: 32px; } }
@media (prefers-reduced-motion: reduce) { .hl-item { animation: none; } }

/* ---------- Explore the area (map + list) ---------- */
.explore { display: grid; gap: 20px; }
.explore__list { display: grid; gap: 8px; }
.explore__item { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; min-height: 56px; padding: 10px 14px; border: 1px solid var(--el-line); border-radius: 6px; background: #fff; color: var(--el-ink); cursor: pointer; transition: border-color .2s, background .2s; }
.explore__item i { width: 36px; height: 36px; border-radius: 50%; background: var(--el-cream); color: var(--primary-color); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.explore__item span { display: flex; flex-direction: column; min-width: 0; }
.explore__item strong { font-size: 15px; color: var(--el-ink); }
.explore__item small { color: var(--el-muted); font-size: 13px; }
.explore__item:hover { border-color: var(--primary-color); }
.explore__item.is-active { background: var(--el-ink); border-color: var(--el-ink); }
.explore__item.is-active strong, .explore__item.is-active small { color: #fff; }
.explore__item.is-active i { background: var(--primary-color); color: #fff; }
.explore__item:focus-visible { outline: 2px solid var(--primary-color); outline-offset: 2px; }
.explore__map .contact__area-map iframe { height: 340px; }
.explore__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.explore__foot address { margin: 0; font-style: normal; font-size: 14px; color: var(--el-muted); }
.explore__actions { display: flex; flex-wrap: wrap; gap: 10px; }
@media (min-width: 992px) { .explore { grid-template-columns: 340px minmax(0, 1fr); gap: 28px; align-items: start; } .explore__list { /*max-height: 460px; */overflow-y: auto; padding-right: 4px; } .explore__map .contact__area-map iframe { height: 440px; } }
.contact-card { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.contact-card li { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; background: #fff; border: 1px solid var(--el-line); border-radius: 6px; }
.contact-card i { font-size: 20px; color: var(--primary-color); margin-top: 2px; }
.contact-card strong { display: block; font-size: 15px; }
.contact-card a, .contact-card span { font-size: 14px; color: var(--el-muted); }
.contact-card a:hover { color: var(--primary-color); }
.hl-arrow, .hl-index button, .explore__item { padding: 0 !important; }
.hl-index button { padding: 0 8px !important; min-width: 44px; }
.explore__item { padding: 10px 14px !important; }
.hl-controls { flex-wrap: wrap; }

/* Stripe payment element */
.stripe-element { margin: 14px 0 6px; min-height: 60px; }
#stripeError[hidden] { display: none; }

/* Standalone links on phones get a full finger-sized target. */
@media (max-width: 767px) {
    .room-card h4 a, .room-card h3 a, .avail-item h4 a, .compare-card h3 a {
        display: inline-flex; align-items: center; min-height: 44px;
    }
}

/* Form controls stay comfortable to tap on a phone. */
@media (max-width: 767px) {
    input[type="text"], input[type="email"], input[type="tel"], input[type="date"],
    input[type="number"], input[type="search"], select, textarea, .form-control {
        min-height: 44px;
    }
    textarea, textarea.form-control { min-height: 96px; }
    .guide-card__meta a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 2px; }
}

/* Icon-only controls need a target a finger can find, at every width. */
.meanmenu-reveal { width: 44px !important; height: 44px !important; padding: 11px 9px !important; box-sizing: border-box !important; }
.meanmenu-reveal span { display: block !important; width: 22px !important; }
.header__call { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
.footer__area-widget-about-social a, .footer-social a, .social-links a {
    display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px;
}
/* Swiper dots keep their small look but carry a 24px target. */
.swiper-pagination-bullet {
    width: 24px !important; height: 24px !important;
    padding: 7px; background-clip: content-box !important; box-sizing: border-box;
}

/* Stacked link lists get enough room that two targets never share a tap. */
footer ul li > a, .footer ul li > a, .footer__area ul li > a {
    display: inline-flex; align-items: center; min-height: 26px;
}
.swiper-pagination-bullet { margin-left: 2px !important; margin-right: 2px !important; }
:root { --loader-bg: #ffffff; --loader-track: rgba(14, 19, 23, .12); --loader-bar: var(--primary-color, #B89146); --loader-mark-h: 46px; --loader-text: rgba(14, 19, 23, .72); }

/* ---------- Taking a payment: the mark holds the screen while the charge is in flight ---------- */
.site-loader {
    position: fixed; inset: 0; z-index: 100000;
    display: flex; align-items: center; justify-content: center;
    background: var(--loader-bg);
    opacity: 1; visibility: visible;
    transition: opacity .3s ease, visibility 0s linear .3s;
}
.site-loader.is-done { opacity: 0; visibility: hidden; }

.site-loader__inner { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 24px; text-align: center; }

.site-loader__mark {
    position: relative; display: block; overflow: hidden;
    -webkit-mask: url('/img/logo-mark.png') no-repeat center / contain;
    mask: url('/img/logo-mark.png') no-repeat center / contain;
    animation: loaderFloat 1.9s ease-in-out infinite;
}
.site-loader__mark img { display: block; width: auto; height: var(--loader-mark-h); }
/* A light sweeps across the mark, once per float. */
.site-loader__shine {
    position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.9) 50%, transparent 62%);
    transform: translateX(-130%);
    animation: loaderShine 1.9s ease-in-out infinite;
}
@keyframes loaderFloat {
    0%, 100% { transform: translateY(0) scale(1); }
    50%      { transform: translateY(-7px) scale(1.035); }
}
@keyframes loaderShine {
    0%, 15%   { transform: translateX(-130%); }
    70%, 100% { transform: translateX(130%); }
}

.site-loader__track {
    position: relative; display: block; overflow: hidden;
    width: 132px; height: 3px; border-radius: 3px; background: var(--loader-track);
}
.site-loader__track > span {
    position: absolute; top: 0; bottom: 0; left: 0; width: 42%;
    border-radius: 3px; background: var(--loader-bar);
    animation: loaderSlide 1.25s cubic-bezier(.65,.05,.36,1) infinite;
}
@keyframes loaderSlide { 0% { left: -45%; } 100% { left: 105%; } }
@keyframes loaderSpin { to { transform: rotate(360deg); } }

.site-loader__msg { max-width: 22em; margin: 0; font-size: 15px; line-height: 1.5; color: var(--loader-text); }

@media (prefers-reduced-motion: reduce) {
    .site-loader__mark { animation: none; }
    .site-loader__shine { display: none; }
    .site-loader__track > span { animation-duration: 2.4s; }
}

/* A panel that fetches its own contents, such as the availability calendar. */
.is-loading-panel { position: relative; min-height: 140px; }
.is-loading-panel::before {
    content: ""; position: absolute; inset: 0; z-index: 2;
    background: var(--loader-bg); opacity: .72;
}
.is-loading-panel::after {
    content: ""; position: absolute; z-index: 3; top: 50%; left: 50%;
    width: 28px; height: 28px; margin: -14px 0 0 -14px;
    border: 3px solid var(--loader-track); border-top-color: var(--loader-bar);
    border-radius: 50%; animation: loaderSpin .8s linear infinite;
}
@media (prefers-reduced-motion: reduce) { .is-loading-panel::after { animation-duration: 1.8s; } }

/* ---------- Back to top: a ring that fills as the page is read ---------- */
.scroll-up {
    width: 52px; height: 52px; right: 20px; bottom: 96px;
    padding: 0; border: 0; border-radius: 50%;
    background: #fff;
    box-shadow: 0 6px 20px rgba(14, 19, 23, .16), inset 0 0 0 1px rgba(14, 19, 23, .06) !important;
    display: grid; place-items: center;
    transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease, visibility .2s;
}
.scroll-up::after { content: none !important; }          /* the theme's icon font is not loaded */
.scroll-up .scroll-circle { position: absolute; inset: 0; width: 100%; height: 100%; }
.scroll-up svg.scroll-circle path { stroke: var(--primary-color); stroke-width: 4; }
.scroll-up__arrow {
    position: relative; width: 20px; height: 20px;
    fill: none; stroke: var(--el-ink, #0E1317); stroke-width: 2;
    stroke-linecap: round; stroke-linejoin: round;
    transition: transform .2s ease, stroke .2s ease;
}
.scroll-up:hover { transform: translateY(-3px); box-shadow: 0 10px 26px rgba(14, 19, 23, .22), inset 0 0 0 1px rgba(14, 19, 23, .06) !important; }
.scroll-up:hover .scroll-up__arrow { transform: translateY(-2px); stroke: var(--primary-color); }
.scroll-up:focus-visible { outline: 3px solid var(--primary-color); outline-offset: 3px; }
@media (min-width: 992px) { .scroll-up { bottom: 24px; } }
@media (prefers-reduced-motion: reduce) { .scroll-up, .scroll-up__arrow { transition: none; } }
:root { --avail-eyebrow: var(--primary-color, #B89146); --avail-free: #F4EFE7; --avail-free-edge: #E4DACB; --avail-booked: #F6DED8; --avail-booked-alt: #EFCDC4; --avail-booked-ink: #9A6A60; --avail-ink: #1B211B; --avail-past: #BCB4A7; --avail-between: #E8E1D5; --avail-selected: #22301F; --avail-today: var(--primary-color, #B89146); --avail-muted: rgba(14,19,23,.6); }

/* ---------- Room availability calendar ---------- */
.avail { margin: 32px 0; padding: 22px; background: #fff; border: 1px solid var(--avail-free-edge); border-radius: 14px; }
.avail__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.avail__head h3 { margin: 0; }
.avail__nav { display: flex; gap: 8px; }
.avail__arrow { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--avail-free-edge); background: #fff; color: var(--avail-selected); font-size: 22px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.avail__arrow:hover:not(:disabled) { background: var(--avail-selected); color: #fff; }
.avail__arrow:disabled { opacity: .35; cursor: default; }
.avail__months { display: grid; grid-template-columns: 1fr; gap: 28px; min-height: 300px; }
.avail__months.is-two { grid-template-columns: 1fr 1fr; }
.avail__loading { color: var(--avail-muted); align-self: center; text-align: center; grid-column: 1 / -1; }
.avail__month h4 { text-align: center; font-size: 18px; margin: 6px 0 12px; color: var(--avail-selected); }
.avail__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.avail__dow { text-align: center; font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--avail-muted); font-weight: 700; padding: 4px 0 8px; }
.avail__day { position: relative; aspect-ratio: 1; min-height: 38px; border: 0; border-radius: 8px; background: var(--avail-free); color: var(--avail-ink); font-size: 15px; font-family: inherit; cursor: pointer; overflow: hidden; padding: 0; transition: background .15s, box-shadow .15s; }
.avail__day span { position: relative; z-index: 1; }
.avail__day:hover:not(:disabled) { box-shadow: inset 0 0 0 2px var(--avail-selected); }
.avail__day:focus-visible { outline: 2px solid var(--avail-today); outline-offset: 2px; }
.avail__day:disabled { cursor: default; }
.avail__day.is-past { background: transparent; color: #b9b3a8; text-decoration: line-through; }
.avail__day.is-booked { background: repeating-linear-gradient(135deg, #f4dcd6 0 6px, #ead0c9 6px 12px); color: #8f6f68; }
.avail__day.is-checkout-only::before, .avail__day.is-checkin-only::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, #f4dcd6 0 6px, #ead0c9 6px 12px); }
.avail__day.is-checkout-only::before { clip-path: polygon(100% 0, 100% 100%, 0 100%); }
.avail__day.is-checkin-only::before { clip-path: polygon(0 0, 100% 0, 0 100%); }
.avail__day.is-today::after { content: ""; position: absolute; left: 50%; bottom: 6px; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: var(--avail-today); }
.avail__day.is-between { background: #dfe3ee; color: var(--avail-selected); border-radius: 4px; }
.avail__day.is-between::before { display: none; }
.avail__day.is-start, .avail__day.is-end { background: var(--avail-selected); color: #fff; font-weight: 700; }
.avail__day.is-start::before, .avail__day.is-end::before { display: none; }
.avail__day.is-start.is-today::after, .avail__day.is-end.is-today::after { background: #fff; }
.avail__legend { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 18px 0 16px; padding: 0; font-size: 13px; color: var(--avail-muted); }
.avail__legend li { display: inline-flex; align-items: center; gap: 8px; }
.swatch { width: 16px; height: 16px; border-radius: 4px; display: inline-block; }
.swatch--free { background: var(--avail-free); border: 1px solid var(--avail-free-edge); }
.swatch--booked { background: repeating-linear-gradient(135deg, #f4dcd6 0 3px, #ead0c9 3px 6px); }
.swatch--selected { background: var(--avail-selected); }
.avail__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; background: var(--avail-free); border-radius: 14px; padding: 16px 20px; }
.avail__status { display: block; font-family: var(--font-heading); font-size: 17px; color: var(--avail-selected); }
.avail__hint { display: block; font-size: 14px; color: var(--avail-muted); margin-top: 2px; }
.avail__actions { display: flex; gap: 10px; align-items: center; }
.avail__actions .btn:disabled { opacity: .5; cursor: not-allowed; }
.avail__note { margin: 12px 0 0; font-size: 13px; color: var(--avail-muted); }
.avail__note i { margin-right: 4px; }
@media (max-width: 575px) {
  .avail { padding: 16px 12px; margin-left: -4px; margin-right: -4px; }
  .avail__grid { gap: 4px; }
  .avail__day { font-size: 14px; border-radius: 6px; }
  .avail__actions { width: 100%; }
  .avail__actions .btn-primary { flex: 1; }
}

/* ---------- Availability calendar: the reference layout ---------- */
.avail { padding: 26px 28px 22px; border-radius: 18px; }
.avail__head { align-items: flex-start; margin-bottom: 18px; }
.avail__eyebrow {
    margin: 0 0 4px; font-size: 12px; font-weight: 700;
    letter-spacing: .14em; text-transform: uppercase; color: var(--avail-eyebrow);
}
.avail__head h3 { font-size: 26px; line-height: 1.2; }
.avail__arrow { width: 44px; height: 44px; border-radius: 50%; }
.avail__arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.avail__months { gap: 34px; }
.avail__month h4 { font-size: 20px; font-weight: 500; letter-spacing: .01em; margin-bottom: 14px; }
.avail__grid { gap: 6px; }
.avail__dow { font-size: 11px; letter-spacing: .16em; font-weight: 600; opacity: .75; }
.avail__day {
    min-height: 46px; border-radius: 10px;
    background: var(--avail-free); color: var(--avail-ink);
    font-size: 15px; font-weight: 500;
}
.avail__day:hover:not(:disabled) { box-shadow: inset 0 0 0 2px var(--avail-selected); }
.avail__day.is-past { background: transparent; color: var(--avail-past); text-decoration: line-through; }
.avail__day.is-booked,
.avail__day.is-checkout-only::before,
.avail__day.is-checkin-only::before {
    background: repeating-linear-gradient(135deg, var(--avail-booked) 0 5px, var(--avail-booked-alt) 5px 10px);
}
.avail__day.is-booked { color: var(--avail-booked-ink); }
.avail__day.is-between { background: var(--avail-between); color: var(--avail-ink); }
.avail__day.is-start, .avail__day.is-end { background: var(--avail-selected); color: #fff; font-weight: 600; }
.avail__day.is-today::after { background: var(--avail-today); }

.avail__legend { gap: 10px 26px; margin: 20px 0 18px; }
.swatch { width: 17px; height: 17px; border-radius: 5px; }
.swatch--free { background: var(--avail-free); border: 1px solid var(--avail-free-edge); }
.swatch--booked { background: repeating-linear-gradient(135deg, var(--avail-booked) 0 3px, var(--avail-booked-alt) 3px 6px); }
.swatch--selected { background: var(--avail-selected); }

.avail__bar { padding: 18px 22px; border-radius: 14px; }
.avail__bar-text { min-width: 0; }
.avail__status { font-size: 19px; }
.avail__actions { flex-wrap: wrap; gap: 12px; }

/* Guests, as a stepper rather than a dropdown */
.avail__stepper { display: inline-flex; align-items: center; gap: 10px; }
.avail__stepper-label { font-size: 14px; color: var(--avail-muted); }
.avail__stepper-value { min-width: 1.5em; text-align: center; font-weight: 700; font-size: 16px; }
.avail__step {
    width: 34px; height: 34px; border-radius: 50%; padding: 0;
    border: 1px solid var(--avail-free-edge); background: #fff; color: var(--avail-ink);
    font-size: 17px; line-height: 1; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    transition: background .15s ease, border-color .15s ease;
}
.avail__step:hover:not(:disabled) { background: var(--avail-free); border-color: var(--avail-selected); }
.avail__step:disabled { opacity: .4; cursor: default; }

.avail__go { display: inline-flex; align-items: center; gap: 9px; }
.avail__go-icon { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.avail__note { display: flex; align-items: flex-start; gap: 7px; margin-top: 14px; line-height: 1.5; }
.avail__note svg { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 2px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }

@media (max-width: 767px) {
    .avail { padding: 18px 14px 16px; }
    .avail__head h3 { font-size: 21px; }
    .avail__day { min-height: 42px; }
    .avail__bar { padding: 14px 16px; }
    .avail__actions { width: 100%; justify-content: space-between; }
    .avail__go { flex: 1 1 auto; justify-content: center; }
}

/* The calendar's own controls, so Bootstrap's button rules do not reshape them. */
.avail__arrow {
    flex: 0 0 auto; padding: 0 !important; line-height: 1;
    background: #fff; border: 1px solid var(--avail-free-edge); color: var(--avail-ink);
}
.avail__arrow svg { flex: 0 0 auto; width: 18px !important; height: 18px; }
.avail__arrow:hover:not(:disabled) { background: var(--avail-free); border-color: var(--avail-selected); color: var(--avail-selected); }
.avail .btn-primary, .avail .btn-outline, .avail .btn-sm { border-radius: 10px; font-weight: 600; }
.avail .btn-primary {
    background: var(--avail-selected); border: 1px solid var(--avail-selected); color: #fff;
    padding: 11px 20px; font-size: 15px;
}
.avail .btn-primary:hover:not(:disabled) { background: var(--primary-color, #B89146); border-color: var(--primary-color, #B89146); color: #fff; }
.avail .btn-primary:disabled { opacity: .45; }
.avail .btn-outline {
    background: #fff; border: 1px solid var(--avail-free-edge); color: var(--avail-ink);
    padding: 9px 16px; font-size: 14px;
}
.avail .btn-outline:hover { background: var(--avail-free); border-color: var(--avail-selected); }
:root { --acct-line: #E4DACB; --acct-ink: #1B211B; --acct-muted: rgba(14,19,23,.62); --acct-accent: var(--primary-color, #B89146); --acct-soft: #F4EFE7; --acct-dark: #1B211B; }

/* ---------- Guest account, offers, invoice ---------- */
.account-nav { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 26px; }
.account-nav__link {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px;
    border: 1px solid var(--acct-line); border-radius: 999px; background: #fff;
    color: var(--acct-ink); font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer;
}
.account-nav__link:hover { border-color: var(--acct-accent); color: var(--acct-accent); text-decoration: none; }
.account-nav__link.is-on { background: var(--acct-accent); border-color: var(--acct-accent); color: #fff; }
.account-nav__out { margin-left: auto; }

.account-card {
    background: #fff; border: 1px solid var(--acct-line); border-radius: 16px;
    padding: 24px 26px; margin-bottom: 22px;
}
.account-card h3 { margin-top: 0; }
.account-card--next { border-color: var(--acct-accent); }
.account-aside { background: var(--acct-soft); border-radius: 16px; padding: 24px 26px; }
.eyebrow { display: block; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--acct-accent); font-weight: 700; margin-bottom: 6px; }

.points-card {
    background: var(--acct-dark); color: #fff; border-radius: 16px; padding: 26px; margin-bottom: 22px;
}
.points-card--wide { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; }
.points-card__label { display: block; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; opacity: .72; }
.points-card__value { display: block; font-size: 42px; line-height: 1.05; font-weight: 700; }
.points-card__worth { display: block; font-size: 14px; opacity: .85; }
.points-card__note { font-size: 14px; opacity: .85; margin: 12px 0 16px; }
.points-card .btn-outline { border-color: rgba(255,255,255,.6); color: #fff; }
.points-card .btn-outline:hover { background: rgba(255,255,255,.14); color: #fff; }

.table-scroll { overflow-x: auto; }
.stay-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.stay-table th, .stay-table td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--acct-line); }
.stay-table th { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--acct-muted); font-weight: 700; }
.stay-status { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--acct-soft); }
.stay-status--confirmed { background: #e3f3e7; color: #1c6b34; }
.stay-status--cancelled { background: #f3e3e3; color: #8c2f2f; }
.stay-status--pending { background: #f6efdc; color: #7a5a14; }

.notice-list { list-style: none; margin: 0; padding: 0; }
.notice-list li { display: flex; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--acct-line); }
.notice-list li:last-child { border-bottom: 0; }
.notice-list li.is-new { position: relative; }
.notice-list li.is-new::before { content: ""; position: absolute; left: -12px; top: 20px; width: 6px; height: 6px; border-radius: 50%; background: var(--acct-accent); }
.notice-list__when { flex: 0 0 60px; font-size: 13px; color: var(--acct-muted); }
.notice-list p { margin: 4px 0 0; font-size: 14px; color: var(--acct-muted); }

.coupon-grid { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 700px) { .coupon-grid { grid-template-columns: 1fr 1fr; } }
.coupon { border: 1px dashed var(--acct-accent); border-radius: 14px; padding: 20px; background: var(--acct-soft); }
.coupon__worth { display: inline-block; padding: 3px 10px; border-radius: 999px; background: var(--acct-accent); color: #fff; font-size: 12px; font-weight: 700; }
.coupon__code { display: block; margin: 10px 0 4px; font-size: 22px; letter-spacing: .06em; }
.coupon__title { margin: 0; font-weight: 600; }
.coupon__desc { margin: 6px 0; font-size: 14px; color: var(--acct-muted); }
.coupon__terms { margin: 6px 0 14px; font-size: 13px; color: var(--acct-muted); }
.coupon-list { list-style: none; margin: 0 0 16px; padding: 0; }
.coupon-list li { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; padding: 8px 0; border-bottom: 1px solid var(--acct-line); }
.coupon-list__code { font-size: 17px; letter-spacing: .05em; }

/* ---------- Invoice ---------- */
.invoice-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.invoice { background: #fff; border: 1px solid var(--acct-line); border-radius: 16px; padding: 34px; }
.invoice__head { display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; border-bottom: 2px solid var(--acct-line); padding-bottom: 20px; }
.invoice__head h1 { margin: 0; font-size: 30px; }
.invoice__ref { font-size: 15px; color: var(--acct-muted); margin: 4px 0 0; letter-spacing: .06em; }
.invoice__hotel { text-align: right; font-size: 14px; line-height: 1.5; }
.invoice__hotel p { margin: 6px 0 0; color: var(--acct-muted); }
.invoice__parties { display: grid; gap: 24px; grid-template-columns: 1fr; padding: 22px 0; }
@media (min-width: 700px) { .invoice__parties { grid-template-columns: 1fr 1fr; } }
.invoice__parties h2 { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--acct-muted); margin: 0 0 8px; }
.invoice__parties p { margin: 0; line-height: 1.6; }
.invoice__lines { width: 100%; border-collapse: collapse; margin-top: 10px; }
.invoice__lines th, .invoice__lines td { padding: 12px 0; border-bottom: 1px solid var(--acct-line); text-align: left; }
.invoice__lines .num { text-align: right; font-variant-numeric: tabular-nums; }
.invoice__lines tfoot th { font-size: 19px; border-bottom: 0; padding-top: 16px; }
.invoice__paid { margin-top: 20px; padding-top: 18px; border-top: 2px solid var(--acct-line); }
.invoice__paid p { margin: 0 0 6px; }

@media print {
    .site-header, .site-footer, .header__area, .footer__area, .sticky-book, .to-top, .scroll-up,
    .invoice-actions, .account-nav, .cookie-bar, .promo, .mean-bar { display: none !important; }
    .invoice { border: 0; padding: 0; }
    body { background: #fff; }
}

/* ---------- The home page panel ---------- */
.promo { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 20px; }
.promo[hidden] { display: none; }
.promo__backdrop { position: absolute; inset: 0; background: rgba(12, 16, 22, .62); }
.promo__panel {
    position: relative; display: grid; grid-template-columns: 1fr; max-width: 900px; width: 100%;
    max-height: 90vh; overflow: auto; background: #fff; border-radius: 6px;
    box-shadow: 0 30px 70px rgba(0,0,0,.35); animation: promoIn .32s ease;
}
@media (min-width: 760px) { .promo__panel { grid-template-columns: 1fr 1fr; } }
@keyframes promoIn { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .promo__panel { animation: none; } }
.promo__art { background: var(--acct-soft); }
.promo__art img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; display: block; }
.promo__body { padding: 34px 32px; }
.promo__body h2 { margin: 0 0 8px; font-size: 26px; }
.promo__sub { font-size: 17px; font-weight: 600; margin: 0 0 14px; }
.promo__body p { color: var(--acct-muted); line-height: 1.6; }
.promo__rate { font-weight: 700; color: var(--acct-ink); }
.promo__close {
    position: absolute; top: 10px; right: 12px; z-index: 2;
    width: 44px; height: 44px; border: 0; background: transparent;
    font-size: 30px; line-height: 1; color: var(--acct-ink); cursor: pointer;
}
.promo__close:hover { color: var(--acct-accent); }

/* ---------- Cookies ---------- */
.cookie-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1100;
    display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px;
    padding: 14px 20px; background: #fff; border-top: 1px solid var(--acct-line);
    box-shadow: 0 -6px 24px rgba(12, 16, 22, .12);
}
.cookie-bar[hidden] { display: none; }
.cookie-bar p { margin: 0; font-size: 14px; flex: 1 1 320px; }
.cookie-bar__actions { display: flex; gap: 10px; }
@media (max-width: 767px) { .cookie-bar { padding-bottom: 76px; } }

/* Elkton's theme has no btn-primary of its own, so the guest pages get one. */
.account-card .btn-primary, .account-aside .btn-primary, .coupon .btn-primary,
.promo .btn-primary, .cookie-bar .btn-primary, .invoice-actions .btn-primary {
    display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
    padding: 11px 22px; border-radius: 10px; font-weight: 600; text-decoration: none;
    background: var(--acct-dark); border: 1px solid var(--acct-dark); color: #fff;
}
.account-card .btn-primary:hover, .coupon .btn-primary:hover, .promo .btn-primary:hover,
.cookie-bar .btn-primary:hover, .invoice-actions .btn-primary:hover {
    background: var(--primary-color, #B89146); border-color: var(--primary-color, #B89146); color: #fff;
}
.account-card .btn-outline, .points-card .btn-outline, .coupon .btn-outline,
.cookie-bar .btn-outline, .invoice-actions .btn-outline {
    display: inline-flex; align-items: center; justify-content: center; min-height: 44px;
    padding: 10px 20px; border-radius: 10px; font-weight: 600; text-decoration: none;
    background: transparent; border: 1px solid var(--acct-line); color: var(--acct-ink);
}
.account-card .btn-outline:hover, .coupon .btn-outline:hover, .invoice-actions .btn-outline:hover {
    border-color: var(--acct-accent); color: var(--acct-accent);
}
.account-card .btn-sm, .coupon .btn-sm, .cookie-bar .btn-sm, .invoice-actions .btn-sm,
.points-card .btn-sm { padding: 8px 16px; min-height: 40px; font-size: 14px; }
.account-card .btn-block { width: 100%; }
.account-card .form-field { margin-bottom: 16px; }
.account-card .form-field label { display: block; font-weight: 600; margin-bottom: 6px; }
.account-card .form-field input { width: 100%; min-height: 44px; padding: 10px 14px; border: 1px solid var(--acct-line); border-radius: 10px; }
.account-card .form-check { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.account-card .form-check input { width: 18px; height: 18px; }
.account-card .form-check label { margin: 0; }
.account-card .feature-list, .account-aside .feature-list { list-style: none; padding: 0; }
.account-aside .feature-list li, .account-card .feature-list li { display: flex; gap: 10px; padding: 7px 0; }

/* The theme lays feature lists out in columns; in the account panels one column reads better. */
.account-aside .feature-list, .account-card .feature-list { display: block !important; }
.account-aside .feature-list li, .account-card .feature-list li { width: 100% !important; }

/* ---------- Coupon on the booking form ---------- */
.coupon-field__row { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.coupon-field__row input { flex: 1 1 200px; min-width: 0; }
.coupon-field__row .btn { flex: 0 0 auto; min-height: 44px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; }
.coupon-field .help { display: block; margin-top: 7px; font-size: 13px; }
.coupon-field .help.is-good { color: #1c6b34; font-weight: 600; }
.coupon-field .help.is-bad { color: #9a2f2f; font-weight: 600; }
@media (max-width: 480px) { .coupon-field__row .btn { flex: 1 1 100%; } }
.coupon-field__row .btn-outline {
    border: 1px solid var(--acct-line); border-radius: 10px; background: #fff;
    color: var(--acct-ink); font-weight: 600;
}
.coupon-field__row .btn-outline:hover { border-color: var(--acct-accent); color: var(--acct-accent); }

/* ---------- The account link in the header ----------
   A quiet companion to the phone number, not a competing button: the gold belongs
   to Book Now. Signed in, it carries the points balance and picks up the brand tint. */
.site-header__account, .header__account {
    display: inline-flex; align-items: center; gap: 8px;
    min-height: 44px; padding: 0 12px; margin-right: 4px;
    border: 0; background: none; border-radius: 8px;
    color: var(--el-ink, #0E1317); font-size: 14px; font-weight: 600; letter-spacing: .01em;
    text-decoration: none; white-space: nowrap;
    transition: color .18s ease, background .18s ease;
}
.site-header__account .acct-icon, .header__account .acct-icon {
    width: 19px; height: 19px; flex: 0 0 auto;
    fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round;
}
.site-header__account:hover, .header__account:hover { text-decoration: none; color: var(--acct-accent); background: var(--acct-soft); }
.site-header__account:focus-visible, .header__account:focus-visible { outline: 2px solid var(--acct-accent); outline-offset: 2px; }

/* Signed in: the balance is worth noticing, so it gets a soft chip. */
.site-header__account.is-member, .header__account.is-member {
    background: var(--acct-soft); color: var(--acct-accent); font-variant-numeric: tabular-nums;
}
.site-header__account.is-member:hover, .header__account.is-member:hover { filter: brightness(.96); }

/* On a phone the menu carries the account link, so the header keeps only the icon. */
@media (max-width: 1199px) {
    .site-header__account span, .header__account span { display: none; }
    .site-header__account, .header__account { padding: 0 8px; margin-right: 0; }
}
@media (max-width: 575px) { .site-header__account, .header__account { display: none; } }

/* ---------- Header row: keep Book Now on the page ----------
   The theme spaces the top menu for a shorter list of links, and `body` hides its overflow, so
   anything that does not fit is silently chopped rather than scrolled: at 1280 the Book Now
   button was already running 155px past the edge before the account link was added. The menu
   gives way instead, and gets its generous spacing back on a wide screen. */
/* The desktop menu appears at 992px (the theme swaps to the phone menu below that), so the
   row has to fit from there upward, not just from 1200. */
@media (min-width: 992px) {
    /* The theme gives this "flex: 1 1 0", so it shrinks to whatever is left while the menu
       inside keeps its full width, spilling out of both sides and landing on the buttons.
       Sizing it to its content keeps the menu inside its own box. */
    .header__area-menubar-right { flex: 0 1 auto; min-width: 0; }
    .header__area-menubar-right-menu, .header__area-menubar-right-menu > ul { max-width: 100%; }
    .header__area-menubar-right-menu > ul > li { margin: 0; }
    .header__area-menubar-right-menu > ul > li > a { padding-left: 5px; padding-right: 5px; font-size: 14px; }
    /* The number is already in the bar above, so it steps aside before the menu has to. */
    .header__call { display: none !important; }
}
@media (min-width: 1300px) {
    .header__call { display: inline-flex !important; }
}
@media (min-width: 1200px) {
    .header__area-menubar-right-menu > ul > li { margin: 0 3px; }
    .header__area-menubar-right-menu > ul > li > a { padding-left: 13px; padding-right: 13px; }
}
@media (min-width: 1500px) {
    .header__area-menubar-right-menu > ul > li { margin: 0 7px; }
    .header__area-menubar-right-menu > ul > li > a { padding-left: 20px; padding-right: 20px; }
}
@media (min-width: 1700px) {
    .header__area-menubar-right-menu > ul > li { margin: 0 11px; }
    .header__area-menubar-right-menu > ul > li > a { padding-left: 30px; padding-right: 30px; }
}
/* The label only earns its place once there is room for it. */
@media (max-width: 1399px) {
    .header__account span { display: none; }
    .header__account { padding: 0 8px; margin-right: 0; }
}

/* ----- Explore the area: live map (Leaflet) ----- */
.contact__area-map iframe[hidden], .explore__live[hidden] { display: none !important; }
.explore__live { width: 100%; height: 340px; border: 1px solid #dedad6; border-radius: 6px; background: #eeeae5; z-index: 0; }
@media (min-width: 992px) { .explore__live { height: 440px; } }
.explore__live .leaflet-control-attribution { font-size: 10px; }
.explore__live .leaflet-control-zoom a { color: #231f20; }
.explore-pin { background: none; border: 0; }
.explore-pin span { position: absolute; left: 3px; top: 0; width: 24px; height: 24px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: #b8913f; border: 3px solid #fff; box-shadow: 0 3px 10px rgba(0,0,0,.3); }
.explore-pin span::after { content: ""; position: absolute; inset: 5px; border-radius: 50%; background: #fff; }
.explore-pin--lodge span { background: #231f20; }
.explore-tip { font-family: inherit; font-size: 13px; line-height: 1.35; padding: 6px 10px; border: 0; border-radius: 6px; box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.explore__info { display: flex; flex-direction: column; gap: 4px; }
.explore__distance { margin: 0; font-size: 14px; font-weight: 600; color: #8a6a26; }
.explore__distance::before { content: ""; display: inline-block; width: 22px; margin-right: 8px; vertical-align: middle; border-top: 3px dashed #b8913f; }
.explore__live .leaflet-tile-pane { filter: saturate(.75) contrast(.95); }

/* Booking confirmation: actions row and the note after re-sending the email */
.confirm-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 20px; }
.confirm-actions form { margin: 0; }
.confirm-actions button.theme-border-btn { cursor: pointer; font-family: inherit; }
.resend-note { margin: 18px 0 0; padding: 12px 16px; border-radius: 8px; background: #fff7e6; color: #7a5312; text-align: center; font-size: 15px; }
.resend-note.is-ok { background: #eaf6ee; color: #1d6b3a; }
@media print { .confirm-actions, .resend-note { display: none !important; } }

/* Booking form: terms pop-up */
.terms-dialog { width: min(720px, calc(100vw - 32px)); max-height: min(80vh, 760px); padding: 0; border: 0; border-radius: 12px; box-shadow: 0 24px 64px rgba(0,0,0,.28); color: inherit; }
.terms-dialog[open] { display: flex; flex-direction: column; }
.terms-dialog::backdrop { background: rgba(20, 18, 17, .55); }
.terms-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; border-bottom: 1px solid #e6e2dd; }
.terms-dialog__head h3 { margin: 0; font-size: 20px; }
.terms-dialog__close { width: 36px; height: 36px; border: 0; border-radius: 50%; background: #f2efeb; color: #231f20; font-size: 24px; line-height: 1; cursor: pointer; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.terms-dialog__close:hover { background: #e6e2dd; }
.terms-dialog__body { padding: 8px 22px 16px; overflow-y: auto; flex: 1 1 auto; }
.terms-dialog__body h3 { font-size: 17px; margin: 18px 0 6px; }
.terms-dialog__body p, .terms-dialog__body li { font-size: 15px; line-height: 1.6; }
.terms-dialog__foot { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 22px; border-top: 1px solid #e6e2dd; }
.terms-dialog__foot button { cursor: pointer; font-family: inherit; }
[data-terms-open] { text-decoration: underline; text-underline-offset: 2px; }

/* Sign-in page: the guide beside the form */
.sign-in-guide h3 { font-size: 20px; margin: 0 0 12px; }
.sign-in-guide h3 + .guide-list { margin-top: 0; }
.guide-steps { list-style: none; counter-reset: step; padding: 0; margin: 0 0 26px; display: grid; gap: 12px; }
.guide-steps li { counter-increment: step; position: relative; padding-left: 40px; line-height: 1.55; }
.guide-steps li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 50%; background: #231f20; color: #fff; font-size: 14px; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.guide-list { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 12px; }
.guide-list li { display: flex; gap: 12px; line-height: 1.55; }
.guide-list li i { width: 28px; flex: 0 0 28px; font-size: 18px; color: var(--el-blue, #4A90D9); padding-top: 3px; text-align: center; }
.guide-list li strong { display: block; }
.guide-help { border-top: 1px solid #e6e2dd; padding-top: 16px; }
.guide-help p { margin: 0 0 8px; }
.guide-help p:last-child { margin-bottom: 0; }
@media (max-width: 767px) { .sign-in-guide { margin-top: 24px; } }

/* Sign-in: "Forgot password?" beside the label, and the two highlighted ways forward */
.field-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.field-label-row label { margin-bottom: 8px; }
.forgot-link { font-size: 14px; font-weight: 600; color: #b8913f; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.forgot-link:hover { color: #231f20; }
.sign-in-more { display: grid; gap: 12px; margin-top: 22px; }
.sign-in-more__item { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1.5px solid #e1dbd3; border-radius: 10px; background: #faf8f5; color: #231f20; text-decoration: none; transition: border-color .15s, background .15s, transform .15s; }
.sign-in-more__item:hover, .sign-in-more__item:focus-visible { border-color: #b8913f; background: #fff; color: #231f20; transform: translateY(-1px); }
.sign-in-more__item > i:first-child { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 50%; background: #231f20; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 17px; }
.sign-in-more__item span { flex: 1 1 auto; min-width: 0; }
.sign-in-more__item strong { display: block; font-size: 16px; }
.sign-in-more__item small { display: block; color: #6b6560; font-size: 14px; line-height: 1.45; }
.sign-in-more__go { color: #b8913f; font-size: 18px; }
.text-link-strong { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

.resend-inline { margin: 0 0 12px; line-height: 1.6; }
.link-button { background: none; border: 0; padding: 0; font: inherit; color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

/* Sign-up: steps, the code box, and the note when an email is already registered */
.signup-steps { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; padding: 0; margin: 0 0 18px; font-size: 14px; color: #8a847e; }
.signup-steps li { display: flex; align-items: center; gap: 8px; }
.signup-steps li span { width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid currentColor; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
.signup-steps li.is-current { color: #231f20; font-weight: 700; }
.signup-steps li.is-current span { background: #231f20; border-color: #231f20; color: #fff; }
.signup-steps li.is-done { color: #2f7a55; }
.signup-steps li.is-done span { background: #2f7a55; border-color: #2f7a55; color: #fff; }
.code-input { font-family: Consolas, "Courier New", monospace; font-size: 28px !important; letter-spacing: 12px; text-align: center; font-weight: 700; padding: 12px 10px !important; }
.code-input::placeholder { color: #cfc9c3; letter-spacing: 12px; }
.code-help { margin-top: 18px; }
.code-help p { margin: 0 0 8px; }
.link-button:disabled { cursor: default; opacity: .6; text-decoration: none; }
.email-taken { margin: 8px 0 0; font-size: 14px; }
.email-taken a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* The bill: the logo above the invoice title */
.invoice__brand { display: flex; flex-direction: column; gap: 16px; }
.invoice__logo { display: block; width: 190px; height: auto; }
@media print { .invoice__logo { width: 170px; } }

/* ----- Name of the signed-in guest in the header ----- */
.header-guest { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; }
.header-guest__name { display: inline-block; max-width: 14ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.header-guest__points { opacity: .75; font-size: .92em; white-space: nowrap; }

/* ----- Points on the booking form ----- */
.points-field { border: 1px solid #d3e4d9; background: #f3f9f5; border-radius: 6px; padding: 14px 16px; }
.points-field .form-check-row span strong { display: block; }
.points-field .help { display: block; margin: 8px 0 0 30px; font-size: 13px; }
.points-hint { font-size: 14px; margin: 0 0 18px; }
.price-summary__points strong { color: #2f7a55; }
[data-quote-target].is-repricing { opacity: .55; transition: opacity .15s; }

/* ----- Tick-box rows inside a form: the box sits beside its text, not above it ----- */
.form-field label.form-check-row { display: flex; align-items: flex-start; gap: 12px; margin: 0; font-weight: 400; cursor: pointer; }
.form-field label.form-check-row input[type="checkbox"] { flex: 0 0 20px; width: 20px; height: 20px; min-height: 0; margin: 2px 0 0; padding: 0; accent-color: #2f7a55; cursor: pointer; }
.form-field label.form-check-row > span { flex: 1 1 auto; min-width: 0; font-weight: 400; line-height: 1.5; }

/* ----- The points box on the booking form ----- */
.form-field.points-field { border: 1px solid #cfe3d6; border-left: 4px solid #2f7a55; background: #f3f9f5; border-radius: 8px; padding: 16px 18px; margin-bottom: 22px; }
.form-field.points-field label.form-check-row > span { font-size: 14px; color: #3d4a43; }
.form-field.points-field label.form-check-row > span strong { display: block; margin-bottom: 2px; font-size: 16px; font-weight: 700; color: #16241c; }
.form-field.points-field .help { display: block; margin: 10px 0 0 32px; padding-top: 10px; border-top: 1px solid #dcebe1; font-size: 13px; line-height: 1.55; color: #5b6861; overflow-wrap: anywhere; }
.form-field.points-field .help.is-bad { border-top: 0; padding-top: 0; color: #9a2f2f; font-weight: 600; }
.form-field.points-field .help[hidden] { display: none; }
@media (max-width: 575px) {
    .form-field.points-field { padding: 14px; }
    .form-field.points-field .help { margin-left: 0; }
}
