/* FBCPS Christmas 2026 page. Everything is scoped to .fx so it can't touch the rest of the site. */
.fx{
  --night:#2a3034; --night-deep:#1b2123; --charcoal:#252e30;
  --copper:#c7926b; --copper-hi:#ecc9a6; --copper-ink:#8a5a3b;
  --cream:#ede8dc; --cream-2:#e2dbcb; --ink:#232a2c; --ink-soft:#4f5a5c;
  --on-night:#ede8dc; --on-night-soft:rgba(237,232,220,.7);
  --line-night:rgba(237,232,220,.18); --line-cream:rgba(35,42,44,.16); --sage:#9cbab9;
  --f-display:"Cinzel","Trajan Pro","Times New Roman",serif;
  --f-story:"Cormorant Garamond","Garamond","Georgia",serif;
  --f-ui:"brother-1816","Jost","Futura","Helvetica Neue",Arial,sans-serif;
  --gut:max(20px, env(safe-area-inset-left, 0px)); --gut-r:max(20px, env(safe-area-inset-right, 0px));
  font-family:var(--f-ui); font-size:16px; line-height:1.6; color:var(--on-night); -webkit-font-smoothing:antialiased;
}
.fx *,.fx *::before,.fx *::after{box-sizing:border-box}
.fx h1,.fx h2,.fx h3,.fx p,.fx ul,.fx figure{margin:0}
.fx img{display:block;max-width:100%;height:auto}
.fx a{color:inherit;text-decoration:none}
.fx button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;box-shadow:none;border-radius:0;text-transform:none;letter-spacing:inherit;line-height:inherit;cursor:pointer}
.fx button:hover,.fx button:focus{background:none;color:inherit}
.fx :focus-visible{outline:2px solid var(--sage);outline-offset:3px}
html:has(.fx){scroll-behavior:smooth}
.fx section{scroll-margin-top:20px}

.fx .wrap{max-width:1180px;margin-inline:auto;padding-left:var(--gut);padding-right:var(--gut-r)}
.fx .label{font-family:var(--f-ui);font-weight:500;font-size:12.5px;letter-spacing:.32em;text-transform:uppercase}
.fx .h2{font-family:var(--f-story);font-weight:500;font-size:clamp(40px,5.6vw,68px);line-height:1.02;letter-spacing:-.01em;text-wrap:balance;color:inherit}
.fx .h2 em{font-style:italic;font-weight:400}

