@font-face {
    font-family: "Montserrat EO";
    src: url("../fonts/Montserrat-VariableFont_wght.woff2") format("woff2");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}

@font-face {
    font-family: "Smythe EO";
    src: url("../fonts/Smythe-Regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

:root {
    --eo-ink: #0d0b0c;
    --eo-ink-soft: #171313;
    --eo-paper: #e9e4df;
    --eo-paper-deep: #d7d0c9;
    --eo-wallpaper: #1a1012;
    --eo-red: #cf140d;
    --eo-red-dark: #940f08;
    --eo-red-field: #96110d;
    --eo-white: #fffaf5;
    --eo-muted: #a59c96;
    --eo-line: rgba(13, 11, 12, 0.18);
    --eo-gutter: clamp(22px, 4.8vw, 76px);
    --eo-max: 1440px;
    --eo-header: 102px;
    --eo-ease: cubic-bezier(0.2, 0.78, 0.22, 1);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body.eo77-site {
    margin: 0;
    overflow-x: hidden;
    color: var(--eo-ink);
    background: var(--eo-paper);
    font-family: "Montserrat EO", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

body.eo77-site.menu-open {
    overflow: hidden;
}

.eo77-site img {
    display: block;
    max-width: 100%;
    height: auto;
}

.eo77-site a {
    color: inherit;
}

.eo77-site h1,
.eo77-site h2,
.eo77-site h3,
.eo77-site h4,
.eo77-site p {
    margin-top: 0;
}

.eo-skip-link {
    position: fixed;
    z-index: 9999;
    left: 16px;
    top: -80px;
    padding: 12px 16px;
    color: var(--eo-white);
    background: var(--eo-red);
    transition: top 180ms ease;
}

.eo-skip-link:focus {
    top: 16px;
}

.eo-header {
    position: absolute;
    z-index: 1000;
    inset: 0 0 auto;
    height: var(--eo-header);
    color: var(--eo-white);
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.72), transparent);
    transition: background-color 260ms ease, transform 260ms ease;
}

.eo-header.is-scrolled {
    position: fixed;
    height: 82px;
    background: rgba(13, 11, 12, 0.94);
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
    backdrop-filter: blur(14px);
}

/* Un backdrop-filter enferme le menu mobile (position: fixed) dans l'en-tête. */
.menu-open .eo-header.is-scrolled {
    backdrop-filter: none;
}

.eo-header__inner {
    width: min(100%, var(--eo-max));
    height: 100%;
    margin: 0 auto;
    padding: 0 var(--eo-gutter);
    display: grid;
    grid-template-columns: 220px 1fr;
    align-items: center;
    gap: 48px;
}

.eo-brand {
    display: inline-flex;
    width: 190px;
}

.eo-brand img {
    width: 100%;
}

.eo-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(18px, 2.3vw, 38px);
}

.eo-nav a,
.eo-nav__dropdown-toggle {
    position: relative;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    font-size: 12px;
    font-weight: 650;
    flex-shrink: 0;
    white-space: nowrap;
}

.eo-nav__dropdown {
    position: relative;
    display: flex;
    align-items: center;
    align-self: stretch;
}

.eo-nav__dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    color: inherit;
    background: transparent;
    font-family: inherit;
    cursor: pointer;
}

.eo-nav__dropdown-toggle i {
    width: 7px;
    height: 7px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform 220ms var(--eo-ease);
}

.eo-nav__submenu {
    position: absolute;
    z-index: 4;
    top: calc(50% + 24px);
    left: 50%;
    display: grid;
    min-width: 220px;
    padding: 12px 0;
    visibility: hidden;
    opacity: 0;
    color: var(--eo-white);
    background: rgba(13, 11, 12, 0.98);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 24px 50px rgba(0, 0, 0, 0.32);
    transform: translate(-50%, 10px);
    transition: opacity 180ms ease, visibility 180ms ease, transform 220ms var(--eo-ease);
}

.eo-nav__submenu::before {
    content: "";
    position: absolute;
    inset: -18px 0 auto;
    height: 18px;
}

.eo-nav__submenu a {
    width: 100%;
    padding: 11px 20px;
    font-size: 10px;
    letter-spacing: 0.12em;
}

.eo-nav__dropdown:hover .eo-nav__submenu,
.eo-nav__dropdown:focus-within .eo-nav__submenu,
.eo-nav__dropdown.is-open .eo-nav__submenu {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, 0);
}

.eo-nav__dropdown:hover .eo-nav__dropdown-toggle i,
.eo-nav__dropdown:focus-within .eo-nav__dropdown-toggle i,
.eo-nav__dropdown.is-open .eo-nav__dropdown-toggle i {
    transform: translateY(2px) rotate(225deg);
}

.eo-nav a:not(.eo-nav__book)::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -8px;
    left: 0;
    height: 1px;
    background: var(--eo-red);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 280ms var(--eo-ease);
}

.eo-nav a:hover::after,
.eo-nav a:focus-visible::after {
    transform: scaleX(1);
    transform-origin: left;
}

.eo-nav__book {
    padding: 13px 20px;
    background: var(--eo-red);
    transition: background-color 180ms ease, transform 180ms ease;
}

.eo-nav__book:hover,
.eo-nav__book:focus-visible {
    background: #ee1b12;
    transform: translateY(-2px);
}

.eo-menu-toggle {
    display: none;
    border: 0;
    color: inherit;
    background: transparent;
    font: inherit;
}

.eo-main {
    min-height: 60vh;
}

/* Elementor canvas */
.eo-main > .elementor {
    overflow: clip;
}

.elementor .e-con.eo-section,
.elementor .elementor-element.eo-section {
    --container-max-width: none;
    max-width: none;
    width: 100%;
    padding: clamp(92px, 10vw, 160px) var(--eo-gutter);
}

.elementor .e-con.eo-section > .e-con-inner,
.elementor .elementor-element.eo-section > .e-con-inner {
    width: min(100%, var(--eo-max));
    max-width: var(--eo-max);
    margin-inline: auto;
}

.eo-kicker,
.eo-section-index {
    color: var(--eo-red);
    text-transform: uppercase;
    letter-spacing: 0.19em;
    font-size: 11px;
    font-weight: 700;
}

.eo-kicker p,
.eo-section-index p {
    margin-bottom: 0;
}

.eo-display .elementor-heading-title,
.eo-page-hero h1 {
    color: inherit;
    font-family: "Smythe EO", Georgia, serif;
    font-weight: 400;
    font-size: clamp(60px, 7.5vw, 122px);
    line-height: 0.84;
    letter-spacing: -0.015em;
}

.eo-button .elementor-button {
    display: inline-flex;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    padding: 16px 26px;
    border: 1px solid var(--eo-red);
    border-radius: 0;
    color: var(--eo-white);
    background: var(--eo-red);
    text-transform: uppercase;
    letter-spacing: 0.13em;
    font-family: "Montserrat EO", sans-serif;
    font-size: 11px;
    font-weight: 750;
    transition: color 220ms ease, background-color 220ms ease, transform 220ms var(--eo-ease);
}

.eo-button .elementor-button:hover,
.eo-button .elementor-button:focus-visible {
    color: var(--eo-white);
    background: #eb1b12;
    transform: translateY(-3px);
}

.eo-button--ghost .elementor-button {
    border-color: rgba(255, 255, 255, 0.6);
    background: transparent;
}

.eo-button--ghost-dark .elementor-button {
    border-color: var(--eo-ink);
    color: var(--eo-ink);
    background: transparent;
}

.eo-button--ghost-dark .elementor-button:hover,
.eo-button--ghost-dark .elementor-button:focus-visible {
    border-color: var(--eo-red);
    color: var(--eo-white);
    background: var(--eo-red);
}

.eo-button--light .elementor-button {
    border-color: var(--eo-white);
    color: var(--eo-ink);
    background: var(--eo-white);
}

.eo-button--light .elementor-button:hover,
.eo-button--light .elementor-button:focus-visible {
    border-color: var(--eo-red);
    color: var(--eo-white);
    background: var(--eo-red);
}

/* Hero */
.elementor .e-con.eo-hero,
.elementor .elementor-element.eo-hero {
    position: relative;
    isolation: isolate;
    min-height: 100svh;
    padding: calc(var(--eo-header) + 72px) var(--eo-gutter) 60px;
    color: var(--eo-white);
    background:
        linear-gradient(90deg, rgba(8, 6, 6, 0.92) 0%, rgba(8, 6, 6, 0.57) 45%, rgba(8, 6, 6, 0.18) 72%),
        linear-gradient(0deg, rgba(8, 6, 6, 0.84) 0%, transparent 45%),
        url("../images/legacy/escape-place.avif") center 48% / cover no-repeat;
}

.eo-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: 0.16;
    pointer-events: none;
    background-image: url("../brand/acaf9aee8b13ea2fba28.avif");
    mix-blend-mode: soft-light;
}

.eo-hero::after {
    content: "60";
    position: absolute;
    z-index: -1;
    right: -0.04em;
    bottom: -0.18em;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.13);
    font: 400 clamp(280px, 38vw, 620px) / 0.72 "Smythe EO", serif;
    pointer-events: none;
}

.elementor .eo-hero > .e-con-inner {
    min-height: calc(100svh - var(--eo-header) - 132px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.eo-hero__kicker {
    margin-bottom: 22px;
    color: #e8b6ac;
}

.eo-hero__title .elementor-heading-title {
    max-width: 870px;
    margin: 0;
    color: var(--eo-white);
    font-family: "Smythe EO", Georgia, serif;
    font-size: clamp(78px, 10vw, 160px);
    font-weight: 400;
    line-height: 0.78;
    letter-spacing: -0.02em;
}

.eo-hero__title em {
    color: var(--eo-red);
    font-style: normal;
}

.eo-hero__copy {
    max-width: 550px;
    margin-top: 32px;
    color: rgba(255, 250, 245, 0.78);
    font-size: clamp(15px, 1.4vw, 19px);
}

.elementor .e-con.eo-actions > .e-con-inner,
.elementor .elementor-element.eo-actions > .e-con-inner {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
}

.eo-scroll-cue {
    position: absolute;
    right: var(--eo-gutter);
    bottom: 34px;
    color: rgba(255, 255, 255, 0.58);
    text-transform: uppercase;
    letter-spacing: 0.17em;
    font-size: 9px;
    writing-mode: vertical-rl;
}

.eo-scroll-cue::after {
    content: "";
    display: block;
    width: 1px;
    height: 62px;
    margin: 18px auto 0;
    background: linear-gradient(var(--eo-red) 50%, rgba(255, 255, 255, 0.2) 50%);
    background-size: 100% 200%;
    animation: eo-scroll-line 1.8s ease-in-out infinite;
}

@keyframes eo-scroll-line {
    0% { background-position: 0 100%; }
    100% { background-position: 0 -100%; }
}

/* Manifesto — resserre pour partager la hauteur d'un ecran avec le bandeau
   d'avis qui suit. Le titre descend d'un cran, la copie tient en un
   paragraphe, et les trois chiffres passent en ligne pointee : ils occupaient
   111 px en blocs typographiques, ils en prennent 22. */
.elementor .e-con.eo-manifesto,
.elementor .elementor-element.eo-manifesto {
    position: relative;
    padding-block: clamp(42px, 3.6vw, 84px);
    background: var(--eo-paper-deep);
}

.elementor .eo-manifesto .eo-display .elementor-heading-title {
    font-size: clamp(46px, 5vw, 106px);
}

.eo-manifesto .eo-display em {
    display: block;
    color: var(--eo-red);
    font-size: 0.62em;
    font-style: normal;
    line-height: 0.92;
}

.eo-manifesto__copy p {
    max-width: 46ch;
    margin: 0;
    color: #443e3b;
    font-size: 15px;
    line-height: 1.65;
}

.elementor .eo-manifesto .eo-manifesto__stats {
    grid-column: 1 / -1;
    margin-top: 2px;
    padding-top: 18px;
    border-top: 1px solid var(--eo-line);
}

.eo-manifesto__stats p {
    margin: 0;
    color: var(--eo-ink);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 12px;
    font-weight: 700;
}


/* Collective events */
.elementor .eo-collective > .e-con-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
    gap: clamp(48px, 8vw, 130px);
    align-items: end;
}

.eo-collective__intro .eo-kicker {
    margin-bottom: 32px;
    color: #ffd3cc;
}

.eo-collective .eo-display .elementor-heading-title {
    color: inherit;
}

.eo-collective__copy .eo-reading {
    max-width: 580px;
    color: rgba(255, 250, 245, 0.86);
}

.eo-collective__copy .eo-button {
    margin-top: 28px;
}

.eo-collective__copy .eo-button--light .elementor-button:hover,
.eo-collective__copy .eo-button--light .elementor-button:focus-visible {
    border-color: var(--eo-ink);
    background: var(--eo-ink);
}

.elementor .e-con.eo-collective__bottom,
.elementor .elementor-element.eo-collective__bottom {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(40px, 7vw, 110px);
    align-items: start;
    margin-top: clamp(20px, 3vw, 42px);
    padding-top: 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.36);
}

