/* ============================================================
   MA NORMANDIE EST SERVIE - Brand overlay (Framer-style luxe)
   Palette : or vieilli + creme parchemin + charbon profond
   ============================================================ */

/* --- Fonts --- */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;0,9..144,800;1,9..144,400;1,9..144,500&family=Inter:wght@300;400;500;600;700&display=swap');

:root {
    /* --- Couleurs Ma Normandie --- */
    --color-primary: #B8935A;            /* or vieilli - CTA, liens */
    --color-primary-rgb: 184, 147, 90;
    --color-primary-dark: #8C6F40;
    --color-primary-light: rgba(184, 147, 90, .10);
    --color-secondary: #1E241F;          /* charbon / vert tres sombre */
    --color-secondary-rgb: 30, 36, 31;
    --color-accent: #D4B07A;             /* or clair doux */
    --color-accent-rgb: 212, 176, 122;
    --color-tertiary: #5C6B54;           /* vert sauge normand */
    --color-tertiary-rgb: 92, 107, 84;
    --color-tertiary-dark: #3F4B3A;
    --color-text: #1E241F;
    --color-text-light: #4D5048;
    --color-text-muted: #6F6F67;
    --color-bg: #FBF8F1;                  /* creme parchemin */
    --color-bg-alt: #F3ECDC;             /* sable clair */
    --color-bg-dark: #1E241F;
    --color-border: #E3D9C4;
    --color-highlight: #D4B07A;
    --color-dark: #121512;
    --color-dark-rgb: 18, 21, 18;

    /* --- Degrades --- */
    --gradient-brand: linear-gradient(135deg, #B8935A 0%, #D4B07A 100%);
    --gradient-brand-reverse: linear-gradient(135deg, #D4B07A 0%, #B8935A 100%);
    --gradient-brand-warm: linear-gradient(135deg, #8C6F40 0%, #D4B07A 100%);
    --gradient-brand-cool: linear-gradient(135deg, #5C6B54 0%, #B8935A 100%);
    --gradient-brand-soft: linear-gradient(135deg, rgba(184,147,90,.08) 0%, rgba(212,176,122,.06) 50%, rgba(92,107,84,.08) 100%);
    --gradient-brand-vivid: linear-gradient(120deg, #8C6F40 0%, #B8935A 45%, #D4B07A 100%);
    --gradient-text: linear-gradient(90deg, #8C6F40 0%, #B8935A 50%, #D4B07A 100%);
    --gradient-hero-overlay: linear-gradient(180deg, rgba(30,36,31,.25) 0%, rgba(30,36,31,.55) 55%, rgba(30,36,31,.80) 100%);
    --gradient-hero-overlay-strong: linear-gradient(180deg, rgba(30,36,31,.40) 0%, rgba(30,36,31,.70) 55%, rgba(30,36,31,.90) 100%);
    --gradient-mesh: radial-gradient(at 40% 20%, rgba(184,147,90,.15) 0px, transparent 55%), radial-gradient(at 82% 0%, rgba(212,176,122,.12) 0px, transparent 50%), radial-gradient(at 10% 70%, rgba(92,107,84,.10) 0px, transparent 55%);
    --gradient-mesh-hero: radial-gradient(at 20% 25%, rgba(184,147,90,.30) 0px, transparent 50%), radial-gradient(at 85% 15%, rgba(212,176,122,.25) 0px, transparent 55%), radial-gradient(at 50% 85%, rgba(92,107,84,.28) 0px, transparent 55%);
    --gradient-blob: conic-gradient(from 140deg at 50% 50%, #B8935A 0%, #D4B07A 35%, #5C6B54 70%, #B8935A 100%);

    /* --- Typo --- */
    --font-heading: 'Fraunces', 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}

/* --- Body base --- */
body {
    font-family: var(--font-body);
    color: var(--color-text);
    background: var(--color-bg);
    font-weight: 400;
    letter-spacing: -0.005em;
}

/* --- Titres Fraunces --- */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 500;
    font-variation-settings: "opsz" 96, "wght" 500;
    letter-spacing: -0.015em;
    color: var(--color-secondary);
}
h1 { font-weight: 500; letter-spacing: -0.025em; }
h2 { font-weight: 500; }

/* --- Header / logo --- */
#site-header { background: rgba(251, 248, 241, 0.92); backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid rgba(184,147,90,.18); }
#site-header .custom-logo { max-height: 88px; width: auto; }
.nav-menu li a { color: var(--color-secondary); font-size: 14.5px; font-weight: 500; }
.nav-menu li a:hover, .nav-menu li.current-menu-item > a { color: var(--color-primary-dark); background: transparent; }
.nav-menu li a::after { background: var(--color-primary); }
.nav-phone { color: var(--color-secondary); font-weight: 500; }
.btn-primary { background: var(--color-primary); color: #fff; border-color: var(--color-primary); font-family: var(--font-body); font-weight: 500; letter-spacing: 0.01em; }
.btn-primary:hover { background: var(--color-primary-dark); border-color: var(--color-primary-dark); }
.btn-outline { color: var(--color-secondary); border-color: var(--color-secondary); background: transparent; }
.btn-outline:hover { background: var(--color-secondary); color: var(--color-bg); }

/* ============================================================
   MN HOMEPAGE - Sections dediees
   ============================================================ */

/* --- Hero --- */
.mn-hero { position: relative; min-height: 92vh; display: flex; align-items: flex-end; overflow: visible; padding: 0; color: #fff; isolation: isolate; }
.mn-hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.mn-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.mn-hero__carousel .mn-hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.8s ease-in-out; transform: scale(1.04); }
.mn-hero__carousel .mn-hero__slide.is-active { opacity: 1; animation: mnHeroZoom 10s ease-out forwards; }
@keyframes mnHeroZoom { 0% { transform: scale(1.04); } 100% { transform: scale(1.09); } }
.mn-hero__carousel .mn-hero__slide img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.mn-hero::before { content: ''; position: absolute; inset: 0; background: var(--gradient-hero-overlay); z-index: -1; pointer-events: none; }
.mn-hero__inner { max-width: var(--max-width-wide); margin: 0 auto; width: 100%; padding: 0 40px 96px; display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: end; }
.mn-hero__eyebrow { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-body); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255,255,255,.82); margin-bottom: 24px; }
.mn-hero__eyebrow::before { content: ''; width: 40px; height: 1px; background: rgba(212,176,122,.8); }
.mn-hero__title { font-family: var(--font-heading); font-size: clamp(2.4rem, 5.5vw, 5rem); font-weight: 400; line-height: 1.02; letter-spacing: -0.03em; color: #fff; max-width: 18ch; margin-bottom: 28px; font-variation-settings: "opsz" 144, "wght" 400; }
.mn-hero__title em { font-style: italic; color: var(--color-accent); font-weight: 400; }
.mn-hero__sub { max-width: 52ch; font-size: 17px; line-height: 1.55; color: rgba(255,255,255,.88); margin-bottom: 40px; }
.mn-hero__cta { display: flex; gap: 14px; flex-wrap: wrap; }
.mn-hero__cta .btn { padding: 16px 32px; font-size: 15px; border-radius: 999px; }
.mn-hero__cta .btn-primary { background: var(--color-bg); color: var(--color-secondary); border-color: var(--color-bg); }
.mn-hero__cta .btn-primary:hover { background: var(--color-accent); color: var(--color-secondary); border-color: var(--color-accent); }
.mn-hero__cta .btn-outline { color: #fff; border-color: rgba(255,255,255,.5); background: transparent; }
.mn-hero__cta .btn-outline:hover { background: rgba(255,255,255,.12); border-color: #fff; }
.mn-hero__meta { text-align: right; font-family: var(--font-body); font-size: 13px; color: rgba(255,255,255,.78); align-self: end; padding-bottom: 6px; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.mn-hero__meta strong { display: block; color: #fff; font-size: 15px; font-weight: 500; margin-top: 4px; letter-spacing: 0.02em; }
.mn-hero__meta-logo { display: block; width: 110px; height: auto; margin-bottom: 8px; background: rgba(251, 248, 241, 0.94); border-radius: 50%; padding: 8px; box-shadow: 0 12px 32px -10px rgba(0, 0, 0, 0.45); }
.mn-hero__scroll { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,.7); font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase; animation: mnFloat 2.4s ease-in-out infinite; }
@keyframes mnFloat { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(6px); } }

/* --- Signature tagline --- */
.mn-signature { text-align: center; padding: 120px 24px 80px; background: var(--color-bg); position: relative; }
.mn-signature__eyebrow { display: block; font-family: var(--font-body); font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--color-primary-dark); margin-bottom: 24px; }
.mn-signature__title { font-family: var(--font-heading); font-style: italic; font-weight: 400; font-size: clamp(2.2rem, 4.8vw, 4rem); line-height: 1.08; letter-spacing: -0.015em; color: var(--color-secondary); max-width: 22ch; margin: 0 auto 32px; font-variation-settings: "opsz" 144, "wght" 400; }
.mn-signature__divider { display: flex; justify-content: center; align-items: center; gap: 14px; margin: 0 auto 40px; }
.mn-signature__divider span { width: 42px; height: 1px; background: var(--color-primary); opacity: .6; }
.mn-signature__divider i { color: var(--color-primary); font-size: 14px; }
.mn-signature__text { max-width: 64ch; margin: 0 auto 16px; font-size: 17px; line-height: 1.7; color: var(--color-text-light); }
.mn-signature__text + .mn-signature__text { margin-top: 8px; }
.mn-signature__cta { display: inline-flex; gap: 14px; margin-top: 32px; }

/* --- Categories trio --- */
.mn-categories { padding: 80px 24px 120px; background: var(--color-bg); }
.mn-categories__grid { max-width: var(--max-width-wide); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.mn-category { position: relative; display: block; overflow: hidden; border-radius: 22px; aspect-ratio: 3/4; text-decoration: none; color: #fff; isolation: isolate; transition: transform .5s var(--ease-premium, cubic-bezier(.22,1,.36,1)), box-shadow .5s; }
.mn-category__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease-premium, cubic-bezier(.22,1,.36,1)); z-index: -2; }
.mn-category::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,21,18,0) 40%, rgba(18,21,18,.85) 100%); z-index: -1; }
.mn-category__label { position: absolute; top: 24px; left: 24px; font-family: var(--font-body); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; background: rgba(251,248,241,.22); backdrop-filter: blur(12px); padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.25); }
.mn-category__body { position: absolute; left: 28px; right: 28px; bottom: 28px; }
.mn-category__title { font-family: var(--font-heading); font-size: clamp(1.6rem, 2.6vw, 2.4rem); font-weight: 400; letter-spacing: -0.02em; color: #fff; margin: 0 0 10px; font-variation-settings: "opsz" 96, "wght" 400; }
.mn-category__text { font-size: 14.5px; line-height: 1.5; color: rgba(255,255,255,.82); margin-bottom: 18px; max-width: 32ch; }
.mn-category__arrow { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--color-accent); font-weight: 500; letter-spacing: 0.02em; }
.mn-category__arrow::after { content: '→'; transition: transform .3s; }
.mn-category:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -20px rgba(18,21,18,.45); }
.mn-category:hover .mn-category__img { transform: scale(1.08); }
.mn-category:hover .mn-category__arrow::after { transform: translateX(6px); }

/* --- Owner block (gestion) --- */
.mn-owner { padding: 120px 24px; background: var(--color-bg-dark); color: var(--color-bg); position: relative; overflow: hidden; }
.mn-owner::before { content: ''; position: absolute; inset: 0; background: var(--gradient-mesh); opacity: .5; pointer-events: none; }
.mn-owner__inner { position: relative; max-width: var(--max-width-wide); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.mn-owner__visual { position: relative; overflow: hidden; aspect-ratio: 1/1.1; border-top-left-radius: 50% 35%; border-top-right-radius: 50% 35%; border-bottom-left-radius: 16px; border-bottom-right-radius: 16px; box-shadow: 0 30px 60px -20px rgba(0,0,0,.45); }
.mn-owner__visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 50%; }
.mn-owner__badge { position: absolute; bottom: 24px; right: 24px; background: var(--color-bg); color: var(--color-secondary); padding: 20px 24px; border-radius: 16px; font-family: var(--font-body); text-align: left; box-shadow: 0 20px 40px rgba(0,0,0,.25); }
.mn-owner__badge strong { display: block; font-family: var(--font-heading); font-size: 28px; font-weight: 500; color: var(--color-primary-dark); line-height: 1; }
.mn-owner__badge span { display: block; font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--color-text-muted); margin-top: 6px; }
.mn-owner__content h2 { color: #fff; font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 400; line-height: 1.08; letter-spacing: -0.025em; margin-bottom: 24px; font-variation-settings: "opsz" 144, "wght" 400; }
.mn-owner__content h2 em { font-style: italic; color: var(--color-accent); }
.mn-owner__content p { color: rgba(251,248,241,.78); font-size: 16.5px; line-height: 1.65; margin-bottom: 28px; }
.mn-owner__list { list-style: none; padding: 0; margin: 0 0 36px; display: grid; gap: 14px; }
.mn-owner__list li { display: flex; align-items: flex-start; gap: 14px; font-size: 15px; color: rgba(251,248,241,.88); line-height: 1.5; padding: 18px; border: 1px solid rgba(212,176,122,.2); border-radius: 12px; background: rgba(251,248,241,.03); }
.mn-owner__list li::before { content: ''; flex-shrink: 0; margin-top: 4px; width: 18px; height: 18px; border-radius: 999px; background: var(--color-primary); position: relative; box-shadow: 0 0 0 6px rgba(184,147,90,.18); }
.mn-owner__list strong { display: block; color: #fff; font-weight: 500; margin-bottom: 4px; }
.mn-owner__cta { display: inline-flex; gap: 12px; }

/* --- Values trio --- */
.mn-values { padding: 120px 24px; background: var(--color-bg); }
.mn-values__head { max-width: 68ch; margin: 0 auto 64px; text-align: center; }
.mn-values__head .mn-signature__eyebrow { color: var(--color-primary-dark); }
.mn-values__head h2 { font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 400; letter-spacing: -0.025em; line-height: 1.08; margin-bottom: 20px; font-variation-settings: "opsz" 144, "wght" 400; }
.mn-values__head h2 em { font-style: italic; color: var(--color-primary-dark); }
.mn-values__head p { font-size: 17px; line-height: 1.65; color: var(--color-text-light); }
.mn-values__grid { max-width: var(--max-width-wide); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.mn-value { position: relative; border-radius: 22px; overflow: hidden; aspect-ratio: 3/4; isolation: isolate; }
.mn-value__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1s var(--ease-premium, cubic-bezier(.22,1,.36,1)); }
.mn-value::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,21,18,0) 30%, rgba(18,21,18,.9) 100%); z-index: -1; }
.mn-value__content { position: absolute; left: 28px; right: 28px; bottom: 28px; color: #fff; }
.mn-value__num { display: inline-block; font-family: var(--font-heading); font-style: italic; font-size: 14px; font-weight: 400; letter-spacing: 0.15em; color: var(--color-accent); margin-bottom: 12px; }
.mn-value__title { font-family: var(--font-heading); font-size: clamp(1.5rem, 2.4vw, 2.1rem); font-weight: 400; color: #fff; margin-bottom: 8px; font-variation-settings: "opsz" 96, "wght" 400; }
.mn-value__text { font-size: 14.5px; line-height: 1.55; color: rgba(255,255,255,.82); max-width: 32ch; }
.mn-value:hover .mn-value__img { transform: scale(1.06); }

/* --- Demeures carousel --- */
.mn-demeures { padding: 120px 0; background: var(--color-bg-alt); position: relative; overflow: hidden; }
.mn-demeures__head { max-width: var(--max-width-wide); margin: 0 auto 56px; padding: 0 40px; display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 24px; }
.mn-demeures__head > div:first-child { max-width: 56ch; }
.mn-demeures__eyebrow { display: block; font-family: var(--font-body); font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--color-primary-dark); margin-bottom: 16px; }
.mn-demeures__title { font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 400; line-height: 1.08; letter-spacing: -0.025em; color: var(--color-secondary); font-variation-settings: "opsz" 144, "wght" 400; }
.mn-demeures__title em { font-style: italic; color: var(--color-primary-dark); }
.mn-demeures__grid { max-width: var(--max-width-wide); margin: 0 auto; padding: 0 40px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.mn-demeures.mn-demeures--three .mn-demeures__grid { grid-template-columns: repeat(3, 1fr); gap: 32px; max-width: 1240px; }
.mn-demeure { position: relative; display: block; text-decoration: none; color: inherit; border-radius: 20px; overflow: hidden; background: var(--color-bg); transition: transform .5s var(--ease-premium, cubic-bezier(.22,1,.36,1)), box-shadow .5s; }
.mn-demeure__media { position: relative; aspect-ratio: 4/5; overflow: hidden; background: var(--color-bg-alt); }
.mn-demeure__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease-premium, cubic-bezier(.22,1,.36,1)); }
.mn-demeure__tag { position: absolute; top: 16px; left: 16px; background: rgba(251,248,241,.92); backdrop-filter: blur(8px); padding: 6px 12px; border-radius: 999px; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-secondary); font-weight: 500; }
.mn-demeure__body { padding: 24px 24px 26px; }
.mn-demeure__location { display: flex; align-items: center; gap: 8px; font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: 10px; }
.mn-demeure__location::before { content: ''; width: 14px; height: 1px; background: var(--color-primary); }
.mn-demeure__name { font-family: var(--font-heading); font-size: 20px; font-weight: 500; color: var(--color-secondary); margin-bottom: 14px; line-height: 1.2; font-variation-settings: "opsz" 96, "wght" 500; }
.mn-demeure__specs { display: flex; gap: 14px; font-size: 13px; color: var(--color-text-light); margin-bottom: 16px; flex-wrap: wrap; }
.mn-demeure__specs span { display: inline-flex; align-items: center; gap: 6px; }
.mn-demeure__specs i { color: var(--color-primary); }
.mn-demeure__footer { display: flex; justify-content: space-between; align-items: center; padding-top: 16px; border-top: 1px solid var(--color-border); }
.mn-demeure__price { font-family: var(--font-heading); font-size: 18px; font-weight: 500; color: var(--color-secondary); font-variation-settings: "opsz" 96, "wght" 500; }
.mn-demeure__price span { font-family: var(--font-body); font-size: 11px; font-weight: 400; color: var(--color-text-muted); margin-right: 4px; letter-spacing: 0.1em; text-transform: uppercase; }
.mn-demeure__arrow { width: 36px; height: 36px; border-radius: 999px; background: var(--color-primary-light); color: var(--color-primary-dark); display: inline-flex; align-items: center; justify-content: center; font-size: 14px; transition: all .3s; }
.mn-demeure:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -20px rgba(92,107,84,.25); }
.mn-demeure:hover .mn-demeure__media img { transform: scale(1.06); }
.mn-demeure:hover .mn-demeure__arrow { background: var(--color-primary); color: #fff; }
.mn-demeures__more { max-width: var(--max-width-wide); margin: 60px auto 0; padding: 0 40px; text-align: center; }

/* --- Why us (pillars) --- */
.mn-why { padding: 120px 24px; background: var(--color-bg); }
.mn-why__inner { max-width: var(--max-width-wide); margin: 0 auto; display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: center; }
.mn-why__content { max-width: 60ch; }
.mn-why__eyebrow { font-family: var(--font-body); font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--color-primary-dark); display: block; margin-bottom: 16px; }
.mn-why__title { font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 400; line-height: 1.08; letter-spacing: -0.025em; color: var(--color-secondary); margin-bottom: 24px; font-variation-settings: "opsz" 144, "wght" 400; }
.mn-why__title em { font-style: italic; color: var(--color-primary-dark); }
.mn-why__text { font-size: 17px; line-height: 1.65; color: var(--color-text-light); margin-bottom: 20px; }
.mn-why__pillars { display: grid; gap: 14px; }
.mn-pillar { display: flex; gap: 18px; padding: 22px; border-radius: 16px; background: var(--color-bg-alt); border: 1px solid var(--color-border); }
.mn-pillar__icon { flex-shrink: 0; width: 44px; height: 44px; border-radius: 12px; background: var(--color-bg); color: var(--color-primary-dark); display: inline-flex; align-items: center; justify-content: center; font-size: 16px; box-shadow: 0 4px 12px rgba(184,147,90,.15); }
.mn-pillar__title { font-family: var(--font-heading); font-size: 17px; font-weight: 500; color: var(--color-secondary); margin-bottom: 6px; font-variation-settings: "opsz" 96, "wght" 500; }
.mn-pillar__text { font-size: 14.5px; line-height: 1.55; color: var(--color-text-light); }

