/* Shared rows keep the free card, prices and actions aligned with paid packs. */
html[data-festi-design=celebration] .festi-packs-grid{column-gap:20px;row-gap:0;align-items:stretch}
html[data-festi-design=celebration] .festi-pack{display:grid;grid-template-rows:subgrid;grid-row:span 9;row-gap:0;margin-bottom:20px;padding:30px 26px 25px}
html[data-festi-design=celebration] .festi-pack>*{min-width:0}
html[data-festi-design=celebration] .festi-pack-label{grid-row:1}
html[data-festi-design=celebration] .festi-pack h3{grid-row:2;align-self:start;font-size:clamp(25px,2.65vw,34px);margin:19px 0 15px;line-height:1.12}
html[data-festi-design=celebration] .festi-pack .festi-pack-intro{grid-row:3;margin:0 0 25px;align-self:start}
html[data-festi-design=celebration] .festi-pack-amount{grid-row:4;align-self:start}
html[data-festi-design=celebration] .festi-pack-old-price{display:block;margin-top:6px}
html[data-festi-design=celebration] .festi-pack .festi-pack-period{grid-row:5;align-self:start;margin:12px 0 0}
html[data-festi-design=celebration] .festi-pack-features{grid-row:6;align-content:start;margin:22px 0 24px;padding:22px 0 0;gap:13px}
html[data-festi-design=celebration] .festi-pack .festi-pack-eligibility{grid-row:7;margin:0 0 21px;align-self:start}
html[data-festi-design=celebration] .festi-pack>.festi-pack-action{grid-row:8;margin:0;align-self:stretch;min-height:58px;border-radius:16px}
html[data-festi-design=celebration] .festi-pack-payment{grid-row:9;margin:13px 0 0;align-self:start;line-height:1.6}
@supports not (grid-template-rows:subgrid){
 html[data-festi-design=celebration] .festi-pack{grid-template-rows:auto minmax(115px,auto) minmax(76px,auto) minmax(76px,auto) minmax(50px,auto) 1fr minmax(63px,auto) minmax(64px,auto) minmax(44px,auto)}
}
@media(min-width:701px) and (max-width:1000px){
 html[data-festi-design=celebration] .festi-packs-grid{column-gap:12px}
 html[data-festi-design=celebration] .festi-pack{padding:24px 20px}
 html[data-festi-design=celebration] .festi-pack h3{font-size:27px}
 html[data-festi-design=celebration] .festi-pack>.festi-pack-action{padding:14px 15px;font-size:12px}
}
@media(max-width:700px){
 html[data-festi-design=celebration] .festi-packs-grid{row-gap:18px}
 html[data-festi-design=celebration] .festi-pack{grid-row:auto;grid-template-rows:none;margin:0;padding:27px}
 html[data-festi-design=celebration] .festi-pack h3{font-size:32px}
}

