/* Styles isolés du module saisonnier. */
.site-head .utility:has(.rsl-reveillon-banner:not([hidden])) { display:block; height:auto; min-height:0; }
.site-head .utility .wrap:has(.rsl-reveillon-banner:not([hidden])) { height:auto; min-height:0; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 20px; padding-top:9px; padding-bottom:9px; }
.site-head .utility a.rsl-reveillon-banner { display:inline-flex; justify-content:center; align-items:center; min-height:38px; padding:8px 16px; border:1px solid #d8be8b; border-radius:3px; background:#d8be8b; color:#281b16; font:inherit; font-size:13px; line-height:1.4; font-weight:600; text-align:center; text-decoration:none; white-space:normal; overflow-wrap:anywhere; }
.site-head .utility a.rsl-reveillon-banner:hover { background:#efdab0; color:#281b16; }
/* Carte de soirée : bordeaux, ivoire et laiton. */
.rsl-reveillon { --rv-wine:#361b23; --rv-gold:#dfc28d; --rv-paper:#fcf7ed; --rv-ink:#402b27; position:relative; isolation:isolate; background:var(--rv-wine); color:var(--rv-paper); padding:80px 0 88px; border-top:4px solid var(--rv-gold); scroll-margin-top:calc(var(--rsl-reveillon-header-height,160px) + 20px); }
.rsl-reveillon *, .rsl-reveillon *::before, .rsl-reveillon *::after { box-sizing:border-box; }
.rsl-reveillon > .wrap { width:100%; max-width:1200px; margin:0 auto; padding:0 36px; }
.rsl-reveillon .rsl-reveillon-heading { max-width:840px; margin:0 auto 56px; text-align:center; }
.rsl-reveillon .rsl-reveillon-ornament { display:block; color:var(--rv-gold); font-size:30px; line-height:1; margin:0 0 23px; }
.rsl-reveillon .rsl-reveillon-eyebrow { color:var(--rv-gold); font-size:11px; font-weight:500; letter-spacing:.21em; text-transform:uppercase; margin:0 0 18px; line-height:1.8; }
.rsl-reveillon h2 { color:var(--rv-paper); font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:clamp(45px,6.4vw,84px); line-height:1.08; letter-spacing:-.045em; margin:0 0 22px; }
.rsl-reveillon .rsl-reveillon-date { display:flex; gap:18px; align-items:center; justify-content:center; color:var(--rv-gold); font-size:13px; letter-spacing:.08em; margin:0; line-height:1.6; }
.rsl-reveillon .rsl-reveillon-date::before,.rsl-reveillon .rsl-reveillon-date::after { content:''; display:block; width:48px; height:1px; background:var(--rv-gold); opacity:.55; }
.rsl-reveillon .rsl-reveillon-intro { max-width:590px; margin:25px auto 0; color:#e3d4cf; font-size:16px; line-height:1.9; }
.rsl-reveillon .rsl-reveillon-grid { display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); gap:60px; align-items:start; }
.rsl-reveillon .rsl-reveillon-experience { min-width:0; padding-top:18px; }
.rsl-reveillon .rsl-reveillon-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; margin:32px 0 0; }
.rsl-reveillon .rsl-reveillon-photo-frame { position:relative; margin:0; min-width:0; padding:0; }

.rsl-reveillon .rsl-reveillon-photo-viewport { aspect-ratio:4/5; overflow:hidden; border:1px solid #83634e; background:#29131b; }
.rsl-reveillon img.rsl-reveillon-photo { display:block; width:100%; max-width:100%; height:100%; object-fit:cover; object-position:center center; margin:0; border:0; border-radius:0; }
.rsl-reveillon .rsl-reveillon-photo-frame:nth-child(2) img.rsl-reveillon-photo { object-position:45% 35%; }
.rsl-reveillon .rsl-reveillon-photo-frame figcaption { color:var(--rv-gold); font-size:11px; letter-spacing:.07em; line-height:1.5; padding-top:12px; text-align:left; }
.rsl-reveillon .rsl-reveillon-photos-single { grid-template-columns:minmax(0,1fr); max-width:310px; }
.rsl-reveillon .rsl-reveillon-program h3 { color:var(--rv-paper); font-family:Georgia,'Times New Roman',serif; font-size:30px; font-weight:400; line-height:1.25; margin:0 0 25px; }
.rsl-reveillon .rsl-reveillon-program ul { padding:0; margin:0; list-style:none; }
.rsl-reveillon .rsl-reveillon-program li { display:grid; grid-template-columns:80px minmax(0,1fr); gap:18px; position:relative; margin:0; padding:23px 0; border-top:1px solid #70515a; color:#e3d4cf; font-size:14px; line-height:1.85; overflow-wrap:anywhere; }
.rsl-reveillon .rsl-reveillon-time { white-space:nowrap; overflow-wrap:normal; color:var(--rv-gold); font-family:Georgia,'Times New Roman',serif; font-size:23px; line-height:1.3; }
.rsl-reveillon .rsl-reveillon-step-text { grid-column:1/-1; }
.rsl-reveillon .rsl-reveillon-menu { position:relative; min-width:0; background:var(--rv-paper); color:var(--rv-ink); padding:12px; box-shadow:0 22px 65px #160b123b; }
.rsl-reveillon .rsl-reveillon-menu-inner { border:1px solid #bc9b67; padding:35px 31px 30px; text-align:center; }
.rsl-reveillon .rsl-reveillon-menu h3 { color:var(--rv-ink); font-family:Georgia,'Times New Roman',serif; font-size:32px; font-weight:400; line-height:1.2; margin:0 auto 16px; max-width:300px; }
.rsl-reveillon .rsl-reveillon-menu-rule { display:flex; justify-content:center; align-items:center; gap:14px; color:#917043; font-size:14px; margin:0 0 12px; }
.rsl-reveillon .rsl-reveillon-menu-rule::before,.rsl-reveillon .rsl-reveillon-menu-rule::after { content:''; width:45px; height:1px; background:#cdb794; }
.rsl-reveillon .rsl-reveillon-course { position:relative; padding:21px 0; line-height:1.55; }
.rsl-reveillon .rsl-reveillon-course + .rsl-reveillon-course::before { content:''; position:absolute; top:0; left:calc(50% - 20px); width:40px; border-top:1px solid #cdb794; }
.rsl-reveillon .rsl-reveillon-dish-name { display:block; color:var(--rv-ink); font-family:Georgia,'Times New Roman',serif; font-size:20px; line-height:1.4; font-weight:400; }
.rsl-reveillon .rsl-reveillon-dish-detail { display:block; margin-top:4px; color:#77645a; font-size:12px; line-height:1.6; }
.rsl-reveillon .rsl-reveillon-choice { display:block; margin:11px 0; color:#8c6d43; font-family:Georgia,'Times New Roman',serif; font-size:14px; font-style:italic; line-height:1; }
.rsl-reveillon .rsl-reveillon-price { color:var(--rv-ink); font-family:Georgia,'Times New Roman',serif; font-size:35px; line-height:1.2; margin:14px 0 22px; }
.rsl-reveillon .rsl-reveillon-actions { display:flex; flex-direction:column; align-items:center; gap:11px; }
.rsl-reveillon a.rsl-reveillon-book { display:inline-flex; justify-content:center; align-items:center; gap:24px; min-height:49px; max-width:100%; padding:13px 23px; border:1px solid var(--rv-wine); border-radius:0; background:var(--rv-wine); color:var(--rv-paper); font:inherit; font-size:12px; font-weight:500; line-height:1.5; letter-spacing:.055em; text-decoration:none; text-align:center; }
.rsl-reveillon a.rsl-reveillon-book:hover { background:#542c37; border-color:#542c37; }
.rsl-reveillon .rsl-reveillon-phone { color:#77645a; font-size:12px; letter-spacing:.06em; }
.rsl-reveillon a.rsl-reveillon-pdf { color:#775529; font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.rsl-reveillon a:focus-visible,.site-head .utility a.rsl-reveillon-banner:focus-visible { outline:3px solid #b58a43; outline-offset:5px; }
[data-rsl-reveillon-expires][hidden] { display:none !important; }
@media(max-width:1000px) {
 .rsl-reveillon .rsl-reveillon-grid { gap:30px; }
 .rsl-reveillon .rsl-reveillon-menu-inner { padding:30px 20px; }
 .rsl-reveillon .rsl-reveillon-photos { gap:15px; }

}
@media(max-width:760px) {
 .site-head .utility .wrap:has(.rsl-reveillon-banner:not([hidden])) { justify-content:center; gap:8px 16px; }
 .site-head .utility a.rsl-reveillon-banner { order:3; flex-basis:100%; box-sizing:border-box; }
 .rsl-reveillon { padding:48px 0; }
 .rsl-reveillon > .wrap { padding:0 22px; }
 .rsl-reveillon .rsl-reveillon-heading { margin-bottom:35px; }
 .rsl-reveillon .rsl-reveillon-eyebrow { font-size:10px; letter-spacing:.14em; }
 .rsl-reveillon .rsl-reveillon-date { font-size:11px; gap:12px; }
 .rsl-reveillon .rsl-reveillon-date::before,.rsl-reveillon .rsl-reveillon-date::after { width:22px; }
 .rsl-reveillon .rsl-reveillon-intro { font-size:14px; }
 .rsl-reveillon .rsl-reveillon-grid { grid-template-columns:minmax(0,1fr); gap:30px; }
 .rsl-reveillon .rsl-reveillon-experience { padding:8px 0 0; }
 .rsl-reveillon .rsl-reveillon-photos { margin:27px 0 0; gap:14px; }
 .rsl-reveillon .rsl-reveillon-program h3 { font-size:26px; }
 .rsl-reveillon .rsl-reveillon-program li { grid-template-columns:70px minmax(0,1fr); gap:14px; font-size:13px; padding:17px 0; }
 .rsl-reveillon .rsl-reveillon-menu { padding:9px; }
 .rsl-reveillon .rsl-reveillon-menu-inner { padding:28px 17px; }
 .rsl-reveillon .rsl-reveillon-menu h3 { font-size:29px; }
 .rsl-reveillon .rsl-reveillon-dish-name { font-size:19px; }
}
@media(prefers-reduced-motion:reduce) { .rsl-reveillon * { scroll-behavior:auto; } }

/* Compatibilité avec les règles !important du thème et du CSS personnalisé. */
#reveillon.rsl-reveillon { box-sizing:border-box; width:100%; max-width:100%; min-width:0; }
#reveillon.rsl-reveillon > .wrap { box-sizing:border-box; width:100% !important; max-width:1200px !important; min-width:0; padding:0 36px !important; }
#reveillon.rsl-reveillon .rsl-reveillon-grid > *,
#reveillon.rsl-reveillon .rsl-reveillon-photos > * { min-width:0; max-width:100%; }
#reveillon.rsl-reveillon .rsl-reveillon-photo-viewport { position:relative; width:100%; aspect-ratio:4/5; }
#reveillon.rsl-reveillon img.rsl-reveillon-photo { display:block; position:static; width:100% !important; height:auto !important; aspect-ratio:4/5; max-width:100% !important; object-fit:cover; }
#head.site-head .utility:has(.rsl-reveillon-banner:not([hidden])) { height:auto !important; min-height:0 !important; }
#head.site-head .utility .wrap:has(.rsl-reveillon-banner:not([hidden])) { box-sizing:border-box; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:10px 18px; height:auto !important; min-height:0 !important; padding:9px 24px !important; }
#head.site-head .utility .wrap:has(.rsl-reveillon-banner:not([hidden])) > a:first-child { justify-self:start; }
#head.site-head .utility .wrap:has(.rsl-reveillon-banner:not([hidden])) > .distinctions { justify-self:end; }
#head.site-head .utility a.rsl-reveillon-banner { box-sizing:border-box; max-width:100%; min-width:0; min-height:38px; margin:0; font-size:12px; line-height:1.4; letter-spacing:.04em; text-shadow:none; }
@media(max-width:1280px) {
 body.rsl-page .wrap { box-sizing:border-box; width:100% !important; max-width:100% !important; padding-left:26px !important; padding-right:26px !important; }
}
@media(max-width:1120px) {
 #head.site-head .utility .wrap:has(.rsl-reveillon-banner:not([hidden])) { grid-template-columns:auto minmax(0,1fr); }
 #head.site-head .utility .wrap:has(.rsl-reveillon-banner:not([hidden])) > .distinctions { display:none; }
 #head.site-head .utility a.rsl-reveillon-banner { justify-self:end; }
 body.rsl-page:has(.rsl-reveillon-banner:not([hidden])) .hero { padding-top:calc(var(--rsl-reveillon-header-height,170px) + 24px) !important; }
}
@media(max-width:760px) {
 #reveillon.rsl-reveillon > .wrap { width:100% !important; max-width:100% !important; padding:0 20px !important; }
 #reveillon.rsl-reveillon .rsl-reveillon-grid { display:grid; grid-template-columns:minmax(0,1fr); width:100%; gap:30px; }
 #reveillon.rsl-reveillon .rsl-reveillon-photos { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; width:100%; }
 #reveillon.rsl-reveillon .rsl-reveillon-photos-single { grid-template-columns:minmax(0,1fr); max-width:280px; }
 #head.site-head .utility .wrap:has(.rsl-reveillon-banner:not([hidden])) { grid-template-columns:minmax(0,1fr); gap:8px; padding:7px 16px 10px !important; }
 #head.site-head .utility .wrap:has(.rsl-reveillon-banner:not([hidden])) > a:first-child { justify-self:center; line-height:1.3; }
 #head.site-head .utility a.rsl-reveillon-banner { width:100%; justify-self:stretch; order:0; min-height:40px; padding:9px 12px; font-size:11px; line-height:1.4; letter-spacing:.025em; }
 #head.site-head .nav { box-sizing:border-box; width:100% !important; padding-left:18px !important; padding-right:18px !important; }
 #head.site-head .brand-logo:not(.brand-logo--footer) { width:auto !important; height:auto !important; max-width:min(62vw,215px) !important; max-height:48px !important; object-fit:contain; }
 body.rsl-page main .wrap,body.rsl-page footer .wrap { padding-left:20px !important; padding-right:20px !important; }
}
@media(max-width:360px) {
 #reveillon.rsl-reveillon h2 { font-size:39px; }
 #reveillon.rsl-reveillon .rsl-reveillon-program li { grid-template-columns:62px minmax(0,1fr); gap:10px; }
 #reveillon.rsl-reveillon .rsl-reveillon-time { font-size:21px; }
 #reveillon.rsl-reveillon .rsl-reveillon-menu-inner { padding-left:12px; padding-right:12px; }
}

@media(max-width:980px) {
 #reveillon.rsl-reveillon .rsl-reveillon-grid { grid-template-columns:minmax(0,1fr); }
 #reveillon.rsl-reveillon .rsl-reveillon-photos { max-width:520px; }
 #reveillon.rsl-reveillon .rsl-reveillon-menu { width:100%; max-width:650px; margin:0 auto; }
}