/* --- Testimonials --- */
.mn-testi { padding: 120px 24px; background: var(--color-bg-alt); position: relative; overflow: hidden; }
.mn-testi__head { text-align: center; max-width: 56ch; margin: 0 auto 72px; }
.mn-testi__eyebrow { font-family: var(--font-body); font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--color-primary-dark); display: block; margin-bottom: 16px; }
.mn-testi__title { font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 400; line-height: 1.08; letter-spacing: -0.025em; color: var(--color-secondary); margin-bottom: 12px; font-variation-settings: "opsz" 144, "wght" 400; }
.mn-testi__title em { font-style: italic; color: var(--color-primary-dark); }
.mn-testi__rating { display: inline-flex; align-items: center; gap: 10px; padding: 8px 18px; background: var(--color-bg); border: 1px solid var(--color-border); border-radius: 999px; font-size: 13px; color: var(--color-text-light); margin-top: 20px; }
.mn-testi__rating strong { color: var(--color-secondary); font-weight: 600; }
.mn-testi__stars { color: var(--color-primary); letter-spacing: 1px; }
.mn-testi__grid { max-width: var(--max-width-wide); margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.mn-testi-card { padding: 32px 30px; background: var(--color-bg); border-radius: 20px; border: 1px solid var(--color-border); display: flex; flex-direction: column; gap: 18px; transition: transform .4s var(--ease-premium, cubic-bezier(.22,1,.36,1)), box-shadow .4s; }
.mn-testi-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -10px rgba(92,107,84,.15); }
.mn-testi-card__stars { color: var(--color-primary); font-size: 15px; letter-spacing: 2px; }
.mn-testi-card__quote { font-family: var(--font-heading); font-style: italic; font-size: 17px; line-height: 1.55; color: var(--color-secondary); font-variation-settings: "opsz" 96, "wght" 400; flex-grow: 1; }
.mn-testi-card__author { display: flex; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid var(--color-border); }
.mn-testi-card__avatar { width: 42px; height: 42px; border-radius: 999px; background: var(--color-primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-heading); font-weight: 500; font-size: 16px; font-variation-settings: "opsz" 96, "wght" 500; }
.mn-testi-card__name { font-family: var(--font-body); font-weight: 500; color: var(--color-secondary); font-size: 14.5px; }
.mn-testi-card__src { font-size: 12px; color: var(--color-text-muted); letter-spacing: 0.05em; }

/* --- CTA final --- */
.mn-cta { padding: 140px 24px; background: var(--color-bg-dark); color: #fff; text-align: center; position: relative; overflow: hidden; }
.mn-cta::before { content: ''; position: absolute; inset: 0; background: var(--gradient-mesh); opacity: .6; pointer-events: none; }
.mn-cta__inner { position: relative; max-width: 66ch; margin: 0 auto; }
.mn-cta__eyebrow { font-family: var(--font-body); font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--color-accent); display: block; margin-bottom: 24px; }
.mn-cta__title { font-family: var(--font-heading); font-size: clamp(2.4rem, 5vw, 4.6rem); font-weight: 400; line-height: 1.04; letter-spacing: -0.03em; color: #fff; margin-bottom: 28px; font-variation-settings: "opsz" 144, "wght" 400; }
.mn-cta__title em { font-style: italic; color: var(--color-accent); }
.mn-cta__text { font-size: 17px; line-height: 1.6; color: rgba(251,248,241,.78); margin-bottom: 40px; }
.mn-cta__actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.mn-cta__actions .btn-primary { background: var(--color-accent); color: var(--color-secondary); border-color: var(--color-accent); padding: 16px 32px; font-size: 15px; border-radius: 999px; }
.mn-cta__actions .btn-primary:hover { background: #fff; border-color: #fff; color: var(--color-secondary); }
.mn-cta__actions .btn-outline { color: #fff; border-color: rgba(255,255,255,.4); background: transparent; padding: 16px 32px; font-size: 15px; border-radius: 999px; }
.mn-cta__actions .btn-outline:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.mn-cta__contacts { display: flex; gap: 32px; justify-content: center; flex-wrap: wrap; margin-top: 48px; font-size: 14px; color: rgba(251,248,241,.65); }
.mn-cta__contacts a { color: rgba(251,248,241,.88); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; transition: color .3s; }
.mn-cta__contacts a:hover { color: var(--color-accent); }
.mn-cta__contacts i { color: var(--color-accent); }

/* --- Footer overrides --- */
#site-footer { background: var(--color-bg-dark); color: rgba(251,248,241,.72); padding: 80px 24px 32px; }
.footer-container { max-width: var(--max-width-wide); margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 48px; }
#site-footer .footer-brand .custom-logo, #site-footer .footer-custom-logo { filter: brightness(0) invert(1); max-height: 48px; width: auto; margin-bottom: 18px; }
#site-footer h3 { color: #fff; font-family: var(--font-heading); font-size: 15px; font-weight: 500; letter-spacing: 0.04em; margin-bottom: 20px; font-variation-settings: "opsz" 96, "wght" 500; }
#site-footer a { color: rgba(251,248,241,.72); font-size: 14px; transition: color .3s; }
#site-footer a:hover { color: var(--color-accent); }
#site-footer .footer-menu { list-style: none; padding: 0; display: grid; gap: 10px; }
#site-footer .footer-social { display: flex; gap: 12px; margin-top: 20px; }
#site-footer .footer-social a { width: 38px; height: 38px; border-radius: 999px; background: rgba(251,248,241,.08); display: inline-flex; align-items: center; justify-content: center; color: rgba(251,248,241,.82); }
#site-footer .footer-social a:hover { background: var(--color-primary); color: #fff; }
#site-footer .footer-contact a { display: block; margin-bottom: 8px; }
#site-footer .footer-description { font-size: 14px; line-height: 1.6; color: rgba(251,248,241,.62); max-width: 44ch; }
#site-footer .footer-bottom { max-width: var(--max-width-wide); margin: 56px auto 0; padding-top: 28px; border-top: 1px solid rgba(251,248,241,.08); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; color: rgba(251,248,241,.45); }
#site-footer .footer-bottom a { color: var(--color-accent); }

/* --- Animations reveal --- */
.mn-reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--ease-premium, cubic-bezier(.22,1,.36,1)), transform .9s var(--ease-premium, cubic-bezier(.22,1,.36,1)); }
.mn-reveal.is-in { opacity: 1; transform: translateY(0); }

/* ============================================================
   PAGES INTERIEURES - Framer style
   ============================================================ */

/* Page hero */
.mn-page-hero { position: relative; padding: 160px 24px 120px; min-height: 560px; display: flex; align-items: flex-end; color: #fff; overflow: visible; }
.mn-page-hero__media { overflow: hidden; }
.mn-page-hero::before { content: ''; position: absolute; inset: 0; background: var(--gradient-hero-overlay-strong); z-index: 1; }
.mn-page-hero__media { position: absolute; inset: 0; z-index: 0; }
.mn-page-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.mn-page-hero__inner { position: relative; z-index: 2; max-width: 1180px; margin: 0 auto; width: 100%; }
.mn-page-hero__eyebrow { display: inline-block; font-size: 12px; font-weight: 500; letter-spacing: .30em; text-transform: uppercase; color: var(--color-accent); padding: 6px 14px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; margin-bottom: 28px; backdrop-filter: blur(8px); background: rgba(30,36,31,.18); }
.mn-page-hero__title { font-family: var(--font-heading); font-size: clamp(44px, 6.4vw, 84px); font-weight: 400; line-height: 1.02; letter-spacing: -.03em; max-width: 22ch; margin: 0 0 24px; color: #fff; }
.mn-page-hero__title em { font-style: italic; font-weight: 400; color: var(--color-accent); }
.mn-page-hero__sub { font-size: 19px; line-height: 1.6; max-width: 58ch; color: rgba(251,248,241,.88); margin: 0; }

/* Lede / intro text block */
.mn-lede { padding: 96px 24px 0; max-width: 920px; margin: 0 auto; text-align: center; }
.mn-lede__eyebrow { display: inline-block; font-size: 12px; letter-spacing: .28em; text-transform: uppercase; color: var(--color-primary-dark); font-weight: 500; margin-bottom: 20px; }
.mn-lede__title { font-family: var(--font-heading); font-size: clamp(32px, 4.4vw, 56px); font-weight: 400; line-height: 1.08; letter-spacing: -.02em; margin: 0 0 28px; text-wrap: balance; }
.mn-lede__title em { font-style: italic; color: var(--color-primary); }
.mn-lede__text { font-size: 18px; line-height: 1.75; color: var(--color-text-light); margin: 0 auto 16px; max-width: 64ch; text-wrap: pretty; }
.mn-lede__text strong { color: var(--color-secondary); font-weight: 600; }

/* Two column featurette (image + text) */
.mn-featurette { padding: 96px 24px; max-width: 1240px; margin: 0 auto; }
.mn-featurette__inner { display: grid; grid-template-columns: 1.05fr 1fr; gap: 80px; align-items: center; }
.mn-featurette.is-reverse .mn-featurette__inner { grid-template-columns: 1fr 1.05fr; }
.mn-featurette.is-reverse .mn-featurette__media { order: 2; }
.mn-featurette__media { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 5/6; box-shadow: 0 30px 60px -20px rgba(30,36,31,.30); }
.mn-featurette__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mn-featurette__eyebrow { display: inline-block; font-size: 12px; letter-spacing: .28em; text-transform: uppercase; color: var(--color-primary-dark); font-weight: 500; margin-bottom: 16px; }
.mn-featurette__title { font-family: var(--font-heading); font-size: clamp(28px, 3.6vw, 44px); font-weight: 400; line-height: 1.1; letter-spacing: -.02em; margin: 0 0 24px; }
.mn-featurette__title em { font-style: italic; color: var(--color-primary); }
.mn-featurette__text { font-size: 17px; line-height: 1.75; color: var(--color-text-light); margin: 0 0 16px; }
.mn-featurette__text strong { color: var(--color-secondary); font-weight: 600; }
.mn-featurette__cta { margin-top: 32px; display: flex; gap: 12px; flex-wrap: wrap; }

/* Formula cards (3 service tiers) */
.mn-formulas { padding: 96px 24px; max-width: 1240px; margin: 0 auto; }
.mn-formulas__head { text-align: center; margin-bottom: 64px; max-width: 740px; margin-left: auto; margin-right: auto; }
.mn-formulas__eyebrow { display: inline-block; font-size: 12px; letter-spacing: .28em; text-transform: uppercase; color: var(--color-primary-dark); font-weight: 500; margin-bottom: 16px; }
.mn-formulas__title { font-family: var(--font-heading); font-size: clamp(32px, 4.4vw, 52px); font-weight: 400; line-height: 1.1; letter-spacing: -.02em; margin: 0 0 20px; }
.mn-formulas__title em { font-style: italic; color: var(--color-primary); }
.mn-formulas__text { font-size: 17px; line-height: 1.7; color: var(--color-text-light); }
.mn-formulas__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.mn-formula { background: #fff; border: 1px solid var(--color-border); border-radius: 20px; padding: 40px 32px; display: flex; flex-direction: column; gap: 18px; box-shadow: 0 20px 40px -28px rgba(30,36,31,.16); transition: transform .45s var(--ease-premium, cubic-bezier(.22,1,.36,1)), box-shadow .45s, border-color .45s; }
.mn-formula:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(30,36,31,.28); border-color: rgba(184,147,90,.45); }
.mn-formula__icon { width: 52px; height: 52px; border-radius: 14px; background: var(--color-primary-light); color: var(--color-primary-dark); display: inline-flex; align-items: center; justify-content: center; font-size: 22px; }
.mn-formula.is-feature { background: var(--color-secondary); color: rgba(251,248,241,.88); border-color: transparent; }
.mn-formula.is-feature h3, .mn-formula.is-feature .mn-formula__tag { color: #fff; }
.mn-formula.is-feature .mn-formula__icon { background: rgba(212,176,122,.18); color: var(--color-accent); }
.mn-formula.is-feature .mn-formula__list li::before { color: var(--color-accent); }
.mn-formula__tag { font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--color-primary-dark); font-weight: 600; }
.mn-formula h3 { font-family: var(--font-heading); font-size: 26px; font-weight: 500; line-height: 1.15; margin: 0; letter-spacing: -.015em; }
.mn-formula__lead { font-size: 15px; line-height: 1.6; color: var(--color-text-muted); margin: 0; }
.mn-formula.is-feature .mn-formula__lead { color: rgba(251,248,241,.72); }
.mn-formula__list { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.mn-formula__list li { position: relative; padding-left: 24px; font-size: 15px; line-height: 1.5; color: var(--color-text-light); }
.mn-formula.is-feature .mn-formula__list li { color: rgba(251,248,241,.80); }
.mn-formula__list li::before { content: '✓'; position: absolute; left: 0; top: 0; color: var(--color-primary); font-weight: 700; }
.mn-formula__cta { margin-top: auto; padding-top: 20px; }

/* Pictos grid */
.mn-pictos { padding: 96px 24px; max-width: 1100px; margin: 0 auto; text-align: center; }
.mn-pictos__head { margin-bottom: 56px; }
.mn-pictos__title { font-family: var(--font-heading); font-size: clamp(26px, 3.2vw, 36px); font-weight: 400; line-height: 1.2; margin: 0; letter-spacing: -.015em; }
.mn-pictos__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 28px 24px; }
.mn-picto { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 20px 12px; border-radius: 14px; transition: transform .35s var(--ease-premium, cubic-bezier(.22,1,.36,1)); }
.mn-picto:hover { transform: translateY(-4px); }
.mn-picto i { font-size: 32px; color: var(--color-primary); filter: drop-shadow(0 2px 4px rgba(184,147,90,.22)); }
.mn-picto span { font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; color: var(--color-text-light); max-width: 150px; line-height: 1.4; }

/* Team (Nathalie + Valentin) */
.mn-team { padding: 96px 24px; max-width: 1240px; margin: 0 auto; }
.mn-team__head { text-align: center; margin-bottom: 64px; max-width: 720px; margin-left: auto; margin-right: auto; }
.mn-team__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 48px; }
.mn-team-card { display: grid; grid-template-rows: auto 1fr; background: #fff; border-radius: 24px; overflow: hidden; border: 1px solid var(--color-border); box-shadow: 0 28px 60px -40px rgba(30,36,31,.22); }
.mn-team-card__media { aspect-ratio: 4/3; overflow: hidden; }
.mn-team-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease-premium, cubic-bezier(.22,1,.36,1)); }
.mn-team-card:hover .mn-team-card__media img { transform: scale(1.04); }
.mn-team-card__body { padding: 36px 32px 40px; display: flex; flex-direction: column; gap: 14px; }
.mn-team-card__name { font-family: var(--font-heading); font-size: 28px; font-weight: 500; margin: 0; letter-spacing: -.015em; }
.mn-team-card__role { font-size: 13px; letter-spacing: .18em; text-transform: uppercase; font-weight: 500; color: var(--color-primary-dark); }
.mn-team-card__body p { font-size: 15.5px; line-height: 1.7; color: var(--color-text-light); margin: 0; }
.mn-team-card__meta { margin-top: 8px; font-size: 13px; color: var(--color-text-muted); display: inline-flex; align-items: center; gap: 8px; }
.mn-team-card__meta::before { content: '✓'; color: var(--color-primary); font-weight: 700; }

/* Contact split */
.mn-contact { padding: 96px 24px; max-width: 1240px; margin: 0 auto; }
.mn-contact__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: start; }
.mn-contact__head { margin-bottom: 40px; }
.mn-contact__items { display: flex; flex-direction: column; gap: 20px; margin-bottom: 36px; }
.mn-contact__item { display: flex; align-items: flex-start; gap: 18px; padding: 22px; border-radius: 16px; background: #fff; border: 1px solid var(--color-border); transition: border-color .35s, box-shadow .35s, transform .35s; }
.mn-contact__item:hover { border-color: rgba(184,147,90,.45); box-shadow: 0 18px 36px -24px rgba(30,36,31,.2); transform: translateY(-2px); }
.mn-contact__item i { width: 44px; height: 44px; flex: none; border-radius: 12px; background: var(--color-primary-light); color: var(--color-primary-dark); display: inline-flex; align-items: center; justify-content: center; font-size: 16px; }
.mn-contact__item span { display: block; font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--color-primary-dark); font-weight: 600; margin-bottom: 4px; }
.mn-contact__item strong, .mn-contact__item a { font-family: var(--font-heading); font-size: 22px; font-weight: 500; color: var(--color-secondary); text-decoration: none; letter-spacing: -.01em; }
.mn-contact__item a:hover { color: var(--color-primary-dark); }
.mn-contact__social { display: flex; gap: 12px; margin-top: 10px; }
.mn-contact__social a { width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--color-secondary); color: #fff; transition: background .35s, transform .35s; }
.mn-contact__social a:hover { background: var(--color-primary); transform: translateY(-2px); }
.mn-contact__form { background: #fff; border: 1px solid var(--color-border); border-radius: 20px; padding: 36px; box-shadow: 0 28px 60px -40px rgba(30,36,31,.22); }
.mn-contact__form h3 { font-family: var(--font-heading); font-size: 24px; font-weight: 500; margin: 0 0 24px; letter-spacing: -.015em; }
.mn-contact__form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.mn-contact__form label { display: block; font-size: 12.5px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--color-text-muted); margin-bottom: 8px; }
.mn-contact__form input, .mn-contact__form textarea, .mn-contact__form select { width: 100%; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--color-border); background: var(--color-bg); font-family: var(--font-body); font-size: 15px; color: var(--color-text); transition: border-color .25s, box-shadow .25s; }
.mn-contact__form input:focus, .mn-contact__form textarea:focus, .mn-contact__form select:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 4px var(--color-primary-light); }
.mn-contact__form textarea { min-height: 140px; resize: vertical; }
.mn-contact__form .form-group { margin-bottom: 16px; }
.mn-contact__form .form-actions { margin-top: 24px; }
.mn-contact__form .btn { width: 100%; }

/* Events highlight gallery */
.mn-gallery { padding: 96px 24px; max-width: 1240px; margin: 0 auto; }
.mn-gallery__head { margin-bottom: 48px; max-width: 640px; }
.mn-gallery__grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; grid-template-rows: repeat(2, 260px); gap: 16px; }
.mn-gallery__item { position: relative; border-radius: 20px; overflow: hidden; }
.mn-gallery__item:nth-child(1) { grid-row: span 2; }
.mn-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease-premium, cubic-bezier(.22,1,.36,1)); }
.mn-gallery__item:hover img { transform: scale(1.06); }

/* Services cards (activites) */
.mn-services-cards { padding: 96px 24px; max-width: 1240px; margin: 0 auto; scroll-margin-top: 100px; }
.mn-services-cards__head { text-align: center; max-width: 720px; margin: 0 auto 56px; }
.mn-services-cards__title { font-family: var(--font-heading); font-size: clamp(28px, 3.6vw, 44px); font-weight: 400; line-height: 1.12; letter-spacing: -0.02em; margin: 14px 0 18px; text-wrap: balance; }
.mn-services-cards__title em { font-style: italic; color: var(--color-primary-dark); }
.mn-services-cards__intro { font-size: 16.5px; line-height: 1.7; color: var(--color-text-light); text-wrap: pretty; }
.mn-services-cards__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.mn-service-card { background: #fff; border-radius: 18px; border: 1px solid var(--color-border); padding: 28px 22px; display: flex; flex-direction: column; gap: 12px; transition: transform .4s, box-shadow .4s, border-color .4s; }
.mn-service-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -30px rgba(30,36,31,.26); border-color: rgba(184,147,90,.40); }
.mn-service-card__icon { width: 46px; height: 46px; border-radius: 12px; background: var(--color-primary-light); color: var(--color-primary-dark); display: inline-flex; align-items: center; justify-content: center; font-size: 18px; margin-bottom: 6px; }
.mn-service-card h3 { font-family: var(--font-heading); font-size: 20px; font-weight: 500; margin: 0; letter-spacing: -.01em; }
.mn-service-card p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--color-text-light); }