/* A single midnight finale joins the celebration scene and the footer. */
html[data-festi-design=celebration] .maroc-banner.festi-panorama{margin:30px 0 0;min-height:580px;padding:90px 6% 95px;background:#0b202b;display:flex;align-items:flex-end;position:relative;isolation:isolate;border-radius:0;overflow:hidden}
html[data-festi-design=celebration] .festi-panorama-scene{background-image:url('/images/festi-celebrations-dusk.webp');animation:festi-finale-camera 26s ease-in-out infinite alternate}
html[data-festi-design=celebration] .maroc-banner.festi-panorama::after{z-index:1;background:linear-gradient(0deg,#0b202b 0%,#0b202bbd 24%,#0b202b28 62%,#0b202b08),linear-gradient(90deg,#0b202b7d,transparent 68%)}
html[data-festi-design=celebration][dir=rtl] .maroc-banner.festi-panorama::after{background:linear-gradient(0deg,#0b202b,#0b202b9e 25%,transparent 75%),linear-gradient(270deg,#0b202b7d,transparent 68%)}
html[data-festi-design=celebration] .maroc-banner.festi-panorama>.festi-finale-copy{width:min(1320px,100%);position:relative;z-index:3;margin:0 auto}
html[data-festi-design=celebration] .festi-finale-copy .eyebrow{font-size:9px;letter-spacing:3px;color:#edd7a3;margin-bottom:18px}
html[data-festi-design=celebration] .festi-finale-copy h2{max-width:830px;font:400 clamp(40px,5.5vw,78px)/1.02 var(--serif);letter-spacing:-1.8px;color:#fff8e7;margin:0 0 28px;text-wrap:balance;text-shadow:0 3px 25px #05192755}
html[data-festi-design=celebration] .festi-finale-copy h2 em{display:block;font-style:italic;color:#f0ce86}
html[data-festi-design=celebration] .festi-finale-copy .outline-light{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:16px 26px;min-height:55px;border-radius:99px;border:1px solid #e4c182;background:linear-gradient(110deg,#fae5b1,#cda35f);color:#102b36;font-weight:650;font-size:13px;box-shadow:0 7px 35px #d7ae5636;backdrop-filter:none;transition:box-shadow .3s,transform .3s}
html[data-festi-design=celebration] .festi-finale-copy .outline-light svg{width:24px;height:24px}
html[data-festi-design=celebration] .festi-finale-copy .outline-light:hover{transform:translateY(-3px);box-shadow:0 8px 40px #e2b86770}
.festi-finale-film{position:absolute;left:140px;top:-15px;width:1220px;height:450px;object-fit:fill;mix-blend-mode:screen;pointer-events:none;opacity:0;mask-image:linear-gradient(black 0%,black 72%,transparent 100%);transition:opacity 1.2s}
.festi-finale-film.is-playing{opacity:.92}
html[data-festi-design=celebration] .festi-panorama-toggle{bottom:28px;inset-inline-end:6%;min-height:44px;border-color:#ecd59a65;background:#0b202bb3;color:#f9e7be;font-size:10px}
.festi-finale-flare{position:absolute;left:15%;top:24%;width:70%;height:75%;border-radius:50%;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(ellipse,#d8ad6620,transparent 66%);animation:festi-finale-luminance 9s ease-in-out infinite alternate}
.festi-panorama-paused .festi-finale-flare{animation-play-state:paused}
@keyframes festi-finale-camera{from{transform:scale(1.025) translate(-.6%,.1%)}to{transform:scale(1.1) translate(.6%,-1.1%)}}
@keyframes festi-finale-luminance{from{opacity:.25;transform:scale(.96)}to{opacity:.7;transform:scale(1.03)}}

html[data-festi-design=celebration] #app>footer.festi-footer{position:relative;display:grid;grid-template-columns:minmax(200px,1.35fr) minmax(130px,1fr) minmax(130px,1fr);align-items:start;gap:25px 40px;margin:0;padding:22px 6% 26px;background:#0b202b;border:0;color:#cccfbf;overflow:hidden}
html[data-festi-design=celebration] #app>footer.festi-footer::before{content:"";position:absolute;top:0;left:6%;right:6%;height:1px;background:linear-gradient(90deg,#e1bd725e,#e1bd7215 70%,transparent)}
.festi-footer-brand{min-width:0}
html[data-festi-design=celebration] .festi-footer .brand{display:flex;width:fit-content;color:#fff2d4;font-size:30px;gap:14px}
html[data-festi-design=celebration] .festi-footer .brand small{color:#cfbf9f;letter-spacing:1.2px;font-size:7px;margin-top:6px}
html[data-festi-design=celebration] .festi-footer .brand-mark{color:#cfad68}
html[data-festi-design=celebration] .festi-footer-tagline{font-size:12px;line-height:1.8;max-width:260px;margin:16px 0 0;color:#bdc8c4}
.festi-footer-nav{display:flex;flex-direction:column;align-items:flex-start;gap:1px}
.festi-footer-nav strong{color:#ecd09a;font:500 10px/1.5 'DM Sans',sans-serif;letter-spacing:1.8px;margin:7px 0 12px;text-transform:uppercase}
html[data-festi-design=celebration] .festi-footer-nav a,
html[data-festi-design=celebration] .festi-footer-nav button{display:flex;align-items:center;min-height:40px;padding:8px 0;color:#dce0d4;border:0;background:none;font:400 12px/1.5 'DM Sans',sans-serif;text-align:start;text-decoration:none;cursor:pointer;letter-spacing:0}
html[data-festi-design=celebration] .festi-footer-nav a:hover,
html[data-festi-design=celebration] .festi-footer-nav button:hover{color:#f3d697}
html[data-festi-design=celebration] #app>footer.festi-footer>.festi-simcorp-credit{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;width:100%;flex:none;min-height:52px;padding:16px 0 0;margin:5px 0 0;border:0;border-top:1px solid #d7b7752b;color:#dabe89;font:600 14px/1.4 'DM Sans',sans-serif;letter-spacing:.5px;text-decoration:none}
html[data-festi-design=celebration] #app>footer.festi-footer>.festi-simcorp-credit svg{width:22px;height:22px}
@media(max-width:767px){
 html[data-festi-design=celebration] .maroc-banner.festi-panorama{min-height:540px;padding:230px 6% 85px;margin-top:15px}
 html[data-festi-design=celebration] .festi-finale-copy h2{font-size:44px;max-width:580px;letter-spacing:-1.2px;line-height:1.05}
 html[data-festi-design=celebration] .festi-finale-copy .eyebrow{font-size:8px;letter-spacing:2px}
 html[data-festi-design=celebration] .festi-panorama-toggle{bottom:20px;font-size:9px}
 html[data-festi-design=celebration] #app>footer.festi-footer{grid-template-columns:1fr 1fr;gap:25px 18px;padding:27px 6% 24px}
 .festi-footer-brand{grid-column:1 / -1}
 html[data-festi-design=celebration] .festi-footer-tagline{max-width:none;margin-top:12px}
}
@media(prefers-reduced-motion:reduce){
 .festi-finale-film,.festi-finale-flare{display:none}
 html[data-festi-design=celebration] .festi-panorama-scene{animation:none;transform:none}
 html[data-festi-design=celebration] .festi-finale-copy .outline-light{transition:none;transform:none}
}
