/* Harmonisation exclusive de la page Chambres & Suites avec l’accueil. */
.rooms-page-main{--ivory:#FAF7F1;--sand:#E9DDCD;--terra:#B76549;--cacao:#352A25;--turquoise:#246D72;background:var(--ivory)}
.rooms-page-main .rooms-hero{height:clamp(590px,77svh,680px);min-height:590px;align-items:center}
.rooms-page-main .rooms-hero-copy{padding:60px max(6%,calc((100vw - 1280px)/2)) 72px;background:linear-gradient(90deg,#352a25b8,#352a2559 55%,transparent 85%)}
.rooms-page-main .rooms-hero h1{font-family:Cormorant,Georgia,serif;font-size:clamp(60px,6vw,88px);line-height:1.04;margin:24px 0 28px;max-width:780px}
.rooms-page-main .rooms-hero p{font-size:16px;max-width:490px;margin-bottom:26px}
.rooms-page-main .rooms-introduction{padding:52px max(6%,calc((100vw - 1280px)/2));background:var(--sand);display:grid;grid-template-columns:1fr 1fr;gap:16px 48px;text-align:left;align-items:center}
.rooms-page-main .rooms-introduction .eyebrow{grid-column:1/-1;color:var(--terra)}
.rooms-page-main .rooms-introduction h2{font-family:Cormorant,Georgia,serif;font-size:clamp(44px,4.3vw,62px);line-height:1.08;margin:0}
.rooms-page-main .rooms-introduction p{max-width:570px;font-size:16px;line-height:1.8;margin:0;color:var(--cacao)}
.rooms-page-main .room-categories{width:min(1280px,calc(100% - 80px));padding:45px 0 36px}
.rooms-page-main .category-heading{padding-bottom:20px;max-width:800px}
.rooms-page-main .category-heading h2{font-family:Cormorant,Georgia,serif;font-size:clamp(42px,4vw,58px)}
.rooms-page-main .category-editorial{grid-template-columns:minmax(0,.57fr) minmax(0,1.43fr);gap:32px;padding:32px 0;margin-bottom:28px;align-items:center}
.rooms-page-main .category-copy h3{font-family:Cormorant,Georgia,serif;font-size:clamp(36px,3.2vw,48px);line-height:1.08;margin-bottom:18px}
.rooms-page-main .category-copy .category-kicker{font-size:11px;letter-spacing:.1em;margin-bottom:16px}
.rooms-page-main .category-copy .category-description{font-size:16px;line-height:1.75;margin-bottom:22px}
.rooms-page-main .category-copy .text-link{font-weight:600;line-height:1.6;color:var(--turquoise);border-color:var(--turquoise);text-align:left;white-space:normal}
.rooms-page-main .category-primary,.rooms-page-main .deluxe-photo-0{overflow:hidden}
.rooms-page-main .standard-layout .category-primary{border-radius:65px 0 8px 8px}
.rooms-page-main .superior-layout,.rooms-page-main .mini-layout{grid-template-columns:minmax(0,1.43fr) minmax(0,.57fr);padding:36px 0}
.rooms-page-main .superior-layout:before,.rooms-page-main .mini-layout:before{inset:0 min(-40px,calc((1280px - 100vw)/2));border-radius:0;background:var(--sand)}
.rooms-page-main .mini-layout:before{background:#F0E4D8}
.rooms-page-main .superior-layout .category-copy,.rooms-page-main .mini-layout .category-copy{padding:18px 0;background:transparent}
.rooms-page-main .superior-layout .category-photographs{gap:18px}
.rooms-page-main .superior-layout .category-primary{border-radius:8px 65px 8px 8px}
.rooms-page-main .superior-layout .category-complement{width:72%;justify-self:end;border-radius:8px;overflow:hidden}
.rooms-page-main .deluxe-visuals{gap:18px}
.rooms-page-main .deluxe-visuals .deluxe-photo-0{border-radius:65px 8px 8px 8px}
.rooms-page-main .deluxe-visuals .deluxe-photo-1,.rooms-page-main .deluxe-visuals .deluxe-photo-2{border-radius:8px;overflow:hidden}
.rooms-page-main .mini-layout .category-primary{border-radius:8px 8px 65px 8px}
.rooms-page-main .rooms-comfort{padding:52px max(6%,calc((100vw - 1280px)/2));background:var(--cacao);color:var(--ivory);gap:28px 48px}
.rooms-page-main .rooms-comfort h2{font-family:Cormorant,Georgia,serif;font-size:clamp(44px,4.4vw,64px);color:var(--ivory)}
.rooms-page-main .comfort-service{font-size:15px;line-height:1.65;color:var(--ivory)}
.rooms-page-main .comfort-service svg{color:#E9DDCD}
.rooms-page-main .practical-information h3{color:var(--sand);font-size:24px}
.rooms-page-main .practical-information p{color:var(--ivory);font-size:15px;line-height:1.8}
.rooms-page-main .breakfast-photo{max-width:260px;border-radius:8px;overflow:hidden}
.rooms-page-main .rooms-atmosphere{height:480px}
.rooms-page-main .rooms-reservation{position:relative;z-index:1;width:min(1120px,calc(100% - 80px));margin:-72px auto 48px;padding:42px 5%;background:var(--sand);border-radius:45px 8px 8px 8px;box-shadow:0 16px 36px #352a2510}
.rooms-page-main .rooms-reservation h2{font-family:Cormorant,Georgia,serif;font-size:clamp(48px,4.7vw,68px);line-height:1.08}
.rooms-page-main .rooms-reservation .booking{width:100%;max-width:none;margin-top:28px}
.rooms-page-main .rooms-reservation-actions{gap:16px;flex-wrap:wrap}
@media(max-width:1000px){.rooms-page-main .rooms-hero{height:620px;min-height:560px}.rooms-page-main .rooms-introduction{gap:18px 30px}.rooms-page-main .room-categories{width:calc(100% - 56px)}.rooms-page-main .category-editorial{grid-template-columns:1fr;gap:22px;padding:30px 0}.rooms-page-main .category-copy{max-width:680px}.rooms-page-main .superior-layout:before,.rooms-page-main .mini-layout:before{inset:0 -28px}.rooms-page-main .superior-layout .category-copy,.rooms-page-main .mini-layout .category-copy{padding:0;width:100%;max-width:none}.rooms-page-main .rooms-comfort{gap:28px}.rooms-page-main .rooms-reservation{width:calc(100% - 56px);padding:38px 5%}.rooms-page-main .rooms-atmosphere{height:400px}}
@media(max-width:600px){.rooms-page-main .rooms-hero{height:600px;min-height:570px}.rooms-page-main .rooms-hero-copy{padding:40px 7% 55px;background:linear-gradient(90deg,#352a25ba,#352a2545)}.rooms-page-main .rooms-hero h1{font-size:clamp(44px,12vw,60px)}.rooms-page-main .rooms-introduction{display:block;padding:36px 7%}.rooms-page-main .rooms-introduction h2{font-size:42px;margin:18px 0}.rooms-page-main .room-categories{width:calc(100% - 36px);padding-top:30px}.rooms-page-main .category-editorial{padding:26px 0;margin-bottom:18px}.rooms-page-main .category-copy h3{font-size:36px}.rooms-page-main .category-primary,.rooms-page-main .deluxe-visuals .deluxe-photo-0{border-radius:32px 8px 8px 8px}.rooms-page-main .superior-layout:before,.rooms-page-main .mini-layout:before{inset:0 -18px}.rooms-page-main .superior-layout .category-complement{width:100%}.rooms-page-main .rooms-comfort{padding:38px 7%}.rooms-page-main .rooms-atmosphere{height:320px}.rooms-page-main .rooms-reservation{width:calc(100% - 36px);margin-top:-42px;margin-bottom:28px;padding:32px 6%;border-radius:28px 8px 8px 8px}.rooms-page-main .rooms-reservation h2{font-size:45px}.rooms-page-main .rooms-reservation-actions{display:flex;flex-direction:column;align-items:stretch}.rooms-page-main .rooms-reservation-actions .button{text-align:center;justify-content:center}}
/* Correctif de structure : grille explicite, sans placements hérités. */
.rooms-page-main .rooms-introduction{display:grid;width:100%;max-width:none;margin:0;box-sizing:border-box;padding:46px max(28px,calc((100% - 1200px)/2));grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'intro-label intro-label' 'intro-title intro-text';gap:18px 40px;align-items:center}
.rooms-page-main .rooms-introduction>.eyebrow{grid-area:intro-label;width:auto;max-width:none;justify-self:start}
.rooms-page-main .rooms-introduction>h2{grid-area:intro-title;width:auto;max-width:none;min-width:0;margin:0;text-align:left}
.rooms-page-main .rooms-introduction>p{grid-area:intro-text;width:auto;max-width:none;min-width:0;margin:0;text-align:left}
.rooms-page-main .room-categories{width:min(1200px,calc(100% - 56px));max-width:none;box-sizing:border-box;margin:0 auto;padding:36px 0}
.rooms-page-main .category-editorial{display:grid;width:100%;max-width:none;box-sizing:border-box;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:28px;align-items:center;padding:28px 0;margin:0 0 24px}
.rooms-page-main .category-editorial>.category-copy{grid-column:1;grid-row:1;width:100%;max-width:none;min-width:0;padding:0;justify-self:stretch}
.rooms-page-main .category-editorial>.category-photographs,.rooms-page-main .category-editorial>.deluxe-visuals{grid-column:2;grid-row:1;width:100%;max-width:none;min-width:0}
.rooms-page-main .superior-layout,.rooms-page-main .mini-layout{grid-template-columns:minmax(0,3fr) minmax(0,2fr);padding:32px 0}
.rooms-page-main .superior-layout>.category-copy,.rooms-page-main .mini-layout>.category-copy{grid-column:2;grid-row:1;padding:0}
.rooms-page-main .superior-layout>.category-photographs,.rooms-page-main .mini-layout>.category-photographs{grid-column:1;grid-row:1;padding:0}
.rooms-page-main .superior-layout:before,.rooms-page-main .mini-layout:before{inset:0 calc((1200px - 100vw)/2)}
.rooms-page-main .category-copy h3{font-size:clamp(36px,3.2vw,46px)}
.rooms-page-main .category-photographs .category-primary,.rooms-page-main .category-photographs .category-complement{width:100%;max-width:none;height:auto;aspect-ratio:auto}
.rooms-page-main .category-photographs img,.rooms-page-main .deluxe-photo img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.rooms-page-main .superior-layout .category-photographs{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.rooms-page-main .superior-layout .category-complement{width:100%;grid-column:1/-1;justify-self:stretch}
.rooms-page-main .deluxe-visuals{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.rooms-page-main .deluxe-visuals .deluxe-photo-0{grid-column:1/-1}
.rooms-page-main .rooms-comfort{display:grid;width:100%;max-width:none;box-sizing:border-box;margin:0;padding:44px max(28px,calc((100% - 1200px)/2));grid-template-columns:240px minmax(0,1fr);grid-template-areas:'comfort-title comfort-title' 'comfort-photo comfort-services' 'comfort-photo comfort-practical';gap:24px 36px;align-items:start}
.rooms-page-main .comfort-intro{grid-area:comfort-title;align-self:start;min-width:0}
.rooms-page-main .comfort-intro h2{margin:14px 0 0;font-size:clamp(42px,4vw,58px)}
.rooms-page-main .comfort-intro h2 br{display:none}
.rooms-page-main .comfort-services{grid-area:comfort-services;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 22px;align-self:start;min-width:0}
.rooms-page-main .breakfast-photo{grid-area:comfort-photo;justify-self:start;align-self:start;width:100%;max-width:240px;height:auto;aspect-ratio:auto;margin:0}
.rooms-page-main .breakfast-photo img{width:100%;height:auto;object-fit:contain}
.rooms-page-main .practical-information{grid-area:comfort-practical;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0;padding-top:24px;min-width:0}
.rooms-page-main .practical-information>div:last-child{grid-column:auto}
.rooms-page-main .practical-information h3{font:600 15px/1.5 Manrope,Arial,sans-serif;margin:0 0 10px}
.rooms-page-main .practical-information p{font-size:14px;line-height:1.8}
.rooms-page-main .rooms-atmosphere{width:min(1200px,calc(100% - 56px));max-width:none;height:420px;margin:36px auto 0;border-radius:40px 8px 0 0}
.rooms-page-main .rooms-reservation{width:min(1200px,calc(100% - 56px));max-width:none;box-sizing:border-box;margin:0 auto 36px;padding:36px 40px;border-radius:0 0 8px 8px;box-shadow:none}
.rooms-page-main .rooms-reservation .booking{position:relative;top:auto;left:auto;width:100%;max-width:none;box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.4fr);gap:18px;margin:28px 0 20px}
.rooms-page-main .rooms-reservation .booking label,.rooms-page-main .rooms-reservation .booking label>span:last-child{min-width:0}
.rooms-page-main .rooms-reservation .booking input,.rooms-page-main .rooms-reservation .booking select{width:100%;min-width:0;max-width:100%}
@media(max-width:1256px){.rooms-page-main .superior-layout:before,.rooms-page-main .mini-layout:before{inset:0 -28px}}
@media(max-width:1000px){.rooms-page-main .rooms-introduction{grid-template-columns:minmax(0,1fr);grid-template-areas:'intro-label' 'intro-title' 'intro-text';gap:18px;padding:36px 28px}.rooms-page-main .category-editorial,.rooms-page-main .superior-layout,.rooms-page-main .mini-layout{grid-template-columns:minmax(0,1fr);gap:22px}.rooms-page-main .category-editorial>.category-copy{grid-column:1;grid-row:2!important}.rooms-page-main .category-editorial>.category-photographs,.rooms-page-main .category-editorial>.deluxe-visuals{grid-column:1;grid-row:1}.rooms-page-main .rooms-comfort{grid-template-columns:180px minmax(0,1fr);grid-template-areas:'comfort-title comfort-title' 'comfort-photo comfort-services' 'comfort-practical comfort-practical';gap:24px;padding:36px 28px}.rooms-page-main .comfort-services{grid-template-columns:repeat(2,minmax(0,1fr))}.rooms-page-main .rooms-reservation .booking{grid-template-columns:repeat(2,minmax(0,1fr))}.rooms-page-main .rooms-atmosphere{height:340px}}
@media(max-width:600px){.rooms-page-main .room-categories,.rooms-page-main .rooms-atmosphere,.rooms-page-main .rooms-reservation{width:calc(100% - 36px)}.rooms-page-main .rooms-introduction{padding:32px 18px}.rooms-page-main .rooms-introduction>h2{font-size:40px}.rooms-page-main .category-editorial{padding:24px 0;margin-bottom:18px}.rooms-page-main .superior-layout:before,.rooms-page-main .mini-layout:before{inset:0 -18px}.rooms-page-main .category-copy h3{font-size:36px}.rooms-page-main .rooms-comfort{grid-template-columns:minmax(0,1fr);grid-template-areas:'comfort-title' 'comfort-services' 'comfort-photo' 'comfort-practical';padding:32px 18px}.rooms-page-main .comfort-services{grid-template-columns:repeat(2,minmax(0,1fr))}.rooms-page-main .breakfast-photo{width:180px;max-width:100%}.rooms-page-main .practical-information{grid-template-columns:minmax(0,1fr);gap:20px}.rooms-page-main .rooms-atmosphere{height:280px;margin-top:24px}.rooms-page-main .rooms-reservation{padding:30px 18px}.rooms-page-main .rooms-reservation .booking{padding:18px 12px;gap:18px 12px}.rooms-page-main .rooms-reservation .booking .button{grid-column:1/-1}}
/* Finitions ciblées : superposition explicite du HERO et ampleur commune. */
.rooms-page-main .rooms-hero{display:block;position:relative;isolation:isolate}
.rooms-page-main .rooms-hero>figure{position:absolute;inset:0;z-index:0;width:100%;height:100%;min-height:0}
.rooms-page-main .rooms-hero>figure img{display:block;width:100%;height:100%;object-fit:cover}
.rooms-page-main .rooms-hero-copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;width:100%;max-width:none;min-width:0;height:100%;box-sizing:border-box;visibility:visible;opacity:1;padding:44px max(28px,calc((100% - 1200px)/2));background:linear-gradient(90deg,#352a25b8 0%,#352a2570 42%,transparent 83%)}
.rooms-page-main .rooms-hero-copy h1{display:block;color:#FFFDF9;max-width:800px;margin:24px 0 28px;font-size:clamp(60px,6vw,88px)}
.rooms-page-main .rooms-hero-copy p{display:block;color:#FFFDF9;max-width:490px;margin:0 0 28px;font-size:16px}
.rooms-page-main .rooms-hero-copy>.eyebrow{color:#E9DDCD}
.rooms-page-main .rooms-hero-copy>.text-link{display:inline-flex;visibility:visible;color:#FFFDF9;background:#B76549;padding:17px 24px;border:0;min-height:54px;width:auto;max-width:100%}
.rooms-page-main .category-editorial{grid-template-columns:minmax(0,.36fr) minmax(0,.64fr);gap:24px;padding:24px 0;margin-bottom:22px}
.rooms-page-main .superior-layout,.rooms-page-main .mini-layout{grid-template-columns:minmax(0,.64fr) minmax(0,.36fr);padding:28px 0}
.rooms-page-main .category-copy h3{font-size:clamp(38px,3.4vw,48px)}
.rooms-page-main .category-copy .category-description{font-size:17px;line-height:1.75}
.rooms-page-main .category-copy .category-count{font-size:14px}
.rooms-page-main .category-copy .text-link{font-size:14px}
.rooms-page-main .superior-layout>.category-photographs>.category-complement{width:100%;grid-column:1/-1}
.rooms-page-main .rooms-comfort{padding-top:48px;padding-bottom:48px;gap:28px 40px}
.rooms-page-main .comfort-services{gap:22px 24px}
.rooms-page-main .practical-information{gap:28px;padding-top:26px}
.rooms-page-main .practical-information p{font-size:15px;line-height:1.85}
.rooms-page-main .rooms-atmosphere{height:470px;border-radius:40px 8px 0 0}
.rooms-page-main .rooms-reservation{padding:32px 36px 36px}
.rooms-page-main .rooms-reservation-actions{margin-top:24px}
.rooms-page-main .rooms-reservation .booking{margin-top:24px;border:0;box-shadow:none;border-radius:6px;background:#FFFDF9}
@media(max-width:1000px){.rooms-page-main .category-editorial,.rooms-page-main .superior-layout,.rooms-page-main .mini-layout{grid-template-columns:minmax(0,1fr);gap:20px}.rooms-page-main .rooms-atmosphere{height:390px}.rooms-page-main .rooms-hero-copy h1{font-size:clamp(54px,7.6vw,76px)}}
@media(max-width:600px){.rooms-page-main .rooms-hero-copy{padding:35px 7% 50px;background:linear-gradient(90deg,#352a25bd,#352a2550)}.rooms-page-main .rooms-hero-copy h1{font-size:clamp(44px,12vw,60px)}.rooms-page-main .rooms-hero-copy p{font-size:15px}.rooms-page-main .category-copy h3{font-size:36px}.rooms-page-main .category-copy .category-description{font-size:16px}.rooms-page-main .rooms-comfort{padding:36px 18px;gap:24px}.rooms-page-main .rooms-atmosphere{height:315px}.rooms-page-main .rooms-reservation{padding:28px 18px}}

/* Directive 24 — équipements et informations pratiques sur un axe commun. */
.rooms-page-main .comfort-service{justify-content:center;text-align:center}
.rooms-page-main .practical-information > div{text-align:center}
/* Une fois les photographies empilées, le texte et les liens partagent leur axe. */
@media(max-width:1000px){
 .rooms-page-main .category-editorial > .category-copy{text-align:center}
 .rooms-page-main .category-copy .category-description{margin-left:auto;margin-right:auto}
 .rooms-page-main .category-copy .text-link{text-align:center;justify-content:center}
 .rooms-page-main .selected-principal-photos > .approved-gallery-open{justify-self:center;text-align:center}
}