/* Booking iframe wrap */
.mn-booking { padding: 64px 24px 96px; max-width: 1240px; margin: 0 auto; }
.mn-booking__head { text-align: center; margin-bottom: 40px; }
.mn-booking__iframe-wrap { background: #fff; border: 1px solid var(--color-border); border-radius: 24px; overflow: hidden; box-shadow: 0 28px 60px -40px rgba(30,36,31,.22); }
.mn-booking__iframe-wrap iframe { display: block; width: 100%; border: 0; }

/* Final narrow CTA band */
.mn-cta-band { padding: 96px 24px; max-width: 1240px; margin: 0 auto; }
.mn-cta-band__inner { background: var(--color-secondary); color: #fff; border-radius: 28px; padding: 72px 48px; text-align: center; position: relative; overflow: hidden; }
.mn-cta-band__inner::before { content: ''; position: absolute; inset: 0; background: var(--gradient-mesh-hero); opacity: .55; z-index: 0; }
.mn-cta-band__inner > * { position: relative; z-index: 1; }
.mn-cta-band__eyebrow { font-size: 12px; letter-spacing: .28em; text-transform: uppercase; color: var(--color-accent); font-weight: 500; margin-bottom: 16px; display: block; }
.mn-cta-band__title { font-family: var(--font-heading); font-size: clamp(30px, 3.8vw, 46px); font-weight: 400; line-height: 1.1; margin: 0 0 18px; color: #fff; letter-spacing: -.02em; }
.mn-cta-band__title em { font-style: italic; color: var(--color-accent); }
.mn-cta-band__text { color: rgba(251,248,241,.80); margin: 0 auto 36px; max-width: 52ch; font-size: 17px; line-height: 1.65; }
.mn-cta-band__actions { display: inline-flex; gap: 14px; flex-wrap: wrap; justify-content: center; }

/* Testimonial ribbon (simple) */
.mn-testi-ribbon { padding: 96px 24px; max-width: 1240px; margin: 0 auto; }
.mn-testi-ribbon__head { text-align: center; margin-bottom: 48px; }

/* --- Animations reveal (keep bottom) --- */

/* --- Responsive --- */
@media (max-width: 1024px) {
    .mn-categories__grid, .mn-values__grid, .mn-demeures__grid, .mn-testi__grid { grid-template-columns: repeat(2, 1fr); }
    .mn-owner__inner, .mn-why__inner { grid-template-columns: 1fr; gap: 48px; }
    .mn-owner__visual { aspect-ratio: 16/9; max-width: 600px; margin: 0 auto; }
    .mn-hero__inner { grid-template-columns: 1fr; gap: 24px; }
    .mn-hero__meta { text-align: left; }
    .mn-featurette__inner, .mn-featurette.is-reverse .mn-featurette__inner { grid-template-columns: 1fr; gap: 40px; }
    .mn-featurette.is-reverse .mn-featurette__media { order: 0; }
    .mn-featurette__media { aspect-ratio: 16/10; }
    .mn-formulas__grid { grid-template-columns: 1fr; gap: 20px; }
    .mn-team__grid { grid-template-columns: 1fr; gap: 32px; }
    .mn-contact__grid { grid-template-columns: 1fr; gap: 40px; }
    .mn-services-cards__grid { grid-template-columns: repeat(2, 1fr); }
    .mn-gallery__grid { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, 240px); }
    .mn-gallery__item:nth-child(1) { grid-row: span 1; grid-column: span 2; }
    .mn-pictos__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
    .mn-hero { min-height: 86vh; }
    .mn-hero__inner { padding: 0 20px 64px; }
    .mn-hero__cta { flex-direction: column; align-items: stretch; }
    .mn-hero__cta .btn { width: 100%; text-align: center; }
    .mn-categories__grid, .mn-values__grid, .mn-demeures__grid, .mn-testi__grid { grid-template-columns: 1fr; gap: 16px; }
    .mn-signature, .mn-categories, .mn-owner, .mn-values, .mn-demeures, .mn-why, .mn-testi, .mn-cta { padding-left: 20px; padding-right: 20px; }
    .mn-signature { padding-top: 80px; padding-bottom: 48px; }
    .mn-categories { padding-bottom: 80px; padding-top: 40px; }
    .mn-owner, .mn-values, .mn-why, .mn-testi, .mn-cta { padding-top: 80px; padding-bottom: 80px; }
    .mn-demeures { padding: 80px 0; }
    .mn-demeures__head, .mn-demeures__grid, .mn-demeures__more { padding: 0 20px; }
    .footer-container { grid-template-columns: 1fr; }
    .mn-page-hero { padding: 140px 20px 80px; min-height: 480px; }
    .mn-page-hero__title { font-size: clamp(32px, 9vw, 48px); }
    .mn-lede { padding: 72px 20px 0; }
    .mn-featurette, .mn-formulas, .mn-team, .mn-contact, .mn-gallery, .mn-services-cards, .mn-pictos, .mn-cta-band, .mn-testi-ribbon { padding-left: 20px; padding-right: 20px; padding-top: 72px; padding-bottom: 72px; }
    .mn-pictos__grid { grid-template-columns: repeat(2, 1fr); }
    .mn-services-cards__grid { grid-template-columns: 1fr; }
    .mn-gallery__grid { grid-template-columns: 1fr; grid-template-rows: auto; }
    .mn-gallery__item { aspect-ratio: 4/3; }
    .mn-gallery__item:nth-child(1) { grid-column: span 1; }
    .mn-contact__form { padding: 24px; }
    .mn-contact__form .form-row { grid-template-columns: 1fr; gap: 0; margin-bottom: 0; }
    .mn-contact__form .form-row .form-group { margin-bottom: 16px; }
    .mn-cta-band__inner { padding: 56px 24px; border-radius: 20px; }
}

/* ============================================================
   MEGA-MENU - Navigation principale
   ============================================================ */
#site-header { position: sticky; top: 0; z-index: 200; }
.mn-nav { display: flex; align-items: center; gap: 32px; max-width: 1440px; margin: 0 auto; padding: 4px 40px; }
.mn-nav .nav-logo { display: flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.mn-nav .nav-logo .custom-logo { max-height: 88px; width: auto; display: block; }
.mn-nav .nav-logo .site-name { font-family: var(--font-heading); font-size: 22px; font-weight: 500; color: var(--color-secondary); letter-spacing: -0.02em; }

.mn-nav__menu { list-style: none; display: flex; align-items: center; gap: 2px; margin: 0 auto 0 0; padding: 0; }
.mn-nav__item { position: static; }
.mn-nav__link { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; font-family: var(--font-body); font-size: 14.5px; font-weight: 500; color: var(--color-secondary); text-decoration: none; border-radius: 8px; transition: color .2s ease, background .2s ease; letter-spacing: -0.005em; }
.mn-nav__link:hover, .mn-nav__item.is-open > .mn-nav__link, .mn-nav__item.is-active > .mn-nav__link { color: var(--color-primary-dark); background: var(--color-primary-light); }
.mn-nav__chev { transition: transform .25s ease; opacity: .65; }
.mn-nav__item.is-open .mn-nav__chev { transform: rotate(180deg); opacity: 1; }

.mn-mega { position: absolute; left: 0; right: 0; top: 100%; background: rgba(251, 248, 241, 0.98); backdrop-filter: saturate(180%) blur(18px); border-top: 1px solid rgba(184,147,90,.18); border-bottom: 1px solid rgba(184,147,90,.18); box-shadow: 0 24px 60px -20px rgba(30,36,31,.18); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .22s ease, transform .22s ease, visibility .22s; pointer-events: none; z-index: 150; }
.mn-nav__item.is-open .mn-mega { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
.mn-mega__inner { max-width: 1200px; margin: 0 auto; padding: 36px 40px 40px; display: grid; gap: 48px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.mn-mega__cols { display: contents; }
.mn-mega--with-feature .mn-mega__inner { grid-template-columns: minmax(260px, 320px) 1fr; gap: 36px; }
.mn-mega--with-feature .mn-mega__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 36px; }
.mn-mega__feature {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 24px 22px 22px;
    border-radius: 14px;
    background: linear-gradient(155deg, var(--color-primary-light, #F3ECDC) 0%, #fff 60%, var(--color-primary-light, #F3ECDC) 100%);
    border: 1px solid rgba(184, 147, 90, 0.30);
    color: var(--color-secondary);
    text-decoration: none;
    overflow: hidden;
    box-shadow: 0 12px 32px -18px rgba(30, 36, 31, 0.25);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.mn-mega__feature::after {
    content: '';
    position: absolute;
    top: -40px;
    right: -40px;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(200, 162, 95, 0.18) 0%, rgba(200, 162, 95, 0) 70%);
    pointer-events: none;
}
.mn-mega__feature:hover {
    transform: translateY(-2px);
    border-color: var(--color-primary);
    box-shadow: 0 18px 40px -18px rgba(30, 36, 31, 0.32);
}
.mn-mega__feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: #FBF8F1;
    font-size: 18px;
    margin-bottom: 6px;
}
.mn-mega__feature-eyebrow {
    align-self: flex-start;
    font-size: 10.5px;
    letter-spacing: 0.20em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    background: rgba(255, 255, 255, 0.72);
    padding: 4px 10px;
    border-radius: 999px;
    font-weight: 600;
    border: 1px solid rgba(184, 147, 90, 0.30);
}
.mn-mega__feature-title {
    font-family: var(--font-heading);
    font-size: 19px;
    line-height: 1.18;
    color: var(--color-secondary);
    font-weight: 400;
    margin-top: 4px;
}
.mn-mega__feature-text {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--color-text-light);
    margin-bottom: 4px;
}
.mn-mega__feature-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--color-primary-dark);
    letter-spacing: 0.01em;
}
.mn-mega__feature-cta i {
    transition: transform .2s ease;
}
.mn-mega__feature:hover .mn-mega__feature-cta i {
    transform: translateX(4px);
}
@media (max-width: 1100px) {
    .mn-mega--with-feature .mn-mega__inner { grid-template-columns: 1fr; }
    .mn-mega--with-feature .mn-mega__cols { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
}
.mn-mega__col { display: flex; flex-direction: column; gap: 14px; }
.mn-mega__heading { font-family: var(--font-body); font-size: 11.5px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-primary-dark); padding-bottom: 10px; border-bottom: 1px solid rgba(184,147,90,.25); }
.mn-mega__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.mn-mega__list a { display: flex; align-items: center; gap: 12px; padding: 10px 10px; border-radius: 8px; text-decoration: none; color: var(--color-secondary); font-size: 14.5px; font-weight: 500; transition: background .18s ease, color .18s ease, transform .18s ease; }
.mn-mega__list a:hover { background: var(--color-primary-light); color: var(--color-primary-dark); transform: translateX(3px); }
.mn-mega__icon { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 8px; background: rgba(184,147,90,.10); color: var(--color-primary-dark); font-size: 14px; flex-shrink: 0; transition: background .18s ease, color .18s ease; }
.mn-mega__list a:hover .mn-mega__icon { background: var(--color-primary); color: #fff; }
.mn-mega__label { line-height: 1.35; }

.mn-nav__cta { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.mn-nav__phone { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; color: var(--color-secondary); text-decoration: none; transition: color .2s ease; }
.mn-nav__phone:hover { color: var(--color-primary-dark); }
.mn-nav__phone svg { color: var(--color-primary); }
.mn-nav__cta .btn-sm { padding: 10px 18px; font-size: 13.5px; }

.mn-nav__toggle { display: none; background: transparent; border: 0; padding: 10px; cursor: pointer; width: 44px; height: 44px; position: relative; }
.mn-nav__toggle span { display: block; width: 22px; height: 2px; background: var(--color-secondary); margin: 4px auto; border-radius: 2px; transition: transform .25s ease, opacity .25s ease; }
#site-header.is-mobile-open .mn-nav__toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
#site-header.is-mobile-open .mn-nav__toggle span:nth-child(2) { opacity: 0; }
#site-header.is-mobile-open .mn-nav__toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* --- Mobile drawer --- */
.mn-mobile { position: fixed; inset: 72px 0 0 0; background: var(--color-bg); overflow-y: auto; opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .25s ease, transform .25s ease, visibility .25s; z-index: 190; padding: 24px 24px 80px; }
#site-header.is-mobile-open .mn-mobile { opacity: 1; visibility: visible; transform: translateY(0); }
.mn-mobile__menu { list-style: none; margin: 0; padding: 0; }
.mn-mobile__item { border-bottom: 1px solid var(--color-border); }
.mn-mobile__link, .mn-mobile__toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 18px 4px; background: transparent; border: 0; font-family: var(--font-heading); font-size: 20px; font-weight: 500; color: var(--color-secondary); text-decoration: none; text-align: left; cursor: pointer; letter-spacing: -0.01em; }
.mn-mobile__toggle svg { transition: transform .25s ease; opacity: .6; }
.mn-mobile__item.is-expanded .mn-mobile__toggle svg { transform: rotate(180deg); }
.mn-mobile__sub { max-height: 0; overflow: hidden; transition: max-height .35s ease; padding-left: 4px; }
.mn-mobile__item.is-expanded .mn-mobile__sub { max-height: 1400px; padding-bottom: 18px; }
.mn-mobile__sub-main { display: block; font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-primary-dark); text-decoration: none; padding: 8px 0 14px; }
.mn-mobile__sub-heading { display: block; font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-text-muted); padding: 14px 0 6px; }
.mn-mobile__sub-link { display: flex; align-items: center; gap: 12px; padding: 10px 0; font-size: 15px; font-weight: 500; color: var(--color-secondary); text-decoration: none; }
.mn-mobile__sub-link i { width: 22px; color: var(--color-primary); text-align: center; }
.mn-mobile__cta { margin-top: 32px; display: flex; flex-direction: column; gap: 14px; padding-top: 24px; border-top: 1px solid var(--color-border); }
.mn-mobile__cta .btn { text-align: center; }

@media (max-width: 1100px) {
    .mn-nav { gap: 16px; padding: 12px 24px; }
    .mn-nav__link { padding: 10px 10px; font-size: 14px; }
    .mn-nav__phone span { display: none; }
}
@media (max-width: 960px) {
    .mn-nav__menu, .mn-nav__cta { display: none; }
    .mn-nav__toggle { display: block; margin-left: auto; }
    .mn-nav { padding: 12px 20px; }
    .mn-mega { display: none !important; }
}
@media (min-width: 961px) {
    .mn-mobile, .mn-nav__toggle { display: none; }
}

/* ============================================================
   COLLECTIONIST OVERHAUL 2026-04-21
   Override main.css !important + Collectionist design language
   ============================================================ */

/* --- Palette overrides for button cohérence --- */
:root {
    --gradient-hero-overlay: linear-gradient(180deg, rgba(30,36,31,.15) 0%, rgba(30,36,31,.50) 45%, rgba(30,36,31,.85) 100%);
    --gradient-hero-overlay-strong: linear-gradient(180deg, rgba(30,36,31,.40) 0%, rgba(30,36,31,.65) 50%, rgba(30,36,31,.90) 100%);
}

/* --- BUTTONS : Collectionist style, defeat main.css !important cascade --- */
body .btn, body a.btn, body button.btn {
    font-family: var(--font-body);
    font-weight: 600;
    letter-spacing: 0.02em;
    border-radius: 4px !important;
    padding: 16px 28px;
    font-size: 14px;
    text-transform: none;
    line-height: 1.2;
    transition: background .25s ease, color .25s ease, opacity .25s ease, transform .25s ease, box-shadow .25s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid transparent;
}
body .btn-sm { padding: 11px 20px; font-size: 13px; }
body .btn-lg { padding: 20px 36px; font-size: 15px; }

/* Primary = charbon sur crème (defeats orange gradient !important) */
body .btn-primary,
body .btn.btn-primary,
body a.btn-primary,
body button.btn-primary,
body .nav-cta .btn-primary,
body .nav-mobile-cta .btn-primary,
body .cta-banner .btn-primary,
body .cta-banner .btn.btn-primary,
body .hero-buttons .btn-primary {
    background-image: none !important;
    background-color: var(--color-secondary) !important;
    color: var(--color-bg) !important;
    border-color: var(--color-secondary) !important;
    background-clip: border-box !important;
    -webkit-background-clip: border-box !important;
}
body .btn-primary:hover,
body .btn.btn-primary:hover,
body a.btn-primary:hover,
body button.btn-primary:hover,
body .cta-banner .btn-primary:hover,
body .hero-buttons .btn-primary:hover,
body .nav-cta .btn-primary:hover {
    background-image: linear-gradient(135deg, #B8935A 0%, #D4B07A 55%, #8C6F40 100%) !important;
    background-color: transparent !important;
    border-color: #8C6F40 !important;
    color: #FBF8F1 !important;
    transform: translateY(-1px);
    box-shadow: 0 12px 28px -14px rgba(184,147,90,.55);
}

/* Secondary = outline charbon sur crème (defeats white-on-white) */
body .btn-secondary,
body .btn.btn-secondary,
body a.btn-secondary,
body .hero-buttons .btn-secondary {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    color: var(--color-secondary) !important;
    border: 1px solid var(--color-secondary) !important;
}
body .btn-secondary:hover,
body .btn.btn-secondary:hover,
body a.btn-secondary:hover,
body .hero-buttons .btn-secondary:hover {
    background-image: linear-gradient(135deg, #B8935A 0%, #D4B07A 55%, #8C6F40 100%) !important;
    background-color: transparent !important;
    color: #FBF8F1 !important;
    border-color: transparent !important;
    transform: translateY(-1px);
    box-shadow: 0 12px 28px -14px rgba(184,147,90,.55);
}

/* Outline = synonyme de secondary sur fond clair */
body .btn-outline {
    background: transparent !important;
    color: var(--color-secondary) !important;
    border: 1px solid var(--color-secondary) !important;
}
body .btn-outline:hover {
    background-image: linear-gradient(135deg, #B8935A 0%, #D4B07A 55%, #8C6F40 100%) !important;
    background-color: transparent !important;
    color: #FBF8F1 !important;
    border-color: transparent !important;
    transform: translateY(-1px);
    box-shadow: 0 12px 28px -14px rgba(184,147,90,.55);
}

/* --- Contextes SPÉCIAUX : boutons sur fond sombre (hero, cta-band) --- */
.mn-hero__cta .btn-primary,
.mn-hero__cta a.btn-primary,
.mn-cta-band__ctas .btn-primary,
.mn-cta-band__ctas a.btn-primary {
    background-image: none !important;
    background-color: var(--color-bg) !important;
    color: var(--color-secondary) !important;
    border-color: var(--color-bg) !important;
}
.mn-hero__cta .btn-primary:hover,
.mn-cta-band__ctas .btn-primary:hover {
    background-image: linear-gradient(135deg, #D4B07A 0%, #E6C58E 55%, #B8935A 100%) !important;
    background-color: transparent !important;
    color: var(--color-secondary) !important;
    border-color: transparent !important;
    transform: translateY(-1px);
}
.mn-hero__cta .btn-outline,
.mn-hero__cta .btn-secondary,
.mn-cta-band__ctas .btn-outline,
.mn-cta-band__ctas .btn-secondary,
.mn-cta-band__ctas a.btn-secondary {
    background: transparent !important;
    color: var(--color-bg) !important;
    border: 1px solid rgba(251,248,241,.55) !important;
}
.mn-hero__cta .btn-outline:hover,
.mn-hero__cta .btn-secondary:hover,
.mn-cta-band__ctas .btn-outline:hover,
.mn-cta-band__ctas .btn-secondary:hover {
    background-image: linear-gradient(135deg, #D4B07A 0%, #E6C58E 55%, #B8935A 100%) !important;
    background-color: transparent !important;
    color: var(--color-secondary) !important;
    border-color: transparent !important;
    transform: translateY(-1px);
}

/* --- Header CTA bouton reste charbon sur crème --- */
.mn-nav__cta .btn-primary,
.mn-nav__cta a.btn-primary {
    background-color: var(--color-secondary) !important;
    color: var(--color-bg) !important;
    border-color: var(--color-secondary) !important;
}

/* ============================================================
   HERO : readability overhaul (client priority)
   ============================================================ */
.mn-hero { min-height: 88vh; }
.mn-hero::before { background: var(--gradient-hero-overlay-strong) !important; }
.mn-hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 45%; background: linear-gradient(180deg, transparent 0%, rgba(30,36,31,.55) 100%); z-index: -1; pointer-events: none; }
.mn-hero__inner { padding: 0 48px 112px; align-items: end; }
.mn-hero__title { font-variation-settings: "opsz" 144, "wght" 400; text-shadow: 0 2px 24px rgba(0,0,0,.35); max-width: 20ch; }
.mn-hero__title em { color: #F3ECDC; font-style: italic; }
.mn-hero__sub { text-shadow: 0 1px 12px rgba(0,0,0,.45); color: rgba(255,255,255,.94); font-size: 18px; }
.mn-hero__eyebrow { color: rgba(255,255,255,.95); font-weight: 500; }
.mn-hero__eyebrow::before { background: var(--color-accent); opacity: .95; }
.mn-hero__meta strong { text-shadow: 0 1px 10px rgba(0,0,0,.45); }

/* ============================================================
   PAGE HERO (partial) : même traitement de contraste
   ============================================================ */
.mn-page-hero { min-height: 72vh; padding: 180px 40px 80px; align-items: flex-end; }
.mn-page-hero::before { background: var(--gradient-hero-overlay-strong) !important; }
.mn-page-hero::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 40%; background: linear-gradient(180deg, transparent 0%, rgba(30,36,31,.55) 100%); z-index: -1; pointer-events: none; }
.mn-page-hero__media img { object-position: center 35%; }
.mn-page-hero__title { text-shadow: 0 2px 24px rgba(0,0,0,.35); letter-spacing: -0.02em; font-weight: 400; }
.mn-page-hero__title em { color: #F3ECDC; font-style: italic; }
.mn-page-hero__sub { text-shadow: 0 1px 12px rgba(0,0,0,.45); color: rgba(255,255,255,.94); max-width: 64ch; }
.mn-page-hero__eyebrow { color: rgba(255,255,255,.95); }

/* ============================================================
   ASPECT RATIO HARMONISATION : deux ratios max
   Portrait editorial 4/5 — Landscape feature 16/10
   ============================================================ */
.mn-featurette__media,
.mn-featurette__media img { aspect-ratio: 4/5 !important; }
.mn-category__media { aspect-ratio: 4/5 !important; }
.mn-value-card__media { aspect-ratio: 4/5 !important; }
.mn-team-card__media { aspect-ratio: 4/5 !important; }
.mn-owner__media,
.mn-owner__media img { aspect-ratio: 4/5 !important; }
.mn-demeure-card__media,
.mn-demeure-card__media img { aspect-ratio: 4/5 !important; }
.mn-gallery__item { aspect-ratio: 4/5 !important; }
.mn-page-hero { aspect-ratio: auto !important; }

/* Cap editorial visuals at 70vh so portrait-ratio media never dwarfs the body copy on tall viewports. */
@media (min-width: 769px) {
    .mn-featurette__media,
    .mn-category__media,
    .mn-value-card__media,
    .mn-team-card__media,
    .mn-owner__media,
    .mn-owner__visual,
    .mn-demeure__media,
    .mn-gallery__item,
    .mn-quote-band,
    .mn-quote-band__media { max-height: 70vh !important; }
    .mn-featurette__media img,
    .mn-category__media img,
    .mn-value-card__media img,
    .mn-team-card__media img,
    .mn-owner__media img,
    .mn-owner__visual img,
    .mn-demeure__media img,
    .mn-gallery__item img,
    .mn-quote-band__media img { max-height: 70vh !important; object-fit: cover; }
    .mn-page-hero { min-height: 0 !important; height: 70vh !important; max-height: 70vh !important; }
}

/* --- Featurette inner wrapper (was missing) --- */
.mn-featurette { padding: clamp(80px, 10vw, 140px) 40px; max-width: 1320px; margin: 0 auto; display: block; }
.mn-featurette__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.mn-featurette.is-reverse .mn-featurette__inner { direction: rtl; }
.mn-featurette.is-reverse .mn-featurette__inner > * { direction: ltr; }
.mn-featurette__body,
.mn-featurette__content { max-width: 540px; }
.mn-featurette__body .mn-lede__eyebrow,
.mn-featurette__content .mn-lede__eyebrow { margin-bottom: 20px; display: block; }
.mn-featurette__title { font-family: var(--font-heading); font-size: clamp(32px, 3.6vw, 48px); font-weight: 400; line-height: 1.08; letter-spacing: -0.02em; margin-bottom: 22px; color: var(--color-secondary); }
.mn-featurette__title em { font-style: italic; color: var(--color-secondary); font-weight: 400; }
.mn-featurette__text { font-size: 17px; line-height: 1.7; color: var(--color-text-light); margin-bottom: 20px; }
.mn-featurette__list { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.mn-featurette__list li { padding-left: 26px; position: relative; font-size: 15.5px; line-height: 1.55; color: var(--color-text); }
.mn-featurette__list li::before { content: ''; position: absolute; left: 0; top: 9px; width: 14px; height: 1px; background: var(--color-primary); }

/* --- Titres : réduire l'italique coloré (Collectionist neutralise) --- */
.mn-lede__title em { color: var(--color-secondary); font-style: italic; font-weight: 400; }
.mn-featurette__title em,
.mn-cta-band__title em,
.mn-hero__title em { font-style: italic; font-weight: 400; }

/* Keep accent em only on dark backgrounds (hero / cta-band) */
.mn-cta-band__title em { color: #F3ECDC; }
.mn-hero__title em { color: #F3ECDC; }
.mn-page-hero__title em { color: #F3ECDC; }

/* ============================================================
   SECTIONS : whitespace rhythm collectionist
   ============================================================ */
.mn-lede { padding: clamp(96px, 11vw, 160px) 24px 0; max-width: 860px; }
.mn-lede__eyebrow { font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--color-primary-dark); font-weight: 600; display: inline-block; margin-bottom: 20px; }
.mn-lede__title { font-size: clamp(36px, 4.6vw, 60px); font-weight: 400; letter-spacing: -0.02em; line-height: 1.05; }

/* ============================================================
   CARDS : portrait 4:5, text below, hover only on clickable
   ============================================================ */
.mn-demeure-card { background: transparent; border: 0; border-radius: 12px; overflow: hidden; }
.mn-demeure-card__media { border-radius: 10px; overflow: hidden; margin-bottom: 16px; }
.mn-demeure-card__media img { transition: transform .6s ease; }
a.mn-demeure-card:hover .mn-demeure-card__media img,
.mn-demeure-card-clickable:hover .mn-demeure-card__media img { transform: scale(1.04); }
.mn-demeure-card__title { font-family: var(--font-heading); font-size: 22px; font-weight: 400; letter-spacing: -0.01em; margin: 0 0 6px; color: var(--color-secondary); }
.mn-demeure-card__meta { font-family: var(--font-body); font-size: 13.5px; color: var(--color-tertiary); font-weight: 500; }
.mn-demeure-card__specs { display: flex; gap: 16px; margin-top: 12px; font-size: 13px; color: var(--color-text-muted); }
.mn-demeure-card__specs span { display: inline-flex; align-items: center; gap: 6px; }

/* ============================================================
   mn-reveal fallback : garantir visibilité si JS ne tourne pas
   ============================================================ */
.mn-reveal { opacity: 1; transform: none; transition: opacity .9s ease, transform .9s ease; }
.mn-reveal.is-in { opacity: 1; transform: none; }

/* ============================================================
   Responsive overrides (tablette & mobile)
   ============================================================ */
@media (max-width: 900px) {
    .mn-featurette__inner { grid-template-columns: 1fr; gap: 32px; }
    .mn-featurette.is-reverse .mn-featurette__inner { direction: ltr; }
    .mn-featurette__body,
    .mn-featurette__content { max-width: 100%; }
    .mn-hero__inner { padding: 0 24px 80px; }
    .mn-page-hero { min-height: 64vh; padding: 150px 24px 64px; }
}
@media (max-width: 640px) {
    .mn-hero { min-height: 78vh; }
    .mn-page-hero__title { font-size: clamp(30px, 8.5vw, 44px); }
    .mn-featurette { padding: 80px 20px; }
}

/* ============================================================
   Filter page - Collectionist sections
   ============================================================ */
.mn-picks { padding: clamp(96px, 11vw, 140px) 40px; max-width: 1320px; margin: 0 auto; }
.mn-picks__head { max-width: 780px; margin: 0 auto 56px; text-align: center; }
.mn-picks__title { font-family: var(--font-heading); font-size: clamp(34px, 4.2vw, 56px); font-weight: 400; letter-spacing: -0.02em; line-height: 1.08; color: var(--color-secondary); }
.mn-picks__title em { font-style: italic; color: var(--color-secondary); font-weight: 400; }
.mn-picks__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }

.mn-quote-band {
    position: relative;
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 26px;
    overflow: hidden;
    isolation: isolate;
    padding: clamp(80px, 12vw, 160px) 24px;
    color: #fff;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}
.mn-quote-band__media { display: none; }
.mn-quote-band::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(30, 36, 31, 0.50), rgba(30, 36, 31, 0.62));
    z-index: -1;
}
.mn-quote-band__quote {
    font-family: var(--font-heading);
    font-style: italic;
    font-size: clamp(26px, 3vw, 44px);
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1.25;
    max-width: 880px;
    margin: 0 auto;
    text-align: center;
    color: #FBF8F1;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
}
.mn-quote-band .mn-sparkles {
    color: #D4B07A;
}
/* iOS Safari and most mobile browsers don't honor background-attachment: fixed -
   fall back to scroll on small viewports to avoid jank/double-rendered images. */
@media (max-width: 1024px) {
    .mn-quote-band { background-attachment: scroll; min-height: 50vh; padding: 80px 20px; }
}

.mn-pictos { padding: clamp(96px, 11vw, 140px) 40px; max-width: 1200px; margin: 0 auto; }
.mn-pictos__head { max-width: 780px; margin: 0 auto 56px; text-align: center; }
.mn-pictos__title { font-family: var(--font-heading); font-size: clamp(32px, 3.8vw, 48px); font-weight: 400; letter-spacing: -0.02em; color: var(--color-secondary); line-height: 1.1; }
.mn-pictos__title em { font-style: italic; color: var(--color-secondary); font-weight: 400; }
.mn-pictos__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.mn-picto { text-align: left; padding: 24px 0; }
.mn-picto__icon { display: inline-flex; width: 56px; height: 56px; align-items: center; justify-content: center; background: rgba(184,147,90,.10); color: var(--color-primary-dark); border-radius: 50%; margin-bottom: 18px; font-size: 22px; }
.mn-picto__label { font-family: var(--font-heading); font-size: 19px; font-weight: 500; letter-spacing: -0.01em; color: var(--color-secondary); margin: 0 0 8px; }
.mn-picto__text { font-size: 14.5px; line-height: 1.6; color: var(--color-text-light); margin: 0; }

.mn-booking { padding: clamp(80px, 9vw, 120px) 24px; max-width: 1200px; margin: 0 auto; }
.mn-booking__head { max-width: 780px; margin: 0 auto 40px; text-align: center; }
.mn-booking__title { font-family: var(--font-heading); font-size: clamp(32px, 3.8vw, 48px); font-weight: 400; letter-spacing: -0.02em; color: var(--color-secondary); line-height: 1.1; margin: 8px 0 12px; }
.mn-booking__title em { font-style: italic; color: var(--color-secondary); font-weight: 400; }
.mn-booking__intro { font-size: 16px; line-height: 1.6; color: var(--color-text-light); max-width: 60ch; margin: 0 auto; }
.mn-booking__iframe-wrap { background: #fff; border-radius: 12px; box-shadow: 0 20px 48px -24px rgba(30,36,31,.18); overflow: hidden; }

.mn-faq { padding: clamp(80px, 9vw, 120px) 24px; max-width: 880px; margin: 0 auto; }
.mn-faq__head { text-align: center; margin-bottom: 40px; }
.mn-faq__title { font-family: var(--font-heading); font-size: clamp(30px, 3.6vw, 44px); font-weight: 400; letter-spacing: -0.02em; color: var(--color-secondary); line-height: 1.1; margin: 8px 0 0; }
.mn-faq__title em { font-style: italic; color: var(--color-secondary); font-weight: 400; }
.mn-faq__list { display: flex; flex-direction: column; gap: 0; }
.mn-faq__item { border-bottom: 1px solid var(--color-border); }
.mn-faq__item[open] { background: rgba(184,147,90,.04); }
.mn-faq__q { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 8px; cursor: pointer; list-style: none; font-family: var(--font-heading); font-size: 19px; font-weight: 400; color: var(--color-secondary); }
.mn-faq__q::-webkit-details-marker { display: none; }
.mn-faq__q i { color: var(--color-primary); transition: transform .25s ease; font-size: 14px; }
.mn-faq__item[open] .mn-faq__q i { transform: rotate(45deg); }
.mn-faq__a { padding: 0 8px 24px; font-size: 15.5px; line-height: 1.7; color: var(--color-text-light); max-width: 70ch; }

@media (max-width: 900px) {
    .mn-picks__grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .mn-pictos__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .mn-picks { padding: 80px 20px; }
    .mn-picks__grid { grid-template-columns: 1fr; gap: 20px; }
    .mn-pictos { padding: 80px 20px; }
    .mn-pictos__grid { grid-template-columns: 1fr 1fr; gap: 20px; }
    .mn-quote-band { padding: 80px 24px; min-height: 50vh; }
    .mn-faq { padding: 80px 20px; }
    .mn-faq__q { font-size: 17px; }
}

/* ============ BTN-GOLD (variante doré gradient permanent) ============ */
body .btn.btn-gold,
body a.btn-gold,
body button.btn-gold,
body .btn-primary.btn-gold,
body a.btn-primary.btn-gold {
    background-image: linear-gradient(135deg, #B8935A 0%, #D4B07A 55%, #8C6F40 100%) !important;
    background-color: transparent !important;
    color: #FBF8F1 !important;
    border-color: transparent !important;
    box-shadow: 0 14px 30px -14px rgba(184,147,90,.55);
}
body .btn.btn-gold:hover,
body a.btn-gold:hover,
body .btn-primary.btn-gold:hover {
    background-image: linear-gradient(135deg, #D4B07A 0%, #E6C58E 55%, #B8935A 100%) !important;
    background-color: transparent !important;
    color: var(--color-secondary) !important;
    border-color: transparent !important;
    transform: translateY(-1px);
    box-shadow: 0 18px 36px -14px rgba(184,147,90,.65);
}

/* ============ MN-SPARKLES (ornement étoiles doré) ============ */
.mn-sparkles {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 18px auto 22px;
    color: #B8935A;
    line-height: 1;
}
.mn-sparkle {
    display: inline-block;
    flex-shrink: 0;
    filter: drop-shadow(0 1px 3px rgba(184,147,90,.25));
    animation: mnSparkleShimmer 4s ease-in-out infinite;
}
.mn-sparkle--xs { width: 10px; height: 10px; opacity: .75; animation-delay: 0s; }
.mn-sparkle--sm { width: 14px; height: 14px; opacity: .88; animation-delay: .4s; }
.mn-sparkle--lg { width: 22px; height: 22px; opacity: 1; animation-delay: .8s; color: #D4B07A; }
.mn-sparkles .mn-sparkle:nth-child(4) { animation-delay: 1.2s; }
.mn-sparkles .mn-sparkle:nth-child(5) { animation-delay: 1.6s; }
@keyframes mnSparkleShimmer {
    0%, 100% { transform: scale(1) rotate(0deg); opacity: var(--_op, .9); }
    50% { transform: scale(1.12) rotate(15deg); opacity: 1; }
}
/* Sur fond sombre (hero, cta-band), éclaircir */
.mn-hero .mn-sparkles,
.mn-cta-band .mn-sparkles,
.mn-quote-band .mn-sparkles { color: #D4B07A; }
.mn-hero .mn-sparkle--lg,
.mn-cta-band .mn-sparkle--lg,
.mn-quote-band .mn-sparkle--lg { color: #E6C58E; }

/* ============ MN-LEGAL (mentions légales, confidentialité) ============ */
.mn-legal { padding: clamp(80px, 10vw, 140px) 24px; background: var(--color-bg); }
.mn-legal__inner { max-width: 780px; margin: 0 auto; }
.mn-legal__head { text-align: center; margin-bottom: 64px; }
.mn-legal__title { font-family: var(--font-heading); font-size: clamp(40px, 6vw, 64px); font-weight: 400; color: var(--color-secondary); letter-spacing: -0.02em; line-height: 1.05; margin: 16px 0 20px; }
.mn-legal__title em { font-style: italic; color: var(--color-primary); font-weight: 400; }
.mn-legal__intro { font-size: 16px; line-height: 1.7; color: var(--color-text-light); max-width: 60ch; margin: 0 auto; }
.mn-legal__body h2 { font-family: var(--font-heading); font-size: 24px; font-weight: 400; color: var(--color-secondary); margin: 48px 0 16px; padding-bottom: 10px; border-bottom: 1px solid rgba(184,147,90,.2); }
.mn-legal__body h3 { font-family: var(--font-heading); font-size: 18px; font-weight: 400; color: var(--color-secondary); margin: 28px 0 10px; font-style: italic; }
.mn-legal__body p { font-size: 15.5px; line-height: 1.75; color: var(--color-text); margin-bottom: 14px; }
.mn-legal__body p strong { color: var(--color-secondary); font-weight: 500; }
.mn-legal__body a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.mn-legal__body a:hover { color: var(--color-secondary); }
.mn-legal__footer-note { margin-top: 56px; text-align: center; font-size: 13px; color: var(--color-text-light); font-style: italic; }
@media (max-width: 640px) {
    .mn-legal__body h2 { font-size: 20px; margin: 36px 0 12px; }
    .mn-legal__body h3 { font-size: 16px; margin: 24px 0 8px; }
    .mn-legal__body p { font-size: 15px; }
}

/* ============ MN-AVIS (marquee Google reviews, two opposite rows, pause on hover) ============ */
.mn-avis {
    position: relative;
    padding: clamp(80px, 10vw, 140px) 0 clamp(80px, 10vw, 140px);
    background: var(--color-bg);
    overflow: hidden;
}
.mn-avis::before,
.mn-avis::after {
    content: "";
    position: absolute;
    top: 0;
    width: clamp(80px, 12vw, 180px);
    height: 100%;
    pointer-events: none;
    z-index: 3;
}
.mn-avis::before { left: 0; background: linear-gradient(90deg, var(--color-bg) 0%, rgba(251,248,241,0) 100%); }
.mn-avis::after  { right: 0; background: linear-gradient(270deg, var(--color-bg) 0%, rgba(251,248,241,0) 100%); }

.mn-avis__head {
    text-align: center;
    max-width: 780px;
    margin: 0 auto clamp(48px, 6vw, 80px);
    padding: 0 24px;
}
.mn-avis__title {
    font-family: var(--font-heading);
    font-size: clamp(36px, 5.5vw, 64px);
    font-weight: 400;
    color: var(--color-secondary);
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 16px 0 20px;
}
.mn-avis__title em { font-style: italic; color: var(--color-primary); font-weight: 400; }
.mn-avis__subtitle {
    font-size: 16px;
    color: var(--color-text-light);
    line-height: 1.6;
    margin: 0 auto;
    max-width: 54ch;
}

.mn-avis__rails {
    display: flex;
    flex-direction: column;
    gap: clamp(20px, 2.4vw, 32px);
}
.mn-avis__rail {
    display: flex;
    width: 100%;
    overflow: hidden;
    mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
}
.mn-avis__track {
    display: flex;
    flex-shrink: 0;
    gap: clamp(16px, 1.8vw, 28px);
    padding: 8px 0 16px;
    padding-right: clamp(16px, 1.8vw, 28px);
    will-change: transform;
}
.mn-avis__rail--ltr .mn-avis__track {
    animation: mnAvisScrollLeft var(--mn-avis-speed-top, 55s) linear infinite;
}
.mn-avis__rail--rtl .mn-avis__track {
    animation: mnAvisScrollRight var(--mn-avis-speed-bottom, 65s) linear infinite;
}
@keyframes mnAvisScrollLeft {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(-100%, 0, 0); }
}
@keyframes mnAvisScrollRight {
    from { transform: translate3d(-100%, 0, 0); }
    to   { transform: translate3d(0, 0, 0); }
}
.mn-avis__rails:hover .mn-avis__track,
.mn-avis__rails:focus-within .mn-avis__track {
    animation-play-state: paused;
}
@media (prefers-reduced-motion: reduce) {
    .mn-avis__rail--ltr .mn-avis__track,
    .mn-avis__rail--rtl .mn-avis__track { animation: none; }
}

.mn-avis-card {
    position: relative;
    flex: 0 0 clamp(300px, 34vw, 420px);
    background: #FFFFFF;
    border: 1px solid rgba(184, 147, 90, 0.18);
    border-radius: 22px;
    padding: 28px 30px 26px;
    box-shadow: 0 14px 40px -24px rgba(30, 36, 31, 0.25);
    display: flex;
    flex-direction: column;
    gap: 18px;
    transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s cubic-bezier(.2,.7,.2,1), border-color .3s ease;
    backdrop-filter: blur(6px);
}
.mn-avis-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, rgba(184,147,90,0.35), rgba(212,176,122,0) 55%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
            mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    pointer-events: none;
    opacity: .9;
}
.mn-avis-card:hover,
.mn-avis-card:focus-visible {
    transform: translateY(-4px);
    border-color: rgba(184, 147, 90, 0.4);
    box-shadow: 0 26px 60px -28px rgba(30, 36, 31, 0.35);
    outline: none;
}
.mn-avis-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.mn-avis-card__stars {
    display: inline-flex;
    gap: 3px;
    color: var(--color-primary);
}
.mn-avis-card__stars svg { width: 16px; height: 16px; }
.mn-avis-card__mark {
    font-family: var(--font-heading);
    font-size: 64px;
    line-height: .8;
    color: var(--color-primary);
    opacity: .25;
    transform: translateY(-6px);
    user-select: none;
}
.mn-avis-card__quote {
    font-family: var(--font-heading);
    font-size: 17px;
    line-height: 1.55;
    color: var(--color-secondary);
    font-style: italic;
    font-weight: 400;
    letter-spacing: -0.005em;
    margin: 0;
    quotes: "\201C" "\201D";
}
.mn-avis-card__quote::before { content: open-quote; margin-right: 2px; }
.mn-avis-card__quote::after  { content: close-quote; margin-left: 2px; }
.mn-avis-card__author {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid rgba(184, 147, 90, 0.15);
}
.mn-avis-card__avatar {
    width: 44px; height: 44px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading);
    font-size: 15px;
    letter-spacing: 0.02em;
    color: #FBF8F1;
    background: linear-gradient(135deg, #B8935A 0%, #D4B07A 55%, #8C6F40 100%);
    box-shadow: 0 6px 18px -8px rgba(184, 147, 90, 0.6);
    flex-shrink: 0;
}
.mn-avis-card__meta { min-width: 0; }
.mn-avis-card__name {
    font-family: var(--font-heading);
    font-size: 15.5px;
    color: var(--color-secondary);
    letter-spacing: -0.005em;
    font-weight: 500;
}
.mn-avis-card__src {
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-light);
    margin-top: 2px;
}
.mn-avis__cta {
    text-align: center;
    margin-top: clamp(40px, 5vw, 60px);
    padding: 0 24px;
}

@media (max-width: 768px) {
    .mn-avis-card { flex-basis: 82vw; padding: 24px 22px 22px; }
    .mn-avis-card__quote { font-size: 16px; }
    .mn-avis-card__mark { font-size: 48px; }
}

/* ============ MN-DEMEURE-SINGLE (luxe single page per demeure) ============ */
.mn-demeure-hero {
    position: relative;
    min-height: 72vh;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    color: #FBF8F1;
    isolation: isolate;
}
.mn-demeure-hero__media {
    position: absolute; inset: 0; z-index: -1;
}
.mn-demeure-hero__img,
.mn-demeure-hero__media img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.03);
}
.mn-demeure-hero__veil {
    position: absolute; inset: 0;
    background:
        linear-gradient(180deg, rgba(30,36,31,0.20) 0%, rgba(30,36,31,0.48) 50%, rgba(30,36,31,0.92) 100%),
        linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,0.25) 100%);
}
.mn-demeure-hero__inner {
    position: relative;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: clamp(40px, 6vw, 80px) 24px clamp(40px, 5vw, 64px);
}
.mn-demeure-hero__tag {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(184,147,90,0.95), rgba(140,111,64,0.95));
    color: #FBF8F1;
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 14px;
    box-shadow: 0 6px 18px -6px rgba(184,147,90,0.5);
}
.mn-demeure-hero__eyebrow {
    display: block;
    font-size: 12px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: rgba(251,248,241,0.78);
    margin-bottom: 10px;
}
.mn-demeure-hero__title {
    font-family: var(--font-heading);
    font-size: clamp(40px, 6vw, 78px);
    font-weight: 400;
    line-height: 1.02;
    letter-spacing: -0.02em;
    color: #FBF8F1;
    margin: 0 0 8px;
    max-width: 16ch;
    text-shadow: 0 4px 30px rgba(0,0,0,0.4);
}
.mn-demeure-hero__place {
    font-size: 16px;
    color: rgba(251,248,241,0.9);
    letter-spacing: 0.02em;
    margin: 16px 0 28px;
}
.mn-demeure-hero__place i { color: var(--color-accent); margin-right: 6px; }
.mn-demeure-hero__cta {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
body .mn-demeure-hero__cta .btn-outline,
body .mn-demeure-hero__cta a.btn-outline {
    background: linear-gradient(135deg, #C8A25F 0%, #B8935A 55%, #8C6F40 100%) !important;
    background-image: linear-gradient(135deg, #C8A25F 0%, #B8935A 55%, #8C6F40 100%) !important;
    background-color: #B8935A !important;
    color: #FBF8F1 !important;
    border: 1px solid transparent !important;
    box-shadow: 0 10px 30px -12px rgba(184,147,90,0.60);
    font-weight: 500;
    letter-spacing: 0.02em;
}
body .mn-demeure-hero__cta .btn-outline:hover,
body .mn-demeure-hero__cta a.btn-outline:hover {
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #A07F4E 100%) !important;
    background-image: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #A07F4E 100%) !important;
    background-color: #C8A25F !important;
    color: #FBF8F1 !important;
    border-color: transparent !important;
    transform: translateY(-2px);
    box-shadow: 0 16px 40px -14px rgba(184,147,90,0.75);
}

/* Demeure CTA band - secondary button visible on dark bg, styled gold */
body .mn-cta-band__actions .btn-outline,
body .mn-cta-band__actions a.btn-outline {
    background: linear-gradient(135deg, #C8A25F 0%, #B8935A 55%, #8C6F40 100%) !important;
    background-image: linear-gradient(135deg, #C8A25F 0%, #B8935A 55%, #8C6F40 100%) !important;
    background-color: #B8935A !important;
    color: #FBF8F1 !important;
    border: 1px solid transparent !important;
    box-shadow: 0 10px 30px -12px rgba(184,147,90,0.55);
}
body .mn-cta-band__actions .btn-outline:hover,
body .mn-cta-band__actions a.btn-outline:hover {
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #A07F4E 100%) !important;
    background-image: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #A07F4E 100%) !important;
    background-color: #C8A25F !important;
    color: #FBF8F1 !important;
    border-color: transparent !important;
    transform: translateY(-2px);
}

/* Homepage CTA (mn-cta dark band) - primary gold + secondary readable white */
body .mn-cta__actions .btn-primary,
body .mn-cta__actions a.btn-primary {
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #B8935A 100%) !important;
    background-image: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #B8935A 100%) !important;
    background-color: #C8A25F !important;
    color: #1E241F !important;
    border: 1px solid transparent !important;
    font-weight: 600;
    box-shadow: 0 10px 30px -12px rgba(184,147,90,0.65);
}
body .mn-cta__actions .btn-primary:hover,
body .mn-cta__actions a.btn-primary:hover {
    background: linear-gradient(135deg, #E6C58E 0%, #D4B075 50%, #C8A25F 100%) !important;
    background-image: linear-gradient(135deg, #E6C58E 0%, #D4B075 50%, #C8A25F 100%) !important;
    background-color: #D4B075 !important;
    color: #1E241F !important;
    transform: translateY(-2px);
    box-shadow: 0 16px 40px -14px rgba(184,147,90,0.80);
}
body .mn-cta__actions .btn-outline,
body .mn-cta__actions a.btn-outline {
    background: transparent !important;
    color: #FBF8F1 !important;
    border: 1px solid rgba(251,248,241,0.55) !important;
    font-weight: 500;
}
body .mn-cta__actions .btn-outline:hover,
body .mn-cta__actions a.btn-outline:hover {
    background: rgba(251,248,241,0.08) !important;
    color: #FBF8F1 !important;
    border-color: rgba(251,248,241,0.9) !important;
    transform: translateY(-2px);
}
.mn-demeure-hero .mn-sparkles { margin: 6px 0 8px; }

/* Facts strip */
.mn-demeure-facts {
    background: var(--color-secondary);
    color: #FBF8F1;
    padding: 28px 24px;
    border-bottom: 1px solid rgba(184,147,90,0.25);
}
.mn-demeure-facts__inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 20px 32px;
    align-items: center;
}
.mn-demeure-fact {
    display: flex;
    align-items: center;
    gap: 14px;
    color: #FBF8F1;
}
.mn-demeure-fact i {
    font-size: 22px;
    color: var(--color-primary);
    flex-shrink: 0;
}
.mn-demeure-fact__num {
    display: block;
    font-family: var(--font-heading);
    font-size: 22px;
    color: #FBF8F1;
    line-height: 1.1;
}
.mn-demeure-fact__label {
    display: block;
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(251,248,241,0.72);
    margin-top: 2px;
}
.mn-demeure-fact--price .mn-demeure-fact__num { color: var(--color-accent); }

/* Lede */
.mn-demeure-lede {
    padding: clamp(80px, 10vw, 130px) 24px;
    background: var(--color-bg);
    text-align: center;
}
.mn-demeure-lede__inner { max-width: 760px; margin: 0 auto; }
.mn-demeure-lede__title {
    font-family: var(--font-heading);
    font-size: clamp(36px, 5vw, 58px);
    font-weight: 400;
    color: var(--color-secondary);
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 16px 0 20px;
}
.mn-demeure-lede__title em { font-style: italic; color: var(--color-primary); font-weight: 400; }
.mn-demeure-lede__text {
    font-size: 17px;
    line-height: 1.75;
    color: var(--color-text);
    margin: 0 0 16px;
}
.mn-demeure-lede__text:last-child { margin-bottom: 0; }

/* Gallery */
.mn-demeure-gallery { padding: 0 24px clamp(60px, 8vw, 100px); background: var(--color-bg); }
.mn-demeure-gallery__head { max-width: 1200px; margin: 0 auto clamp(32px, 4vw, 56px); text-align: center; }
.mn-demeure-gallery__title {
    font-family: var(--font-heading);
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 400;
    color: var(--color-secondary);
    letter-spacing: -0.02em;
    margin: 12px 0 0;
}
.mn-demeure-gallery__title em { font-style: italic; color: var(--color-primary); }
.mn-demeure-gallery__grid {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}
.mn-demeure-gallery__item {
    margin: 0;
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 4/3;
    background: rgba(184,147,90,0.08);
}
.mn-demeure-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.mn-demeure-gallery__item:hover img { transform: scale(1.04); }
/* Uniform 4-column grid with 4/3 cells. No spans, no aspect-ratio mismatch -
   so any number of images (4, 6, 8, 10...) tiles perfectly without gaps.
   The .mn-demeure-gallery__item--N modulo classes are still emitted by PHP
   but no longer carry any layout rule, intentionally, to keep the grid robust. */
@media (max-width: 900px) {
    .mn-demeure-gallery__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* Blocks (details) */
.mn-demeure-blocks { padding: clamp(80px, 10vw, 130px) 24px; background: #FFFFFF; }
.mn-demeure-blocks__head { max-width: 780px; margin: 0 auto clamp(40px, 5vw, 64px); text-align: center; }
.mn-demeure-blocks__title {
    font-family: var(--font-heading);
    font-size: clamp(32px, 4.5vw, 52px);
    font-weight: 400;
    color: var(--color-secondary);
    letter-spacing: -0.02em;
    margin: 12px 0 0;
}
.mn-demeure-blocks__title em { font-style: italic; color: var(--color-primary); }
.mn-demeure-blocks__grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
}
.mn-demeure-block {
    background: var(--color-bg);
    border: 1px solid rgba(184,147,90,0.18);
    border-radius: 20px;
    padding: 28px 26px;
    transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
}
.mn-demeure-block__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(184,147,90,0.15);
}
.mn-demeure-block__icon {
    width: 42px; height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #B8935A 0%, #D4B07A 55%, #8C6F40 100%);
    color: #FBF8F1;
    box-shadow: 0 6px 18px -8px rgba(184,147,90,0.55);
    flex-shrink: 0;
}
.mn-demeure-block__icon i { font-size: 18px; }
.mn-demeure-block__title {
    font-family: var(--font-heading);
    font-size: 19px;
    font-weight: 500;
    color: var(--color-secondary);
    letter-spacing: -0.01em;
    margin: 0;
}
.mn-demeure-block__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.mn-demeure-block__list li {
    position: relative;
    padding-left: 22px;
    font-size: 15px;
    line-height: 1.55;
    color: var(--color-text);
}
.mn-demeure-block__list li::before {
    content: "";
    position: absolute;
    top: 9px; left: 0;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
}

/* Services */
.mn-demeure-services { padding: clamp(80px, 10vw, 130px) 24px; background: var(--color-bg); }
.mn-demeure-services__inner { max-width: 980px; margin: 0 auto; text-align: center; }
.mn-demeure-services__title {
    font-family: var(--font-heading);
    font-size: clamp(32px, 4.5vw, 52px);
    font-weight: 400;
    color: var(--color-secondary);
    letter-spacing: -0.02em;
    margin: 12px 0 20px;
}
.mn-demeure-services__title em { font-style: italic; color: var(--color-primary); }
.mn-demeure-services__list {
    list-style: none;
    padding: 0;
    margin: 40px auto 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px 24px;
    text-align: left;
    max-width: 820px;
}
.mn-demeure-services__list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--color-text);
}
.mn-demeure-services__list li span {
    color: var(--color-primary);
    font-size: 13px;
    margin-top: 3px;
}

/* Booking iframe */
.mn-demeure-booking {
    padding: clamp(80px, 10vw, 130px) 24px clamp(60px, 7vw, 100px);
    background: #FFFFFF;
}
.mn-demeure-booking__head { max-width: 780px; margin: 0 auto 40px; text-align: center; }
.mn-demeure-booking__title {
    font-family: var(--font-heading);
    font-size: clamp(32px, 4.5vw, 52px);
    font-weight: 400;
    color: var(--color-secondary);
    letter-spacing: -0.02em;
    margin: 12px 0 18px;
}
.mn-demeure-booking__title em { font-style: italic; color: var(--color-primary); }
.mn-demeure-booking__intro {
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text-light);
    margin: 0;
}
.mn-demeure-booking__iframe-wrap {
    max-width: 1200px;
    margin: 0 auto;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 30px 70px -30px rgba(30,36,31,0.25);
    background: var(--color-bg);
}
.mn-demeure-booking__iframe-wrap iframe { display: block; border: 0; width: 100%; }

/* Related demeures */
.mn-demeure-related { padding: clamp(80px, 10vw, 130px) 24px; background: var(--color-bg); }
.mn-demeure-related__head { max-width: 1200px; margin: 0 auto clamp(40px, 5vw, 56px); text-align: center; }
.mn-demeure-related__title {
    font-family: var(--font-heading);
    font-size: clamp(32px, 4.5vw, 52px);
    font-weight: 400;
    color: var(--color-secondary);
    letter-spacing: -0.02em;
    margin: 12px 0 0;
}
.mn-demeure-related__title em { font-style: italic; color: var(--color-primary); }
.mn-demeure-related__grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}
.mn-demeure-card--link {
    display: flex;
    flex-direction: column;
    gap: 14px;
    color: var(--color-secondary);
    text-decoration: none;
    transition: transform .4s cubic-bezier(.2,.7,.2,1);
}
a.mn-demeure-card--link:hover { transform: translateY(-4px); }
.mn-demeure-card--link .mn-demeure-card__media {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    aspect-ratio: 4/3;
    background: rgba(184,147,90,0.08);
}
.mn-demeure-card--link .mn-demeure-card__media img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform .7s ease;
}
.mn-demeure-card--link:hover .mn-demeure-card__media img { transform: scale(1.04); }
.mn-demeure-card__tag {
    position: absolute;
    top: 14px; left: 14px;
    padding: 5px 12px;
    border-radius: 999px;
    background: rgba(30,36,31,0.78);
    color: #FBF8F1;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    backdrop-filter: blur(6px);
}
.mn-demeure-card--link .mn-demeure-card__title {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 400;
    letter-spacing: -0.01em;
    color: var(--color-secondary);
    margin: 4px 0 0;
}
.mn-demeure-card--link .mn-demeure-card__meta {
    font-size: 14px;
    color: var(--color-text-light);
}

@media (max-width: 640px) {
    .mn-demeure-hero { min-height: 64vh; }
    .mn-demeure-hero__title { font-size: 40px; }
    .mn-demeure-facts__inner { grid-template-columns: repeat(2, 1fr); gap: 18px 16px; }
    .mn-demeure-fact__num { font-size: 18px; }
    .mn-demeure-block { padding: 24px 22px; }
}

/* ============================================================
   FOOTER - Ma Normandie : slim, modern, logo lisible
   ============================================================ */
body #site-footer {
    background: #1E241F !important;
    color: rgba(251,248,241,0.72) !important;
    padding: 48px 0 0 !important;
    position: relative;
    border-top: 1px solid rgba(184,147,90,0.22);
}
body #site-footer::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, rgba(184,147,90,0.55) 35%, rgba(184,147,90,0.55) 65%, transparent 100%);
}
body #site-footer .footer-container {
    max-width: 1280px !important;
    margin: 0 auto !important;
    padding: 0 40px !important;
    display: grid !important;
    grid-template-columns: 1.4fr 1fr 1fr !important;
    gap: 56px !important;
    align-items: start !important;
}
body #site-footer .footer-brand {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
body .footer-brand .footer-logo {
    display: inline-flex !important;
    align-items: center;
    margin: 0 !important;
    padding: 0 !important;
}
body #site-footer .footer-brand .footer-logo img,
body #site-footer .footer-brand .footer-logo .custom-logo,
body #site-footer .footer-brand .footer-logo .footer-custom-logo,
body #site-footer .footer-brand .custom-logo,
body #site-footer .footer-custom-logo {
    height: 160px !important;
    max-height: 160px !important;
    width: auto !important;
    max-width: 320px !important;
    object-fit: contain !important;
    margin: 0 !important;
    display: block !important;
    filter: none !important;
}
body #site-footer .footer-brand .footer-tagline {
    font-family: var(--font-heading) !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    font-style: italic !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: #E6C58E !important;
    margin: 14px 0 0 !important;
    padding: 0 0 0 2px !important;
    line-height: 1.2 !important;
}
body .footer-brand .footer-description {
    font-size: 14px !important;
    line-height: 1.65 !important;
    margin: 10px 0 0 !important;
    max-width: 380px !important;
    color: rgba(251,248,241,0.65) !important;
}
body #site-footer .footer-social {
    display: flex !important;
    gap: 10px !important;
    margin-top: 14px !important;
    flex-wrap: wrap;
}
body #site-footer .footer-social a {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    background: rgba(251,248,241,0.06) !important;
    border: 1px solid rgba(251,248,241,0.10) !important;
    color: rgba(251,248,241,0.75) !important;
    font-size: 14px !important;
    padding: 0 !important;
    transition: transform .3s, background-color .3s, border-color .3s, color .3s;
}
body #site-footer .footer-social a:hover {
    background: rgba(184,147,90,0.18) !important;
    border-color: rgba(184,147,90,0.55) !important;
    color: #E6C58E !important;
    transform: translateY(-2px);
}
body #site-footer .footer-links {
    display: contents !important;
}
body #site-footer .footer-nav,
body #site-footer .footer-contact {
    display: flex;
    flex-direction: column;
    gap: 0;
}
body #site-footer h3 {
    color: #C8A25F !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase;
    margin: 0 0 18px !important;
}
body #site-footer .footer-menu {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
body #site-footer .footer-menu li {
    margin: 0 !important;
}
body #site-footer .footer-menu li a {
    display: inline-block !important;
    padding: 3px 0 !important;
    color: rgba(251,248,241,0.72) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    transition: color .25s, transform .25s;
}
body #site-footer .footer-menu li a:hover {
    color: #E6C58E !important;
    transform: translateX(3px);
}
body #site-footer .footer-contact a,
body #site-footer .footer-contact p {
    display: block !important;
    margin: 0 0 6px !important;
    color: rgba(251,248,241,0.72) !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    transition: color .25s;
}
body #site-footer .footer-contact a:hover {
    color: #E6C58E !important;
}
body #site-footer .footer-bottom {
    max-width: 1280px !important;
    margin: 40px auto 0 !important;
    padding: 18px 40px !important;
    border-top: 1px solid rgba(251,248,241,0.08) !important;
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    font-size: 13px !important;
    color: rgba(251,248,241,0.48) !important;
}
body #site-footer .footer-bottom p {
    margin: 0 !important;
    font-size: 13px !important;
    color: rgba(251,248,241,0.48) !important;
}
body #site-footer .footer-bottom a {
    color: #C8A25F !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(200,162,95,0.35);
    padding-bottom: 1px;
    transition: color .25s, border-color .25s;
}
body #site-footer .footer-bottom a:hover {
    color: #E6C58E !important;
    border-color: #E6C58E;
}

