/* ===========================================================
   Monte d'Oru — Frontend
   Tokens injectés dans <style id="moru-tokens"> (voir Assets.php)
   Design : match visuel avec la home Elementor
   =========================================================== */

.moru-container{
    max-width: var(--moru-container, 1440px);
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
}

.moru-section{
    padding: 64px 0;
}

.moru-section--top{
    padding-top: 40px;
}

.moru-section--beige{
    background: #F3EEEC;
}

/* Reset box-sizing scopé */
.moru-chalet-page *,
.moru-search-bar *,
.moru-chalets-grid *{
    box-sizing: border-box;
}

/* ---------- Typography (scope .moru-chalet-page avec !important
   pour override le kit Elementor qui force H1=128 / H2=96 / H3=60) ---------- */
.moru-chalet-page,
.moru-search-bar,
.moru-chalets-grid,
.moru-search-results{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: #7A7A7A;
    font-size: 14px;
    line-height: 1.55;
}

.moru-chalet-page h1,
.moru-chalet-page h2,
.moru-chalet-page h3,
.moru-chalet-page h4,
.moru-chalet-page h5,
.moru-chalet-page h6{
    font-family: 'Georgia', 'Fraunces', serif !important;
    color: #0A0A0A;
    font-weight: 700;
    margin: 0;
    letter-spacing: normal;
    text-transform: none;
}