.fx .btns{display:flex;flex-wrap:wrap;gap:12px}
.fx .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 26px;border-radius:2px;font-family:var(--f-ui);font-weight:500;font-size:13px;letter-spacing:.2em;line-height:1.2;text-transform:uppercase;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background-color .25s,color .25s,border-color .25s,transform .25s}
.fx .btn:hover{transform:translateY(-1px)}
.fx .btn-copper,.fx .btn-copper:focus{background:var(--copper);color:var(--night-deep)}
.fx .btn-copper:hover{background:var(--copper-hi);color:var(--night-deep)}
.fx .btn-line,.fx .btn-line:focus{border-color:rgba(237,232,220,.55);color:var(--on-night);background:transparent}
.fx .btn-line:hover{border-color:var(--copper-hi);color:var(--copper-hi);background:transparent}
.fx .btn-ink,.fx .btn-ink:focus{background:var(--ink);color:var(--cream)}
.fx .btn-ink:hover{background:#384345;color:var(--cream)}
.fx .btn-ghost-ink,.fx .btn-ghost-ink:focus{border-color:rgba(35,42,44,.4);color:var(--ink);background:transparent}
.fx .btn-ghost-ink:hover{border-color:var(--ink);color:var(--ink);background:transparent}
.fx .btn svg{width:17px;height:17px;flex:none}

/* header sits on top of the night sky on this page only */
body:has(.fx-hero) [data-elementor-type="header"] > header,
body:has(.fx-hero) [data-elementor-type="header"] > .e-flexbox:first-child{position:absolute!important;top:0;left:0;right:0;background:transparent!important;box-shadow:none!important}
body:has(.fx-hero) [data-elementor-type="header"]{position:relative;z-index:50}

/* ---------- hero ---------- */
.fx .hero{position:relative;overflow:hidden;isolation:isolate;min-height:max(680px,100svh);display:flex;flex-direction:column;align-items:center;
  --hills-h:clamp(180px,30vh,330px);
  padding:clamp(110px,14vh,140px) var(--gut-r) calc(var(--hills-h) * .62) var(--gut);background:var(--night)}
.fx .hero::after{content:"";position:absolute;inset:0;background:url(fbcps-christmas-grain.png);opacity:.22;pointer-events:none;z-index:6;mix-blend-mode:overlay}
.fx .sky-img{position:absolute;inset:-4% -3% -2%;z-index:0;background:url(fbcps-christmas-sky.webp) 50% 100% / cover no-repeat;pointer-events:none}
.fx .sky{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.fx .hero .sky,.fx .star-wrap,.fx .intro,.fx .hl,.fx .sky-img{will-change:transform}
.fx .star-wrap{position:relative;z-index:2;height:min(38vh,86vw,400px);aspect-ratio:480/660;flex:none}
.fx .star-wrap img{width:100%;height:100%;position:relative;z-index:2;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .8s}
.fx .glow{position:absolute;left:50%;top:47%;width:190%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;z-index:1;pointer-events:none;transition:scale .8s;
  background:radial-gradient(circle, rgba(236,201,166,.30) 0%, rgba(199,146,107,.12) 30%, rgba(199,146,107,.03) 55%, transparent 70%)}
.fx .star-wrap:hover img{transform:scale(1.05);filter:brightness(1.12) drop-shadow(0 0 18px rgba(236,201,166,.35))}
.fx .star-wrap:hover .glow{scale:1.25}
.fx .intro{position:relative;z-index:5;margin-top:calc(min(38vh,86vw,400px) * -.13);display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(10px,1.6vh,18px)}
.fx .title{display:flex;flex-direction:column;align-items:center;gap:clamp(6px,1.2vh,14px);margin:0;padding:0}
.fx .t-main{font-family:var(--f-display);font-weight:400;font-size:min(12vw,14vh,150px);line-height:.9;letter-spacing:.015em;color:var(--copper);text-transform:none}
.fx .t-main .ch{display:inline-block}
.fx .t-sub{font-family:var(--f-ui);font-weight:400;font-size:clamp(14px,min(2.2vw,3.2vh),30px);line-height:1.3;letter-spacing:.36em;text-transform:uppercase;color:var(--cream);padding-left:.36em}
.fx .dates{font-family:var(--f-story);font-style:italic;font-size:clamp(19px,2.2vw,26px);line-height:1.35;color:var(--on-night-soft)}
.fx .intro .btns{justify-content:center;margin-top:4px}
.fx .hills{position:absolute;left:50%;bottom:-1px;width:max(calc(100% + 120px),900px);height:var(--hills-h);transform:translateX(-50%);z-index:4;pointer-events:none}
.fx .hl{position:absolute;inset:0}
.fx .hl:last-child{bottom:-12px}
.fx .hills canvas{position:absolute;inset:0;width:100%;height:100%}

.fx-js .fx .sky{animation:fxFade 2.4s ease both}
.fx-js .fx .sky-img{animation:fxSkyin 2.6s cubic-bezier(.2,.7,.2,1) both}
.fx-js .fx .star-wrap img{animation:fxStarin 2s cubic-bezier(.2,.7,.2,1) .15s both}
.fx-js .fx .glow{animation:fxGlowin 3s ease .3s both, fxBreathe 6s ease-in-out 3.3s infinite}
.fx-js .fx .t-main .ch{animation:fxRise 1.1s cubic-bezier(.2,.7,.2,1) both, fxGlint 8s ease-in-out infinite;animation-delay:calc(.55s + var(--i) * .07s), calc(2.8s + var(--i) * .09s)}
.fx-js .fx .t-sub,.fx-js .fx .dates,.fx-js .fx .intro .btns{animation:fxFadeup 1s ease both}
.fx-js .fx .t-sub{animation-delay:1.25s}.fx-js .fx .dates{animation-delay:1.45s}.fx-js .fx .intro .btns{animation-delay:1.6s}
.fx-js .fx .hills canvas{animation:fxHillup 1.8s cubic-bezier(.2,.7,.2,1) both}
.fx-js .fx .hl:nth-child(1) canvas{animation-delay:.1s}
.fx-js .fx .hl:nth-child(2) canvas{animation-delay:.3s}
.fx-js .fx .hl:nth-child(3) canvas{animation-delay:.5s}
@keyframes fxFade{from{opacity:0}to{opacity:1}}
@keyframes fxSkyin{from{opacity:0;scale:1.06}to{opacity:1;scale:1}}
@keyframes fxRise{from{opacity:0;transform:translateY(.25em);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes fxFadeup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fxStarin{from{opacity:0;transform:translateY(-14px) scale(.9)}to{opacity:1;transform:none}}
@keyframes fxGlowin{from{opacity:0;transform:translate(-50%,-50%) scale(.4)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes fxBreathe{0%,100%{opacity:1}50%{opacity:.7}}
@keyframes fxHillup{from{opacity:0;transform:translateY(46px)}to{opacity:1;transform:none}}
@keyframes fxGlint{0%,8%,100%{color:var(--copper);text-shadow:none}4%{color:var(--copper-hi);text-shadow:0 0 18px rgba(236,201,166,.45)}}

/* ---------- welcome ---------- */
.fx .welcome{background:var(--cream);color:var(--ink);padding-block:clamp(80px,11vw,150px);overflow:hidden}
.fx .welcome-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,6vw,96px);align-items:center}
.fx .welcome .label,.fx .invite .label,.fx .know .label{color:var(--copper-ink)}
.fx .welcome .copy{display:flex;flex-direction:column;gap:26px;min-width:0}
.fx .lede{font-size:18px;line-height:1.7;color:var(--ink-soft);max-width:46ch}
.fx .expect{list-style:none;padding:0;display:grid;border-top:1px solid var(--line-cream)}
.fx .expect li{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line-cream);align-items:baseline;margin:0}
.fx .expect strong{font-family:var(--f-story);font-weight:600;font-size:21px;line-height:1.2}
.fx .expect span{color:var(--ink-soft);font-size:15.5px}
.fx .mosaic{position:relative;display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(54px,7vw,92px);gap:14px;min-width:0}
.fx .mosaic figure{overflow:hidden;border-radius:2px;background:var(--cream-2)}
.fx .mosaic img{width:100%;height:118%;max-width:none;object-fit:cover;transform:translateY(-8%);will-change:transform}
.fx .m1{grid-column:1/5;grid-row:1/5}.fx .m2{grid-column:5/7;grid-row:2/5}.fx .m3{grid-column:2/4;grid-row:5/8}.fx .m4{grid-column:4/7;grid-row:5/9}
.fx .m1 img{object-position:50% 40%}

/* ---------- services ---------- */
.fx .services{position:relative;background:var(--charcoal);padding-block:clamp(80px,10vw,140px) clamp(170px,22vw,280px);overflow:hidden}
.fx .services::before,.fx .events::before{content:"";position:absolute;inset:0;background:url(fbcps-christmas-grain.png);opacity:.4;mix-blend-mode:overlay;pointer-events:none}
.fx .svc-head,.fx .ev-head{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px 40px;margin-bottom:clamp(36px,5vw,56px)}
.fx .svc-head .label,.fx .ev-head .label{color:var(--copper);margin-bottom:16px}
.fx .countdown{display:flex;align-items:baseline;gap:12px;color:var(--on-night-soft);font-size:14px;line-height:1.4;letter-spacing:.06em}
.fx .countdown b{font-family:var(--f-display);font-weight:400;font-size:44px;line-height:1;color:var(--cream);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.fx .svc-grid{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fx .svc{position:relative;display:flex;flex-direction:column;gap:6px;padding:30px 28px 26px;border:1px solid var(--line-night);border-radius:2px;background:rgba(27,33,35,.45);transition:border-color .3s,background-color .3s}
.fx .svc:hover{border-color:rgba(199,146,107,.6);background:rgba(27,33,35,.7)}
.fx .svc .day{font-size:12.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--on-night-soft)}
.fx .svc .date{font-family:var(--f-story);font-size:28px;font-weight:500;line-height:1.1}
.fx .svc .time{font-family:var(--f-display);font-size:clamp(46px,4.6vw,60px);line-height:1;color:var(--copper);margin:18px 0 22px;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.fx .svc .time small{font-size:.42em;letter-spacing:.14em;margin-left:.2em}
.fx .svc-actions{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line-night)}
.fx .svc-actions a,.fx .svc-actions button{padding:4px 0;font:500 12px/1.4 var(--f-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--cream);border-bottom:1px solid transparent}
.fx .svc-actions a:hover,.fx .svc-actions button:hover{color:var(--copper-hi);border-bottom-color:currentColor}
.fx .where-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:center;margin-top:clamp(40px,5vw,64px);padding-top:clamp(28px,4vw,40px);border-top:1px solid var(--line-night)}
.fx .where-row .label{color:var(--copper);margin-bottom:10px}
.fx .addr{margin:0 0 8px;font-family:var(--f-story);font-size:clamp(26px,3vw,34px);line-height:1.15}
.fx .where-row p.small{max-width:58ch;color:var(--on-night-soft);font-size:15px}
.fx .hills-band{position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);width:max(100%,900px);height:clamp(130px,17vw,240px);pointer-events:none;display:block}

/* ---------- invite ---------- */
.fx .invite{background:var(--cream);color:var(--ink);padding-block:clamp(80px,10vw,140px)}
.fx .invite-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:clamp(40px,6vw,90px);align-items:start}
.fx .form{display:flex;flex-direction:column;gap:28px;min-width:0}
.fx .form .intro-copy{display:flex;flex-direction:column;gap:18px}
.fx .field{display:flex;flex-direction:column;gap:10px;border:0;margin:0;padding:0;min-width:0}
.fx .field>.lbl,.fx .field legend{font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);padding:0;margin:0 0 10px;line-height:1.4}
.fx .field .opt{text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink-soft)}
.fx .chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fx .chip{position:relative;cursor:pointer;margin:0}
.fx .chip input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.fx .chip span{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line-cream);border-radius:2px;background:rgba(255,255,255,.35);transition:border-color .2s,background-color .2s}
.fx .chip small{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.fx .chip b{font-family:var(--f-story);font-size:24px;font-weight:600;line-height:1.1}
.fx .chip input:checked+span{border-color:var(--ink);background:var(--ink);color:var(--cream)}
.fx .chip input:checked+span small{color:rgba(237,232,220,.7)}
.fx .chip input:focus-visible+span{outline:2px solid var(--copper-ink);outline-offset:3px}
.fx .input,.fx .msg{width:100%;border:1px solid var(--line-cream);border-radius:2px;background:rgba(255,255,255,.5);color:var(--ink);font:400 16px/1.55 var(--f-ui);padding:13px 15px;box-shadow:none}
.fx .input:focus,.fx .msg:focus{outline:none;border-color:var(--ink);background:#fff}
.fx .msg{resize:vertical;min-height:132px}
.fx .hint{min-height:1.5em;margin-top:-8px;font-size:14px;color:var(--copper-ink)}
.fx .phone{position:sticky;top:24px;border-radius:38px;padding:12px;background:var(--ink);border:1px solid #3a4446}
.fx .phone-in{border-radius:28px;background:#f7f5f0;overflow:hidden}
.fx .phone-top{display:flex;gap:8px;align-items:center;padding:16px 18px 12px;border-bottom:1px solid #e3ded3;font-size:13px;color:#7a7f80}
.fx .phone-top b{font-weight:500;color:var(--ink)}
.fx .thread{display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding:16px 14px 20px}
.fx .bub-img{width:74%;border-radius:18px;overflow:hidden;background:var(--night)}
.fx .bub-img canvas{display:block;width:100%;height:auto}
.fx .bub{max-width:80%;padding:10px 14px;border-radius:18px;background:#2f7af6;color:#fff;font-size:14.5px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}
.fx .phone-cap{margin:14px 6px 2px;text-align:center;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(237,232,220,.6)}

/* ---------- events ---------- */
.fx .events{position:relative;background:var(--night);padding-block:clamp(80px,10vw,130px)}
.fx .events .wrap{position:relative}
.fx .ev-head p.sub{margin-top:14px;max-width:52ch;color:var(--on-night-soft)}
.fx .ev{display:flex;flex-direction:column;color:inherit;min-width:0}
.fx .ev-media{position:relative;aspect-ratio:16/9;border-radius:2px;overflow:hidden;background:var(--night-deep)}
.fx .ev-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.fx .ev:hover .ev-media img{transform:scale(1.04)}
.fx .ev-date{position:absolute;left:12px;top:12px;z-index:2;display:flex;flex-direction:column;align-items:center;min-width:54px;padding:7px 8px 6px;background:var(--cream);color:var(--ink);border-radius:2px;line-height:1}
.fx .ev-date small{font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--copper-ink)}
.fx .ev-date b{font-family:var(--f-display);font-weight:400;font-size:24px;margin-top:4px;font-variant-numeric:tabular-nums}
.fx .ev-body{display:flex;flex-direction:column;gap:6px;padding-top:16px}
.fx .ev-when{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--copper);line-height:1.5}
.fx .ev h3{font-family:var(--f-story);font-weight:500;font-size:25px;line-height:1.15;text-wrap:balance;color:var(--on-night)}
.fx .ev .ev-where{display:block;font-size:14.5px;color:var(--on-night-soft)}
.fx .ev-more{display:inline-flex;align-items:center;gap:8px;margin-top:6px;font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--cream)}
.fx .ev-more i{display:block;width:18px;height:1px;background:currentColor;transition:width .3s}
.fx .ev:hover .ev-more{color:var(--copper-hi)}
.fx .ev:hover .ev-more i{width:30px}
.fx .ev-feat{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,56px);align-items:center;padding-bottom:clamp(36px,5vw,56px);margin-bottom:clamp(36px,5vw,56px);border-bottom:1px solid var(--line-night)}
.fx .ev-feat .ev-body{padding-top:0;gap:12px}
.fx .ev-feat h3{font-size:clamp(32px,3.6vw,46px)}
.fx .ev-feat p.blurb{color:var(--on-night-soft);max-width:42ch}
.fx .ev-tag{align-self:flex-start;font-size:11px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--night-deep);background:var(--copper);padding:5px 10px;border-radius:2px}
.fx .ev-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3vw,40px) clamp(16px,2vw,28px)}
.fx .noimg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(60% 70% at 50% 35%, rgba(199,146,107,.2), transparent 70%),linear-gradient(180deg,#323a3e,#1f2528)}
.fx .noimg::after{content:"";position:absolute;inset:0;background:url(fbcps-christmas-grain.png);opacity:.5;mix-blend-mode:overlay}
.fx .noimg img.mini{width:auto;height:44%;object-fit:contain}
.fx .noimg .nt{position:relative;z-index:1;font-family:var(--f-display);font-size:15px;letter-spacing:.24em;text-transform:uppercase;color:var(--copper)}
.fx .ev-foot{position:relative;margin-top:clamp(40px,5vw,60px);display:flex;justify-content:center}

/* ---------- good to know ---------- */
.fx .know{background:var(--cream);color:var(--ink);padding-block:clamp(80px,10vw,130px)}
.fx .know-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(36px,6vw,90px)}
.fx .know .label{margin-bottom:16px}
.fx .faq{border-top:1px solid var(--line-cream)}
.fx .faq details{border-bottom:1px solid var(--line-cream)}
.fx .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-family:var(--f-story);font-size:clamp(22px,2.4vw,27px);font-weight:500;line-height:1.2;color:var(--ink)}
.fx .faq summary::-webkit-details-marker{display:none}
.fx .faq summary::after{content:"";width:12px;height:12px;flex:none;border-right:1.5px solid var(--copper-ink);border-bottom:1.5px solid var(--copper-ink);transform:rotate(45deg) translate(-3px,-3px);transition:transform .25s}
.fx .faq details[open] summary::after{transform:rotate(225deg) translate(-3px,-3px)}
.fx .faq p{margin:0 0 24px;max-width:62ch;color:var(--ink-soft)}
.fx .faq a{color:var(--copper-ink);text-decoration:underline}