@media (max-width: 900px) {
    body #site-footer .footer-container { grid-template-columns: 1fr !important; gap: 36px !important; padding: 0 24px !important; }
    body .footer-brand .footer-logo img,
    body .footer-brand .footer-logo .custom-logo { height: 60px !important; }
    body #site-footer .footer-bottom { padding: 16px 24px !important; flex-direction: column; text-align: center; }
}

/* ============================================================
   NUCLEAR BUTTON HOVER OVERRIDE — 2026-04-24 (Lucile)
   Ferme définitivement la fuite de gradient orange/vert et garantit
   un hover doré avec texte BLANC lisible sur TOUS les boutons, quel
   que soit le contexte. Règle : hover = dégradé thème + texte blanc.
   ============================================================ */
:root {
    --mn-btn-hover-bg: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #8C6F40 100%);
    --mn-btn-hover-fg: #FFFFFF;
    --mn-btn-hover-shadow: 0 18px 36px -16px rgba(140,111,64,.55);
}

/* Kill the starter's orange-to-teal ::before overlay on .btn-primary which
   bleeds through on hover even when our background is set. */
html body .btn-primary::before,
html body .btn-primary:hover::before,
html body a.btn-primary::before,
html body a.btn-primary:hover::before,
html body button.btn-primary::before,
html body button.btn-primary:hover::before {
    display: none !important;
    background: none !important;
    background-image: none !important;
    opacity: 0 !important;
    content: none !important;
}