.moru-chalet-page h1.moru-chalet-title{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-weight: 700 !important;
    font-size: 44px !important;
    line-height: 1.1 !important;
    color: #AA2215 !important;
    margin: 0 0 10px !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

.moru-chalet-page h2.moru-section-title,
.moru-chalet-page .moru-section-title{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-weight: 700 !important;
    font-size: 32px !important;
    line-height: 1.15 !important;
    color: #202020 !important;
    margin: 0 0 24px !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

.moru-chalet-page .moru-section-title--primary{
    color: #AA2215 !important;
}

.moru-chalet-page .moru-section-subtitle{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-style: italic !important;
    font-size: 26px !important;
    font-weight: 400 !important;
    letter-spacing: 6px !important;
    color: #AA2215 !important;
    margin: 0 0 10px !important;
    text-transform: none !important;
}

.moru-chalet-page h3{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #AA2215 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

.moru-chalet-page h4{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #0A0A0A !important;
    line-height: 1.3 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}

.moru-chalet-page p{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 14px;
    color: #7A7A7A;
    line-height: 1.7;
    margin: 0 0 12px;
}

/* ---------- Cards génériques ---------- */
.moru-card-beige{
    background: #F3EEEC;
    border: 1px solid transparent;
    border-radius: 15px;
    padding: 30px;
}

.moru-card-white{
    background: #ffffff;
    border: 1px solid #E5E7EB;
    border-radius: 15px;
    padding: 24px;
}

/* ---------- Buttons / inputs ----------
   reset.css hello-elementor impose :
   - [type=submit], button { bg:transparent; border:1px solid #c36; color:#c36; radius:3px; padding:.5rem 1rem }
   - input[type=text] { border:1px solid #666; radius:3px }
   - a { color:#c36 }
   → nécessité de !important pour neutraliser.
*/
.moru-btn-primary,
a.moru-btn-primary,
button.moru-btn-primary{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 12px 24px !important;
    background: #AA2215 !important;
    color: #fff !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    letter-spacing: .01em !important;
    border: 1px solid #AA2215 !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    text-decoration: none !important;
    text-align: center !important;
    line-height: 1.2 !important;
    width: auto !important;
    transition: background .15s ease, border-color .15s ease, filter .15s ease !important;
}

.moru-btn-primary:hover,
a.moru-btn-primary:hover,
button.moru-btn-primary:hover,
.moru-btn-primary:focus,
button.moru-btn-primary:focus{
    background: #8B1C11 !important;
    border-color: #8B1C11 !important;
    color: #fff !important;
    filter: none !important;
}
.moru-btn-primary:disabled,
button.moru-btn-primary:disabled{
    opacity: .5 !important;
    cursor: not-allowed !important;
    background: #AA2215 !important;
    color: #fff !important;
}

.moru-btn-secondary,
a.moru-btn-secondary,
button.moru-btn-secondary{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 12px 24px !important;
    background: #ffffff !important;
    color: #202020 !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    border: 1px solid #E5E7EB !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    text-decoration: none !important;
    text-align: center !important;
    line-height: 1.2 !important;
    transition: background .15s ease, border-color .15s ease !important;
}
.moru-btn-secondary:hover,
a.moru-btn-secondary:hover{
    background: #F3EEEC !important;
    border-color: #AA2215 !important;
    color: #AA2215 !important;
}

.moru-btn-ghost,
a.moru-btn-ghost,
button.moru-btn-ghost{
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    font-weight: 500 !important;
    font-size: 14px !important;
    color: #0A0A0A !important;
    text-decoration: none !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 4px 0 !important;
    cursor: pointer !important;
}
.moru-btn-ghost:hover,
a.moru-btn-ghost:hover{
    background: transparent !important;
    color: #AA2215 !important;
}
.moru-btn-ghost svg,
a.moru-btn-ghost svg{
    width: 14px !important;
    height: 14px !important;
    flex: 0 0 auto;
}

.moru-chalet-page .moru-input,
.moru-chalet-page .moru-select,
.moru-search-bar .moru-input,
.moru-search-bar .moru-select,
.moru-reservation-box .moru-input,
.moru-reservation-box .moru-select,
input.moru-input,
select.moru-select{
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    font-size: 14px !important;
    color: #202020 !important;
    background: #fff !important;
    border: 1px solid #E5E7EB !important;
    border-radius: 10px !important;
    padding: 8px 16px !important;
    width: 100% !important;
    height: 44px !important;
    outline: none !important;
    transition: border-color .15s ease, box-shadow .15s ease !important;
}
.moru-input::placeholder,
.moru-select::placeholder{
    color: #9CA3AF !important;
    opacity: 1 !important;
}
.moru-input:focus,
.moru-select:focus,
input.moru-input:focus,
select.moru-select:focus{
    border-color: #AA2215 !important;
    box-shadow: 0 0 0 3px rgba(170,34,21,.10) !important;
}

/* Flatpickr altInput hérite les mêmes styles */
.moru-search-bar input.flatpickr-input,
.moru-search-bar input.flatpickr-alt-input,
.moru-reservation-box input.flatpickr-input,
.moru-reservation-box input.flatpickr-alt-input{
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    font-size: 14px !important;
    color: #202020 !important;
    background: #fff !important;
    border: 1px solid #E5E7EB !important;
    border-radius: 10px !important;
    padding: 8px 16px !important;
    height: 44px !important;
    width: 100% !important;
}

/* Liens hors boutons : neutraliser le color:#c36 du reset */
.moru-chalet-page a:not(.moru-btn-primary):not(.moru-btn-secondary):not(.moru-btn-ghost),
.moru-chalets-grid a:not(.moru-btn-primary):not(.moru-btn-secondary):not(.moru-btn-ghost),
.moru-search-results a:not(.moru-btn-primary):not(.moru-btn-secondary):not(.moru-btn-ghost){
    color: inherit;
    text-decoration: none;
}

.moru-label{
    display: block;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: #6B7280;
    margin-bottom: 6px;
    letter-spacing: .03em;
    text-transform: uppercase;
}

/* ---------- Search bar ---------- */
.moru-search-bar{
    position: relative;
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 15px;
    padding: 18px 20px;
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) minmax(220px, 1.4fr) 110px 140px;
    gap: 16px;
    align-items: end;
    max-width: calc(var(--moru-container) - 48px);
    margin: 0 auto 32px;
    box-shadow: 0 6px 24px rgba(0,0,0,.06);
}

.moru-search-bar.moru-search-hero__bar--with-pets{
    grid-template-columns: minmax(220px, 1.4fr) minmax(220px, 1.4fr) 100px 100px 140px;
}

.moru-search-bar__field{ min-width: 0; }

.moru-search-bar__field label,
.moru-search-bar__legend{
    display: block;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: #6B7280;
    margin-bottom: 6px;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.moru-search-bar__submit,
button.moru-search-bar__submit{
    width: 100% !important;
    height: 44px !important;
    padding: 0 16px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
}

.moru-search-bar--vertical{
    grid-template-columns: 1fr;
}

/* ---------- Date box (bouton date, cohérent avec .moru-input/select) ---------- */
button.moru-datebox,
.moru-chalet-page button.moru-datebox,
.moru-reservation-box button.moru-datebox,
.moru-search-bar button.moru-datebox{
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    height: 44px !important;
    padding: 8px 16px !important;
    margin: 0 !important;
    background: #fff !important;
    border: 1px solid #E5E7EB !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    text-align: left !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    color: #202020 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    box-shadow: none !important;
    transition: border-color .15s ease, box-shadow .15s ease !important;
}
button.moru-datebox:hover,
.moru-search-bar button.moru-datebox:hover{ border-color: #AA2215 !important; background: #fff !important; color: #202020 !important; }
button.moru-datebox:focus,
.moru-search-bar button.moru-datebox:focus{
    outline: none !important;
    border-color: #AA2215 !important;
    box-shadow: 0 0 0 3px rgba(170,34,21,.10) !important;
    background: #fff !important;
}
.moru-datebox__value{
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    color: #202020;
    font-weight: 500;
}
.moru-datebox__value--empty{ color: #9CA3AF; font-weight: 400; }

/* Host wrapper caché (contient les hidden inputs + l'input flatpickr) */
.moru-daterange-host{
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    pointer-events: none;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}
.moru-daterange__hidden{
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    width: 1px !important;
    height: 1px !important;
}

/* Flatpickr theming Monte d'Oru */
.flatpickr-calendar{
    border-radius: 12px !important;
    box-shadow: 0 12px 40px rgba(0,0,0,.12) !important;
    border: 1px solid #E5E7EB !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover{
    background: #AA2215 !important;
    border-color: #AA2215 !important;
    color: #fff !important;
}
.flatpickr-day.inRange,
.flatpickr-day.inRange:hover{
    background: rgba(170,34,21,.10) !important;
    border-color: rgba(170,34,21,.10) !important;
    box-shadow: -5px 0 0 rgba(170,34,21,.10), 5px 0 0 rgba(170,34,21,.10) !important;
    color: #0A0A0A !important;
}
.flatpickr-day.today{ border-color: #AA2215 !important; }
.flatpickr-day:hover{ background: #F1EDE6 !important; }
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover{
    color: #D1D5DB !important;
    background: transparent !important;
}
.flatpickr-day.moru-not-sat:not(.startRange):not(.endRange):not(.selected):not(.inRange){
    color: #D1D5DB !important;
    background: transparent !important;
    cursor: default !important;
}
.flatpickr-day.moru-not-sat:hover{
    background: transparent !important;
}
.flatpickr-months .flatpickr-month{ color: #0A0A0A !important; }
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year{
    font-family: 'Fraunces', serif !important;
    font-weight: 300 !important;
}
.flatpickr-weekday{
    color: #6B7280 !important;
    font-weight: 600 !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
}

@media (max-width: 480px){
    .flatpickr-calendar.open{
        left: 50% !important;
        transform: translateX(-50%) !important;
        max-width: calc(100vw - 24px) !important;
    }
}

/* ---------- Chalet card (grille) ---------- */
.moru-chalets-grid{
    display: grid;
    gap: 32px 28px;
    grid-template-columns: repeat(var(--moru-grid-cols, 3), minmax(0, 1fr));
    width: 100%;
    min-width: 0;
    isolation: isolate;
    contain: layout style;
}

.moru-chalet-card{
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
    max-width: 100%;
    position: relative;
    z-index: 1;
    isolation: isolate;
    contain: layout style;
}

.moru-chalet-card__media-wrap{
    position: relative;
    width: 100%;
    min-width: 0;
    contain: layout;
}

.moru-chalet-card__thumb{
    position: relative;
    border-radius: 15px;
    overflow: hidden;
    aspect-ratio: 340 / 350;
    background: #ddd;
    background-size: cover;
    background-position: center;
    color: #fff;
    display: block;
    text-decoration: none;
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.moru-chalet-card__overlay{
    position: absolute;
    inset: 0;
    background: rgba(0,0,0, var(--moru-overlay, .40));
}

.moru-chalet-card__badge{
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 2;
    background: transparent;
    color: #fff;
    font-family: 'Inter', Arial, sans-serif;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.moru-chalet-card__name,
a.moru-chalet-card__name{
    position: absolute !important;
    left: 24px !important;
    right: 24px !important;
    bottom: 22px !important;
    z-index: 2 !important;
    color: #fff !important;
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 300 !important;
    font-size: 28px !important;
    line-height: 1.1 !important;
    letter-spacing: -.5px !important;
    text-decoration: none !important;
}
a.moru-chalet-card__name:hover{ color: #fff !important; }

.moru-chalet-card__bullets{
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.moru-chalet-card__bullets li{
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: 'Inter', Arial, sans-serif;
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: #3a342c;
}

.moru-chalet-card__bullets li svg{
    width: 14px;
    height: 14px;
    stroke-width: 1.7;
    color: #AA2215;
    flex: 0 0 14px;
}

.moru-chalet-card__meta{
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 12px;
    color: #6B7280;
}

.moru-chalet-card__meta > span{
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.moru-chalet-card__meta svg{ width: 14px; height: 14px; }

.moru-chalet-card__footer{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

/* ---------- Single chalet page structure ---------- */
.moru-chalet-page{
    padding-top: 40px;
    padding-bottom: 80px;
}

/* Gallery */
.moru-gallery{
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 20px;
    margin: 0 0 56px;
}

.moru-gallery__main{
    width: 100%;
    aspect-ratio: 820 / 460;
    background: #F3F4F6;
    border-radius: 15px;
    background-size: cover;
    background-position: center;
}

.moru-gallery__thumbs{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 108px;
    gap: 14px;
}

.moru-gallery__thumb{
    width: 100%;
    height: 100%;
    border-radius: 12px;
    background-color: #F3F4F6;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    border: 0;
    padding: 0;
    transition: transform .15s ease;
}

.moru-gallery__thumb:hover{ transform: scale(1.02); }

.moru-gallery__thumb.is-active{
    outline: 2px solid #AA2215;
    outline-offset: 2px;
}

/* Title + reservation columns */
.moru-chalet-hero{
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 56px;
    margin-bottom: 80px;
    align-items: start;
}

.moru-chalet-header{
    margin-bottom: 24px;
}

.moru-chalet-page .moru-chalet-slogan{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-style: italic !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    letter-spacing: .24em !important;
    color: #202020 !important;
    margin: 0 0 16px !important;
    text-transform: uppercase !important;
}

.moru-chalet-intro{
    color: #333333 !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    margin: 0 0 24px !important;
}

/* Tabs / pills */
.moru-tabs{
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.moru-tabs__pill,
a.moru-tabs__pill{
    background: #ffffff !important;
    border: 1px solid #E5E7EB !important;
    border-radius: 10px !important;
    padding: 8px 16px !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #202020 !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    line-height: 1.2 !important;
    transition: background .15s ease, border-color .15s ease, color .15s ease !important;
}
.moru-tabs__pill:hover,
a.moru-tabs__pill:hover{
    background: #F3EEEC !important;
    border-color: #AA2215 !important;
    color: #AA2215 !important;
}
.moru-tabs__pill.is-active,
.moru-tabs__pill[aria-current="true"]{
    background: #AA2215 !important;
    border-color: #AA2215 !important;
    color: #fff !important;
}

/* Info cards */
.moru-info-cards{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-bottom: 0;
}

.moru-info-card{
    min-height: 64px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
}

.moru-info-card__icon{
    width: 36px; height: 36px;
    border-radius: 10px;
    background: #F3EEEC;
    display: grid; place-items: center;
    flex: 0 0 36px;
}

.moru-info-card__icon svg{ width: 18px; height: 18px; color: #AA2215; }

.moru-info-card__value{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-weight: 700;
    font-size: 14px;
    color: #0A0A0A;
    line-height: 1.2;
}

.moru-info-card__label{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 11px;
    color: #6B7280;
    margin-top: 2px;
}

/* Reservation box */
.moru-reservation-box{
    width: 100%;
    max-width: 380px;
    border: 1px solid #E5E7EB;
    border-radius: 15px;
    background: #fff;
    padding: 24px;
    position: sticky;
    top: 24px;
    box-shadow: 0 4px 20px rgba(0,0,0,.06);
}

.moru-chalet-page .moru-reservation-box__title{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    color: #AA2215 !important;
    text-align: center !important;
    margin: 0 0 18px !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

.moru-reservation-box__grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 0;
}

.moru-reservation-box__grid > .moru-field--full{ grid-column: 1 / -1; }

.moru-reservation-box__cost{
    border-top: 1px solid #E5E7EB;
    margin-top: 18px;
    padding-top: 16px;
}

.moru-reservation-box__cost-label{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: #6B7280;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.moru-reservation-box__cost-total{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-weight: 700;
    font-size: 28px;
    color: #0A0A0A;
    margin: 6px 0 12px;
    line-height: 1.1;
    letter-spacing: -.01em;
}

.moru-reservation-box__breakdown{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 12px;
    color: #6B7280;
    margin-bottom: 14px;
}
.moru-reservation-box__breakdown li{ display: flex; justify-content: space-between; padding: 3px 0; }
.moru-reservation-box__breakdown ul{ list-style: none; padding: 0; margin: 0; }

.moru-reservation-box__error{
    color: #AA2215;
    font-size: 12px;
    margin-bottom: 10px;
    min-height: 14px;
}

.moru-reservation-box__submit{
    width: 100%;
    height: 46px;
    font-size: 14px;
    margin-top: 4px;
}

/* Description block */
.moru-description{
    background: #F3EEEC;
    border-radius: 15px;
    border: 1px solid transparent;
    padding: 30px;
    margin-bottom: 80px;
}

.moru-chalet-page .moru-description h2{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-weight: 700 !important;
    font-size: 22px !important;
    color: #AA2215 !important;
    margin: 0 0 16px !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

.moru-description__body,
.moru-description__body p{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 14px;
    color: #333333;
    line-height: 1.75;
}

.moru-description__body p{ margin: 0 0 12px; }
.moru-description__body p:last-child{ margin-bottom: 0; }

/* Services */
.moru-services{
    margin-bottom: 80px;
}

.moru-chalet-page .moru-services__title{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-weight: 700 !important;
    font-size: 32px !important;
    color: #202020 !important;
    margin: 0 0 24px !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

.moru-chalet-page .moru-services__subtitle{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    font-style: normal !important;
    color: #AA2215 !important;
    margin: 0 0 16px !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

.moru-services__group{ margin-bottom: 32px; }
.moru-services__group:last-child{ margin-bottom: 0; }

.moru-services__grid--inclus{
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
}
.moru-services__grid--payants{
    display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px;
}

.moru-service-card{
    display: flex; align-items: center; gap: 12px;
    padding: 16px 18px;
    min-height: 72px;
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 15px;
}

.moru-service-card__icon{
    width: 40px; height: 40px;
    border-radius: 10px;
    background: #F3F4F6;
    display: grid; place-items: center;
    flex: 0 0 40px;
}

.moru-service-card__icon svg{ width: 20px; height: 20px; color: #AA2215; }

.moru-service-card__label{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-weight: 700;
    font-size: 13px;
    color: #202020;
    line-height: 1.35;
}

/* Equipements (wrapper beige, cards blanches à l'intérieur) */
.moru-equipements-section{
    background: #F3EEEC;
    border-radius: 15px;
    padding: 40px 30px;
    margin-bottom: 80px;
}

.moru-equipements{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-top: 0;
}

.moru-equipement-card{
    display: flex; align-items: center; gap: 10px;
    padding: 12px 14px;
    min-height: 52px;
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
}

.moru-equipement-card__icon{
    width: 28px; height: 28px; border-radius: 8px;
    background: #F3F4F6;
    display: grid; place-items: center;
    flex: 0 0 28px;
}

.moru-equipement-card__icon svg{ width: 16px; height: 16px; color: #AA2215; }

.moru-equipement-card__label{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-weight: 700;
    font-size: 13px;
    color: #202020;
    line-height: 1.3;
}

/* FAQ */
.moru-faq{ margin-bottom: 80px; }

.moru-chalet-page .moru-faq__title{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-weight: 400 !important;
    font-size: 22px !important;
    letter-spacing: .1em !important;
    color: #AA2215 !important;
    text-transform: uppercase !important;
    margin: 0 0 18px !important;
}

.moru-faq__item{
    border-bottom: 1px solid #E5E7EB;
    padding: 16px 0;
}

.moru-faq__item summary{
    display: flex; justify-content: space-between; align-items: center; cursor: pointer;
    list-style: none;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-weight: 500;
    font-size: 14px;
    color: #202020;
    gap: 16px;
}
.moru-faq__item summary::-webkit-details-marker{ display: none; }

.moru-faq__item summary::after{
    content: '+';
    font-size: 20px;
    font-weight: 400;
    color: #6B7280;
    flex: 0 0 auto;
    line-height: 1;
}
.moru-faq__item[open] summary::after{ content: '−'; }

.moru-faq__item p{
    margin: 12px 0 0;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 13px;
    color: #6B7280;
    line-height: 1.7;
}

/* Related */
.moru-related{ margin-bottom: 40px; }

.moru-chalet-page .moru-related__title{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-weight: 700 !important;
    font-size: 32px !important;
    color: #202020 !important;
    margin: 0 0 24px !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

.moru-related__grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.moru-related-card{
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 15px;
    overflow: hidden;
    display: flex; flex-direction: column;
}

.moru-related-card__image{
    width: 100%;
    aspect-ratio: 410 / 220;
    background-color: #F3F4F6;
    background-size: cover; background-position: center;
}

.moru-related-card__body{ padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 6px; }

.moru-related-card__price{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 12px;
    color: #6B7280;
}

.moru-chalet-page .moru-related-card__name{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    color: #AA2215 !important;
    margin: 0 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    line-height: 1.3 !important;
}

.moru-related-card__atouts{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 12px;
    color: #6B7280;
}

.moru-related-card__cta,
a.moru-related-card__cta{
    align-self: flex-start !important;
    padding: 8px 16px !important;
    height: auto !important;
    font-size: 12px !important;
    border-radius: 10px !important;
    margin-top: 8px !important;
}

/* Search results */
.moru-search-results{
    padding: 50px 0 80px;
}

.moru-search-results__list{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 32px;
}

.moru-search-results__empty{
    margin-top: 24px;
    padding: 40px 30px;
    background: #F3EEEC;
    border: 1px solid #E5E7EB;
    border-radius: 15px;
    color: #4B5563;
    text-align: center;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 15px;
}
.moru-search-results__empty p{ margin: 0 0 6px; }
.moru-search-results__empty-suggest{
    color: #6B7280;
    font-size: 13px;
}

/* --- Hero (header) --- */
.moru-search-hero{
    display: flex;
    flex-direction: column;
    gap: 28px;
    background: #F3EEEC;
    border: 1px solid #E5E7EB;
    border-radius: 15px;
    padding: 36px 40px;
}
.moru-search-hero__inner{
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}
.moru-search-hero__kicker{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #AA2215;
}
.moru-chalet-page .moru-search-hero__title,
.moru-search-results .moru-search-hero__title{
    font-family: 'Georgia', 'Fraunces', serif !important;
    font-weight: 700 !important;
    font-size: 40px !important;
    line-height: 1.1 !important;
    color: #0A0A0A !important;
    margin: 0 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
.moru-search-hero__meta{
    margin: 6px 0 0 !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 15px;
    color: #4B5563;
}
.moru-search-hero__count{
    margin: 4px 0 0 !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 13px;
    color: #6B7280;
}
/* Barre de recherche integree dans le hero (override max-width + grilles) */
.moru-search-hero__bar{
    max-width: none !important;
    margin: 0 !important;
    width: 100%;
    padding: 18px 20px;
    box-shadow: 0 4px 14px rgba(0,0,0,.05);
    grid-template-columns: minmax(220px, 1.4fr) minmax(220px, 1.4fr) 110px 140px;
}
.moru-search-hero__bar.moru-search-hero__bar--with-pets{
    grid-template-columns: minmax(220px, 1.4fr) minmax(220px, 1.4fr) 100px 100px 140px;
}

/* --- Search card (résultats) --- */
.moru-search-card{
    background: #FFFFFF;
    border: 1px solid #E5E7EB;
    border-radius: 15px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .25s ease, box-shadow .25s ease;
}
.moru-search-card:hover{
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(17, 17, 17, .08);
}
.moru-search-card__media{
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    background-color: #F3F4F6;
    background-size: cover;
    background-position: center;
    overflow: hidden;
    text-decoration: none;
}
.moru-search-card__media-overlay{
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,.55) 100%);
    pointer-events: none;
}
.moru-search-card__name{
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 18px;
    color: #FFFFFF;
    font-family: 'Georgia', 'Fraunces', serif;
    font-weight: 700;
    font-size: 26px;
    line-height: 1.15;
    text-shadow: 0 2px 12px rgba(0,0,0,.35);
}
.moru-search-card__body{
    padding: 22px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex: 1 1 auto;
}
.moru-search-card__atouts{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 13px;
    color: #4B5563;
}
.moru-search-card__atouts li{
    position: relative;
    padding-left: 14px;
}
.moru-search-card__atouts li::before{
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #AA2215;
}
.moru-search-card__meta{
    display: flex;
    gap: 18px;
    padding-top: 12px;
    border-top: 1px solid #E5E7EB;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 13px;
    color: #4B5563;
}
.moru-search-card__meta strong{
    color: #0A0A0A;
    font-weight: 600;
    margin-right: 4px;
}
.moru-search-card__price-row{
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid #E5E7EB;
}
.moru-search-card__price{
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.moru-search-card__price-label{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #6B7280;
}
.moru-search-card__price-value{
    font-family: 'Georgia', 'Fraunces', serif;
    font-size: 22px;
    font-weight: 700;
    color: #AA2215;
    line-height: 1.1;
}
.moru-search-card__price-sub{
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 12px;
    color: #6B7280;
}
.moru-search-card__cta,
a.moru-search-card__cta{
    flex: 0 0 auto;
    padding: 11px 22px !important;
    height: auto !important;
    font-size: 13px !important;
    border-radius: 10px !important;
    margin-top: 0 !important;
    align-self: center !important;
    white-space: nowrap;
}

/* Responsive */
@media (max-width: 1024px){
    .moru-search-bar,
    .moru-search-hero__bar{ grid-template-columns: 1fr 1fr !important; }
    .moru-search-bar.moru-search-hero__bar--with-pets{ grid-template-columns: 1fr 1fr !important; }
    .moru-search-bar.moru-search-hero__bar--with-pets .moru-search-bar__submit{ grid-column: 1 / -1; }
    .moru-gallery{ grid-template-columns: 1fr; }
    .moru-gallery__main{ aspect-ratio: 16 / 10; }
    .moru-gallery__thumbs{ grid-auto-rows: 80px; }
    .moru-chalet-hero{ grid-template-columns: 1fr; gap: 32px; }
    .moru-reservation-box{ width: 100%; max-width: 100%; position: static; }
    .moru-services__grid--inclus{ grid-template-columns: repeat(2, 1fr); }
    .moru-services__grid--payants{ grid-template-columns: repeat(3, 1fr); }
    .moru-equipements{ grid-template-columns: repeat(3, 1fr); }
    .moru-related__grid{ grid-template-columns: repeat(2, 1fr); }
    .moru-search-results__list{ grid-template-columns: repeat(2, 1fr); }
    .moru-chalets-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .moru-info-cards{ grid-template-columns: 1fr; }
    /* Le name passe SOUS l'image dès 1024 pour eviter overflow sur tablet/portrait */
    .moru-chalet-card__media-wrap{ display: flex; flex-direction: column; gap: 10px; }
    .moru-chalet-card__name,
    a.moru-chalet-card__name{
        position: static !important;
        left: auto !important; right: auto !important; bottom: auto !important;
        z-index: auto !important;
        color: #0A0A0A !important;
        font-family: 'Fraunces', Georgia, serif !important;
        font-weight: 300 !important;
        font-size: 26px !important;
        line-height: 1.15 !important;
        letter-spacing: -.5px !important;
        margin: 0 !important;
        padding: 0 2px !important;
        text-shadow: none !important;
        word-break: break-word;
        display: block !important;
    }
    a.moru-chalet-card__name:hover{ color: #AA2215 !important; }
    .moru-chalet-page h1.moru-chalet-title{ font-size: 36px !important; }
    .moru-chalet-page h2.moru-section-title,
    .moru-chalet-page .moru-services__title,
    .moru-chalet-page .moru-related__title{ font-size: 28px !important; }
    .moru-chalet-page .moru-search-hero__title,
    .moru-search-results .moru-search-hero__title{ font-size: 32px !important; }
    .moru-search-hero{ padding: 28px 30px; }
    .moru-search-hero__bar,
    .moru-search-hero__bar.moru-search-hero__bar--with-pets{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px){
    .elementor-widget-moru-search-bar,
    .elementor-widget-moru-search-bar > .elementor-widget-container{ width: 100% !important; }
    .moru-search-bar{
        grid-template-columns: 1fr 1fr !important;
        padding: 14px 14px;
        gap: 10px 10px;
        border-radius: 12px;
    }
    .moru-search-bar.moru-search-hero__bar--with-pets .moru-search-bar__submit{ grid-column: 1 / -1; }
    .moru-search-bar__field label,
    .moru-search-bar__legend{
        font-size: 10px !important;
        margin-bottom: 4px !important;
        letter-spacing: .08em !important;
    }
    .moru-search-bar .moru-input,
    .moru-search-bar .moru-select,
    .moru-search-bar button.moru-datebox{
        height: 42px !important;
        font-size: 13px !important;
        padding: 6px 12px !important;
    }
    .moru-search-bar__submit,
    button.moru-search-bar__submit{
        height: 44px !important;
        font-size: 13px !important;
        letter-spacing: .04em !important;
    }
    .moru-services__grid--inclus{ grid-template-columns: repeat(2, 1fr); }
    .moru-services__grid--payants{ grid-template-columns: repeat(2, 1fr); }
    .moru-equipements{ grid-template-columns: repeat(2, 1fr); }
    .moru-related__grid{ grid-template-columns: 1fr; }
    .moru-search-results__list{ grid-template-columns: 1fr; }
    .moru-chalets-grid{ grid-template-columns: minmax(0, 1fr) !important; gap: 22px !important; }
    .moru-chalet-card{ gap: 12px; min-width: 0; max-width: 100%; }
    .moru-chalet-card__thumb{
        aspect-ratio: 16 / 10 !important;
        border-radius: 14px;
        max-width: 100%;
        overflow: hidden;
    }
    /* En mobile, sortir le nom de l'overlay : sous l'image au lieu d'absolute par-dessus.
       Le name est désormais hors du <a class="thumb"> via PHP (frère, dans .media-wrap). */
    .moru-chalet-card__media-wrap{ display: flex; flex-direction: column; gap: 10px; }
    .moru-chalet-card__name,
    a.moru-chalet-card__name{
        position: static !important;
        left: auto !important; right: auto !important; bottom: auto !important;
        z-index: auto !important;
        color: #0A0A0A !important;
        font-family: 'Fraunces', Georgia, serif !important;
        font-weight: 300 !important;
        font-size: 24px !important;
        line-height: 1.15 !important;
        letter-spacing: -.5px !important;
        margin: 0 !important;
        padding: 0 2px !important;
        text-shadow: none !important;
        word-break: break-word;
        display: block !important;
    }
    a.moru-chalet-card__name:hover{ color: #AA2215 !important; }
    .moru-chalet-card__badge{
        top: 12px !important;
        left: 12px !important;
        right: 12px !important;
        font-size: 10px !important;
        letter-spacing: .5px !important;
        padding: 4px 8px !important;
        background: rgba(0,0,0,.55);
        border-radius: 999px;
        max-width: calc(100% - 24px);
        width: max-content;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .moru-chalet-card__bullets{ gap: 5px; padding: 0 2px; }
    .moru-chalet-card__bullets li{ font-size: 11px; letter-spacing: 1.4px; }
    .moru-chalet-card__footer{
        flex-wrap: wrap;
        gap: 10px;
        padding: 0 2px;
        min-width: 0;
    }
    .moru-chalet-card__meta{
        font-size: 13px;
        gap: 12px;
        flex-wrap: wrap;
        min-width: 0;
    }
    .moru-chalet-card__footer .moru-btn-ghost{
        font-size: 13px !important;
        padding: 6px 0 !important;
        min-width: 0;
        max-width: 100%;
        flex: 1 1 auto;
        white-space: nowrap;
        text-align: right;
    }
    .moru-search-hero{ padding: 24px 22px; gap: 22px; }
    .moru-chalet-page .moru-search-hero__title,
    .moru-search-results .moru-search-hero__title{ font-size: 26px !important; }
    .moru-search-hero__bar,
    .moru-search-hero__bar.moru-search-hero__bar--with-pets{ grid-template-columns: 1fr 1fr; }
    .moru-search-card__name{ font-size: 22px; left: 18px; right: 18px; bottom: 14px; }
    .moru-search-card__price-row{ flex-direction: column; align-items: stretch; }
    .moru-search-card__cta{ align-self: stretch !important; text-align: center; }
    .moru-section{ padding: 40px 0; }
    .moru-description{ padding: 24px; margin-bottom: 56px; }
    .moru-equipements-section{ padding: 28px 20px; margin-bottom: 56px; }
    .moru-services{ margin-bottom: 56px; }
    .moru-faq{ margin-bottom: 56px; }
    .moru-chalet-hero{ margin-bottom: 56px; }
    .moru-chalet-page h1.moru-chalet-title{ font-size: 32px !important; }
    .moru-chalet-page .moru-chalet-slogan{ font-size: 14px !important; letter-spacing: .18em !important; }
    .moru-chalet-page h2.moru-section-title,
    .moru-chalet-page .moru-services__title,
    .moru-chalet-page .moru-related__title{ font-size: 24px !important; }
    .moru-gallery__thumbs{
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: 70px;
    }
    .moru-gallery__thumb:nth-child(n+4){ display: none; }
}

@media (max-width: 480px){
    .moru-services__grid--inclus,
    .moru-services__grid--payants,
    .moru-equipements{ grid-template-columns: 1fr; }
    .moru-chalet-page h1.moru-chalet-title{ font-size: 28px !important; }
}

/* Smooth anchor scroll */
html{ scroll-behavior: smooth; }
/* =====================================================================
   moru-chalets — single chalet polish pass (v3)
   Gallery: main on LEFT, vertical single-column thumbs on RIGHT.
   All selectors scoped to .moru-chalet-page to win cascade against the
   earlier gallery rules. Reveal animations only hide content when JS
   has added the .moru-js flag on <html>, so JS failure = visible content.
   ===================================================================== */

/* ---- Gallery layout ---- */
.moru-chalet-page .moru-gallery{
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 130px !important;
    gap: 18px !important;
    grid-auto-rows: auto !important;
    margin: 0 0 64px !important;
    position: relative;
}

.moru-chalet-page .moru-gallery__main{
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    background: #F3F4F6;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 18px 48px rgba(10,10,10,.08);
    min-height: 0;
}
.moru-chalet-page .moru-gallery__main-img{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity .5s cubic-bezier(.25,.7,.25,1), transform 6s ease-out;
    will-change: opacity, transform;
}
.moru-chalet-page .moru-gallery__main-img.is-visible{
    opacity: 1;
    transform: scale(1.02);
}

.moru-chalet-page .moru-gallery__side{
    position: relative;
    align-self: stretch;
    min-width: 0;
    min-height: 0;
}

.moru-chalet-page .moru-gallery__thumbs{
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    grid-auto-rows: auto !important;
    grid-template-columns: none !important;
    overflow-y: auto;
    overflow-x: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: y mandatory;
    padding: 2px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.moru-chalet-page .moru-gallery__thumbs::-webkit-scrollbar{
    width: 0; height: 0; display: none;
}

.moru-chalet-page .moru-gallery__thumb{
    flex: 0 0 auto !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    border-radius: 14px !important;
    background-color: #F3F4F6;
    background-size: cover;
    background-position: center;
    cursor: pointer;
    border: 2px solid transparent !important;
    padding: 0;
    scroll-snap-align: start;
    transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease, opacity .25s ease;
    opacity: .78;
    outline: none !important;
    display: block !important;
}
.moru-chalet-page .moru-gallery__thumb:hover{
    transform: translateY(-2px);
    opacity: 1;
    box-shadow: 0 8px 18px rgba(10,10,10,.09);
}
.moru-chalet-page .moru-gallery__thumb:focus-visible{
    outline: 2px solid #AA2215 !important;
    outline-offset: 2px;
}
.moru-chalet-page .moru-gallery__thumb.is-active{
    border-color: #AA2215 !important;
    opacity: 1;
    box-shadow: 0 6px 18px rgba(170,34,21,.18);
}

.moru-chalet-page .moru-gallery__nav{
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #FFFFFF;
    border: 1px solid rgba(0,0,0,.06);
    cursor: pointer;
    z-index: 2;
    border-radius: 50%;
    box-shadow: 0 6px 18px rgba(10,10,10,.10);
    transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
    padding: 0;
}
.moru-chalet-page .moru-gallery__nav:hover{
    box-shadow: 0 10px 22px rgba(10,10,10,.14);
    transform: translateX(-50%) scale(1.05);
}
.moru-chalet-page .moru-gallery__nav--up{ top: -6px; }
.moru-chalet-page .moru-gallery__nav--down{ bottom: -6px; }
.moru-chalet-page .moru-gallery__nav[hidden]{ display: none !important; }
.moru-chalet-page .moru-gallery__nav svg{
    width: 18px; height: 18px; color: #AA2215; stroke-width: 2.4;
}

/* ---- Scroll-reveal — only active when JS set html.moru-js ---- */
html.moru-js .moru-reveal{
    opacity: 0;
    transform: translateY(22px);
    transition:
        opacity .75s cubic-bezier(.2,.7,.2,1),
        transform .75s cubic-bezier(.2,.7,.2,1);
    will-change: opacity, transform;
}
html.moru-js .moru-reveal.is-in{
    opacity: 1;
    transform: none;
}

html.moru-js .moru-reveal-grid > *{
    opacity: 0;
    transform: translateY(14px);
    will-change: opacity, transform;
}
html.moru-js .moru-reveal-grid.is-in > *{
    animation: moru-rise-in .7s cubic-bezier(.2,.7,.2,1) both;
    animation-delay: calc(var(--moru-i, 0) * 70ms);
}
@keyframes moru-rise-in{
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce){
    html.moru-js .moru-reveal,
    html.moru-js .moru-reveal.is-in,
    html.moru-js .moru-reveal-grid > *,
    html.moru-js .moru-reveal-grid.is-in > *,
    .moru-chalet-page .moru-gallery__main-img,
    .moru-chalet-page .moru-gallery__main-img.is-visible{
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }
}

/* ---- Smooth hover + radius harmonisation on cards ---- */
.moru-chalet-page .moru-info-card{
    border-radius: 16px;
    transition: transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s ease, background .25s ease;
}
.moru-chalet-page .moru-info-card:hover{
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(10,10,10,.08);
}
.moru-chalet-page .moru-info-card__icon{
    border-radius: 12px;
    transition: transform .3s ease, background .25s ease;
}
.moru-chalet-page .moru-info-card:hover .moru-info-card__icon{
    transform: scale(1.08) rotate(-3deg);
}

.moru-chalet-page .moru-service-card{
    border-radius: 16px;
    transition: transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s ease, background .25s ease;
}
.moru-chalet-page .moru-service-card:hover{
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(10,10,10,.08);
}
.moru-chalet-page .moru-service-card__icon{
    border-radius: 12px;
    transition: transform .3s ease, background .25s ease;
}
.moru-chalet-page .moru-service-card:hover .moru-service-card__icon{
    transform: scale(1.08) rotate(-3deg);
}

.moru-chalet-page .moru-equipement-card{
    border-radius: 16px;
    transition: transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s ease, background .25s ease;
}
.moru-chalet-page .moru-equipement-card:hover{
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(10,10,10,.08);
}
.moru-chalet-page .moru-equipement-card__icon{
    border-radius: 10px;
    transition: transform .3s ease, background .25s ease;
}
.moru-chalet-page .moru-equipement-card:hover .moru-equipement-card__icon{
    transform: scale(1.08) rotate(-3deg);
}

.moru-chalet-page .moru-reservation-box{
    transition: box-shadow .3s ease, transform .3s ease;
}

/* ---- Responsive : gallery stacks, thumbs scroll horizontally ---- */
@media (max-width: 900px){
    .moru-chalet-page .moru-gallery{
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
    .moru-chalet-page .moru-gallery__main{
        aspect-ratio: 4 / 3;
        border-radius: 18px;
    }
    .moru-chalet-page .moru-gallery__side{
        min-height: 0;
        max-height: none;
        height: auto;
        position: static;
    }
    .moru-chalet-page .moru-gallery__thumbs{
        position: static !important;
        inset: auto !important;
        flex-direction: row !important;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        padding: 2px 2px 6px;
    }
    .moru-chalet-page .moru-gallery__thumb{
        flex: 0 0 auto !important;
        width: 110px !important;
        aspect-ratio: 4 / 3 !important;
    }
    .moru-chalet-page .moru-gallery__thumb:nth-child(n+4){ display: block !important; }
    .moru-chalet-page .moru-gallery__nav{ display: none !important; }
}