/* ---------- close ---------- */
.fx .close{position:relative;background:var(--night) url(fbcps-christmas-sky.webp) 50% 100% / cover no-repeat;text-align:center;padding-block:clamp(70px,9vw,110px) clamp(150px,19vw,250px);overflow:hidden;isolation:isolate}
.fx .close::before{content:"";position:absolute;inset:0;background:url(fbcps-christmas-grain.png);opacity:.2;mix-blend-mode:overlay;pointer-events:none;z-index:3}
.fx .close-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:22px;padding-left:var(--gut);padding-right:var(--gut-r)}
.fx .close .star-sm{width:110px}
.fx .close h2{font-family:var(--f-display);font-weight:400;font-size:clamp(40px,7vw,88px);line-height:1;letter-spacing:.04em;color:var(--copper)}
.fx .close p{max-width:44ch;color:var(--on-night-soft)}
.fx .close .hills-band{z-index:1}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .fx .welcome-grid,.fx .invite-grid,.fx .know-grid,.fx .ev-feat{grid-template-columns:minmax(0,1fr)}
  .fx .svc-grid{grid-template-columns:minmax(0,1fr)}
  .fx .ev-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fx .svc{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:16px;row-gap:2px;padding:24px 22px}
  .fx .svc .time{grid-column:2;grid-row:1/3;margin:0;font-size:46px}
  .fx .svc .day,.fx .svc .date{grid-column:1}
  .fx .svc-actions{grid-column:1/-1;margin-top:16px}
  .fx .where-row{grid-template-columns:minmax(0,1fr)}
  .fx .phone{position:relative;top:0;max-width:420px;width:100%;margin-inline:auto}
}
@media (max-width:620px){
  .fx .expect li{grid-template-columns:1fr;gap:2px}
  .fx .chips{grid-template-columns:minmax(0,1fr)}
  .fx .chip span{flex-direction:row;justify-content:space-between;align-items:baseline}
  .fx .mosaic{gap:8px}
  .fx .ev-grid{grid-template-columns:minmax(0,1fr)}
  .fx .hero{--hills-h:clamp(150px,24vh,220px);padding-top:100px}
}
@media (prefers-reduced-motion:reduce){
  html:has(.fx){scroll-behavior:auto}
  .fx *,.fx *::before,.fx *::after{animation:none!important;transition:none!important}
}
/* hide the site-wide Christmas bar on the Christmas page itself */
body:has(.fx-hero) .e-xb-bar{display:none!important}