/* Catch-all : tout bouton .btn ou dérivé, dans n'importe quel conteneur */
html body .btn:hover,
html body .btn:focus-visible,
html body a.btn:hover,
html body button.btn:hover,
html body input[type="submit"]:hover,
html body .btn-primary:hover,
html body a.btn-primary:hover,
html body button.btn-primary:hover,
html body .btn-secondary:hover,
html body a.btn-secondary:hover,
html body button.btn-secondary:hover,
html body .btn-outline:hover,
html body a.btn-outline:hover,
html body button.btn-outline:hover,
html body .btn-gold:hover,
html body a.btn-gold:hover,
html body .btn-sm:hover,
html body a.btn-sm:hover,
html body .wpcf7 input[type="submit"]:hover,
html body .cta-banner .btn-primary:hover,
html body .hero-buttons .btn-primary:hover,
html body .hero-buttons .btn-secondary:hover,
html body .mn-hero__cta .btn:hover,
html body .mn-hero__cta a.btn:hover,
html body .mn-hero__cta .btn-primary:hover,
html body .mn-hero__cta .btn-outline:hover,
html body .mn-hero__cta .btn-secondary:hover,
html body .mn-page-hero .btn:hover,
html body .mn-cta__actions .btn:hover,
html body .mn-cta__actions .btn-primary:hover,
html body .mn-cta__actions .btn-outline:hover,
html body .mn-cta-band__actions .btn:hover,
html body .mn-cta-band__actions .btn-primary:hover,
html body .mn-cta-band__actions .btn-outline:hover,
html body .mn-cta-band__ctas .btn:hover,
html body .mn-cta-band__ctas .btn-primary:hover,
html body .mn-cta-band__ctas .btn-outline:hover,
html body .mn-cta-band__ctas .btn-secondary:hover,
html body .mn-demeure-hero__cta .btn:hover,
html body .mn-demeure-hero__cta .btn-outline:hover,
html body .mn-demeure-hero__cta .btn-primary:hover,
html body .mn-avis__cta .btn:hover,
html body .mn-nav__cta .btn:hover,
html body .mn-nav__cta .btn-primary:hover,
html body .mn-nav__cta .btn-sm:hover,
html body .mn-featurette .btn:hover,
html body .mn-featurette__body .btn:hover,
html body .mn-featurette__content .btn:hover,
html body .mn-lede .btn:hover {
    background: var(--mn-btn-hover-bg) !important;
    background-image: var(--mn-btn-hover-bg) !important;
    background-color: transparent !important;
    background-clip: border-box !important;
    -webkit-background-clip: border-box !important;
    color: var(--mn-btn-hover-fg) !important;
    -webkit-text-fill-color: var(--mn-btn-hover-fg) !important;
    border-color: transparent !important;
    box-shadow: var(--mn-btn-hover-shadow) !important;
    transform: translateY(-2px);
    text-decoration: none !important;
}

