/* Revision 10 — Moroccan moments, with copy and controls outside faces. */
[data-festi-design=celebration] .hero.has-festi-moments{height:550px}
[data-festi-design=celebration] .has-festi-moments :is(.hero-image,.hero-shade,.hero-caption,.celebrate-note,.celebrate-motion){display:none}
.festi-moments{position:absolute;inset:0 0 0 43%;overflow:hidden;background:#17313b url('/images/festi-moroccan-wedding-v1.webp') center/cover;isolation:isolate;border-radius:0}
[dir=rtl] .festi-moments{inset:0 43% 0 0}
.festi-moments-scenes{position:absolute;inset:0;overflow:hidden;z-index:-2}
.festi-moment-scene{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;transform:scale(1.02)}
.festi-moment-scene.is-active{opacity:1;animation:festi-moment-drift 9s ease-out both}
.festi-moment-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.festi-moments::after{content:"";position:absolute;inset:38% 0 0;background:linear-gradient(0deg,#081e2aeb 0%,#102732a8 36%,transparent 100%);z-index:-1;pointer-events:none}
.festi-moment-caption{position:absolute;inset:auto 32px 80px;color:#fff9ec;display:grid;gap:8px;text-shadow:0 1px 7px #071a2e50}
.festi-moment-caption strong{color:#fff9ec;font:400 clamp(25px,2.8vw,43px)/1.1 var(--serif);letter-spacing:-.6px}
.festi-moment-caption>span{font:400 12px/1.5 'DM Sans',sans-serif;color:#f7e8cc;max-width:380px}
.festi-moment-controls{position:absolute;inset:auto 25px 18px;display:flex;gap:7px;max-width:330px}
.festi-moment-dot{position:relative;flex:1;min-width:44px;min-height:44px;padding:20px 6px;border:0;background:none;cursor:pointer}
.festi-moment-dot>span{display:block;width:100%;height:3px;background:#fff7e769;border-radius:5px;transition:background .2s}
.festi-moment-dot[aria-pressed=true]>span{background:#f4d18a;box-shadow:0 0 12px #eac07660}
.festi-moment-dot:disabled{opacity:.35;cursor:default}
.festi-moment-toggle{position:absolute;inset:18px 20px auto auto;display:block;min-height:44px;min-width:80px;padding:10px 15px;border:1px solid #fff8de80;border-radius:99px;background:#132a38b3;backdrop-filter:blur(8px);color:#fff7e5;font:500 11px/1.2 'DM Sans',sans-serif;cursor:pointer}
.festi-moment-toggle[hidden]{display:none}
[dir=rtl] .festi-moment-toggle{inset:18px auto auto 20px}
.festi-moment-notice{position:absolute;inset:25px auto auto 24px;color:#fff9ec;background:#1029359c;border-radius:20px;padding:6px 10px;font:400 9px/1.4 'DM Sans',sans-serif;letter-spacing:.2px}
[dir=rtl] .festi-moment-notice{inset:25px 24px auto auto}
.festi-moments button:focus-visible{outline:2px solid #fff3cc;outline-offset:2px;border-radius:12px}
.festi-moments.is-paused .festi-moment-scene{animation-play-state:paused}
@keyframes festi-moment-drift{from{transform:scale(1.02)}to{transform:scale(1.075)}}
@media(min-width:768px){
 [data-festi-design=celebration] .has-festi-moments .hero-content{padding-bottom:35px}
}
@media(max-width:767px){
 [data-festi-design=celebration] .hero.has-festi-moments{height:auto;min-height:0;padding:300px 0 0;background:#fcf8ee;color:#183340;overflow:hidden}
 .festi-moments,[dir=rtl] .festi-moments{inset:0 0 auto;height:300px;width:100%}
 .festi-moment-image{object-position:50% 34%}
 .festi-moment-caption{inset:auto 22px 58px;gap:5px}
 .festi-moment-caption strong{font-size:30px}
 .festi-moment-caption>span{font-size:11px}
 .festi-moment-controls{inset:auto 16px 4px;max-width:290px;gap:4px}
 .festi-moment-toggle{inset:12px 14px auto auto;min-height:44px}
 .festi-moment-notice{inset:20px auto auto 18px;font-size:8px}
 [dir=rtl] .festi-moment-toggle{inset:12px auto auto 14px}
 [dir=rtl] .festi-moment-notice{inset:20px 18px auto auto}
 [data-festi-design=celebration] .has-festi-moments .hero-content{position:relative;inset:auto;width:auto;padding:25px 24px 42px}
 [data-festi-design=celebration] .has-festi-moments .hero .eyebrow,
 [data-festi-design=celebration] .has-festi-moments .eyebrow{color:#856333;font-size:8px;max-width:none;line-height:1.6;margin:0 0 10px}
 [data-festi-design=celebration] .has-festi-moments h1{color:#183340;font-size:43px;line-height:1.02;text-shadow:none;margin:0 0 14px}
 [data-festi-design=celebration] .has-festi-moments h1 em{color:#98783e}
 [data-festi-design=celebration] .has-festi-moments .hero-content>p{color:#54625d;font-size:12px;max-width:440px;margin:0 0 20px}
 :root[data-festi-theme=dark] .hero.has-festi-moments{background:#192e3a}
 :root[data-festi-theme=dark] .has-festi-moments h1{color:#fff5e1}
 :root[data-festi-theme=dark] .has-festi-moments h1 em,
 :root[data-festi-theme=dark] .has-festi-moments .eyebrow{color:#e8c685}
 :root[data-festi-theme=dark] .has-festi-moments .hero-content>p{color:#e2e1d8}
}
@media(prefers-reduced-motion:reduce){.festi-moment-scene,.festi-moment-scene.is-active{animation:none;transition:none;transform:none}.festi-moment-dot>span{transition:none}}
