/* Seasonal menu page and homepage callout; all selectors are locally scoped. */
.noel-page{
  --noel-green:#24331f;
  --noel-green-soft:#3a4c33;
  --noel-cream:#f6f3e8;
  --noel-paper:#fbf8ef;
  --noel-gold:#c2a165;
}
.noel-hero{
  min-height:clamp(390px,54vw,610px);
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden;
  color:#fff;
  background:var(--noel-green);
}
.noel-hero-image,.noel-hero-shade{position:absolute;inset:0;width:100%;height:100%}
.noel-hero-image{object-fit:cover;object-position:center 54%}
.noel-hero-shade{background:linear-gradient(90deg,rgba(18,31,20,.68),rgba(18,31,20,.26)),linear-gradient(0deg,rgba(18,31,20,.25),transparent 70%)}
.noel-hero-copy{position:relative;z-index:1;text-align:center;padding:72px 22px 82px}
.noel-overline{margin:0 0 12px;color:#ead9b7;font-size:.69rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.noel-hero :is(h1,h2){margin:0;color:#fff;font-size:clamp(3.5rem,9vw,7.4rem);line-height:.9;letter-spacing:-.035em;text-shadow:0 2px 22px rgba(0,0,0,.24)}
.noel-subtitle{margin:20px 0 0;color:#f3ead8;font-family:var(--display);font-size:clamp(1.3rem,2.8vw,2rem);font-style:italic}
.noel-menu{position:relative;padding:74px 22px 96px;background:var(--noel-cream);overflow:hidden}
.noel-menu::before,.noel-menu::after{position:absolute;top:40px;bottom:40px;width:1px;background:linear-gradient(transparent,rgba(194,161,101,.45),transparent);content:""}
.noel-menu::before{left:max(24px,calc((100% - 1080px)/2))}
.noel-menu::after{right:max(24px,calc((100% - 1080px)/2))}
.noel-menu-inner{max-width:660px;margin:0 auto;text-align:center}
.noel-course{padding:0 0 38px;margin:0 0 37px;border-bottom:1px solid rgba(36,51,31,.16)}
.noel-course :is(h2,h3){margin:0 0 20px;color:#768066;font-family:var(--body);font-size:.66rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.noel-course p{margin:0 auto;color:var(--noel-green);font-family:var(--display);font-size:clamp(1.35rem,3vw,1.78rem);font-weight:500;line-height:1.25}
.noel-course .noel-dish{font-weight:600}
.noel-course .noel-detail{max-width:50ch;margin:6px auto 0;color:#59614e;font-family:var(--body);font-size:.92rem;line-height:1.55}
.noel-between{display:block;margin:13px 0;color:var(--noel-gold);font-family:var(--display);font-size:1.04rem;font-style:italic}
.noel-course .noel-mignardises{margin-top:24px;color:#68705c;font-family:var(--display);font-size:1.14rem;font-style:italic}
.noel-course-last{border:0;margin-bottom:14px;padding-bottom:0}
.noel-price{margin:26px auto 24px;padding:23px 12px 18px;border-top:1px solid rgba(194,161,101,.62);border-bottom:1px solid rgba(194,161,101,.62)}
.noel-price-label,.noel-price-note{margin:0;color:#6f785f;font-size:.65rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.noel-price-amount{margin:2px 0;color:var(--noel-green);font-family:var(--display);font-size:2.8rem;line-height:1.15}
.noel-price-amount span{font-size:1.2rem}
.noel-price-note{font-size:.62rem;letter-spacing:.14em}
.noel-reserve{justify-content:center;min-width:min(100%,300px);background:var(--noel-green);color:var(--noel-cream);border-color:var(--noel-green)}
.noel-reserve:hover{background:var(--noel-green-soft);color:#fff;transform:translateY(-2px)}
.noel-page .site-header .nav-links a[aria-current="page"]{color:var(--coral)}
/* On the homepages the navigation stays in normal flow, never over the info strip. */
.noel-home > .site-header{position:relative;top:auto}
.noel-home main{display:flex;flex-direction:column}
.noel-home main > *{order:3}
.noel-home main > .hero{order:0}
.noel-home main > .noel-home-banner{order:1}
.noel-home main > .trust-bar{order:2}
.noel-home-banner{padding:22px 24px;background:var(--cream-deep)}
.noel-home-banner-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1132px;min-height:190px;margin:auto;border:3px solid #AE4E36;padding:33px 44px;overflow:hidden;background:#EFE8DA;color:var(--cream);text-decoration:none;isolation:isolate}
.noel-home-banner-inner::before{position:absolute;inset:6px;z-index:-1;background:linear-gradient(90deg,rgba(27,38,23,.92),rgba(27,38,23,.25)),url("/barbizon-soiree-01-cheminee-salon-entete-1600.webp") center 57%/cover no-repeat;content:""}
.noel-home-copy{max-width:580px}
.noel-home-kicker{display:block;margin-bottom:8px;color:#E8A07E;font-size:.65rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.noel-home-heading{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.noel-home-title{display:block;color:#fff;font-family:var(--display);font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.05}
.noel-home-price{padding:7px 12px;border-radius:999px;background:#AE4E36;color:#fff;font-size:.8rem;font-weight:600;white-space:nowrap}
.noel-home-subtitle{display:block;margin-top:7px;color:rgba(255,255,255,.82);font-family:var(--display);font-size:1.1rem;font-style:italic}
.noel-home-cta{flex:none;border:1px solid #AE4E36;padding:13px 18px;background:#AE4E36;color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.18);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
@media(max-width:700px){
  .noel-hero{min-height:410px}
  .noel-hero-image{object-position:57% center}
  .noel-menu{padding:56px 28px 68px}
  .noel-menu::before{left:12px}
  .noel-menu::after{right:12px}
  .noel-course{padding-bottom:30px;margin-bottom:30px}
  .noel-course .noel-detail{font-size:.85rem}
  .noel-home-banner{padding:14px}
  .noel-home-banner-inner{min-height:0;align-items:stretch;flex-direction:column;gap:20px;padding:31px 29px}
  .noel-home-heading{align-items:flex-start;flex-direction:column}
  .noel-home-cta{width:100%;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  .noel-home-banner-inner::before{transition:none}
}
.noel-popup{
  width:min(540px,calc(100% - 24px));
  max-width:none;
  max-height:calc(100dvh - 32px);
  padding:0;
  border:0;
  background:transparent;
  color:var(--noel-green);
  overflow:visible;
}
.noel-popup::backdrop{background:rgba(12,24,15,.60)}
.noel-popup-content{max-height:calc(100dvh - 104px);overflow-y:auto;overscroll-behavior:contain;background:var(--noel-cream);box-shadow:0 20px 65px rgba(0,0,0,.3)}
.noel-popup .noel-hero{min-height:190px}
.noel-popup .noel-hero-copy{padding:44px 18px 30px}
.noel-popup .noel-overline{font-size:9px;letter-spacing:.2em;margin-bottom:12px}
.noel-popup .noel-hero h2{font-size:56px}
.noel-popup .noel-subtitle{font-size:20px;margin-top:12px}
.noel-popup .noel-menu{padding:28px 28px 20px}
.noel-popup .noel-menu::before,.noel-popup .noel-menu::after{display:none}
.noel-popup .noel-course{padding:0;margin:0 0 22px;border:0}
.noel-popup .noel-course h3{display:flex;align-items:center;justify-content:center;gap:12px;color:#a15c3e;font-size:10px;letter-spacing:.16em;margin-bottom:12px}
.noel-popup .noel-course h3::before,.noel-popup .noel-course h3::after{content:"";width:26px;height:1px;background:var(--noel-gold)}
.noel-popup .noel-course p{font-size:21px;font-weight:500}
.noel-popup .noel-course .noel-detail{font-size:12px;line-height:1.5;margin-top:4px}
.noel-popup .noel-between{margin:8px 0;font-size:16px}
.noel-popup .noel-course .noel-mignardises{font-size:17px;margin-top:10px}
.noel-popup-price{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px;background:var(--noel-green);color:var(--noel-cream)}
.noel-popup-price strong{display:block;color:#dfc18d;font-family:var(--display);font-size:42px;line-height:1}
.noel-popup-price span{display:block;margin-top:7px;font-size:10px}
.noel-popup-price a{color:var(--noel-cream);text-align:right;font-size:11px;line-height:1.7;text-decoration:none}
.noel-popup-reserve{display:flex;align-items:center;justify-content:center;margin:14px auto 0;padding:14px 20px;width:100%;min-height:48px;background:#a85e3e;color:#fff;text-align:center;font-size:11px;font-weight:600;letter-spacing:.13em;text-decoration:none}
.noel-popup-reserve:hover{background:#8c492e}
.noel-popup-reserve:focus-visible{outline:2px solid #dfc18d;outline-offset:3px}
.noel-popup-close{
  position:absolute;right:10px;top:10px;z-index:3;
  display:grid;place-items:center;width:40px;height:40px;padding:0;
  border:1px solid rgba(194,161,101,.5);border-radius:50%;
  background:var(--noel-cream);color:var(--noel-green);font:28px/1 var(--body);cursor:pointer;
}
.noel-popup-close:focus-visible{outline:3px solid #c2a165;outline-offset:3px}
.noel-popup-open{overflow:hidden}
@media(max-width:700px){
  .noel-popup .noel-hero{min-height:175px}
  .noel-popup .noel-hero h2{font-size:46px}
  .noel-popup .noel-menu{padding:25px 18px 12px}
  .noel-popup-price{gap:12px;padding:18px}
  .noel-popup-price span{max-width:145px;line-height:1.5}
}