.elementor .eo-collective__bottom > .e-con-inner {
    display: grid;
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(40px, 7vw, 110px);
    align-items: stretch;
}

.elementor .eo-collective__benefits > .e-con-inner {
    display: grid;
    grid-template-columns: 1fr;
}

.elementor .e-con.eo-collective__benefits {
    display: grid;
    grid-template-columns: 1fr;
}

.eo-collective__benefits .elementor-widget-text-editor {
    min-width: 0;
    padding: 20px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.24);
}

.eo-collective__benefits .elementor-widget-text-editor:first-child {
    padding-top: 0;
}

.eo-collective__benefits .elementor-widget-text-editor:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.eo-collective__benefits .elementor-widget-container {
    display: flex;
    align-items: baseline;
    gap: 14px;
}

.eo-collective__benefits strong {
    color: #f4ded9;
    font: 400 clamp(54px, 5vw, 82px) / 0.8 "Smythe EO", serif;
    white-space: nowrap;
}

.eo-collective__benefits span {
    max-width: 170px;
    color: #ffd3cc;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.11em;
    line-height: 1.4;
    text-transform: uppercase;
}

.elementor .eo-collective__links > .e-con-inner {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.elementor .e-con.eo-collective__links {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    align-self: start;
}

.elementor .e-con.eo-collective-card,
.elementor .elementor-element.eo-collective-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 160px;
    padding: clamp(15px, 1.4vw, 20px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: rgba(57, 23, 22, 0.22);
    transition: transform 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.elementor .eo-collective-card > .e-con-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    height: 100%;
}

.eo-collective-card:hover,
.eo-collective-card:focus-within {
    z-index: 1;
    transform: translateY(-3px);
    border-color: rgba(255, 255, 255, 0.7);
    background: rgba(44, 16, 15, 0.42);
}

.eo-collective-card:focus-within {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.eo-collective-card .elementor-heading-title {
    color: #fff;
    font: 400 clamp(24px, 2vw, 31px) / 0.95 "Smythe EO", serif;
}

.eo-collective-card .elementor-widget-text-editor {
    display: -webkit-box;
    margin-top: 8px;
    overflow: hidden;
    color: rgba(255, 250, 245, 0.72);
    font-size: 11px;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.eo-collective-card .eo-button {
    margin-top: auto;
    padding-top: 14px;
}

.eo-collective-card .eo-button--text .elementor-button {
    color: #ffd3cc;
    font-size: 8px;
    letter-spacing: 0.08em;
    line-height: 1.3;
}

.eo-collective-card .eo-button--text .elementor-button::after {
    content: "";
    position: absolute;
    inset: 0;
}

/* Avis Google — habillage du plugin google-reviews-carousel.
   Le plugin n’expose que des variables : aucune de ses règles n’est surchargée
   ici, il peut donc être mis à jour sans casser cette peau. */
.elementor .e-con.eo-testimonials,
.elementor .elementor-element.eo-testimonials {
    --container-max-width: none;
    width: 100%;
    max-width: none;
    padding: 0;
    background: var(--eo-ink);
}

/* Sur fond noir, les cartes deviennent des panneaux legerement plus clairs
   plutot que des rectangles blancs qui trouent la bande. */
.eo-testimonials .grc-band {
    --grc-ink: var(--eo-white);
    --grc-muted: #a59c96;
    --grc-surface: #191416;
    --grc-line: rgba(255, 255, 255, 0.16);
    --grc-accent: var(--eo-red);
    --grc-star: #b0821c;
    --grc-display: "Smythe EO", serif;
    --grc-inline: var(--eo-gutter);
    --grc-block: clamp(38px, 3.6vw, 56px);
}

.eo-testimonials .grc-band__kicker {
    letter-spacing: 0.19em;
}

/* Le rouge relance la variation apres le bandeau d'avis noir. Les deux grands
   aplats rouges partagent la meme teinte assombrie et le meme papier peint. */
.elementor .e-con.eo-rooms,
.elementor .elementor-element.eo-rooms,
.elementor .e-con.eo-collective,
.elementor .elementor-element.eo-collective {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    color: var(--eo-white);
    background: var(--eo-red-field);
}

.elementor .eo-rooms::before,
.elementor .eo-collective::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: 0.09;
    pointer-events: none;
    background: url("../brand/damask-white-transparent.png") center / cover no-repeat;
}

.elementor .eo-rooms .eo-section-index,
.elementor .eo-rooms .eo-room__time {
    color: #ffd3cc;
}

.elementor .eo-rooms .eo-section-intro {
    color: rgba(255, 250, 245, 0.76);
}

.elementor .eo-rooms .eo-button--ghost-dark .elementor-button {
    border-color: rgba(255, 255, 255, 0.72);
    color: var(--eo-white);
}

.elementor .eo-rooms .eo-button--ghost-dark .elementor-button:hover,
.elementor .eo-rooms .eo-button--ghost-dark .elementor-button:focus-visible {
    border-color: var(--eo-white);
    color: var(--eo-ink);
    background: var(--eo-white);
}

.elementor .e-con.eo-section-head > .e-con-inner,
.elementor .elementor-element.eo-section-head > .e-con-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px 56px;
    align-items: end;
}

.eo-section-head .eo-section-index {
    grid-column: 1 / -1;
}

.eo-section-head .eo-display .elementor-heading-title {
    color: inherit;
}

.eo-section-intro {
    max-width: 340px;
    color: var(--eo-muted);
}

.eo-missions-shortcode,
.elementor .e-con.eo-carousel,
.elementor .elementor-element.eo-carousel {
    position: relative;
    width: 100%;
    max-width: none;
    margin-top: 68px;
}

.eo-missions-shortcode > .elementor-widget-container,
.eo-missions-carousel {
    width: 100%;
}

/* Le nombre de cadres visibles pilote la largeur des cartes, et non
   l'inverse : le dernier cadre tombe ainsi pile sur le bord du rail au lieu
   d'etre tranche en deux. --eo-cards est le seul reglage a toucher. */
.eo-room-rail,
.elementor .eo-room-rail > .e-con-inner,
.elementor .e-con.eo-room-rail {
    --eo-cards: 4;
    --eo-rail-gap: clamp(18px, 2vw, 32px);
    display: grid;
    grid-auto-columns: calc((100% - (var(--eo-cards) - 1) * var(--eo-rail-gap)) / var(--eo-cards));
    grid-auto-flow: column;
    gap: var(--eo-rail-gap);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    cursor: grab;
    touch-action: pan-y pinch-zoom;
}

.elementor .e-con.eo-room-rail {
    width: 100%;
    max-width: none;
    margin: 0;
}

.eo-room-rail::-webkit-scrollbar,
.eo-room-rail > .e-con-inner::-webkit-scrollbar {
    display: none;
}

.eo-room-rail:focus-visible {
    outline: 2px solid var(--eo-red);
    outline-offset: 6px;
}

.eo-carousel.is-dragging .eo-room-rail {
    cursor: grabbing;
    scroll-snap-type: none;
}

.eo-room,
.elementor .e-con.eo-room,
.elementor .elementor-element.eo-room {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px 14px;
    min-width: 0;
    container-type: inline-size;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

.elementor .eo-room > .e-con-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px 18px;
}

/* Le cadre doré est un PNG de 900 x 886 dont l'ouverture est creusee a
   7.45% en haut, 7.56% a droite et en bas, 7.67% a gauche. La carte reprend
   le ratio du fichier pour que la moulure ne soit jamais etiree, et la photo
   glisse d'un demi-pourcent sous la feuillure pour supprimer le liset. */
.eo-room__image {
    position: relative;
    isolation: isolate;
    grid-column: 1 / -1;
    margin-bottom: 16px;
    aspect-ratio: 900 / 886;
}

.eo-room__media {
    position: absolute;
    z-index: 0;
    inset: 6.85% 6.96% 6.96% 7.07%;
    overflow: hidden;
    background: #211c1b;
}

/* Specificite volontairement portee a 0,2,1 : `.elementor img` et
   `.eo77-site img` imposent tous deux `height: auto` et neutralisent sinon
   le `object-fit`, ce qui laisse une bande vide sous chaque photo. */
.eo-room img.eo-room__photo {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    filter: saturate(0.72) contrast(1.06);
    transform: scale(1.08);
    transition: transform 750ms var(--eo-ease), filter 500ms ease;
    -webkit-user-drag: none;
    user-select: none;
}

.eo-room img.eo-room__frame {
    position: absolute;
    z-index: 2;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: fill;
    pointer-events: none;
    -webkit-user-drag: none;
    user-select: none;
}

.eo-room:hover .eo-room__photo {
    transform: scale(1.14);
    filter: saturate(1) contrast(1.02);
}

.eo-room__coming {
    position: absolute;
    z-index: 1;
    inset: 11%;
    display: grid;
    align-content: center;
    justify-items: center;
    padding: 5cqi;
    color: #fff7ef;
    text-align: center;
    text-transform: uppercase;
    background: rgba(13, 10, 9, 0.68);
    backdrop-filter: blur(2px);
    transform: rotate(-4deg);
}

.eo-room__coming small {
    color: #e7c7a0;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.eo-room__coming strong {
    margin-top: 8px;
    font: 400 clamp(20px, 12cqi, 48px) / 0.9 "Smythe EO", serif;
    letter-spacing: 0.02em;
}

.eo-carousel__controls-widget {
    width: 100%;
}

.eo-carousel__controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.eo-carousel__status {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0;
    color: var(--eo-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.eo-carousel__status [data-carousel-current] {
    color: var(--eo-white);
    font: 400 38px / 1 "Smythe EO", serif;
    letter-spacing: 0;
}

.eo-carousel__buttons {
    display: flex;
    gap: 8px;
}

.eo-carousel__buttons button {
    display: grid;
    width: 50px;
    height: 50px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.32);
    color: var(--eo-white);
    background: transparent;
    place-items: center;
    font-size: 22px;
    cursor: pointer;
    transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.eo-carousel__buttons button:hover,
.eo-carousel__buttons button:focus-visible {
    border-color: var(--eo-red);
    color: var(--eo-white);
    background: var(--eo-red);
}

.eo-carousel__buttons button:focus-visible {
    outline: 2px solid var(--eo-white);
    outline-offset: 3px;
}

.eo-carousel__buttons button:disabled {
    opacity: 0.32;
    cursor: default;
    border-color: rgba(255, 255, 255, 0.24);
    background: transparent;
}

.eo-room__time {
    grid-column: 2;
    grid-row: 2;
    align-self: center;
    color: var(--eo-red);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 10px;
}

.eo-room__title,
.eo-room__title .elementor-heading-title {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
    color: var(--eo-white);
    font: 400 clamp(24px, 13cqi, 58px) / 0.94 "Smythe EO", serif;
}

.eo-room__meta {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--eo-muted);
    font-size: 12px;
}

.eo-room__link {
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: 12px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
    color: var(--eo-white);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.eo-room__link:hover,
.eo-room__link:focus-visible {
    border-bottom-color: var(--eo-red);
    color: var(--eo-red);
}

.eo-room__link.is-disabled {
    border-bottom-style: dashed;
    color: #e7c7a0;
    cursor: not-allowed;
}

.eo-room.is-coming-soon .eo-room__photo {
    filter: grayscale(0.45) saturate(0.5) brightness(0.62);
}

.eo-button--text {
    grid-column: 1 / -1;
}

.eo-button--text .elementor-button {
    min-height: 0;
    padding: 8px 0;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
    color: var(--eo-white);
    background: transparent;
    justify-content: flex-start;
}

.eo-button--text .elementor-button:hover {
    border-bottom-color: var(--eo-red);
    color: var(--eo-red);
    background: transparent;
    transform: none;
}

.eo-rooms > .e-con-inner > .eo-button {
    margin-top: 26px;
}

/* Quiz — bandeau plateau.
   Parti pris sobre : la photo porte l'ambiance, le texte se limite au titre,
   deux lignes de contexte et deux lignes pointées. Pas de grille de chiffres
   ni de liste numérotée, qui empilaient quatre blocs et faisaient déborder la
   section d'un écran. Le podium passe en colonne pour absorber la hauteur. */
.elementor .e-con.eo-quiz,
.elementor .elementor-element.eo-quiz {
    position: relative;
    display: grid;
    grid-template-columns: minmax(300px, 1fr) minmax(0, 3fr);
    column-gap: clamp(40px, 5vw, 84px);
    align-items: center;
    overflow: hidden;
    isolation: isolate;
    padding-block: clamp(78px, 8vw, 124px);
    color: var(--eo-ink);
    background: var(--eo-paper-deep);
}

/* La photo n'occupe reellement que les trois quarts droits. Le premier quart
   reste un aplat gris clair calme pour la copie, puis le bord gauche de l'image se
   dissout dans la couleur comme le raccord photo/carte du pre-footer. */
.elementor .eo-quiz::before,
.elementor .eo-quiz::after {
    content: "";
    position: absolute;
    inset-block: 0;
    width: auto;
    pointer-events: none;
}

.elementor .eo-quiz::before {
    z-index: -2;
    right: 0;
    left: 25%;
    background: url("../images/legacy/escape-one-pontault-combault-18-scaled.jpg") center / cover no-repeat;
}

.elementor .eo-quiz::after {
    z-index: -1;
    inset-inline: 0;
    background: linear-gradient(to right,
        rgb(215, 208, 201) 0%,
        rgb(215, 208, 201) 25%,
        rgba(215, 208, 201, 0.94) 30%,
        rgba(215, 208, 201, 0.48) 40%,
        rgba(215, 208, 201, 0.16) 54%,
        rgba(215, 208, 201, 0.08) 100%);
}

.elementor .e-con.eo-quiz__copy {
    --display: block;
    display: block;
    width: 100%;
    max-width: none;
    padding: 0;
}

.elementor .eo-quiz .eo-section-index {
    color: var(--eo-red);
}

.elementor .eo-quiz .eo-display {
    margin: 20px 0 26px;
}

.elementor .eo-quiz .eo-display .elementor-heading-title {
    color: var(--eo-ink);
    font-size: clamp(46px, 5vw, 84px);
}

.elementor .eo-quiz .eo-quiz__lead {
    color: #443e3b;
}

/* La mesure se pose sur le paragraphe, pas sur le widget : Elementor verrouille
   max-width sur ses widgets avec un selecteur a double classe, qu'une surenchere
   de specificite ne ferait qu'egaler. */
.eo-quiz__lead p {
    max-width: 46ch;
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
}

/* Une ligne pointée plutôt qu'un tableau : même information, un dixième de la
   hauteur, et le regard reste sur le titre. */
.elementor .eo-quiz .eo-quiz__meta {
    margin-top: 26px;
}

.eo-quiz__meta p {
    margin: 0;
    color: var(--eo-ink);
    text-transform: uppercase;
    letter-spacing: 0.11em;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.9;
}

.elementor .eo-quiz .eo-quiz__themes {
    margin-top: 10px;
}

.eo-quiz__themes p {
    max-width: 60ch;
    margin: 0;
    color: var(--eo-red-dark);
    font-size: 12px;
    line-height: 1.9;
}

.elementor .eo-quiz .eo-button {
    margin-top: 34px;
}

.elementor .eo-quiz .eo-button--light .elementor-button {
    border-color: var(--eo-red);
    color: var(--eo-white);
    background: var(--eo-red);
}

.elementor .eo-quiz .eo-button--light .elementor-button:hover,
.elementor .eo-quiz .eo-button--light .elementor-button:focus-visible {
    border-color: var(--eo-red-dark);
    background: var(--eo-red-dark);
}

/* Habillage du plugin hall-of-fame : uniquement des variables, aucune de ses
   regles n'est surchargee, il reste donc a jour sans conflit. */
/* Voile translucide : pose sur la photo, le podium perdait ses filets et ses
   chiffres dans le decor. */
.eo-quiz__podium .hof {
    max-width: 520px;
    margin-left: auto;
    padding: 24px 28px 12px;
    background: linear-gradient(to right, rgba(52, 6, 3, 0.66), rgba(52, 6, 3, 0.44));
    --hof-ink: var(--eo-white);
    --hof-muted: #ffb7ae;
    --hof-line: rgba(255, 255, 255, 0.22);
    --hof-accent: #ffd9d3;
    --hof-display: "Smythe EO", serif;
    --hof-name-size: clamp(19px, 1.5vw, 26px);
    --hof-score-size: clamp(19px, 1.5vw, 26px);
    --hof-row-pad: 11px;
}

/* Mini-FAQ — <details> natif, sans JavaScript. */
.elementor .e-con.eo-faq,
.elementor .elementor-element.eo-faq {
    padding-block: clamp(56px, 5.5vw, 92px);
    color: var(--eo-white);
    background: var(--eo-ink);
}

/* Deux colonnes : en pleine largeur alignee a gauche, l'accordeon laissait la
   moitie droite de la section vide. */
.elementor .e-con.eo-faq {
    --display: grid;
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(320px, 1.15fr);
    gap: clamp(30px, 5vw, 90px);
    align-items: start;
}

.elementor .e-con.eo-faq__head {
    --display: block;
    display: block;
    width: 100%;
    max-width: none;
    padding: 0;
}

.elementor .eo-faq .eo-display {
    margin: 18px 0 30px;
}

.elementor .eo-faq .eo-display .elementor-heading-title {
    font-size: clamp(40px, 4.2vw, 74px);
}

.elementor .eo-faq .eo-faq__list {
    width: 100%;
}

.eo-faq__list details {
    border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.eo-faq__list details:first-of-type {
    border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.eo-faq__list summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 20px 0;
    color: var(--eo-white);
    font-size: clamp(16px, 1.4vw, 20px);
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.eo-faq__list summary::-webkit-details-marker {
    display: none;
}

/* Le chevron est genere en CSS : le marqueur natif ne se stylise pas de la
   meme facon d'un moteur a l'autre. */
.eo-faq__list summary::after {
    content: "+";
    flex: 0 0 auto;
    color: var(--eo-red);
    font-size: 22px;
    font-weight: 400;
    line-height: 1;
    transition: transform 220ms var(--eo-ease);
}

.eo-faq__list details[open] summary::after {
    transform: rotate(45deg);
}

.eo-faq__list summary:hover,
.eo-faq__list summary:focus-visible {
    color: var(--eo-red);
}

.eo-faq__list details p {
    max-width: 68ch;
    margin: 0;
    padding: 0 0 22px;
    color: rgba(255, 250, 245, 0.7);
    font-size: 15px;
    line-height: 1.65;
}

.elementor .eo-faq .eo-button {
    margin-top: 0;
}

.elementor .eo-faq .eo-button--ghost-dark .elementor-button {
    border-color: rgba(255, 255, 255, 0.6);
    color: var(--eo-white);
}

.elementor .eo-faq .eo-button--ghost-dark .elementor-button:hover,
.elementor .eo-faq .eo-button--ghost-dark .elementor-button:focus-visible {
    border-color: var(--eo-red);
    background: var(--eo-red);
}

/* Pre-footer — infos pratiques, rendu sur toutes les pages. */
.eo-prefooter {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.65fr);
    align-items: stretch;
    color: var(--eo-white);
    background: var(--eo-ink-soft);
}

.eo-prefooter__info {
    display: grid;
    align-content: start;
    padding: clamp(48px, 5vw, 84px) var(--eo-gutter);
}

.eo-prefooter__brand {
    margin-bottom: 34px;
}

.eo-prefooter__brand img {
    width: 190px;
    height: auto;
    margin-bottom: 16px;
}

.eo-prefooter__brand p {
    max-width: 34ch;
    margin: 0;
    color: rgba(255, 250, 245, 0.66);
    font-size: 14px;
}

.eo-prefooter__cols {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
    gap: 26px;
}

.eo-prefooter__label {
    margin: 0 0 12px;
    color: var(--eo-red);
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 10px;
    font-weight: 800;
}

.eo-prefooter__col address {
    margin: 0 0 10px;
    font-style: normal;
    font-size: 15px;
    line-height: 1.6;
}

.eo-prefooter__col a {
    display: block;
    color: var(--eo-white);
    font-size: 14px;
    line-height: 1.9;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.eo-prefooter__col a:hover,
.eo-prefooter__col a:focus-visible {
    color: var(--eo-red);
}

.eo-prefooter__col p:not(.eo-prefooter__label) {
    margin: 0 0 10px;
    color: rgba(255, 250, 245, 0.72);
    font-size: 14px;
    line-height: 1.6;
}

.eo-prefooter__social {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.eo-prefooter__social a {
    display: grid;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    color: var(--eo-white);
    place-items: center;
    transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.eo-prefooter__social a:hover,
.eo-prefooter__social a:focus-visible {
    border-color: var(--eo-red);
    color: var(--eo-white);
    background: var(--eo-red);
}

.eo-prefooter__hours {
    margin: 0;
    padding: 0;
    list-style: none;
}

.eo-prefooter__hours li {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 4px 16px;
    padding: 7px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 14px;
}

.eo-prefooter__hours em {
    font-style: normal;
    font-weight: 700;
}

/* La carte remplit sa colonne : l'iframe ne se redimensionne pas toute seule. */
.eo-prefooter__map {
    position: relative;
    min-height: 320px;
    background: var(--eo-ink-soft);
}

.eo-prefooter__map iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    filter: grayscale(0.55) contrast(1.06) brightness(0.9);
}

/* Voile de raccord, transparent aux clics pour ne pas neutraliser la carte. */
.eo-prefooter__map::after {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(to right, var(--eo-ink-soft) 0%, rgba(23, 19, 19, 0.55) 9%, rgba(23, 19, 19, 0) 26%),
        linear-gradient(to bottom, rgba(23, 19, 19, 0.4) 0%, rgba(23, 19, 19, 0) 18%, rgba(23, 19, 19, 0) 82%, rgba(23, 19, 19, 0.4) 100%);
}

/* Reservation — maquette du module POS Limitless.
   Reprend la disposition du vrai module : barre de date, puis grille
   salles x creneaux avec les creneaux pris barres. Meme registre sobre que le
   reste de la page, aux couleurs du site plutot qu'a celles du prestataire. */
.elementor .e-con.eo-booking,
.elementor .elementor-element.eo-booking {
    padding-block: clamp(78px, 8vw, 124px);
    color: var(--eo-white);
    background: var(--eo-ink);
}

.elementor .eo-booking .eo-display {
    margin: 18px 0 0;
}

.elementor .eo-booking .eo-display .elementor-heading-title {
    font-size: clamp(46px, 5vw, 84px);
}

.eo-booking__lead p {
    max-width: 58ch;
    margin: 22px 0 0;
    color: rgba(255, 250, 245, 0.72);
    font-size: 15px;
    line-height: 1.6;
}

.elementor .eo-booking .eo-booking__widget {
    width: 100%;
    margin-top: 48px;
}

.eo-booking__bar {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    margin-bottom: 26px;
}

.eo-booking__nav {
    width: 48px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    color: var(--eo-white);
    background: transparent;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.eo-booking__nav[disabled] {
    opacity: 0.4;
    cursor: default;
}

.eo-booking__date {
    display: grid;
    place-items: center;
    min-width: min(340px, 60vw);
    margin: 0;
    padding: 12px 26px;
    border-block: 1px solid rgba(255, 255, 255, 0.22);
    font: 400 24px / 1 "Smythe EO", serif;
}

/* Le rail defile horizontalement sous 8 colonnes : mieux vaut un scroll assume
   qu'une grille ecrasee ou chaque nom de salle passe sur trois lignes. */
.eo-booking__scroller {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
}

.eo-booking__grid {
    display: grid;
    grid-template-columns: repeat(var(--eo-booking-cols, 6), minmax(148px, 1fr));
    gap: 1px;
    min-width: 100%;
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.eo-booking__room {
    background: var(--eo-white);
}

/* Hauteur fixe : sans elle, un nom sur une ligne contre deux decale toute la
   colonne et les horaires ne s'alignent plus d'une salle a l'autre. */
.eo-booking__head {
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 9px;
    min-height: 116px;
    padding: 16px 10px 14px;
    color: var(--eo-white);
    background: var(--eo-ink);
    text-align: center;
}

/* Specificite portee a 0,2,1 : `.eo77-site img` impose height: auto et un
   border-radius nul, qui aplatissaient la vignette. */
.eo-booking__head img.eo-booking__thumb {
    width: 46px;
    height: 46px;
    max-width: none;
    border-radius: 50%;
    object-fit: cover;
}

.eo-booking__name {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1.3;
}

.eo-booking__slots {
    margin: 0;
    padding: 6px 0;
    list-style: none;
}

.eo-booking__slot {
    padding: 11px 10px;
    color: var(--eo-ink);
    text-align: center;
    font-size: 14px;
    font-weight: 600;
}

.eo-booking__slot.is-taken {
    color: #a9a09a;
    font-weight: 400;
}

.eo-booking__slot s {
    text-decoration-thickness: 1px;
}

.eo-booking__note {
    margin: 18px 0 0;
    color: var(--eo-muted);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* Place — deux colonnes, une seule photo. Le triptyque precedent laissait
   l'image occuper les deux tiers de la largeur sans rien dire du lieu ; la
   place rendue sert a vendre la reception et la privatisation. */
.elementor .e-con.eo-place,
.elementor .elementor-element.eo-place {
    padding-block: clamp(56px, 5.5vw, 92px);
    color: var(--eo-ink);
    background: var(--eo-paper-deep);
}

.eo-place__lead p {
    max-width: 52ch;
    margin: 0;
    color: #443e3b;
    font-size: 15px;
    line-height: 1.65;
}

.elementor .eo-place .eo-place__meta {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--eo-line);
}

.eo-place__meta p {
    margin: 0;
    color: var(--eo-ink);
    text-transform: uppercase;
    letter-spacing: 0.11em;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.9;
}

.elementor .e-con.eo-place__actions {
    --display: flex;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    width: auto;
    margin-top: 30px;
    padding: 0;
}

.eo-place__copy .eo-display {
    margin: 20px 0 26px;
}

.eo-place__copy .eo-display .elementor-heading-title {
    color: var(--eo-ink);
    font-size: clamp(44px, 4.6vw, 82px);
}

/* Galerie du lieu : petit format assume. Les vues heritees de l'annuaire
   abcSalles portent un filigrane central, tres visible en grand ; a cette
   echelle il s'efface. */
.eo-place__gallery {
    width: 100%;
}

.eo-place-gallery__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - var(--eo-gallery-gap, 14px)) / 2);
    gap: var(--eo-gallery-gap, 14px);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    cursor: grab;
    touch-action: pan-y pinch-zoom;
}

.eo-place-gallery__track::-webkit-scrollbar {
    display: none;
}

.eo-place-gallery.is-dragging .eo-place-gallery__track {
    cursor: grabbing;
    scroll-snap-type: none;
}

.eo-place-gallery__slide {
    margin: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
}

.eo-place-gallery__slide img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    filter: saturate(0.85) contrast(1.04);
    -webkit-user-drag: none;
    user-select: none;
}

.eo-place-gallery .eo-carousel__controls {
    margin-top: 16px;
    padding-top: 14px;
    border-top-color: var(--eo-line);
}

.eo-place-gallery .eo-carousel__status [data-carousel-current] {
    color: var(--eo-ink);
    font-size: 26px;
}

.eo-place-gallery .eo-carousel__buttons button {
    width: 42px;
    height: 42px;
    border-color: var(--eo-line);
    color: var(--eo-ink);
    font-size: 18px;
}

.elementor .eo-place .eo-button--light .elementor-button {
    border-color: var(--eo-red);
    color: var(--eo-white);
    background: var(--eo-red);
}

.elementor .eo-place .eo-button--ghost .elementor-button {
    border-color: var(--eo-ink);
    color: var(--eo-ink);
    background: transparent;
}

.elementor .eo-place .eo-button--ghost .elementor-button:hover,
.elementor .eo-place .eo-button--ghost .elementor-button:focus-visible {
    border-color: var(--eo-red);
    color: var(--eo-white);
    background: var(--eo-red);
}

/* Final CTA */
.elementor .e-con.eo-final-cta,
.elementor .elementor-element.eo-final-cta {
    position: relative;
    isolation: isolate;
    min-height: 72svh;
    display: flex;
    align-items: center;
    color: var(--eo-white);
    text-align: center;
    background:
        linear-gradient(rgba(13, 11, 12, 0.58), rgba(13, 11, 12, 0.86)),
        url("../images/legacy/escape-one-pontault-combault-8-scaled.jpg") center / cover no-repeat;
}

.eo-final-cta::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 18px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    pointer-events: none;
}

.elementor .eo-final-cta > .e-con-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.eo-final-cta .eo-kicker {
    color: #f2b8b2;
}

.eo-final-cta .eo-display {
    margin: 28px 0 38px;
}

.eo-final-cta .eo-display .elementor-heading-title {
    color: inherit;
}

/* Secondary pages */
.eo-page-shell {
    min-height: 70vh;
    background: var(--eo-paper);
}

.eo-page-hero {
    min-height: clamp(380px, 58vh, 650px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: calc(var(--eo-header) + 70px) var(--eo-gutter) 72px;
    color: var(--eo-white);
    background:
        linear-gradient(90deg, rgba(13, 11, 12, 0.92), rgba(13, 11, 12, 0.35)),
        url("../images/legacy/escape-one-pontault-combault-10.jpg") center / cover no-repeat;
}

.eo-page-hero h1 {
    max-width: var(--eo-max);
    margin: 20px auto 0;
}

.eo-page-hero .eo-kicker {
    width: min(100%, var(--eo-max));
    margin-inline: auto;
}

.eo-page-content {
    width: min(100% - (2 * var(--eo-gutter)), 920px);
    margin-inline: auto;
    padding-block: clamp(72px, 9vw, 130px);
    font-size: clamp(16px, 1.4vw, 19px);
}

.eo-page-content h2,
.eo-page-content h3 {
    margin: 1.5em 0 0.55em;
    font-family: "Smythe EO", serif;
    font-weight: 400;
    line-height: 0.95;
}

.eo-page-content h2 {
    font-size: clamp(48px, 6vw, 80px);
}

.eo-page-content h3 {
    font-size: clamp(36px, 4vw, 54px);
}

.eo-page-content ul {
    padding-left: 1.2em;
}

.eo-page-content figure {
    margin: 54px 0;
}

.eo-page-content figure img {
    width: 100%;
    max-height: 680px;
    object-fit: cover;
}

.eo-inline-cta {
    display: inline-flex;
    margin-top: 16px;
    padding: 15px 22px;
    color: var(--eo-white) !important;
    background: var(--eo-red);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 11px;
    font-weight: 700;
}

.eo-price-list {
    margin: 32px 0 70px;
    border-top: 1px solid var(--eo-line);
}

.eo-price-list p {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 17px 0;
    margin: 0;
    border-bottom: 1px solid var(--eo-line);
}

.eo-page-content details {
    padding: 22px 0;
    border-bottom: 1px solid var(--eo-line);
}

.eo-page-content summary {
    cursor: pointer;
    font: 400 clamp(27px, 3vw, 40px) / 1 "Smythe EO", serif;
}

.eo-page-content details p {
    max-width: 720px;
    margin: 18px 0 0;
}

.eo-room-detail {
    display: grid;
    grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
    gap: clamp(40px, 7vw, 100px);
    align-items: center;
}

.eo-room-detail figure {
    margin: 0;
}

.eo-room-detail figure img {
    aspect-ratio: 4 / 5;
}

.eo-room-detail__meta {
    color: var(--eo-red);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 10px;
    font-weight: 700;
}

.eo-lead {
    max-width: 780px;
    margin: 0 0 clamp(58px, 8vw, 96px);
}

.eo-lead p:first-child {
    margin: 0 0 22px;
    font: 400 clamp(38px, 5vw, 68px) / 0.98 "Smythe EO", serif;
    color: var(--eo-ink);
}

.eo-lead p:last-child {
    max-width: 690px;
    margin-bottom: 0;
    font-size: clamp(18px, 2vw, 24px);
    line-height: 1.45;
}

.eo-facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: clamp(46px, 7vw, 82px) 0;
    border-block: 1px solid var(--eo-line);
}

.eo-facts p {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin: 0;
    padding: 28px clamp(16px, 3vw, 34px);
    border-right: 1px solid var(--eo-line);
}

.eo-facts p:first-child {
    padding-left: 0;
}

.eo-facts p:last-child {
    border-right: 0;
}

.eo-facts strong {
    font: 400 clamp(31px, 4vw, 50px) / 1 "Smythe EO", serif;
}

.eo-facts span,
.eo-mission-list article p {
    color: var(--eo-red);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.eo-content-grid,
.eo-contact-grid,
.eo-sitemap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 42px 0 72px;
    border-top: 1px solid var(--eo-line);
}

.eo-content-grid > div,
.eo-contact-grid > div,
.eo-sitemap > section {
    padding: 34px 34px 34px 0;
    border-bottom: 1px solid var(--eo-line);
}

.eo-content-grid > div:nth-child(even),
.eo-contact-grid > div:nth-child(even),
.eo-sitemap > section:nth-child(even) {
    padding-left: 34px;
    border-left: 1px solid var(--eo-line);
}

.eo-content-grid h3,
.eo-contact-grid h2,
.eo-sitemap h2 {
    margin-top: 0;
    font-size: clamp(30px, 3.2vw, 46px);
}

.eo-content-grid p,
.eo-contact-grid p {
    margin-bottom: 0;
    font-size: 0.92em;
}

.eo-wide-media img {
    aspect-ratio: 16 / 9;
}

.eo-callout {
    margin: clamp(60px, 8vw, 100px) 0 0;
    padding: clamp(34px, 5vw, 62px);
    color: var(--eo-white);
    background: var(--eo-ink);
}

.eo-callout h3 {
    margin-top: 0;
    color: inherit;
}

.eo-callout p {
    max-width: 680px;
}

.eo-callout .eo-inline-cta {
    background: var(--eo-red);
}

.eo-text-link {
    display: inline-block;
    margin: 18px 0 0 18px;
    color: inherit;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-underline-offset: 5px;
}

.eo-steps {
    margin: 40px 0 76px;
    padding: 0;
    list-style: none;
    counter-reset: eo-step;
    border-top: 1px solid var(--eo-line);
}

.eo-steps li {
    display: grid;
    grid-template-columns: 72px 0.7fr 1.3fr;
    gap: 24px;
    align-items: baseline;
    padding: 27px 0;
    counter-increment: eo-step;
    border-bottom: 1px solid var(--eo-line);
}

.eo-steps li::before {
    content: "0" counter(eo-step);
    color: var(--eo-red);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.eo-steps strong {
    font: 400 clamp(28px, 3vw, 40px) / 1 "Smythe EO", serif;
}

.eo-steps span {
    font-size: 0.9em;
}

.eo-contact-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.eo-contact-grid > div {
    padding-inline: 28px;
    border-left: 1px solid var(--eo-line);
}

.eo-contact-grid > div:first-child {
    padding-left: 0;
    border-left: 0;
}

/* Page Enigmes — trois sections pleines largeurs. L'introduction conserve son
   fond clair, les six missions forment ensemble une seule section noire, puis
   l'accompagnement reprend le rouge et le papier peint de la page d'accueil. */
.eo77-page-escape-room .eo-page-content {
    width: 100%;
    max-width: none;
    padding: 0;
}

.eo77-page-escape-room .eo-page-section-inner {
    width: min(calc(100% - (2 * var(--eo-gutter))), 1280px);
    margin-inline: auto;
}

.eo-rooms-overview {
    padding-block: clamp(72px, 8vw, 124px);
    background: var(--eo-paper-deep);
}

.eo-rooms-overview .eo-page-section-inner {
    max-width: 920px;
}

.eo-rooms-overview .eo-lead {
    margin-bottom: clamp(44px, 6vw, 72px);
}

.eo-rooms-overview .eo-facts {
    margin-bottom: 0;
}

.eo-missions-grid-section {
    padding-block: clamp(72px, 8vw, 124px);
    color: var(--eo-white);
    background: var(--eo-ink);
}

.eo-mission-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(34px, 5vw, 76px);
    margin: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.eo-mission-list article {
    min-width: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.eo-mission-list article:nth-child(odd) {
    padding-right: clamp(17px, 2.5vw, 38px);
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.eo-mission-list article:nth-child(even) {
    padding-left: clamp(17px, 2.5vw, 38px);
}

.eo-mission-list article a {
    display: block;
    padding: clamp(28px, 3vw, 42px) 0 clamp(36px, 4vw, 56px);
    color: inherit;
    text-decoration: none;
}

.eo-mission-list img {
    width: 100%;
    aspect-ratio: 300 / 247;
    object-fit: cover;
    filter: saturate(0.82) contrast(1.03);
    transition: filter 350ms ease, transform 500ms var(--eo-ease);
}

.eo-mission-list article:hover img,
.eo-mission-list article:focus-within img {
    filter: saturate(1.05) contrast(1.03);
    transform: scale(0.985);
}

.eo-mission-list__copy {
    position: relative;
    padding: 24px 58px 0 0;
}

.eo-mission-list__copy::after {
    content: "\2197";
    position: absolute;
    right: 0;
    top: 28px;
    color: #ffd3cc;
    font-size: 24px;
    line-height: 1;
    transition: transform 220ms var(--eo-ease);
}

.eo-mission-list article:hover .eo-mission-list__copy::after,
.eo-mission-list article:focus-within .eo-mission-list__copy::after {
    transform: translate(4px, -4px);
}

/* Le Bunker n'a pas de visuel liste deja encadre. On recompose donc le meme
   empilement que dans le carrousel : photo dans l'ouverture, carton au-dessus,
   moulure dorée au premier plan. */
.eo-mission-list__media {
    position: relative;
    isolation: isolate;
    aspect-ratio: 300 / 247;
}

.eo-mission-list__media::after {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0;
    pointer-events: none;
    background: url("../brand/mission-frame-gold.png") center / 100% 100% no-repeat;
}

.eo-mission-list .eo-mission-list__media img.eo-mission-list__photo {
    position: absolute;
    z-index: 0;
    top: 6.85%;
    left: 7.07%;
    width: 85.97%;
    height: 86.19%;
    max-width: none;
    aspect-ratio: auto;
    object-fit: cover;
    filter: grayscale(0.35) saturate(0.62) brightness(0.72);
    transform: none;
}

.eo-mission-list article span.eo-mission-list__coming {
    position: absolute;
    z-index: 1;
    inset: 11%;
    display: grid;
    max-width: none;
    align-content: center;
    justify-items: center;
    margin: 0;
    padding: clamp(18px, 4vw, 48px);
    color: #fff7ef;
    text-align: center;
    text-transform: uppercase;
    background: rgba(13, 10, 9, 0.7);
    backdrop-filter: blur(2px);
    transform: rotate(-4deg);
}

.eo-mission-list__coming small {
    color: #e7c7a0;
    font-size: clamp(8px, 0.8vw, 11px);
    font-weight: 700;
    letter-spacing: 0.14em;
}

.eo-mission-list__coming strong {
    margin-top: 10px;
    color: inherit;
    font: 400 clamp(30px, 4.5vw, 64px) / 0.9 "Smythe EO", serif;
    letter-spacing: 0.02em;
}

.eo-mission-list article.is-coming-soon:hover .eo-mission-list__photo,
.eo-mission-list article.is-coming-soon:focus-within .eo-mission-list__photo {
    filter: grayscale(0.15) saturate(0.72) brightness(0.78);
    transform: scale(1.025);
}

.eo-mission-list h2 {
    margin: 6px 0 12px;
    color: var(--eo-white);
    font-size: clamp(42px, 4.6vw, 70px);
}

.eo-mission-list article p,
.eo-mission-list article span {
    margin: 0;
}

.eo-mission-list article p {
    color: #ffd3cc;
}

.eo-mission-list article span {
    display: block;
    max-width: 42ch;
    color: rgba(255, 250, 245, 0.7);
    font-size: 14px;
    line-height: 1.6;
}

.eo-rooms-guidance {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding-block: clamp(72px, 8vw, 124px);
    color: var(--eo-white);
    background: var(--eo-red-field);
}

.eo-rooms-guidance::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: 0.09;
    pointer-events: none;
    background: url("../brand/damask-white-transparent.png") center / cover no-repeat;
}

.eo-rooms-guidance .eo-page-section-inner {
    max-width: 920px;
}

.eo-rooms-guidance h2 {
    margin-top: 0;
    color: inherit;
}

.eo-rooms-guidance > .eo-page-section-inner > p {
    max-width: 760px;
    color: rgba(255, 250, 245, 0.82);
}

.eo-rooms-guidance .eo-callout {
    margin-top: clamp(46px, 6vw, 76px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: rgba(72, 7, 5, 0.34);
}

.eo-sitemap ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.eo-sitemap li {
    padding: 7px 0;
}

.eo-sitemap a {
    color: inherit;
    text-underline-offset: 4px;
}

.eo77-page-quiz-game-quiz-one .eo-page-hero,
.eo77-page-team-building .eo-page-hero,
.eo77-page-privatisation .eo-page-hero {
    background-image: linear-gradient(90deg, rgba(13, 11, 12, 0.92), rgba(13, 11, 12, 0.28)), url("../images/legacy/escape-one-pontault-combault-18-scaled.jpg");
}

.eo77-page-escape-room .eo-page-hero,
.eo77-page-lalchimiste .eo-page-hero,
.eo77-page-le-temple-maya .eo-page-hero,
.eo77-page-le-diamant .eo-page-hero,
.eo77-page-le-portal .eo-page-hero,
.eo77-page-pirate .eo-page-hero {
    background-image: linear-gradient(90deg, rgba(13, 11, 12, 0.92), rgba(13, 11, 12, 0.28)), url("../images/legacy/escape-one-pontault-combault-10.jpg");
}

.eo77-page-cgv .eo-page-content,
.eo77-page-mentions-legales .eo-page-content,
.eo77-page-politique-de-confidentialite .eo-page-content {
    max-width: 800px;
    font-size: 16px;
    line-height: 1.7;
}

.eo77-page-cgv .eo-page-content h2,
.eo77-page-mentions-legales .eo-page-content h2,
.eo77-page-politique-de-confidentialite .eo-page-content h2 {
    font-size: clamp(38px, 5vw, 58px);
}

/* Pages secondaires — une section, une intention, un ton. Le contenu reste
   éditable dans WordPress ; le gabarit le regroupe automatiquement par H2. */
.eo-page-content.eo-page-content--banded {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.eo-page-band {
    position: relative;
    isolation: isolate;
    padding-block: clamp(72px, 8vw, 124px);
    overflow: hidden;
}

.eo-page-band > .eo-page-section-inner {
    position: relative;
    z-index: 1;
    width: min(calc(100% - (2 * var(--eo-gutter))), 920px);
    margin-inline: auto;
}

.eo-page-band--light {
    --eo-line: rgba(13, 11, 12, 0.18);
    color: var(--eo-ink);
    background: rgb(215, 208, 201);
}

.eo-page-band--dark {
    --eo-line: rgba(255, 255, 255, 0.18);
    color: var(--eo-white);
    background: rgb(13, 11, 12);
}

.eo-page-band--red {
    --eo-line: rgba(255, 255, 255, 0.2);
    color: var(--eo-white);
    background: var(--eo-red-field);
}

.eo-page-band--red::before,
.eo-page-band--form::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
    /* Tuile d'un seul motif (442 x 707), raccordable dans les deux sens.
       240px = 720/3 : l'ancienne image en contenait trois de large, l'echelle
       a l'ecran est donc inchangee. */
    background: url("../brand/damask-white-tile.png") center / 240px auto repeat;
    opacity: 0.09;
}

/* Bandes de formulaire : toujours un champ damasse, c'est lui que la vitre de
   la carte laisse transparaitre. Rouge par defaut, encre quand la bande qui
   precede est deja rouge — deux champs identiques colles se liraient comme une
   seule section coupee en deux. */
.eo-page-band--form {
    --eo-line: rgba(255, 255, 255, 0.2);
    color: var(--eo-white);
}

.eo-page-band--form-red {
    background: var(--eo-red-field);
}

.eo-page-band--form-ink {
    background: var(--eo-ink);
}

.eo-page-band--form-ink::before {
    opacity: 0.07;
}

.eo-page-band--dark h2,
.eo-page-band--dark h3,
.eo-page-band--red h2,
.eo-page-band--red h3,
.eo-page-band--form h2,
.eo-page-band--form h3,
.eo-page-band--dark .eo-lead p:first-child,
.eo-page-band--red .eo-lead p:first-child {
    color: inherit;
}

.eo-page-band h2:first-child,
.eo-page-band .eo-kicker + h2 {
    margin-top: 0;
}

.eo-page-band--dark .eo-kicker {
    color: #ff746c;
}

.eo-page-band--red .eo-kicker,
.eo-page-band--red .eo-facts span {
    color: #ffd5cf;
}

.eo-page-band--dark .eo-callout {
    background: var(--eo-red-field);
}

.eo-page-band--red .eo-callout {
    background: var(--eo-ink);
}

.eo-page-band--red .eo-inline-cta {
    background: var(--eo-ink);
}

.eo-page-band--dark a:not(.eo-inline-cta),
.eo-page-band--red a:not(.eo-inline-cta),
.eo-page-band--form a:not(.eo-inline-cta) {
    text-decoration-color: rgba(255, 255, 255, 0.45);
}

/* Pages des énigmes — les visuels et données viennent des fiches d'origine. */
.eo-mission-intro > .eo-page-section-inner {
    width: min(calc(100% - (2 * var(--eo-gutter))), 1160px);
}

.eo-mission-intro .eo-room-detail figure img {
    min-height: 560px;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.eo-mission-stats > .eo-page-section-inner,
.eo-mission-gallery > .eo-page-section-inner,
.eo-mission-carousel-section > .eo-page-section-inner {
    width: min(calc(100% - (2 * var(--eo-gutter))), 1280px);
}

.eo-mission-breakdown {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: clamp(44px, 6vw, 72px);
    border-block: 1px solid var(--eo-line);
}

.eo-mission-breakdown__item,
.eo-mission-difficulty {
    min-width: 0;
    padding: clamp(24px, 3vw, 40px);
    border-right: 1px solid var(--eo-line);
}

.eo-mission-breakdown > :first-child {
    padding-left: 0;
}

.eo-mission-breakdown > :last-child {
    border-right: 0;
}

.eo-mission-breakdown__item strong,
.eo-mission-difficulty > strong {
    display: block;
    color: var(--eo-white);
    font: 400 clamp(42px, 5vw, 72px) / 0.9 "Smythe EO", serif;
}

.eo-mission-breakdown__item > span,
.eo-mission-difficulty small {
    display: block;
    margin-top: 9px;
    color: #ff746c;
    text-transform: uppercase;
    letter-spacing: 0.13em;
    font-size: 10px;
    font-weight: 700;
}

.eo-mission-breakdown__item > i {
    display: block;
    height: 3px;
    margin-top: 24px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.17);
}

.eo-mission-breakdown__item > i > b {
    display: block;
    width: var(--eo-value);
    height: 100%;
    background: var(--eo-red);
}

.eo-mission-difficulty > div {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
}

.eo-mission-difficulty > div span {
    position: relative;
    display: block;
    width: clamp(22px, 2.5vw, 34px);
    height: 8px;
    margin-left: 5px;
    opacity: 0.24;
    background: #ff746c;
    border-radius: 0 4px 4px 0;
}

.eo-mission-difficulty > div span::before {
    content: "";
    position: absolute;
    top: 50%;
    left: -7px;
    width: 14px;
    height: 14px;
    border: 4px solid #ff746c;
    border-radius: 50%;
    transform: translateY(-50%);
}

.eo-mission-difficulty > div span.is-active {
    opacity: 1;
}

.eo-mission-logistics {
    margin-bottom: 0;
}

.eo-mission-logistics strong {
    color: var(--eo-white);
}

.eo-mission-gallery__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(14px, 2vw, 28px);
    margin-top: clamp(44px, 6vw, 72px);
}

.eo-mission-gallery__grid figure {
    margin: 0;
    overflow: hidden;
}

.eo-mission-gallery__grid figure:only-child,
.eo-mission-gallery__grid.is-extended figure:first-child {
    grid-column: 1 / -1;
}

.eo-mission-gallery__grid img {
    width: 100%;
    height: 100%;
    min-height: 320px;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform 700ms var(--eo-ease), filter 500ms ease;
}

.eo-mission-gallery__grid figure:hover img {
    filter: saturate(1.08);
    transform: scale(1.025);
}

.eo-mission-gallery__grid.is-extended figure:first-child img {
    aspect-ratio: 16 / 7;
}

.eo-mission-how p {
    max-width: 760px;
    margin-bottom: 0;
    font-size: clamp(18px, 2vw, 24px);
}

.eo-mission-carousel-section .eo-missions-carousel {
    margin-top: clamp(44px, 6vw, 72px);
}

.eo77-mission-lalchimiste .eo-page-hero {
    background-image: linear-gradient(90deg, rgba(13, 11, 12, 0.92), rgba(13, 11, 12, 0.26)), url("../images/legacy/escape-game-alchimiste.png");
}

.eo77-mission-le-temple-maya .eo-page-hero {
    background-image: linear-gradient(90deg, rgba(13, 11, 12, 0.92), rgba(13, 11, 12, 0.26)), url("../images/legacy/escape-game-temple-maya.avif");
}

.eo77-mission-le-diamant .eo-page-hero {
    background-image: linear-gradient(90deg, rgba(13, 11, 12, 0.92), rgba(13, 11, 12, 0.26)), url("../images/legacy/escape-game-diamant.avif");
}

.eo77-mission-le-portal .eo-page-hero {
    background-image: linear-gradient(90deg, rgba(13, 11, 12, 0.92), rgba(13, 11, 12, 0.26)), url("../images/legacy/escape-one-enigme-portal-8-scaled.jpg");
}

.eo77-mission-pirate .eo-page-hero {
    background-image: linear-gradient(90deg, rgba(13, 11, 12, 0.92), rgba(13, 11, 12, 0.26)), url("../images/legacy/escape-game-pirate.avif");
}

.eo77-mission-le-bunker .eo-page-hero {
    background-image: linear-gradient(90deg, rgba(13, 11, 12, 0.92), rgba(13, 11, 12, 0.26)), url("../images/legacy/escape-game-bunker.avif");
}

/* Footer — navigation seule. Marque, coordonnees et reseaux vivent dans le
   pre-footer, juste au-dessus. */
.eo-footer {
    padding: clamp(38px, 4vw, 58px) var(--eo-gutter) 26px;
    color: rgba(255, 255, 255, 0.62);
    background: #090707;
}

.eo-footer__nav,
.eo-footer__bottom {
    width: min(100%, var(--eo-max));
    margin-inline: auto;
}

.eo-footer__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 14px clamp(20px, 2.4vw, 38px);
}

.eo-footer__nav a {
    color: inherit;
    font-size: 13px;
    text-decoration: none;
}

.eo-footer a:hover,
.eo-footer a:focus-visible {
    color: var(--eo-white);
}

.eo-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 24px;
    margin-top: 34px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 9px;
}

.eo-footer__bottom nav {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 24px;
}

.eo-footer__bottom a {
    text-decoration: none;
}

/* Elementor 4 optimized markup: containers have no .e-con-inner wrapper. */
.elementor .e-con.eo-hero {
    --display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.elementor .e-con.eo-actions {
    --display: flex;
    display: flex;
    flex-flow: row wrap;
    gap: 12px;
    margin-top: 20px;
}

/* Source unique de la grille du manifeste — ce bloc, plus bas dans le fichier,
   l'emporte sur toute declaration anterieure de meme specificite.
   Colonnes dimensionnees par leur contenu et calees a gauche plutot qu'en
   fractions : en fractions, un ecran large etirait la colonne de titre a plus
   de 1100 px pour un texte qui en occupe 500, et repoussait la copie a
   l'extreme droite en laissant un vide au milieu. */
.elementor .eo-manifesto > .e-con-inner,
.elementor .e-con.eo-manifesto {
    --display: grid;
    display: grid;
    grid-template-columns: minmax(0, max-content) minmax(280px, 46ch);
    justify-content: start;
    gap: 22px clamp(44px, 4.4vw, 92px);
    align-items: end;
}


.elementor .e-con.eo-section-head {
    --display: grid;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 20px 56px;
    align-items: end;
}

.elementor .e-con.eo-room-rail {
    --display: grid;
    display: grid;
    grid-auto-columns: clamp(260px, 28vw, 410px);
    grid-auto-flow: column;
    gap: clamp(14px, 2vw, 30px);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    touch-action: pan-y pinch-zoom;
}

.elementor .e-con.eo-room {
    --display: grid;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 6px 18px;
}



.elementor .eo-place > .e-con-inner,
.elementor .e-con.eo-place {
    --display: grid;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.95fr);
    gap: clamp(30px, 5vw, 84px);
    align-items: center;
}

.elementor .e-con.eo-final-cta {
    --display: flex;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* Progressive motion. Content stays visible without JS and inside Elementor. */
html.eo-js body:not(.elementor-editor-active) .eo-reveal {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity 800ms var(--eo-ease), transform 900ms var(--eo-ease);
}

html.eo-js body:not(.elementor-editor-active) .eo-reveal.is-visible {
    opacity: 1;
    transform: none;
}

html.eo-js body:not(.elementor-editor-active) .eo-hero__kicker,
html.eo-js body:not(.elementor-editor-active) .eo-hero__title,
html.eo-js body:not(.elementor-editor-active) .eo-hero__copy,
html.eo-js body:not(.elementor-editor-active) .eo-hero .eo-actions {
    opacity: 0;
    transform: translateY(24px);
    animation: eo-hero-in 900ms var(--eo-ease) forwards;
}

html.eo-js body:not(.elementor-editor-active) .eo-hero__title { animation-delay: 120ms; }
html.eo-js body:not(.elementor-editor-active) .eo-hero__copy { animation-delay: 240ms; }
html.eo-js body:not(.elementor-editor-active) .eo-hero .eo-actions { animation-delay: 360ms; }

@keyframes eo-hero-in {
    to { opacity: 1; transform: none; }
}


/* Sélecteur de langue — deux codes séparés d'un filet, au bout de la
   navigation. Il vit dans `.eo-nav`, donc il hérite de sa typographie : les
   règles ci-dessous ne font que l'alléger et griser la langue inactive.
   `.eo-lang .eo-lang__link` (deux classes) l'emporte sur `.eo-nav a`. */
.eo-lang {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.eo-lang::before {
    content: "";
    width: 1px;
    height: 13px;
    margin-right: 2px;
    background: currentColor;
    opacity: 0.3;
}

.eo-lang .eo-lang__link {
    padding: 0;
    color: inherit;
    opacity: 0.55;
    font-size: 11px;
    letter-spacing: 0.11em;
    transition: opacity 220ms ease;
}

.eo-lang .eo-lang__link:hover,
.eo-lang .eo-lang__link:focus-visible,
.eo-lang .eo-lang__link.is-current {
    opacity: 1;
}

/* ------------------------------------------------------------------
   Formulaires — Glorious Custom Forms

   La feuille du plugin est injectée en <style> dans le <head>, donc APRÈS
   ce fichier : à spécificité égale c'est elle qui gagne, et l'essentiel de
   ses règles porte !important. Les surcharges ci-dessous sont donc toutes
   préfixées par `.eo-page-band--form` — spécificité supérieure — et
   reprennent !important là où le plugin l'utilise. Une exception : on ne
   surcharge jamais `background` en raccourci sur les `<select>`, sinon la
   flèche que le plugin dessine en `background-image` disparaîtrait ; d'où
   le `background-color` partout.

   La carte est en verre : le champ damassé de la bande la traverse, adouci
   par un flou léger. Le flou reste faible à dessein — au-delà, le motif
   devient une bouillie et la bande n'a plus d'intérêt.
   ------------------------------------------------------------------ */

.eo-form-intro {
    max-width: 660px;
}

.eo-form-embed {
    margin-top: clamp(34px, 4vw, 54px);
}

.eo-page-band--form .glorious-glass-card {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: clamp(28px, 4.2vw, 58px);
    border: 1px solid rgba(255, 250, 245, 0.18);
    border-radius: 0;
    color: var(--eo-white);
    background: rgba(13, 11, 12, 0.42);
    -webkit-backdrop-filter: blur(8px) saturate(118%);
    backdrop-filter: blur(8px) saturate(118%);
    box-shadow: 0 34px 70px rgba(0, 0, 0, 0.32);
    color-scheme: dark;
    font-family: "Montserrat EO", Arial, sans-serif;
    font-size: 15px;
}

/* Sur l'encre, une vitre plus sombre que son fond disparaîtrait : la carte
   éclaircit au lieu d'assombrir. */
.eo-page-band--form-ink .glorious-glass-card {
    border-color: rgba(255, 250, 245, 0.16);
    background: rgba(255, 250, 245, 0.07);
}

/* Le titre de la section vit dans le contenu de la page, donc éditable
   depuis WordPress : celui embarqué dans le formulaire ferait doublon. */
.eo-page-band--form .glorious-glass-card > h2,
.eo-page-band--form .glorious-glass-card > form > h2 {
    display: none;
}

.eo-page-band--form .glorious-grid {
    gap: 20px 26px;
}

.eo-page-band--form .glorious-glass-card ::placeholder {
    color: rgba(255, 250, 245, 0.5);
    opacity: 1;
}

/* Libellés — même micro-typographie que les surtitres du site. */
.eo-page-band--form .glorious-group label {
    color: #ffd5cf;
    font-family: "Montserrat EO", Arial, sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.eo-page-band--form-ink .glorious-group label {
    color: #ff746c;
}

.eo-page-band--form .glorious-question-label {
    line-height: 1.7;
    letter-spacing: 0.1em;
}

/* Champs */
.eo-page-band--form .glorious-group input:not([type="radio"]):not([type="checkbox"]),
.eo-page-band--form .glorious-group textarea,
.eo-page-band--form .glorious-group select {
    border: 1px solid rgba(255, 250, 245, 0.26) !important;
    border-radius: 0 !important;
    background-color: rgba(13, 11, 12, 0.3) !important;
    color: var(--eo-white) !important;
    font-family: "Montserrat EO", Arial, sans-serif !important;
    font-size: 15px !important;
}

.eo-page-band--form-ink .glorious-group input:not([type="radio"]):not([type="checkbox"]),
.eo-page-band--form-ink .glorious-group textarea,
.eo-page-band--form-ink .glorious-group select {
    background-color: rgba(255, 250, 245, 0.06) !important;
}

.eo-page-band--form .glorious-group input:focus,
.eo-page-band--form .glorious-group textarea:focus,
.eo-page-band--form .glorious-group select:focus {
    border-color: var(--eo-white) !important;
    background-color: rgba(13, 11, 12, 0.46) !important;
    outline: none;
}

/* Sur l'encre, le rouge d'accent redevient lisible : il reprend son rôle. */
.eo-page-band--form-ink .glorious-group input:focus,
.eo-page-band--form-ink .glorious-group textarea:focus,
.eo-page-band--form-ink .glorious-group select:focus {
    border-color: var(--eo-red) !important;
    background-color: rgba(255, 250, 245, 0.12) !important;
}

.eo-page-band--form .glorious-group select {
    background-image:
        linear-gradient(45deg, transparent 50%, var(--eo-white) 50%),
        linear-gradient(135deg, var(--eo-white) 50%, transparent 50%) !important;
}

.eo-page-band--form-ink .glorious-group select {
    background-image:
        linear-gradient(45deg, transparent 50%, var(--eo-red) 50%),
        linear-gradient(135deg, var(--eo-red) 50%, transparent 50%) !important;
}

.eo-page-band--form .glorious-group input[type="file"] {
    height: auto !important;
    min-height: 54px !important;
    padding: 12px 14px !important;
    line-height: 1.5 !important;
}

.eo-page-band--form .glorious-group input[type="file"]::file-selector-button {
    margin-right: 14px;
    padding: 9px 15px;
    border: 1px solid rgba(255, 250, 245, 0.36);
    border-radius: 0;
    color: var(--eo-white);
    background: transparent;
    font-family: "Montserrat EO", Arial, sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
}

/* Oui / Non */
.eo-page-band--form .glorious-toggle-option span {
    border: 1px solid rgba(255, 250, 245, 0.26);
    border-radius: 0;
    color: var(--eo-white);
    background-color: rgba(13, 11, 12, 0.3);
    font-family: "Montserrat EO", Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.eo-page-band--form-ink .glorious-toggle-option span {
    background-color: rgba(255, 250, 245, 0.06);
}

.eo-page-band--form .glorious-toggle-option span:hover {
    border-color: var(--eo-white);
    background-color: rgba(13, 11, 12, 0.46);
}

.eo-page-band--form-ink .glorious-toggle-option span:hover {
    border-color: var(--eo-red);
    background-color: rgba(255, 250, 245, 0.12);
}

.eo-page-band--form .glorious-toggle-option input[type="radio"]:checked + span {
    border-color: var(--eo-white);
    color: var(--eo-ink);
    background-color: var(--eo-white);
    box-shadow: none;
}

.eo-page-band--form-ink .glorious-toggle-option input[type="radio"]:checked + span {
    border-color: var(--eo-red);
    color: var(--eo-white);
    background-color: var(--eo-red);
}

/* Créneaux */
.eo-page-band--form .time-slot {
    padding: 13px 8px;
    border: 1px solid rgba(255, 250, 245, 0.26);
    border-radius: 0;
    color: var(--eo-white);
    background-color: rgba(13, 11, 12, 0.3);
    font-family: "Montserrat EO", Arial, sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.eo-page-band--form-ink .time-slot {
    background-color: rgba(255, 250, 245, 0.06);
}

.eo-page-band--form .time-slot:hover {
    border-color: var(--eo-white);
    background-color: rgba(13, 11, 12, 0.46);
}

.eo-page-band--form-ink .time-slot:hover {
    border-color: var(--eo-red);
    background-color: rgba(255, 250, 245, 0.12);
}

.eo-page-band--form .time-slot.selected {
    border-color: var(--eo-white);
    color: var(--eo-ink);
    background-color: var(--eo-white);
}

.eo-page-band--form-ink .time-slot.selected {
    border-color: var(--eo-red);
    color: var(--eo-white);
    background-color: var(--eo-red);
}

/* Bouton d'envoi — repris de `.eo-inline-cta` et `.eo-button`. */
.eo-page-band--form .glorious-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: min(100%, 300px);
    max-width: none;
    min-height: 56px;
    margin: 38px 0 0;
    padding: 16px 30px;
    border: 1px solid var(--eo-white);
    border-radius: 0;
    color: var(--eo-ink) !important;
    background: var(--eo-white);
    font-family: "Montserrat EO", Arial, sans-serif;
    font-size: 11px;
    font-weight: 750;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    transition: color 220ms ease, background-color 220ms ease, transform 220ms var(--eo-ease);
}

.eo-page-band--form .glorious-btn:hover {
    border-color: var(--eo-red);
    color: var(--eo-white) !important;
    background: var(--eo-red);
    transform: translateY(-3px);
}

.eo-page-band--form-ink .glorious-btn {
    border-color: var(--eo-red);
    color: var(--eo-white) !important;
    background: var(--eo-red);
}

.eo-page-band--form-ink .glorious-btn:hover {
    border-color: #eb1b12;
    background: #eb1b12;
}

/* Réponses et mentions */
.eo-page-band--form .glorious-response {
    margin-top: 18px;
    text-align: left;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.eo-page-band--form .glorious-response.success,
.eo-page-band--form .glorious-response.error {
    color: var(--eo-white);
}

.eo-page-band--form-ink .glorious-response.success {
    color: #8fe3b2;
}

.eo-page-band--form-ink .glorious-response.error {
    color: #ffb4b4;
}

.eo-page-band--form .glorious-form-note {
    margin: 16px 0 0;
    color: rgba(255, 250, 245, 0.78);
    font-size: 12px;
}

/* Calendrier Flatpickr — le plugin injecte son thème doré en JS après coup,
   avec !important : il faut donc à la fois !important et un sélecteur plus
   spécifique pour ramener le calendrier dans la charte. */
body.eo77-site .flatpickr-calendar.glorious-theme {
    border-radius: 0 !important;
    border-color: rgba(255, 250, 245, 0.22) !important;
    background: rgba(13, 11, 12, 0.94) !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55) !important;
}

body.eo77-site .flatpickr-calendar.glorious-theme .flatpickr-monthDropdown-months,
body.eo77-site .flatpickr-calendar.glorious-theme .numInput.cur-year {
    font-family: "Smythe EO", Georgia, serif !important;
    font-weight: 400 !important;
}

body.eo77-site .flatpickr-calendar.glorious-theme .flatpickr-weekday {
    color: #ff746c !important;
    font-family: "Montserrat EO", Arial, sans-serif !important;
    font-size: 10px !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
}

body.eo77-site .flatpickr-calendar.glorious-theme .flatpickr-day {
    border-radius: 0 !important;
    font-family: "Montserrat EO", Arial, sans-serif !important;
    font-weight: 500 !important;
}

body.eo77-site .flatpickr-calendar.glorious-theme .flatpickr-day:hover {
    border-color: transparent !important;
    background: rgba(255, 250, 245, 0.12) !important;
}

body.eo77-site .flatpickr-calendar.glorious-theme .flatpickr-day.selected {
    border-color: var(--eo-red) !important;
    color: var(--eo-white) !important;
    background: var(--eo-red) !important;
}

/* Le flou de fond coûte cher et n'apporte rien quand le visiteur a demandé
   moins d'animation ou quand le navigateur ne sait pas le faire : la carte
   redevient un bloc plein, lisible dans tous les cas. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .eo-page-band--form .glorious-glass-card {
        background: rgba(13, 11, 12, 0.86);
    }

    .eo-page-band--form-ink .glorious-glass-card {
        background: rgba(38, 34, 34, 0.94);
    }
}

@media (max-width: 780px) {
    .eo-page-band--form .glorious-glass-card {
        width: auto;
        margin-inline: -20px;
        padding: 30px 20px;
    }

    .eo-page-band--form .glorious-btn {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 1280px) {
    .eo-room-rail,
    .elementor .eo-room-rail > .e-con-inner,
    .elementor .e-con.eo-room-rail {
        --eo-cards: 4;
    }
}

@media (max-width: 1050px) {
    :root {
        --eo-header: 86px;
    }

    .eo-room-rail,
    .elementor .eo-room-rail > .e-con-inner,
    .elementor .e-con.eo-room-rail {
        --eo-cards: 3;
    }

    .eo-header__inner {
        grid-template-columns: 180px 1fr;
    }

    .eo-brand {
        width: 165px;
    }

    .eo-nav {
        gap: 18px;
    }

    .eo-nav a {
        font-size: 10px;
    }

    .elementor .eo-collective__links > .e-con-inner,
    .elementor .e-con.eo-collective__links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 780px) {
    :root {
        --eo-header: 76px;
        --eo-gutter: 20px;
    }

    .eo-header,
    .eo-header.is-scrolled {
        height: var(--eo-header);
    }

    .eo-header__inner {
        grid-template-columns: 1fr auto;
        padding-inline: var(--eo-gutter);
    }

    .eo-brand {
        position: relative;
        z-index: 2;
        width: 140px;
    }

    .eo-menu-toggle {
        position: relative;
        z-index: 2;
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 10px 0;
        text-transform: uppercase;
        letter-spacing: 0.13em;
        font-size: 10px;
        cursor: pointer;
    }

    .eo-menu-toggle i,
    .eo-menu-toggle i::before {
        content: "";
        display: block;
        width: 22px;
        height: 1px;
        background: currentColor;
        transition: transform 220ms ease;
    }

    .eo-menu-toggle i::before {
        transform: translateY(6px);
    }

    .menu-open .eo-menu-toggle i {
        transform: translateY(3px) rotate(45deg);
    }

    .menu-open .eo-menu-toggle i::before {
        transform: rotate(-90deg);
    }

    .eo-nav {
        position: fixed;
        inset: 0;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 0;
        padding: 100px var(--eo-gutter) 40px;
        overflow-y: auto;
        visibility: hidden;
        opacity: 0;
        background: var(--eo-ink);
        transition: opacity 260ms ease, visibility 260ms ease;
    }

    .menu-open .eo-nav {
        visibility: visible;
        opacity: 1;
    }

    /* Dans le menu plein écran, la langue reste une paire de codes discrète,
       pas une entrée de navigation de 44px comme le reste. */
    .eo-lang {
        margin-top: 28px;
        padding-top: 22px;
        border-top: 1px solid rgba(255, 255, 255, 0.14);
        width: 100%;
    }

    .eo-lang::before {
        display: none;
    }

    .eo-lang .eo-lang__link {
        width: auto;
        padding: 6px 0;
        font: 650 13px / 1 "Montserrat EO", Arial, sans-serif;
        letter-spacing: 0.14em;
        text-transform: uppercase;
    }

    .eo-nav a,
    .eo-nav__book,
    .eo-nav__dropdown-toggle {
        width: 100%;
        padding: 10px 0;
        color: var(--eo-white);
        background: transparent;
        font: 400 44px / 1 "Smythe EO", serif;
        letter-spacing: 0;
        text-transform: none;
    }

    .eo-nav__dropdown {
        display: block;
        width: 100%;
    }

    .eo-nav__dropdown-toggle {
        justify-content: space-between;
    }

    .eo-nav__dropdown-toggle i {
        width: 12px;
        height: 12px;
        margin-right: 4px;
    }

    .eo-nav__submenu {
        position: static;
        min-width: 0;
        max-height: 0;
        padding: 0 0 0 18px;
        overflow: hidden;
        border: 0;
        box-shadow: none;
        transform: none;
        transition: max-height 300ms var(--eo-ease), opacity 180ms ease, visibility 180ms ease;
    }

    .eo-nav__submenu::before {
        display: none;
    }

    .eo-nav__submenu a {
        padding: 7px 0;
        color: #d8cfca;
        font-size: 26px;
    }

    .eo-nav__dropdown:not(.is-open) .eo-nav__submenu {
        max-height: 0;
        visibility: hidden;
        opacity: 0;
        transform: none;
    }

    .eo-nav__dropdown.is-open .eo-nav__submenu {
        max-height: 320px;
        padding-block: 3px 10px;
        visibility: visible;
        opacity: 1;
        transform: none;
    }

    .eo-nav a::after {
        display: none;
    }

    .elementor .e-con.eo-section,
    .elementor .elementor-element.eo-section {
        padding-block: 84px;
    }

    .elementor .e-con.eo-hero,
    .elementor .elementor-element.eo-hero {
        min-height: 100svh;
        padding-top: calc(var(--eo-header) + 56px);
        padding-bottom: 36px;
        background-position: 58% center;
    }

    .eo-hero::after {
        right: -0.1em;
        bottom: -0.08em;
        font-size: 78vw;
    }

    .elementor .eo-hero > .e-con-inner {
        min-height: calc(100svh - var(--eo-header) - 92px);
    }

    .eo-hero__title .elementor-heading-title {
        font-size: clamp(68px, 24vw, 104px);
    }

    .eo-hero__copy {
        max-width: 88%;
        margin-top: 24px;
    }

    .eo-scroll-cue {
        display: none;
    }

    .elementor .eo-manifesto > .e-con-inner,
    .elementor .eo-place > .e-con-inner,
    .eo-room-detail {
        grid-template-columns: 1fr;
    }

    .elementor .e-con.eo-manifesto,
    .elementor .e-con.eo-place,
    .elementor .e-con.eo-faq {
        grid-template-columns: 1fr;
    }

    .elementor .e-con.eo-quiz,
    .elementor .elementor-element.eo-quiz {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 52px;
        /* En une seule colonne, le texte court sur toute la largeur : le
           degrade horizontal le laisserait aux trois quarts sur la photo. */
        background:
            linear-gradient(to bottom,
                rgba(94, 10, 5, 0.97) 0%,
                rgba(94, 10, 5, 0.93) 55%,
                rgba(94, 10, 5, 0.8) 100%),
            url("../images/legacy/escape-one-pontault-combault-18-scaled.jpg") center / cover no-repeat;
    }

    .eo-quiz__podium .hof {
        max-width: none;
        margin-left: 0;
        padding: 0;
        background: none;
    }

    /* La copie occupe toute la largeur sur mobile : le gris se prolonge donc
       davantage sur la photo afin de conserver le contraste du texte sombre. */
    .elementor .eo-quiz::after {
        background: linear-gradient(to right,
            rgb(215, 208, 201) 0%,
            rgb(215, 208, 201) 25%,
            rgba(215, 208, 201, 0.96) 46%,
            rgba(215, 208, 201, 0.78) 100%);
    }


    .elementor .e-con.eo-manifesto {
        grid-template-columns: minmax(0, 1fr);
    }

    .eo-prefooter {
        grid-template-columns: minmax(0, 1fr);
    }

    .eo-prefooter__cols {
        grid-template-columns: minmax(0, 1fr);
        gap: 26px;
    }

    .eo-prefooter__map {
        min-height: 260px;
    }

    .elementor .eo-collective > .e-con-inner {
        grid-template-columns: 1fr;
        gap: 52px;
    }

    .elementor .eo-collective__bottom > .e-con-inner {
        grid-template-columns: 1fr;
        gap: 44px;
    }

    .elementor .e-con.eo-collective__bottom {
        grid-template-columns: 1fr;
        gap: 44px;
    }

    .elementor .eo-collective__benefits > .e-con-inner {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .eo-collective__benefits .elementor-widget-text-editor,
    .eo-collective__benefits .elementor-widget-text-editor:first-child {
        padding: 24px 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.28);
        border-left: 0;
    }

    .eo-collective__benefits .elementor-widget-text-editor:last-child {
        border-bottom: 0;
    }

    .elementor .eo-collective__links > .e-con-inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .elementor .e-con.eo-collective__links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .elementor .e-con.eo-collective-card,
    .elementor .elementor-element.eo-collective-card {
        min-height: 150px;
    }


    .elementor .e-con.eo-section-head > .e-con-inner,
    .elementor .elementor-element.eo-section-head > .e-con-inner {
        grid-template-columns: 1fr;
    }

    .elementor .e-con.eo-section-head {
        grid-template-columns: 1fr;
    }

    .eo-section-head .eo-section-index {
        grid-column: auto;
    }

    .eo-missions-shortcode,
    .elementor .e-con.eo-carousel,
    .elementor .elementor-element.eo-carousel {
        width: calc(100vw - var(--eo-gutter));
        margin-top: 44px;
    }

    .eo-room-rail,
    .elementor .eo-room-rail > .e-con-inner {
        grid-auto-columns: 78vw;
    }

    .elementor .e-con.eo-room-rail {
        width: 100%;
        margin-top: 0;
        grid-auto-columns: 78vw;
    }



    .eo-booking__grid {
        grid-template-columns: repeat(var(--eo-booking-cols, 6), minmax(132px, 1fr));
    }

    .eo-place__gallery {
        order: 2;
    }

    /* Deux vignettes dans une colonne de 335 px donnaient 161 px de large :
       illisible. Une seule diapositive a partir d'ici. */
    .eo-place-gallery__track {
        grid-auto-columns: 100%;
    }

    .eo-place__copy {
        order: 1;
    }

    .eo-final-cta::after {
        inset: 10px;
    }

    .eo-page-hero {
        padding-bottom: 48px;
    }

    .eo-page-content {
        width: calc(100% - 40px);
        padding-block: 72px;
    }

    .eo-page-band {
        padding-block: 72px;
    }

    .eo-page-band > .eo-page-section-inner,
    .eo-mission-intro > .eo-page-section-inner,
    .eo-mission-stats > .eo-page-section-inner,
    .eo-mission-gallery > .eo-page-section-inner,
    .eo-mission-carousel-section > .eo-page-section-inner {
        width: calc(100% - 40px);
    }

    .eo-mission-intro .eo-room-detail figure img {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .eo-mission-breakdown {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .eo-mission-breakdown__item,
    .eo-mission-difficulty {
        padding: 26px 20px;
        border-bottom: 1px solid var(--eo-line);
    }

    .eo-mission-breakdown > :first-child {
        padding-left: 20px;
    }

    .eo-mission-breakdown > :nth-child(even) {
        border-right: 0;
    }

    .eo-mission-breakdown > :nth-last-child(-n + 2) {
        border-bottom: 0;
    }

    .eo-mission-gallery__grid {
        grid-template-columns: 1fr;
    }

    .eo-mission-gallery__grid figure:only-child,
    .eo-mission-gallery__grid.is-extended figure:first-child {
        grid-column: auto;
    }

    .eo-mission-gallery__grid img,
    .eo-mission-gallery__grid.is-extended figure:first-child img {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .eo-facts,
    .eo-content-grid,
    .eo-contact-grid,
    .eo-sitemap {
        grid-template-columns: 1fr;
    }

    .eo-facts p,
    .eo-facts p:first-child {
        padding: 20px 0;
        border-right: 0;
        border-bottom: 1px solid var(--eo-line);
    }

    .eo-facts p:last-child {
        border-bottom: 0;
    }

    .eo-content-grid > div,
    .eo-content-grid > div:nth-child(even),
    .eo-contact-grid > div,
    .eo-contact-grid > div:nth-child(even),
    .eo-sitemap > section,
    .eo-sitemap > section:nth-child(even) {
        padding: 28px 0;
        border-left: 0;
    }

    .eo-steps li {
        grid-template-columns: 42px 1fr;
        gap: 10px 16px;
    }

    .eo-steps span {
        grid-column: 2;
    }

    .eo77-page-escape-room .eo-page-content {
        width: 100%;
        padding: 0;
    }

    .eo77-page-escape-room .eo-page-section-inner {
        width: calc(100% - 40px);
    }

    .eo-mission-list {
        grid-template-columns: 1fr;
        column-gap: 0;
    }

    .eo-mission-list article:nth-child(odd),
    .eo-mission-list article:nth-child(even) {
        padding-inline: 0;
        border-right: 0;
    }

    .eo-mission-list article a {
        display: block;
    }

    .eo-mission-list h2 {
        font-size: clamp(38px, 14vw, 54px);
    }

    .eo-mission-list article span {
        display: block;
    }

    .eo-rooms-guidance .eo-callout {
        margin-inline: 0;
    }

    .eo-callout {
        margin-inline: -20px;
    }

    .eo-text-link {
        display: block;
        margin-left: 0;
    }

    .eo-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .eo-footer__bottom nav {
        flex-wrap: wrap;
        gap: 10px 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}
