/* ==========================================================================
   Hotels & Lodges marketplace  (/hotels-and-lodges, /hotels-and-lodges/<slug>)
   All classes are prefixed .ls- to stay clear of style.css / bootstrap.css
   ========================================================================== */

:root {
    --ls-brown: #692304;
    --ls-brown-dark: #3d1402;
    --ls-orange: #f04f0b;
    --ls-orange-dark: #c23f08;
    --ls-cream: #f3e6e0;
    --ls-sand: #f7f4f2;
    --ls-ink: #1f1a17;
    --ls-muted: #6b625d;
    --ls-line: #e8e1dc;
    --ls-radius: 16px;
    --ls-shadow: 0 10px 30px rgba(61, 20, 2, 0.08);
    --ls-shadow-lg: 0 20px 50px rgba(61, 20, 2, 0.16);
}

.ls-page { background: #fff; color: var(--ls-ink); }
.ls-page p { color: var(--ls-muted); }
.ls-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.ls-section { padding: 80px 0; }
.ls-section.alt { background: var(--ls-sand); }

.ls-eyebrow {
    display: inline-block; font-size: .78rem; font-weight: 600; letter-spacing: .18em;
    text-transform: uppercase; color: var(--ls-orange);
}
.ls-section-head { max-width: 720px; margin: 0 auto 48px; text-align: center; }
.ls-section-head h2 { font-size: 2.2rem; font-weight: 800; color: var(--ls-brown); margin: 10px 0 12px; }
.ls-section-head p { font-size: 1.05rem; margin: 0; }

/* ---------- Buttons ---------- */
.ls-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 13px 26px; border-radius: 999px; border: 2px solid transparent;
    font-family: 'Poppins', sans-serif; font-weight: 600; font-size: .95rem; line-height: 1.2;
    cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
    text-decoration: none !important; white-space: nowrap;
}
.ls-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0, 0, 0, .18); }
.ls-btn:focus-visible { outline: 3px solid rgba(240, 79, 11, .45); outline-offset: 2px; }
.ls-btn-primary { background: var(--ls-orange); color: #fff !important; }
.ls-btn-primary:hover { background: var(--ls-orange-dark); }
.ls-btn-brown { background: var(--ls-brown); color: #fff !important; }
.ls-btn-brown:hover { background: var(--ls-brown-dark); }
.ls-btn-light { background: var(--ls-cream); color: var(--ls-brown) !important; }
.ls-btn-ghost { background: transparent; border-color: rgba(255, 255, 255, .8); color: #fff !important; }
.ls-btn-ghost:hover { background: rgba(255, 255, 255, .12); }
.ls-btn-outline { background: #fff; border-color: var(--ls-line); color: var(--ls-brown) !important; }
.ls-btn-outline:hover { border-color: var(--ls-brown); }
.ls-btn-whatsapp { background: #25d366; color: #fff !important; }
.ls-btn-block { width: 100%; }
.ls-btn-sm { padding: 9px 18px; font-size: .85rem; }
.ls-btn[disabled] { opacity: .7; cursor: wait; transform: none; }

/* ---------- Marketplace hero ---------- */
.ls-hero {
    position: relative; min-height: 82vh; min-height: min(82vh, 780px); display: flex; align-items: flex-end;
    background-size: cover; background-position: center; background-repeat: no-repeat; background-color: #2b1408; color: #fff;
    padding: 160px 0 90px;
}
.ls-hero::before {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(20, 8, 2, .55) 0%, rgba(20, 8, 2, .25) 40%, rgba(20, 8, 2, .85) 100%);
}
.ls-hero .ls-container { position: relative; z-index: 1; }
.ls-hero h1 { color: #fff; font-size: 3.6rem; font-weight: 800; line-height: 1.05; margin: 14px 0 18px; }
.ls-hero p { color: #f1e9e4; font-size: 1.2rem; max-width: 620px; margin-bottom: 30px; }
.ls-hero .ls-eyebrow { color: #ffb38f; }
.ls-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.ls-hero-stats { display: flex; flex-wrap: wrap; gap: 28px; margin-top: 44px; }
.ls-hero-stats div { border-left: 2px solid var(--ls-orange); padding-left: 14px; }
.ls-hero-stats strong { display: block; font-family: 'Raleway', sans-serif; font-size: 1.6rem; font-weight: 800; color: #fff; }
.ls-hero-stats span { font-size: .85rem; color: #e6d9d2; }

/* ---------- How it works ---------- */
.ls-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; counter-reset: step; }
.ls-step {
    position: relative; background: #fff; border: 1px solid var(--ls-line); border-radius: var(--ls-radius);
    padding: 30px 26px 26px; box-shadow: var(--ls-shadow);
}
.ls-step-num {
    width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
    background: var(--ls-cream); color: var(--ls-brown); font-weight: 800; font-size: 1.1rem; margin-bottom: 16px;
}
.ls-step h3 { font-size: 1.2rem; font-weight: 700; color: var(--ls-ink); margin-bottom: 8px; }
.ls-step p { margin: 0; font-size: .95rem; }

/* ---------- Filter bar ---------- */
.ls-filters {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
    margin-bottom: 32px;
}
.ls-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ls-chip {
    border: 1px solid var(--ls-line); background: #fff; color: var(--ls-ink); border-radius: 999px;
    padding: 9px 18px; font-size: .9rem; font-weight: 500; cursor: pointer; transition: all .2s ease;
}
.ls-chip:hover { border-color: var(--ls-brown); }
.ls-chip.is-active { background: var(--ls-brown); border-color: var(--ls-brown); color: #fff; }
.ls-search { position: relative; flex: 0 1 320px; }
.ls-search input {
    width: 100%; border: 1px solid var(--ls-line); border-radius: 999px; padding: 11px 18px 11px 44px;
    font-size: .95rem; background: #fff; outline: none; transition: border-color .2s ease, box-shadow .2s ease;
}
.ls-search input:focus { border-color: var(--ls-orange); box-shadow: 0 0 0 4px rgba(240, 79, 11, .12); }
.ls-search i { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); color: var(--ls-muted); }
.ls-count { font-size: .9rem; color: var(--ls-muted); margin: -16px 0 24px; }

/* ---------- Listing grid & cards ---------- */
.ls-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 381px)); justify-content: center; gap: 28px; }
.ls-card {
    display: flex; flex-direction: column; background: #fff; border-radius: var(--ls-radius);
    overflow: hidden; border: 1px solid var(--ls-line); box-shadow: var(--ls-shadow);
    transition: transform .3s ease, box-shadow .3s ease; position: relative;
}
.ls-card:hover { transform: translateY(-6px); box-shadow: var(--ls-shadow-lg); }
.ls-card-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ls-sand); }
.ls-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.ls-card:hover .ls-card-media img { transform: scale(1.07); }
.ls-card-media::after {
    content: ""; position: absolute; inset: auto 0 0 0; height: 45%;
    background: linear-gradient(0deg, rgba(0, 0, 0, .45), transparent);
}
.ls-badge {
    position: absolute; z-index: 1; top: 16px; padding: 6px 12px; border-radius: 999px;
    font-size: .75rem; font-weight: 700; letter-spacing: .04em;
}
.ls-badge-offer { left: 16px; background: var(--ls-orange); color: #fff; box-shadow: 0 6px 14px rgba(240, 79, 11, .35); }
.ls-badge-type { right: 16px; background: rgba(255, 255, 255, .92); color: var(--ls-brown); }
.ls-card-region {
    position: absolute; z-index: 1; left: 16px; bottom: 14px; color: #fff; font-size: .85rem; font-weight: 500;
}
.ls-card-body { display: flex; flex-direction: column; flex: 1; padding: 22px 22px 0; }
.ls-card-body h3 { font-size: 1.35rem; font-weight: 800; color: var(--ls-ink); margin-bottom: 8px; }
.ls-card-body h3 a { color: inherit; }
.ls-card-body h3 a::after { content: ""; position: absolute; inset: 0; z-index: 0; } /* whole card clickable */
.ls-card-body p { font-size: .95rem; line-height: 1.6; margin-bottom: 16px; }
.ls-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-bottom: 18px; }
.ls-tag {
    display: inline-flex; align-items: center; gap: 6px; background: var(--ls-sand); color: var(--ls-brown);
    border-radius: 8px; padding: 5px 10px; font-size: .8rem; font-weight: 500;
}
.ls-card-foot {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 16px 22px 20px; border-top: 1px solid var(--ls-line);
}
.ls-price small { display: block; font-size: .75rem; color: var(--ls-muted); }
.ls-price strong { font-family: 'Raleway', sans-serif; font-size: 1.35rem; font-weight: 800; color: var(--ls-brown); }
.ls-price strong span { font-size: .85rem; font-weight: 500; color: var(--ls-muted); }
.ls-card-foot .ls-btn { position: relative; z-index: 2; } /* above the stretched link */
.ls-empty { display: none; text-align: center; padding: 60px 20px; color: var(--ls-muted); }
.ls-empty i { font-size: 2rem; color: var(--ls-line); margin-bottom: 12px; display: block; }

/* ---------- Perks ---------- */
.ls-perks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.ls-perk {
    background: #fff; border-radius: var(--ls-radius); padding: 28px 24px; border: 1px solid var(--ls-line);
    position: relative; overflow: hidden;
}
.ls-perk-icon {
    width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; font-size: 1.3rem;
    background: linear-gradient(135deg, var(--ls-orange), var(--ls-brown)); color: #fff; margin-bottom: 18px;
}
.ls-perk h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 8px; color: var(--ls-ink); }
.ls-perk p { font-size: .92rem; margin-bottom: 14px; }
.ls-lock {
    display: inline-flex; align-items: center; gap: 6px; font-size: .75rem; font-weight: 600;
    color: var(--ls-orange-dark); background: #fff1ea; border-radius: 999px; padding: 4px 10px;
}

/* ---------- Owner CTA ---------- */
.ls-cta {
    border-radius: 24px; padding: 56px 48px; color: #fff; display: flex; align-items: center;
    justify-content: space-between; gap: 30px; flex-wrap: wrap;
    background: linear-gradient(120deg, var(--ls-brown-dark), var(--ls-brown) 55%, var(--ls-orange-dark));
}
.ls-cta h2 { color: #fff; font-size: 1.9rem; font-weight: 800; margin-bottom: 8px; }
.ls-cta p { color: #f1e1d8; margin: 0; max-width: 560px; }

/* ==========================================================================
   Detail page
   ========================================================================== */
.ls-detail-top { background: var(--ls-brown-dark); padding: 120px 0 0; }
.ls-crumbs { font-size: .85rem; color: #d9c3b8; margin-bottom: 18px; }
.ls-crumbs a { color: #ffb38f; }
.ls-crumbs span { margin: 0 8px; opacity: .6; }

.ls-gallery {
    display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 220px 220px; gap: 10px;
    border-radius: var(--ls-radius); overflow: hidden; position: relative;
}
.ls-gallery a { display: block; overflow: hidden; background: #000; }
.ls-gallery a:first-child { grid-row: 1 / span 2; }
.ls-gallery--3 { grid-template-columns: 2fr 1fr; }
.ls-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease, opacity .3s ease; }
.ls-gallery a:hover img { transform: scale(1.05); opacity: .92; }
.ls-gallery-all { position: absolute; right: 16px; bottom: 16px; z-index: 2; }
.ls-gallery-mobile { display: none; border-radius: var(--ls-radius); overflow: hidden; }
.ls-gallery-mobile .carousel-item img { width: 100%; height: 300px; object-fit: cover; }

.ls-title-block { display: flex; align-items: center; gap: 22px; padding: 32px 0 40px; }
.ls-title-logo {
    flex: 0 0 auto; width: 84px; height: 84px; border-radius: 18px; background: #fff; padding: 8px;
    display: grid; place-items: center; overflow: hidden;
}
.ls-title-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ls-title-logo.is-text { font-family: 'Raleway', sans-serif; font-weight: 800; font-size: 2rem; color: var(--ls-brown); }
.ls-title-block h1 { color: #fff; font-size: 2.6rem; font-weight: 800; margin: 6px 0 6px; }
.ls-title-block p { color: #e6d9d2; margin: 0; font-size: 1rem; }
.ls-title-meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ls-title-meta .ls-tag { background: rgba(255, 255, 255, .12); color: #fff; }

.ls-detail { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 48px; align-items: start; padding: 56px 0 80px; }
.ls-block { padding-bottom: 40px; margin-bottom: 40px; border-bottom: 1px solid var(--ls-line); }
.ls-block:last-child { border-bottom: 0; margin-bottom: 0; }
.ls-block h2 { font-size: 1.6rem; font-weight: 800; color: var(--ls-brown); margin-bottom: 18px; }
.ls-lead { font-size: 1.12rem; color: var(--ls-ink) !important; line-height: 1.75; }

.ls-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 26px; }
.ls-stat { background: var(--ls-sand); border-radius: 14px; padding: 18px 16px; text-align: center; }
.ls-stat strong { display: block; font-family: 'Raleway', sans-serif; font-size: 1.6rem; font-weight: 800; color: var(--ls-brown); }
.ls-stat span { font-size: .8rem; color: var(--ls-muted); }

.ls-room { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: center; margin-bottom: 22px; }
.ls-room:last-child { margin-bottom: 0; }
.ls-room img { width: 100%; height: 180px; object-fit: cover; border-radius: 14px; }
.ls-room h3 { font-size: 1.2rem; font-weight: 700; margin-bottom: 6px; }
.ls-room p { margin-bottom: 10px; font-size: .95rem; }
.ls-checks { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; }
.ls-checks li { font-size: .9rem; color: var(--ls-ink); }
.ls-checks li i { color: #2e8b57; margin-right: 6px; }

.ls-exp-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.ls-exp { display: flex; gap: 16px; padding: 18px; border: 1px solid var(--ls-line); border-radius: 14px; background: #fff; }
.ls-exp i {
    flex: 0 0 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
    background: var(--ls-cream); color: var(--ls-brown); font-size: 1.1rem;
}
.ls-exp h3 { font-size: 1rem; font-weight: 700; margin-bottom: 4px; }
.ls-exp p { font-size: .9rem; line-height: 1.55; margin: 0; }

.ls-amenities { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.ls-amenity { display: flex; align-items: center; gap: 12px; font-size: .95rem; color: var(--ls-ink); }
.ls-amenity i { width: 22px; text-align: center; color: var(--ls-orange); }

.ls-know dt { font-weight: 700; color: var(--ls-ink); font-family: 'Raleway', sans-serif; }
.ls-know dd { color: var(--ls-muted); margin: 2px 0 14px; }

/* Sticky offer card */
.ls-offer {
    position: sticky; top: 100px; background: #fff; border-radius: 20px; border: 1px solid var(--ls-line);
    box-shadow: var(--ls-shadow-lg); overflow: hidden;
}
.ls-offer-head { background: linear-gradient(135deg, var(--ls-brown), var(--ls-orange-dark)); color: #fff; padding: 24px; }
.ls-offer-head small { color: #ffd9c7; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; }
.ls-offer-head .ls-price strong { color: #fff; font-size: 2rem; }
.ls-offer-head .ls-price strong span, .ls-offer-head .ls-price small { color: #f1d6c9; }
.ls-offer-body { padding: 24px; }
.ls-offer-body h3 { font-size: 1.05rem; font-weight: 700; margin-bottom: 14px; }
.ls-offer-list { list-style: none; padding: 0; margin: 0 0 22px; }
.ls-offer-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px dashed var(--ls-line); font-size: .92rem; color: var(--ls-ink); }
.ls-offer-list li:last-child { border-bottom: 0; }
.ls-offer-list li > span i { color: var(--ls-orange); width: 20px; }
.ls-offer-list .fa-lock { color: var(--ls-muted); font-size: .8rem; }
.ls-offer-body .ls-btn + .ls-btn { margin-top: 10px; }
.ls-offer-note { text-align: center; font-size: .8rem; color: var(--ls-muted); margin: 14px 0 0; }

/* Mobile sticky bar */
.ls-mobile-bar {
    display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; background: #fff;
    padding: 12px 16px; box-shadow: 0 -8px 24px rgba(0, 0, 0, .12);
    align-items: center; justify-content: space-between; gap: 12px;
}

/* Lightbox */
.ls-lightbox .modal-content { background: #0d0806; border: 0; }
.ls-lightbox .carousel-item img { width: 100%; max-height: 80vh; object-fit: contain; }
.ls-lightbox .close { position: absolute; right: 18px; top: 12px; z-index: 5; color: #fff; opacity: .9; font-size: 2.2rem; text-shadow: none; }
.ls-lightbox .carousel-caption { position: static; padding: 14px 0 6px; color: #d9c3b8; font-size: .9rem; }

/* ==========================================================================
   Enquiry modal
   ========================================================================== */
.ls-modal .modal-dialog { max-width: 760px; }
.ls-modal .modal-content { border: 0; border-radius: 20px; overflow: hidden; }
.ls-modal-head { display: flex; gap: 18px; align-items: center; padding: 24px 28px; color: #fff; background: linear-gradient(135deg, var(--ls-brown-dark), var(--ls-brown) 60%, var(--ls-orange-dark)); position: relative; }
.ls-modal-head img { width: 84px; height: 84px; border-radius: 14px; object-fit: cover; flex: 0 0 auto; border: 2px solid rgba(255, 255, 255, .3); }
.ls-modal-head h2 { color: #fff; font-size: 1.45rem; font-weight: 800; margin: 4px 0 8px; }
.ls-modal-head .ls-eyebrow { color: #ffb38f; }
.ls-modal-head .close { position: absolute; top: 12px; right: 18px; color: #fff; opacity: .85; font-size: 1.9rem; text-shadow: none; }
.ls-modal-perks { display: flex; flex-wrap: wrap; gap: 6px; }
.ls-modal-perks span { font-size: .75rem; background: rgba(255, 255, 255, .14); border-radius: 999px; padding: 4px 10px; }
.ls-modal .modal-body { padding: 26px 28px 8px; }
.ls-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.ls-form-grid .full { grid-column: 1 / -1; }
.ls-field label { display: block; font-size: .82rem; font-weight: 600; color: var(--ls-ink); margin-bottom: 6px; }
.ls-field label .req { color: var(--ls-orange); }
.ls-field input, .ls-field select, .ls-field textarea {
    width: 100%; border: 1px solid #ddd3cd; border-radius: 10px; padding: 11px 14px; font-size: .95rem;
    background: #fff; color: var(--ls-ink); outline: none; transition: border-color .2s ease, box-shadow .2s ease;
}
.ls-field select.form-control:not([size]):not([multiple]) { height: auto; } /* Bootstrap's fixed height clips text under this padding */
.ls-field input:focus, .ls-field select:focus, .ls-field textarea:focus { border-color: var(--ls-orange); box-shadow: 0 0 0 4px rgba(240, 79, 11, .12); }
.ls-field.has-error input, .ls-field.has-error select { border-color: #d93025; }
.ls-field .ls-error { display: none; color: #d93025; font-size: .78rem; margin-top: 4px; }
.ls-field.has-error .ls-error { display: block; }
.ls-stepper { display: flex; align-items: center; border: 1px solid #ddd3cd; border-radius: 10px; overflow: hidden; }
.ls-stepper button { width: 44px; height: 44px; border: 0; background: var(--ls-sand); color: var(--ls-brown); font-size: 1.1rem; font-weight: 700; cursor: pointer; }
.ls-stepper input { border: 0 !important; box-shadow: none !important; text-align: center; border-radius: 0; padding: 10px 0; -moz-appearance: textfield; }
.ls-stepper input::-webkit-outer-spin-button, .ls-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ls-checkpills { display: flex; flex-wrap: wrap; gap: 8px; }
.ls-checkpills label { margin: 0; cursor: pointer; }
.ls-checkpills input { position: absolute; opacity: 0; pointer-events: none; }
.ls-checkpills span {
    display: inline-block; border: 1px solid #ddd3cd; border-radius: 999px; padding: 7px 14px;
    font-size: .85rem; font-weight: 500; color: var(--ls-ink); transition: all .2s ease;
}
.ls-checkpills input:checked + span { background: var(--ls-brown); border-color: var(--ls-brown); color: #fff; }
.ls-checkpills input:focus-visible + span { outline: 3px solid rgba(240, 79, 11, .45); outline-offset: 2px; }
.ls-modal .modal-footer { border: 0; padding: 14px 28px 26px; display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; }
.ls-modal .modal-footer small { color: var(--ls-muted); max-width: 360px; }

/* Mountain Gorilla Festival theme: jungle-green enquiry modal (body.ls-mgf-theme set by event_landing.php) */
.ls-mgf-theme .ls-modal-head { background: linear-gradient(135deg, #262b10, #363c17 55%, #4b5320); }
.ls-mgf-theme .ls-modal-head::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
    background: linear-gradient(90deg, #c99a2e, var(--ls-gold));
}
.ls-mgf-theme .ls-modal-head .ls-eyebrow { color: var(--ls-gold); }
.ls-mgf-theme .ls-modal-perks span { background: rgba(255, 255, 255, .16); }
.ls-mgf-theme .ls-field label .req { color: #4b5320; }
.ls-mgf-theme .ls-field input:focus,
.ls-mgf-theme .ls-field select:focus,
.ls-mgf-theme .ls-field textarea:focus { border-color: #4b5320; box-shadow: 0 0 0 4px rgba(75, 83, 32, .14); }
.ls-mgf-theme .ls-stepper button { background: #f1efe2; color: #363c17; }
.ls-mgf-theme .ls-stepper button:hover { background: #e4e0cb; }
.ls-mgf-theme .ls-checkpills span:hover { border-color: #6b7041; }
.ls-mgf-theme .ls-checkpills input:checked + span { background: #4b5320; border-color: #4b5320; }
.ls-mgf-theme .ls-checkpills input:focus-visible + span { outline-color: rgba(75, 83, 32, .45); }
.ls-mgf-theme .ls-modal .ls-btn-primary { background: #4b5320; }
.ls-mgf-theme .ls-modal .ls-btn-primary:hover { background: #363c17; }
.ls-mgf-theme .ls-modal .ls-btn:focus-visible { outline-color: rgba(75, 83, 32, .45); }
.ls-mgf-theme .ls-modal .modal-footer a { color: #363c17 !important; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 991px) {
    .ls-perks { grid-template-columns: repeat(2, 1fr); }
    .ls-detail { grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: 110px; }
    .ls-offer { position: static; margin-top: 10px; }
    .ls-mobile-bar { display: flex; }
    .ls-page .float { bottom: 96px; }
}
@media (max-width: 767px) {
    .ls-section { padding: 56px 0; }
    .ls-section-head h2 { font-size: 1.7rem; }
    .ls-hero { min-height: 78vh; min-height: min(78vh, 680px); padding: 130px 0 56px; }
    .ls-hero h1 { font-size: 2.5rem; }
    .ls-hero p { font-size: 1.02rem; }
    .ls-hero-stats { gap: 18px; }
    .ls-steps, .ls-perks, .ls-exp-grid { grid-template-columns: 1fr; }
    .ls-grid { grid-template-columns: 1fr; }
    .ls-filters { flex-direction: column; align-items: stretch; }
    .ls-search { flex-basis: auto; }
    .ls-chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
    .ls-chip { flex: 0 0 auto; }
    .ls-cta { padding: 36px 24px; }
    .ls-gallery { display: none; }
    .ls-gallery-mobile { display: block; }
    .ls-detail-top { padding-top: 100px; }
    .ls-title-block { align-items: flex-start; gap: 14px; }
    .ls-title-logo { width: 60px; height: 60px; border-radius: 14px; }
    .ls-title-block h1 { font-size: 1.85rem; }
    .ls-stats { grid-template-columns: repeat(2, 1fr); }
    .ls-room { grid-template-columns: 1fr; }
    .ls-checks { grid-template-columns: 1fr; }
    .ls-form-grid { grid-template-columns: 1fr; }
    .ls-modal-head { padding: 20px; }
    .ls-modal-head img { display: none; }
    .ls-modal .modal-body { padding: 20px 20px 4px; }
    .ls-modal .modal-footer { padding: 12px 20px 22px; }
    .ls-modal .modal-footer .ls-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .ls-card, .ls-card-media img, .ls-gallery img, .ls-btn { transition: none; }
}