/* Pseudo-elements (::after overlay blur hérités du starter) : kill pour éviter qu'ils masquent le texte */
html body .btn:hover::after,
html body .btn-primary:hover::after,
html body .btn-secondary:hover::after,
html body .btn-outline:hover::after,
html body .btn-gold:hover::after {
    opacity: 0 !important;
    background: none !important;
}

/* Sécurité : le texte reste visible au focus clavier aussi */
html body .btn:focus-visible,
html body .btn-primary:focus-visible,
html body .btn-outline:focus-visible,
html body .btn-secondary:focus-visible {
    background: var(--mn-btn-hover-bg) !important;
    color: var(--mn-btn-hover-fg) !important;
    outline: 2px solid #C8A25F;
    outline-offset: 3px;
}

/* ===========================================
   Superhote V2 search hero (chips + iframe)
   =========================================== */
.mn-sh-iframe-wrap { background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 24px 60px -36px rgba(30,36,31,.22); border: 1px solid var(--color-border); }
.mn-sh-iframe-wrap iframe.mn-sh-iframe { display: block; width: 100%; border: 0; min-height: 1200px; }

.mn-search-hero { max-width: 1240px; margin: 0 auto; padding: 80px 32px 100px; }
.mn-search-hero__head { text-align: center; max-width: 780px; margin: 0 auto 36px; }
.mn-search-hero__title { font-family: var(--font-heading); font-size: clamp(32px, 4.2vw, 52px); font-weight: 400; letter-spacing: -0.02em; color: var(--color-secondary); line-height: 1.08; margin: 10px 0 14px; text-wrap: balance; }
.mn-search-hero__title em { font-style: italic; color: var(--color-primary-dark); font-weight: 400; }
.mn-search-hero__sub { font-size: 16.5px; line-height: 1.65; color: var(--color-text-light); max-width: 56ch; margin: 0 auto; text-wrap: pretty; }

.mn-search-hero__chip-section {
    margin: 56px auto 0;
    max-width: 1100px;
    text-align: center;
    padding: 32px 24px 0;
    border-top: 1px solid var(--color-border);
}
.mn-search-hero__chip-lead {
    display: inline-block;
    margin-bottom: 18px;
    font-size: 12px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    font-weight: 600;
}
.mn-search-hero__chips {
    display: flex; flex-wrap: wrap; gap: 12px;
    justify-content: center;
    margin: 0 auto;
    max-width: 980px;
}
.mn-search-chip {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 12px 20px;
    background: #fff;
    color: var(--color-secondary);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-family: var(--font-body);
    font-size: 14.5px;
    font-weight: 500;
    letter-spacing: 0.005em;
    text-decoration: none;
    transition: all .25s ease;
    box-shadow: 0 2px 6px -3px rgba(30,36,31,.08);
    white-space: nowrap;
}
.mn-search-chip i {
    font-size: 14px;
    color: var(--color-primary);
    transition: color .25s ease;
}
.mn-search-chip:hover {
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #8C6F40 100%);
    color: #FBF8F1;
    border-color: transparent;
    box-shadow: 0 12px 28px -14px rgba(30,36,31,.45);
    transform: translateY(-2px);
    text-decoration: none;
}
.mn-search-chip:hover i { color: #FBF8F1; }

.mn-search-hero__engine {
    margin-top: 16px;
}
.mn-search-hero__grid {
    margin-top: 8px;
}
.mn-search-hero__grid .mn-rentals-section {
    padding-top: 0;
    padding-bottom: 0;
}
.mn-search-hero__grid .mn-rentals-section__head {
    margin-bottom: 32px;
}
.mn-search-hero__grid-more {
    text-align: center;
    margin-top: 36px;
}

@media (max-width: 768px) {
    .mn-search-hero { padding: 56px 18px 72px; }
    .mn-search-hero__chips { gap: 8px; margin-bottom: 28px; }
    .mn-search-chip { padding: 10px 16px; font-size: 13.5px; }
    .mn-search-chip i { font-size: 13px; }
}

/* ===========================================
   Superhote V2 - branded rentals grid + modal
   =========================================== */
.mn-rentals-section { max-width: 1320px; margin: 0 auto; padding: 80px 32px 100px; }
.mn-rentals-section__head { text-align: center; max-width: 780px; margin: 0 auto 48px; }
.mn-rentals-section__title { font-family: var(--font-heading); font-size: clamp(32px, 4.2vw, 52px); font-weight: 400; letter-spacing: -0.02em; color: var(--color-secondary); line-height: 1.08; margin: 10px 0 14px; text-wrap: balance; }
.mn-rentals-section__title em { font-style: italic; color: var(--color-primary-dark); font-weight: 400; }
.mn-rentals-section__sub { font-size: 16.5px; line-height: 1.65; color: var(--color-text-light); max-width: 56ch; margin: 0 auto; text-wrap: pretty; }
.mn-rentals-section__count { margin: 22px 0 0; font-size: 14.5px; color: var(--color-text-muted); letter-spacing: 0.01em; }
.mn-rentals-section__count strong { color: var(--color-primary-dark); }

.mn-rentals-empty { text-align: center; max-width: 60ch; margin: 0 auto; padding: 32px 24px; color: var(--color-text-light); font-style: italic; }

.mn-rentals-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
    gap: 32px;
}
.mn-rentals-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.mn-rentals-grid--cols-3 { grid-template-columns: repeat(3, 1fr); max-width: 1240px; margin: 0 auto; }
.mn-rentals-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }

.mn-rental-card {
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid var(--color-border);
    box-shadow: 0 16px 36px -28px rgba(30,36,31,.18);
    display: flex;
    flex-direction: column;
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.mn-rental-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 28px 48px -24px rgba(30,36,31,.28);
    border-color: rgba(184,147,90,.45);
}

.mn-rental-card__media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
    background: var(--color-bg, #F9F5EC);
    border: 0;
    padding: 0;
    cursor: pointer;
}
.mn-rental-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s ease;
}
.mn-rental-card__media:hover img { transform: scale(1.04); }
.mn-rental-card__tag {
    position: absolute;
    top: 14px; left: 14px;
    padding: 6px 12px;
    background: rgba(255,255,255,.94);
    color: var(--color-secondary);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-radius: 999px;
    backdrop-filter: blur(4px);
}

.mn-rental-card__body {
    padding: 22px 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}
.mn-rental-card__location {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    font-weight: 600;
}
.mn-rental-card__location i { font-size: 11px; }

.mn-rental-card__title {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.2;
    color: var(--color-secondary);
    margin: 4px 0 0;
    letter-spacing: -0.01em;
}

.mn-rental-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}
.mn-rental-card__tags span {
    font-size: 12px;
    color: var(--color-text-light);
    background: var(--color-primary-light);
    padding: 4px 10px;
    border-radius: 999px;
    letter-spacing: 0.005em;
}

.mn-rental-card__specs {
    display: flex;
    gap: 18px;
    margin-top: 6px;
    font-size: 13.5px;
    color: var(--color-text-light);
}
.mn-rental-card__specs i { color: var(--color-primary); margin-right: 4px; }

.mn-rental-card__footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--color-border);
}
.mn-rental-card__price {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    color: var(--color-text);
    font-size: 14px;
}
.mn-rental-card__price span {
    font-size: 11px;
    color: var(--color-text-muted);
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin-bottom: 2px;
}
.mn-rental-card__price strong {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 400;
    color: var(--color-secondary);
}
.mn-rental-card__price--empty { font-style: italic; color: var(--color-text-muted); }

.mn-rental-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    border-radius: 999px;
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-body);
    font-size: 13.5px;
    font-weight: 500;
    letter-spacing: 0.005em;
    border: 0;
    cursor: pointer;
    transition: all .25s ease;
}
.mn-rental-card__cta i { font-size: 11px; transition: transform .25s ease; }
.mn-rental-card__cta:hover {
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #8C6F40 100%);
    color: #FBF8F1;
    box-shadow: 0 12px 24px -12px rgba(30,36,31,.45);
}
.mn-rental-card__cta:hover i { transform: translateX(2px); }

@media (max-width: 768px) {
    .mn-rentals-section { padding: 56px 18px 72px; }
    .mn-rentals-grid, .mn-rentals-grid--cols-2, .mn-rentals-grid--cols-3, .mn-rentals-grid--cols-4 {
        grid-template-columns: 1fr;
        gap: 22px;
    }
    .mn-rental-card__title { font-size: 20px; }
}

/* Modal */
.mn-rental-modal {
    position: fixed; inset: 0;
    z-index: 9999;
    display: none;
    opacity: 0;
    transition: opacity .25s ease;
}
.mn-rental-modal.is-open { display: block; opacity: 1; }
.mn-rental-modal__backdrop {
    position: absolute; inset: 0;
    background: rgba(20, 24, 21, .82);
    backdrop-filter: blur(6px);
    cursor: pointer;
}
.mn-rental-modal__panel {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: min(1100px, 96vw);
    height: min(92vh, 1100px);
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 40px 80px -30px rgba(0,0,0,.6);
}
.mn-rental-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    border-bottom: 1px solid var(--color-border);
    background: #fff;
    flex-shrink: 0;
}
.mn-rental-modal__title {
    font-family: var(--font-heading);
    font-size: 18px;
    color: var(--color-secondary);
    font-weight: 400;
}
.mn-rental-modal__close {
    width: 36px; height: 36px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    background: #fff;
    color: var(--color-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all .2s ease;
}
.mn-rental-modal__close:hover {
    background: var(--color-secondary);
    color: #fff;
    border-color: var(--color-secondary);
}
.mn-rental-modal__body {
    flex: 1;
    overflow: hidden;
    background: #f6f4ed;
}
.mn-rental-modal__body iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
@media (max-width: 768px) {
    .mn-rental-modal__panel {
        width: 100vw;
        height: 100vh;
        border-radius: 0;
    }
}

/* ===========================================
   Compact search bar under page hero
   =========================================== */
.mn-searchbar {
    position: relative;
    z-index: 5;
    margin: -36px auto 0;
    max-width: 1240px;
    padding: 0 24px;
}
.mn-searchbar__inner {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 22px;
    box-shadow: 0 28px 60px -36px rgba(30,36,31,.32);
    padding: 16px 22px;
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}
.mn-searchbar__lead {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-body);
    font-size: 12.5px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    font-weight: 600;
    flex-shrink: 0;
    padding-right: 12px;
    border-right: 1px solid var(--color-border);
}
.mn-searchbar__lead i { font-size: 12px; color: var(--color-primary); }
.mn-searchbar__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.mn-searchbar__chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px;
    background: var(--color-primary-light);
    color: var(--color-secondary);
    border-radius: 999px;
    font-family: var(--font-body);
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none;
    transition: all .25s ease;
    white-space: nowrap;
    border: 1px solid transparent;
}
.mn-searchbar__chip i {
    font-size: 12.5px;
    color: var(--color-primary);
    transition: color .25s ease;
}
.mn-searchbar__chip:hover {
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #8C6F40 100%);
    color: #FBF8F1;
    border-color: transparent;
    box-shadow: 0 10px 22px -12px rgba(30,36,31,.45);
    transform: translateY(-1px);
    text-decoration: none;
}
.mn-searchbar__chip:hover i { color: #FBF8F1; }
.mn-searchbar__chip.is-active {
    background: var(--color-secondary);
    color: #FBF8F1;
    border-color: var(--color-secondary);
}
.mn-searchbar__chip.is-active i { color: var(--color-primary); }
.mn-searchbar__dates {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 18px;
    border-radius: 999px;
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    border: 0;
    cursor: pointer;
    transition: all .25s ease;
    flex-shrink: 0;
    margin-left: auto;
}
.mn-searchbar__dates i { font-size: 13px; }
.mn-searchbar__dates:hover {
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #8C6F40 100%);
    color: #FBF8F1;
    box-shadow: 0 14px 28px -14px rgba(30,36,31,.45);
}

@media (max-width: 1024px) {
    .mn-searchbar { margin-top: -28px; padding: 0 18px; }
    .mn-searchbar__inner { padding: 14px 18px; gap: 14px; }
    .mn-searchbar__lead { padding-right: 8px; font-size: 11.5px; letter-spacing: 0.16em; }
}
@media (max-width: 768px) {
    .mn-searchbar { margin-top: -20px; }
    .mn-searchbar__inner { padding: 16px; gap: 12px; flex-direction: column; align-items: stretch; }
    .mn-searchbar__lead { border-right: 0; border-bottom: 1px solid var(--color-border); padding: 0 0 10px; justify-content: center; }
    .mn-searchbar__chips { justify-content: center; }
    .mn-searchbar__chip { padding: 7px 12px; font-size: 13px; }
    .mn-searchbar__dates { width: 100%; justify-content: center; padding: 12px; margin-left: 0; }
}

/* ===========================================
   Navbar search (Cmd+K style overlay)
   =========================================== */
.mn-nav__search-toggle {
    width: 38px; height: 38px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    background: #fff;
    color: var(--color-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all .25s ease;
    margin-right: 8px;
    flex-shrink: 0;
}
.mn-nav__search-toggle i { font-size: 14px; }
.mn-nav__search-toggle:hover {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.mn-nav-search {
    position: fixed; inset: 0;
    z-index: 9998;
    display: none;
    opacity: 0;
    transition: opacity .2s ease;
}
.mn-nav-search.is-open { display: block; opacity: 1; }
.mn-nav-search__backdrop {
    position: absolute; inset: 0;
    background: rgba(20, 24, 21, .68);
    backdrop-filter: blur(6px);
    cursor: pointer;
}
.mn-nav-search__panel {
    position: relative;
    margin: 12vh auto 0;
    width: min(640px, 92vw);
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 32px 70px -22px rgba(0,0,0,.55);
}
.mn-nav-search__form {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--color-border);
}
.mn-nav-search__icon {
    font-size: 16px;
    color: var(--color-primary);
    flex-shrink: 0;
}
.mn-nav-search__input {
    flex: 1;
    border: 0;
    background: transparent;
    outline: 0;
    font-size: 16px;
    font-family: var(--font-body);
    color: var(--color-secondary);
    padding: 4px 0;
}
.mn-nav-search__input::placeholder { color: var(--color-text-muted); }
.mn-nav-search__close {
    width: 32px; height: 32px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    background: #fff;
    color: var(--color-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all .2s ease;
}
.mn-nav-search__close:hover { background: var(--color-secondary); color: #fff; }

.mn-nav-search__suggest {
    padding: 14px 18px 8px;
    border-bottom: 1px solid var(--color-border);
}
.mn-nav-search__lead {
    display: block;
    margin-bottom: 10px;
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    font-weight: 600;
}
.mn-nav-search__chips {
    display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 8px;
}
.mn-nav-search__chip {
    display: inline-flex;
    padding: 6px 12px;
    background: var(--color-primary-light);
    color: var(--color-secondary);
    border-radius: 999px;
    font-size: 12.5px;
    text-decoration: none;
    transition: all .2s ease;
}
.mn-nav-search__chip:hover {
    background: var(--color-primary);
    color: #fff;
    text-decoration: none;
}

.mn-nav-search__results {
    list-style: none;
    margin: 0;
    padding: 8px 0;
    max-height: 50vh;
    overflow-y: auto;
}
.mn-nav-search__results li { padding: 0 8px; }
.mn-nav-search__result {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 12px;
    width: 100%;
    background: transparent;
    border: 0;
    border-radius: 12px;
    cursor: pointer;
    text-align: left;
    color: var(--color-secondary);
    transition: background .15s ease;
}
.mn-nav-search__result:hover { background: var(--color-primary-light); }
.mn-nav-search__thumb {
    width: 56px; height: 42px;
    border-radius: 8px;
    background: #f0e9d8 center/cover no-repeat;
    flex-shrink: 0;
}
.mn-nav-search__thumb--empty { background: var(--color-primary-light); }
.mn-nav-search__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}
.mn-nav-search__title {
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 400;
    color: var(--color-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mn-nav-search__meta {
    font-size: 12.5px;
    color: var(--color-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mn-nav-search__empty {
    padding: 18px 22px;
    color: var(--color-text-muted);
    font-size: 14px;
    margin: 0;
    text-align: center;
}

@media (max-width: 768px) {
    .mn-nav-search__panel { margin-top: 8vh; }
    .mn-nav__search-toggle { margin-right: 4px; }
}

/* ============================================================
   RENTALS MAP - interactive Leaflet map + synced side list
   ============================================================ */
.mn-rentals-map {
    max-width: 1320px;
    margin: 0 auto;
    padding: clamp(64px, 8vw, 120px) 32px;
}
.mn-rentals-map__head {
    text-align: center;
    max-width: 780px;
    margin: 0 auto 48px;
}
.mn-rentals-map__title {
    font-family: var(--font-heading);
    font-size: clamp(32px, 4.2vw, 52px);
    font-weight: 400;
    letter-spacing: -0.02em;
    color: var(--color-secondary);
    line-height: 1.08;
    margin: 10px 0 14px;
    text-wrap: balance;
}
.mn-rentals-map__title em {
    font-style: italic;
    color: var(--color-primary-dark);
    font-weight: 400;
}
.mn-rentals-map__sub {
    font-size: 16.5px;
    line-height: 1.65;
    color: var(--color-text-light);
    max-width: 60ch;
    margin: 0 auto;
    text-wrap: pretty;
}
.mn-rentals-map__count {
    margin: 22px 0 0;
    font-size: 14.5px;
    color: var(--color-text-muted);
}
.mn-rentals-map__count strong {
    color: var(--color-primary-dark);
}
.mn-rentals-map__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}
.mn-rentals-map__map-wrap {
    position: sticky;
    top: 96px;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 30px 60px -28px rgba(30, 36, 31, 0.32);
    background: var(--color-bg-alt, #F3ECDC);
    height: calc(100vh - 140px);
    max-height: 760px;
    min-height: 480px;
}
.mn-rentals-map__map {
    width: 100%;
    height: 100%;
    background: #e7e2d5;
}
.mn-rentals-map__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-height: calc(100vh - 140px);
    overflow-y: auto;
    padding: 4px 12px 4px 4px;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: var(--color-primary) transparent;
}
.mn-rentals-map__list::-webkit-scrollbar {
    width: 8px;
}
.mn-rentals-map__list::-webkit-scrollbar-thumb {
    background: var(--color-primary);
    border-radius: 6px;
}

/* Side list cards (compact horizontal) */
.mn-map-card {
    display: grid;
    grid-template-columns: 132px 1fr;
    gap: 14px;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 8px 24px -16px rgba(30, 36, 31, 0.20);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    border: 1px solid transparent;
    cursor: pointer;
    flex-shrink: 0;
}
.mn-map-card:hover,
.mn-map-card.is-active {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -22px rgba(30, 36, 31, 0.32);
    border-color: var(--color-primary);
}
.mn-map-card__media {
    appearance: none;
    display: block;
    border: none;
    padding: 0;
    margin: 0;
    background: var(--color-bg-alt, #F3ECDC);
    cursor: pointer;
    width: 132px;
    height: 132px;
    min-height: 132px;
    overflow: hidden;
    position: relative;
    align-self: stretch;
}
.mn-map-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.mn-map-card__media:hover img {
    transform: scale(1.05);
}
.mn-map-card__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 14px 12px 0;
    min-width: 0;
}
.mn-map-card__city {
    font-size: 11.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    font-weight: 600;
}
.mn-map-card__city i {
    font-size: 10.5px;
    margin-right: 4px;
}
.mn-map-card__title {
    font-family: var(--font-heading);
    font-size: 17px;
    line-height: 1.2;
    font-weight: 400;
    color: var(--color-secondary);
    margin: 0;
    text-wrap: balance;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.mn-map-card__specs {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 13px;
    color: var(--color-text-light);
}
.mn-map-card__specs i {
    color: var(--color-primary-dark);
    margin-right: 3px;
    font-size: 12px;
}
.mn-map-card__price strong {
    color: var(--color-primary-dark);
    font-weight: 600;
}
.mn-map-card__cta {
    appearance: none;
    border: 1px solid var(--color-primary);
    background: transparent;
    color: var(--color-primary-dark);
    padding: 8px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.01em;
    cursor: pointer;
    margin-top: 6px;
    align-self: flex-start;
    transition: background .25s ease, color .25s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.mn-map-card__cta:hover {
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #8C6F40 100%);
    color: #FBF8F1;
    border-color: transparent;
}

/* Custom Leaflet pin (gold house icon) */
.mn-pin-wrap {
    background: transparent;
    border: none;
}
.mn-pin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50% 50% 50% 0;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    color: #FBF8F1;
    box-shadow: 0 4px 12px -4px rgba(30, 36, 31, 0.5);
    transform: rotate(-45deg);
    transition: transform .2s ease, filter .2s ease;
}
.mn-pin i {
    transform: rotate(45deg);
    font-size: 14px;
}
.mn-pin-wrap.is-hover .mn-pin,
.mn-pin-wrap:hover .mn-pin {
    transform: rotate(-45deg) scale(1.18);
    filter: brightness(1.05);
}

/* Leaflet popup branded restyle */
.leaflet-popup.mn-pop .leaflet-popup-content-wrapper {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 18px 36px -16px rgba(30, 36, 31, 0.4);
    padding: 0;
}
.leaflet-popup.mn-pop .leaflet-popup-content {
    margin: 0;
    width: 240px !important;
    font-family: inherit;
}
.leaflet-popup.mn-pop .leaflet-popup-tip {
    background: #fff;
}
.mn-pop__img {
    width: 100%;
    height: 130px;
    overflow: hidden;
}
.mn-pop__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.mn-pop__body {
    padding: 12px 14px 14px;
}
.mn-pop__city {
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    font-weight: 600;
    margin-bottom: 4px;
}
.mn-pop__title {
    font-family: var(--font-heading);
    font-size: 16px;
    color: var(--color-secondary);
    line-height: 1.18;
    margin-bottom: 6px;
    text-wrap: balance;
}
.mn-pop__price {
    font-size: 13px;
    color: var(--color-text-light);
    margin-bottom: 10px;
}
.mn-pop__price strong {
    color: var(--color-primary-dark);
}
.mn-pop__cta {
    appearance: none;
    border: none;
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #8C6F40 100%);
    color: #FBF8F1;
    padding: 9px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.02em;
    cursor: pointer;
    width: 100%;
    transition: filter .2s ease, transform .2s ease;
}
.mn-pop__cta:hover {
    filter: brightness(1.08);
    transform: translateY(-1px);
}

@media (max-width: 1024px) {
    .mn-rentals-map__layout {
        grid-template-columns: 1fr;
    }
    .mn-rentals-map__map-wrap {
        position: static;
        height: 60vh;
        max-height: 540px;
    }
    .mn-rentals-map__list {
        max-height: none;
        overflow: visible;
        padding: 0;
    }
}
@media (max-width: 640px) {
    .mn-rentals-map { padding: 60px 18px; }
    .mn-rentals-map__map-wrap { height: 50vh; min-height: 380px; }
    .mn-map-card { grid-template-columns: 110px 1fr; }
    .mn-map-card__media { width: 110px; height: 110px; }
}

/* ============================================================
   DATES SEARCH (V2 booking iframe wrapped)
   ============================================================ */
.mn-dates-search {
    max-width: 1180px;
    margin: 0 auto;
    padding: clamp(56px, 7vw, 100px) 32px;
}
.mn-dates-search__head {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 36px;
}
.mn-dates-search__title {
    font-family: var(--font-heading);
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 400;
    letter-spacing: -0.02em;
    color: var(--color-secondary);
    line-height: 1.1;
    margin: 10px 0 14px;
    text-wrap: balance;
}
.mn-dates-search__title em {
    font-style: italic;
    color: var(--color-primary-dark);
    font-weight: 400;
}
.mn-dates-search__sub {
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-text-light);
    max-width: 56ch;
    margin: 0 auto;
}
.mn-dates-search__frame {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 24px 60px -28px rgba(30, 36, 31, 0.30);
    background: #fff;
}
.mn-dates-search__frame .mn-sh-iframe-wrap { box-shadow: none; border: 0; border-radius: 0; }
.mn-dates-search__frame .mn-sh-iframe-wrap iframe.mn-sh-iframe { min-height: 0 !important; }
@media (max-width: 640px) {
    .mn-dates-search { padding: 56px 16px; }
}

/* ============================================================
   ACTIVITES & EXPERIENCES (page activites)
   ============================================================ */
.mn-activites {
    max-width: 1320px;
    margin: 0 auto;
    padding: clamp(56px, 7vw, 96px) 32px;
}
.mn-activites__head {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 48px;
}
.mn-activites__title {
    font-family: var(--font-heading);
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 400;
    letter-spacing: -0.02em;
    color: var(--color-secondary);
    line-height: 1.08;
    margin: 10px 0 16px;
    text-wrap: balance;
}
.mn-activites__title em {
    font-style: italic;
    color: var(--color-primary-dark);
    font-weight: 400;
}
.mn-activites__intro {
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-text-light);
    max-width: 60ch;
    margin: 0 auto;
}
.mn-activites__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.mn-activite-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 12px 28px -18px rgba(30, 36, 31, 0.18);
    transition: transform .25s ease, box-shadow .25s ease;
    border: 1px solid var(--color-border, rgba(184, 147, 90, 0.16));
}
.mn-activite-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 24px 44px -22px rgba(30, 36, 31, 0.30);
}
.mn-activite-card__media {
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
    background: var(--color-bg-alt, #F3ECDC);
}
.mn-activite-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s ease;
}
.mn-activite-card:hover .mn-activite-card__media img {
    transform: scale(1.04);
}
.mn-activite-card__body {
    padding: 22px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}
.mn-activite-card__title {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 400;
    color: var(--color-secondary);
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin: 0;
    text-wrap: balance;
}
.mn-activite-card__text {
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--color-text-light);
    margin: 0;
}
@media (max-width: 1024px) {
    .mn-activites__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .mn-activites { padding: 56px 18px; }
    .mn-activites__grid { grid-template-columns: 1fr; gap: 20px; }
}

/* ============================================================
   MAP : Lieux d'exception distinction (étoile + couleur deeper)
   ============================================================ */
.mn-rentals-map__legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 0 auto 24px;
}
.mn-map-filter {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px 8px 8px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--color-border, rgba(184, 147, 90, 0.20));
    color: var(--color-secondary);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.005em;
    cursor: pointer;
    transition: border-color .25s ease, background .25s ease, transform .25s ease;
}
.mn-map-filter small {
    font-weight: 400;
    color: var(--color-text-muted);
    margin-left: 2px;
}
.mn-map-filter:hover {
    transform: translateY(-1px);
    border-color: var(--color-primary);
}
.mn-map-filter.is-active {
    background: linear-gradient(135deg, rgba(200, 162, 95, 0.12), rgba(140, 111, 64, 0.08));
    border-color: var(--color-primary);
    color: var(--color-primary-dark);
}
.mn-map-filter__pin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    color: #FBF8F1;
    font-size: 11px;
    flex-shrink: 0;
}
.mn-map-filter__pin i { transform: rotate(45deg); }
.mn-map-filter__pin--standard {
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
}
.mn-map-filter__pin--exception {
    background: linear-gradient(135deg, #8C6F40 0%, #5C3F1A 100%);
    box-shadow: 0 0 0 2px rgba(255, 215, 130, 0.45);
}

/* Exception pin on map (deeper bronze, larger, with halo) */
.mn-pin--exception {
    width: 44px;
    height: 44px;
    background: linear-gradient(135deg, #D4B075 0%, #8C6F40 50%, #5C3F1A 100%);
    box-shadow: 0 6px 16px -4px rgba(30, 36, 31, 0.55), 0 0 0 4px rgba(255, 215, 130, 0.35);
}
.mn-pin--exception i { font-size: 17px; color: #FFF8E2; }
.mn-pin-wrap--exception:hover .mn-pin--exception,
.mn-pin-wrap--exception.is-hover .mn-pin--exception {
    transform: rotate(-45deg) scale(1.15);
    filter: brightness(1.08);
}

/* Card badge for exception in side list */
.mn-map-card.is-exception {
    border-color: rgba(140, 111, 64, 0.28);
    background: linear-gradient(135deg, #FFFEF7 0%, #FAF4E5 100%);
}
.mn-map-card__badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    background: linear-gradient(135deg, #8C6F40 0%, #5C3F1A 100%);
    color: #FFF8E2;
    border-radius: 999px;
    font-size: 10.5px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    font-weight: 600;
    box-shadow: 0 6px 16px -8px rgba(30, 36, 31, 0.45);
}
.mn-map-card__badge i { font-size: 10px; color: #FFD782; }
.mn-map-card { position: relative; }

/* Popup badge (exception) */
.mn-pop__badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    background: linear-gradient(135deg, #8C6F40, #5C3F1A);
    color: #FFF8E2;
    border-radius: 999px;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    margin-bottom: 8px;
}
.mn-pop__badge i { color: #FFD782; }

/* ============================================================
   DATES SEARCH - custom date-range search engine (replaces V2 iframe)
   ============================================================ */
.mn-dates-form {
    max-width: 920px;
    margin: 0 auto 28px;
    background: #fff;
    border: 1px solid var(--color-border, rgba(184, 147, 90, 0.18));
    border-radius: 999px;
    padding: 6px;
    display: flex;
    align-items: stretch;
    gap: 0;
    box-shadow: 0 18px 36px -22px rgba(30, 36, 31, 0.20);
}
.mn-dates-form__field {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    padding: 12px 22px;
    cursor: pointer;
    min-width: 0;
}
.mn-dates-form__label {
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    margin-bottom: 4px;
}
.mn-dates-form__field input,
.mn-dates-form__field select {
    appearance: none;
    border: 0;
    background: transparent;
    font-family: var(--font-body);
    font-size: 15px;
    color: var(--color-secondary);
    padding: 0;
    width: 100%;
    cursor: pointer;
    outline: none;
}
.mn-dates-form__field input::-webkit-calendar-picker-indicator {
    cursor: pointer;
    color: var(--color-primary-dark);
}
.mn-dates-form__sep {
    width: 1px;
    background: var(--color-border, rgba(184, 147, 90, 0.20));
    margin: 12px 0;
}
.mn-dates-form__submit {
    appearance: none;
    border: 0;
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #8C6F40 100%);
    color: #FFFFFF;
    border-radius: 999px;
    padding: 0 26px;
    margin: 4px;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: filter .25s ease, transform .25s ease;
    flex-shrink: 0;
}
.mn-dates-form__submit:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
}
.mn-dates-form__submit i { font-size: 13px; }

/* Results panel */
.mn-dates-results {
    max-width: 1200px;
    margin: 0 auto;
}
.mn-dates-results__hint {
    text-align: center;
    color: var(--color-text-muted);
    font-size: 14.5px;
    padding: 28px 0;
    margin: 0;
}
.mn-dates-results__empty {
    text-align: center;
    color: var(--color-text-light);
    background: #fff;
    border-radius: 14px;
    padding: 32px 24px;
    margin: 0;
    border: 1px solid var(--color-border, rgba(184, 147, 90, 0.16));
}
.mn-dates-results__loading {
    text-align: center;
    color: var(--color-primary-dark);
    padding: 40px 24px;
    font-size: 15px;
}
.mn-dates-results__loading i { margin-right: 10px; }
.mn-dates-results__head {
    text-align: center;
    margin: 32px auto 32px;
    max-width: 640px;
}
.mn-dates-results__title {
    font-family: var(--font-heading);
    font-size: clamp(22px, 2.6vw, 30px);
    font-weight: 400;
    color: var(--color-secondary);
    line-height: 1.18;
    margin: 8px 0 8px;
    text-wrap: balance;
}
.mn-dates-results__title strong { color: var(--color-primary-dark); font-weight: 600; }
.mn-dates-results__sub { font-size: 14.5px; color: var(--color-text-light); margin: 0; }
.mn-dates-results__sub a { color: var(--color-primary-dark); }
.mn-dates-results__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
@media (max-width: 1024px) {
    .mn-dates-results__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .mn-dates-form {
        border-radius: 18px;
        flex-wrap: wrap;
        padding: 8px;
    }
    .mn-dates-form__field { flex: 1 1 100%; padding: 10px 16px; }
    .mn-dates-form__sep { display: none; }
    .mn-dates-form__submit { width: 100%; padding: 14px 20px; margin: 4px 0 0; justify-content: center; }
    .mn-dates-results__grid { grid-template-columns: 1fr; gap: 16px; }
}

/* Result card */
.mn-dates-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 12px 28px -18px rgba(30, 36, 31, 0.18);
    border: 1px solid var(--color-border, rgba(184, 147, 90, 0.16));
    transition: transform .25s ease, box-shadow .25s ease;
}
.mn-dates-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 24px 44px -22px rgba(30, 36, 31, 0.30);
}
.mn-dates-card.is-exception {
    border-color: rgba(140, 111, 64, 0.28);
}
.mn-dates-card__media {
    appearance: none;
    border: 0;
    padding: 0;
    background: var(--color-bg-alt, #F3ECDC);
    cursor: pointer;
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
}
.mn-dates-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}
.mn-dates-card__media:hover img {
    transform: scale(1.04);
}
.mn-dates-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    background: linear-gradient(135deg, #8C6F40 0%, #5C3F1A 100%);
    color: #FFF8E2;
    border-radius: 999px;
    font-size: 10.5px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    font-weight: 600;
    box-shadow: 0 6px 16px -8px rgba(30, 36, 31, 0.45);
}
.mn-dates-card__badge i { font-size: 10px; color: #FFD782; }
.mn-dates-card__tag {
    position: absolute;
    bottom: 12px;
    left: 12px;
    z-index: 2;
    padding: 5px 10px;
    background: rgba(255, 255, 255, 0.94);
    color: var(--color-secondary);
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    font-weight: 600;
    border-radius: 999px;
}
.mn-dates-card__body {
    padding: 18px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.mn-dates-card__city {
    font-size: 11.5px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-primary-dark);
    font-weight: 600;
}
.mn-dates-card__city i { font-size: 10.5px; margin-right: 4px; }
.mn-dates-card__title {
    font-family: var(--font-heading);
    font-size: 19px;
    line-height: 1.18;
    font-weight: 400;
    color: var(--color-secondary);
    margin: 0;
    text-wrap: balance;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.mn-dates-card__specs {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    font-size: 13.5px;
    color: var(--color-text-light);
}
.mn-dates-card__specs i {
    color: var(--color-primary-dark);
    margin-right: 3px;
    font-size: 12px;
}
.mn-dates-card__pricing {
    margin-top: auto;
    padding: 12px 0 0;
    border-top: 1px solid var(--color-border, rgba(184, 147, 90, 0.16));
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.mn-dates-card__price {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-size: 12.5px;
    color: var(--color-text-muted);
}
.mn-dates-card__price strong {
    font-family: var(--font-heading);
    font-size: 22px;
    color: var(--color-primary-dark);
    font-weight: 500;
}
.mn-dates-card__pn {
    font-size: 12.5px;
    color: var(--color-text-muted);
}
.mn-dates-card__cta {
    appearance: none;
    border: 0;
    background: linear-gradient(135deg, #D4B075 0%, #C8A25F 50%, #8C6F40 100%);
    color: #FFFFFF;
    border-radius: 999px;
    padding: 11px 18px;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin-top: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: filter .25s ease, transform .25s ease;
}
.mn-dates-card__cta:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
}

/* ============================================================
   DATES SEARCH - compact mode (used as hero overlay + on chip pages)
   ============================================================ */
.mn-dates-search--compact {
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 24px;
}
.mn-dates-form--compact {
    margin: 0 auto;
    grid-template-columns: 1fr 1fr 1fr 1fr auto;
}
@media (max-width: 900px) {
    .mn-dates-form--compact {
        flex-wrap: wrap;
    }
    .mn-dates-form--compact .mn-dates-form__field { flex: 1 1 50%; min-width: 140px; }
    .mn-dates-form--compact .mn-dates-form__sep { display: none; }
}
@media (max-width: 540px) {
    .mn-dates-form--compact .mn-dates-form__field { flex: 1 1 100%; }
    .mn-dates-form--compact .mn-dates-form__submit { width: 100%; padding: 14px 20px; margin: 4px 0 0; justify-content: center; }
}

/* ============================================================
   HERO SEARCHBAR OVERLAY - dates search on top of hero image
   ============================================================ */
.mn-hero { position: relative; }
.mn-hero__searchbar {
    position: absolute;
    left: 50%;
    bottom: -40px;
    transform: translateX(-50%);
    width: calc(100% - 48px);
    max-width: 1080px;
    z-index: 4;
}
.mn-hero__searchbar .mn-dates-form--compact {
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(14px) saturate(160%);
    -webkit-backdrop-filter: blur(14px) saturate(160%);
    box-shadow: 0 24px 60px -22px rgba(30, 36, 31, 0.40);
}
@media (max-width: 900px) {
    .mn-hero__searchbar { bottom: -80px; padding: 0 12px; }
}
@media (max-width: 540px) {
    .mn-hero__searchbar { bottom: -200px; }
}

/* Add space below the hero so the overlay searchbar doesn't overlap the next section */
.mn-hero + section,
.mn-hero + * { margin-top: clamp(60px, 8vw, 100px); }
@media (max-width: 900px) {
    .mn-hero + section,
    .mn-hero + * { margin-top: clamp(100px, 14vw, 140px); }
}
@media (max-width: 540px) {
    .mn-hero + section,
    .mn-hero + * { margin-top: 220px; }
}

/* On full-mode dates search section (e.g. inside mn-demeure-filter chip pages), keep the section's own padding;
   the compact form is meant to sit right under the hero so add a tighter top margin */
.mn-page-hero + .mn-dates-search--compact {
    margin-top: -30px; /* pull up so it slightly overlaps the hero like a cross */
    position: relative;
    z-index: 3;
}
@media (max-width: 900px) {
    .mn-page-hero + .mn-dates-search--compact { margin-top: 0; padding-top: 24px; }
}

/* Activité card external link */
.mn-activite-card__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    align-self: flex-start;
    color: var(--color-primary-dark);
    font-family: var(--font-body);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color .25s ease, border-color .25s ease, transform .25s ease;
}
.mn-activite-card__link i { font-size: 11px; }
.mn-activite-card__link:hover {
    color: var(--color-secondary);
    border-bottom-color: var(--color-primary);
    transform: translateX(2px);
}

/* ============================================================
   PRESTATIONS list (page lieux d'exception)
   ============================================================ */
.mn-prestations {
    max-width: 1080px;
    margin: 0 auto;
    padding: clamp(56px, 7vw, 100px) 32px;
}
.mn-prestations__head {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 48px;
}
.mn-prestations__title {
    font-family: var(--font-heading);
    font-size: clamp(28px, 3.6vw, 44px);
    font-weight: 400;
    letter-spacing: -0.02em;
    color: var(--color-secondary);
    line-height: 1.12;
    margin: 8px 0 16px;
    text-wrap: balance;
}
.mn-prestations__title em {
    font-style: italic;
    color: var(--color-primary-dark);
    font-weight: 400;
}
.mn-prestations__intro {
    font-size: 16px;
    line-height: 1.65;
    color: var(--color-text-light);
    margin: 0;
}
.mn-prestations__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 18px;
}
.mn-prestation {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid var(--color-border, rgba(184, 147, 90, 0.16));
    border-radius: 12px;
    box-shadow: 0 8px 18px -14px rgba(30, 36, 31, 0.18);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.mn-prestation:hover {
    transform: translateY(-2px);
    border-color: var(--color-primary);
}
.mn-prestation__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(200, 162, 95, 0.20), rgba(140, 111, 64, 0.10));
    color: var(--color-primary-dark);
    font-size: 18px;
    flex-shrink: 0;
}
.mn-prestation__label {
    display: block;
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 500;
    color: var(--color-secondary);
    margin-bottom: 4px;
    line-height: 1.2;
}
.mn-prestation__text {
    display: block;
    font-size: 14px;
    line-height: 1.55;
    color: var(--color-text-light);
}
.mn-prestations__promise {
    text-align: center;
    margin: 36px auto 0;
    max-width: 720px;
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-secondary);
}
.mn-prestations__promise i {
    color: var(--color-primary);
    margin-right: 6px;
}

/* ============================================================
   MAP - "Sur demande" (on_request) markers + cards (5 client-listed
   properties not yet in Superhote, contact via form)
   ============================================================ */
.mn-map-filter__pin--request {
    background: linear-gradient(135deg, #F3ECDC 0%, #C8A25F 100%);
    color: #5C3F1A;
}
.mn-pin--request {
    background: linear-gradient(135deg, #F3ECDC 0%, #C8A25F 60%, #8C6F40 100%);
    color: #5C3F1A;
    box-shadow: 0 4px 12px -4px rgba(140, 111, 64, 0.5);
}
.mn-pin--request i { color: #5C3F1A; }

.mn-map-card.is-on-request {
    border-color: rgba(140, 111, 64, 0.20);
    background: linear-gradient(135deg, #FFFEF7 0%, #F9F3E5 100%);
}
.mn-map-card__badge--request {
    background: linear-gradient(135deg, #C8A25F 0%, #8C6F40 100%);
    color: #FBF8F1;
}
.mn-map-card__badge--request i { color: #FFF8E2; }

/* When the media slot has no cover image (on_request), show a placeholder icon */
.mn-map-card__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-bg-alt, #F3ECDC), #fff);
    color: var(--color-primary-dark);
    font-size: 32px;
}
.mn-map-card__media[href] {
    text-decoration: none;
    cursor: pointer;
}
.mn-map-card__sub {
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-text-light);
    margin: 0;
}

/* On_request popup variant */
.leaflet-popup.mn-pop--request .leaflet-popup-content-wrapper {
    border-left: 3px solid var(--color-primary-dark);
}
.mn-pop__badge--request {
    background: linear-gradient(135deg, #C8A25F, #8C6F40);
    color: #FBF8F1;
}

/* ============================================================
   RESPONSIVE V14 - Audit fixes 2026-04-26
   Mobile (<=540px) and tablet (<=1024px) bug fixes.
   ============================================================ */

/* --- BUG: backdrop-filter on #site-header creates a containing block
       which constrains .mn-mobile (position:fixed) to header bounds.
       Solution: drop backdrop-filter on the header when the mobile drawer
       is open AND on mobile sizes, so fixed children re-anchor to viewport.
       Also override #site-header backdrop-filter at <=960px (when drawer
       is even reachable) to ensure the drawer always fills the viewport.   */
@media (max-width: 960px) {
    #site-header {
        /* Removing backdrop-filter so fixed-positioned descendants
           (.mn-mobile drawer) anchor to the viewport, not the header. */
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        /* Keep a solid background so the navbar stays opaque */
        background: rgba(251, 248, 241, 0.98) !important;
    }
    .mn-mobile {
        /* Belt-and-suspenders: explicit dimensions in case ancestor
           still establishes a containing block via other props. */
        position: fixed !important;
        top: 72px !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        height: auto !important;
        max-height: calc(100vh - 72px);
    }
}

/* --- BUG: .mn-map-card__badge "Lieu d'exception" (151px wide) overflows
       on top of the city name when the card thumbnail is only 110px wide
       on mobile. Move the badge into the image area only via clipping,
       or shrink + relocate. Best: shrink badge font on mobile so it stays
       within the 110px image. */
@media (max-width: 768px) {
    .mn-map-card__badge {
        font-size: 9.5px;
        padding: 4px 8px;
        letter-spacing: 0.06em;
        top: 6px;
        left: 6px;
        max-width: calc(100% - 12px);
        white-space: nowrap;
    }
    .mn-map-card__badge i { font-size: 9px; }
    /* Add safe top padding so badge never collides with city name */
    .mn-map-card__body { padding-top: 14px; }
    /* Shift the city to the right of the badge if card is super-narrow */
    .mn-map-card__city { padding-top: 2px; }
}
@media (max-width: 540px) {
    .mn-map-card__badge {
        font-size: 9px;
        padding: 3px 7px;
        letter-spacing: 0.04em;
    }
}

/* --- BUG: .mn-contact__items - the email
       contact@manormandieestservie.com at font-size:22px on
       .mn-contact__item a forces .mn-contact__items wider than the
       375px viewport, causing layout shift and clipping. Allow word-break
       on mobile and reduce font-size for long links.                       */
@media (max-width: 768px) {
    .mn-contact__item {
        gap: 14px;
        padding: 18px 16px;
    }
    .mn-contact__item i {
        width: 38px;
        height: 38px;
        font-size: 14px;
    }
    .mn-contact__item > div {
        min-width: 0;
        flex: 1 1 auto;
    }
    .mn-contact__item strong,
    .mn-contact__item a {
        font-size: 18px;
        word-break: break-word;
        overflow-wrap: anywhere;
        line-height: 1.25;
        display: block;
    }
    .mn-contact__items { width: 100%; }
}
@media (max-width: 420px) {
    .mn-contact__item strong,
    .mn-contact__item a { font-size: 16px; }
}

/* --- BUG: home hero searchbar at bottom: -200px overlaps the
       hero meta badge AND the CTA buttons on mobile. Solution:
       1) Hide the redundant hero meta block on mobile (logo already in
          navbar, "Pays d'Auge, Normandie" duplicates eyebrow).
       2) Push the searchbar lower so it sits below the entire hero block,
          not on top of the CTAs.                                           */
@media (max-width: 768px) {
    .mn-hero__meta { display: none; }
}
@media (max-width: 768px) {
    /* Hero is display:flex by default with __inner and __searchbar as
       siblings — on mobile the row layout sticks them side-by-side. Force
       column so they stack, then make the searchbar in-flow.             */
    .mn-hero { flex-direction: column; align-items: stretch; min-height: 0 !important; }
    .mn-hero__inner { padding-top: 32px !important; padding-bottom: 56px !important; }
    .mn-hero__searchbar {
        position: static;
        transform: none;
        width: 100%;
        max-width: none;
        padding: 16px 16px 32px;
        order: 99;
    }
    .mn-hero__searchbar .mn-dates-form--compact { margin: 0; position: relative; z-index: 5; }
    .mn-hero + section,
    .mn-hero + * { margin-top: 0 !important; }
    .mn-hero__scroll { display: none; }
}
@media (max-width: 540px) {
    .mn-hero__searchbar .mn-dates-form--compact {
        margin: -16px 12px 0;
    }
}

/* --- Touch target accessibility: ensure clickable items meet 44x44 min
       on mobile.                                                         */
@media (max-width: 768px) {
    .mn-rental-card__cta,
    .mn-map-card__cta,
    .mn-nav-search__chip,
    .mn-mobile__sub-link {
        min-height: 44px;
    }
    .mn-rental-card__cta { padding: 12px 18px; }
}

/* --- Footer columns on tablet: ensure they wrap into 2 cols cleanly,
       not 4 cramped cols.                                                */
@media (max-width: 960px) {
    #site-footer .footer-columns,
    #site-footer .footer-cols,
    #site-footer .footer-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (max-width: 540px) {
    #site-footer .footer-columns,
    #site-footer .footer-cols,
    #site-footer .footer-grid {
        grid-template-columns: 1fr !important;
    }
}

/* --- Logo navbar safety: prevent custom-logo overflow on small screens  */
@media (max-width: 540px) {
    .mn-nav .nav-logo .custom-logo,
    #site-header .custom-logo {
        max-height: 64px;
    }
    .mn-nav { padding: 8px 16px; }
}

/* --- Page hero on smaller screens: reduce min-height, add bottom pad
       so eyebrow/title/sub aren't crammed.                               */
@media (max-width: 540px) {
    .mn-page-hero {
        min-height: 52vh;
        padding: 120px 16px 56px;
    }
    .mn-page-hero__title {
        font-size: clamp(28px, 8vw, 40px);
        margin-bottom: 16px;
    }
    .mn-page-hero__sub {
        font-size: 15.5px;
        line-height: 1.55;
    }
    .mn-page-hero__eyebrow {
        font-size: 11px;
        padding: 5px 12px;
        margin-bottom: 18px;
    }
}

/* --- Form inputs/labels on mobile: prevent iOS auto-zoom (font<16px)
       and ensure tap target height.                                       */
@media (max-width: 768px) {
    .mn-contact__form input,
    .mn-contact__form textarea,
    .mn-contact__form select,
    .mn-dates-form--compact input,
    .mn-dates-form--compact select {
        font-size: 16px; /* prevent iOS auto-zoom on focus */
        min-height: 44px;
    }
    .mn-dates-form--compact .mn-dates-form__submit {
        min-height: 48px;
    }
}

/* --- Demeure gallery: ensure 2-col grid stays within viewport even with
       narrow gutters. The images need object-fit cover for consistent
       proportions.                                                       */
@media (max-width: 768px) {
    .mn-gallery__grid,
    .mn-demeure-gallery,
    .mn-demeure-gallery__grid {
        gap: 8px;
    }
}

/* --- Quote band parallax: ensure the iOS fallback to scroll
       (already in main.css <=1024px) doesn't cause a giant blank zone.   */
@media (max-width: 1024px) {
    .mn-cta-band,
    .mn-quote-band,
    [class*="parallax"] {
        background-attachment: scroll !important;
    }
}

/* --- Leaflet map sizing on mobile: ensure the map height isn't 0 or
       absurd; use a viewport-relative fallback.                          */
@media (max-width: 768px) {
    .mn-map,
    .mn-map-leaflet,
    #mn-map {
        min-height: 320px;
        max-height: 60vh;
    }
}

/* --- Prevent any horizontal scroll just in case --- */
html, body { max-width: 100vw; }
@media (max-width: 768px) {
    body { overflow-x: hidden; }
}

/* ============================================================
   MOBILE AUDIT FIXES - 2026-04-26 (Lucile iPhone)
   Catches edge cases not covered by the parent agent's hero fix.
   ============================================================ */

/* BUG: page lieux d'exception (location-domaine-chateau-normandie)
   La modifier --three force `repeat(3, 1fr)` avec specificity supérieure
   à .mn-demeures__grid dans la media query @640px → cards écrasées en
   colonnes de 90px sur iPhone, tags qui débordent, image illisible.
   Fix: forcer 1fr en mobile, 2fr en tablette, en augmentant la
   spécificité avec le sélecteur racine pour battre la cascade. */
@media (max-width: 1024px) {
    .mn-demeures.mn-demeures--three .mn-demeures__grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }
}
@media (max-width: 640px) {
    .mn-demeures.mn-demeures--three .mn-demeures__grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    /* Card body padding restoration on mobile (cards larger now) */
    .mn-demeures.mn-demeures--three .mn-demeure__body {
        padding: 22px 22px 24px;
    }
}

/* BUG safety: avis-card carousel cards on mobile sometimes too wide
   (clamp 300px) — cap to 88vw so they don't overflow on iPhone SE/12 mini
   while preserving the marquee animation. */
@media (max-width: 540px) {
    .mn-avis-card { flex: 0 0 88vw; max-width: 360px; }
}

/* BUG: rentals page mn-map-card thumbnail on iPhone XS (375px) was
   set to 110px x 110px. Fine but ensure the card content has enough
   room for title + specs without overlap. */
@media (max-width: 540px) {
    .mn-map-card { gap: 12px; }
    .mn-map-card__media { flex-shrink: 0; }
    .mn-map-card__body { min-width: 0; }
    .mn-map-card__title { font-size: 15px; line-height: 1.25; }
}

/* BUG: blog post hero image (mn-demeure-hero__img) on chateau-de-grisy
   was 386px wide (parent 375px) — the natural image size leaks.
   Force max-width to viewport. */
@media (max-width: 540px) {
    .mn-demeure-hero__img,
    .mn-demeure-hero__media img { max-width: 100% !important; width: 100% !important; }
}

/* BUG: when Superhote iframes are still loading on a single rental
   page, they reserve a giant empty zone. Add a minimum visible
   height + a subtle loader background so the white gap is less
   obvious before content paints. */
.mn-rental-modal__body iframe,
[id^="superhote"] iframe,
iframe[src*="superhote.com"] {
    background: var(--color-bg-alt) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 50 50'><circle cx='25' cy='25' r='20' fill='none' stroke='%23C8A25F' stroke-width='4' stroke-dasharray='90 30'><animateTransform attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='1.2s' repeatCount='indefinite'/></circle></svg>") center 80px no-repeat;
}
@media (max-width: 768px) {
    iframe[src*="superhote.com"] { min-height: 600px; }
}

/* BUG: any block-level element with explicit width on mobile must
   never exceed viewport. Guard rail. */
@media (max-width: 540px) {
    .mn-rental-card,
    .mn-demeure,
    .mn-avis-card,
    .mn-map-card,
    .mn-pop,
    .mn-formula,
    .mn-feature {
        max-width: 100%;
    }
}

/* BUG: forms on contact page — ensure inputs full width and no zoom on focus iOS */
@media (max-width: 540px) {
    .mn-contact__form,
    .mn-contact__form .wpcf7-form,
    .wpcf7-form {
        width: 100%;
    }
    .mn-contact__form input[type="text"],
    .mn-contact__form input[type="email"],
    .mn-contact__form input[type="tel"],
    .mn-contact__form select,
    .mn-contact__form textarea,
    .wpcf7-form input[type="text"],
    .wpcf7-form input[type="email"],
    .wpcf7-form input[type="tel"],
    .wpcf7-form select,
    .wpcf7-form textarea {
        width: 100%;
        font-size: 16px; /* iOS Safari ne zoome pas si >= 16 */
    }
}

/* BUG: mn-page-hero on tablet (768px) was using 768px → fine, but the
   CTA wrap was sometimes overflowing. Ensure proper wrap. */
@media (max-width: 768px) {
    .mn-page-hero__cta,
    .mn-hero__cta { flex-wrap: wrap; gap: 12px; }
    .mn-page-hero__cta .btn,
    .mn-hero__cta .btn { flex: 1 1 auto; min-width: 0; }
}

/* ============================================================
   ACTIVITES NAV PILLS - sticky table of contents at top of page
   ============================================================ */
.mn-act-nav {
    max-width: 1200px;
    margin: 32px auto 0;
    padding: 0 24px;
}
.mn-act-nav__list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.mn-act-nav__pill {
    display: inline-flex;
    align-items: center;
    padding: 10px 18px;
    border-radius: 999px;
    background: rgba(212, 176, 122, 0.10);
    border: 1px solid rgba(212, 176, 122, 0.35);
    color: var(--color-secondary);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-decoration: none;
    transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.mn-act-nav__pill:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
    transform: translateY(-2px);
}
@media (max-width: 540px) {
    .mn-act-nav { padding: 0 16px; }
    .mn-act-nav__pill { font-size: 12px; padding: 8px 14px; }
}

/* Smooth scroll + scroll-margin so anchor doesn't hide under sticky header */
html { scroll-behavior: smooth; }
.mn-activites { scroll-margin-top: 100px; }

/* Multi-link support on activite cards */
.mn-activite-card__links {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 6px;
    align-self: flex-start;
}
.mn-activite-card__links .mn-activite-card__link {
    margin-top: 0;
}

/* Mega menu : two-column list inside one column (used for Activités par catégorie) */
.mn-mega__col--two-cols .mn-mega__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px 16px;
}
.mn-mega__col--two-cols { min-width: 360px; }

/* Mega menu : sub-section heading inside same column */
.mn-mega__heading--sub {
    margin-top: 18px;
}

/* ============================================================
   LANGUAGE SWITCHER (navbar variant) - inline FR/EN dropdown
   ============================================================ */
.yvl-switcher--navbar {
    position: relative !important;
    display: inline-flex !important;
    align-items: center;
    margin-right: 4px;
    bottom: auto !important;
    left: auto !important;
}
.yvl-switcher--navbar .yvl-switcher__list {
    list-style: none;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center;
    gap: 2px;
    background: transparent !important;
    position: static !important;
    box-shadow: none !important;
    min-width: 0 !important;
}
.yvl-switcher--navbar .yvl-switcher__item {
    display: inline-flex;
}
.yvl-switcher--navbar .yvl-switcher__item a {
    display: inline-flex;
    align-items: center;
    padding: 6px 10px;
    border-radius: 6px;
    color: var(--color-secondary);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-decoration: none;
    transition: background .2s ease, color .2s ease;
}
.yvl-switcher--navbar .yvl-switcher__item a:hover {
    background: var(--color-primary-light);
    color: var(--color-primary-dark);
}
.yvl-switcher--navbar .yvl-switcher__item--active a {
    background: var(--color-primary);
    color: #fff;
}
.yvl-switcher--navbar .yvl-switcher__name { display: none; }
.yvl-switcher--navbar .yvl-switcher__code { display: inline-block; }

/* Hide the floating switcher when we use the navbar one */
.yvl-switcher--floating { display: none !important; }

/* Mobile : keep switcher visible but compact */
@media (max-width: 768px) {
    .yvl-switcher--navbar .yvl-switcher__item a { padding: 4px 8px; font-size: 11px; }
}

