/* Evergreen, warm lights and gold accents; decorative SVGs remain out of the accessibility tree. */
.christmas-banner-shell{position:relative}
.christmas-banner-shell .christmas-banner{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(110deg,#183c30,#285644 55%,#183c30)}
.christmas-banner-shell .christmas-banner>.wrap{position:relative;z-index:1;padding-right:40px}
.christmas-banner::before{content:'';position:absolute;z-index:0;pointer-events:none;inset:0;background:linear-gradient(105deg,transparent 32%,#f5d58b14 44%,#ffe2a838 50%,#f5d58b14 56%,transparent 68%);transform:translateX(-115%);animation:christmas-gold-sweep 7.5s ease-in-out infinite}
.christmas-banner svg{animation:christmas-star-glow 5s ease-in-out infinite;transform-origin:center}
.christmas-motion-toggle{position:absolute;z-index:2;right:12px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:1px solid #bfa67480;border-radius:50%;background:#183c30;color:#f4dfb8;display:grid;place-items:center;padding:0;cursor:pointer;font-size:12px;line-height:1}
.christmas-motion-toggle:hover{background:#365c48;color:#fff}
.christmas-motion-toggle:focus-visible{outline:2px solid #f4dfb8;outline-offset:3px}
.christmas-banner-shell.is-motion-paused .christmas-banner::before,.christmas-banner-shell.is-motion-paused .christmas-banner svg{animation-play-state:paused}
@keyframes christmas-gold-sweep{0%,18%{transform:translateX(-115%)}65%,100%{transform:translateX(115%)}}
@keyframes christmas-star-glow{0%,100%{opacity:.8;transform:scale(1);filter:drop-shadow(0 0 0 #e8c58200)}50%{opacity:1;transform:scale(1.12);filter:drop-shadow(0 0 7px #e8c58288)}}
@media(prefers-reduced-motion:reduce){.christmas-banner::before,.christmas-banner svg{animation:none}.christmas-banner::before{transform:none;opacity:.35}.christmas-motion-toggle{display:none}}
.christmas-banner{display:block;background:#183c30;color:#fff2d9;border-bottom:1px solid #b69b65}
.christmas-banner>.wrap{display:flex;gap:20px;align-items:center;min-height:58px;font-size:13px}
.christmas-banner svg{color:#e8c582;flex-shrink:0}
.christmas-banner strong{font-size:17px;letter-spacing:-.02em}
.christmas-banner-date{color:#f4dfb8;font-size:12px}
.christmas-banner-link{margin-left:auto;border-bottom:1px solid #c9ab74;font-weight:700;padding:4px 0}
.christmas-banner:hover .christmas-banner-link{color:#ffbf7a}
.seasonal-christmas .energy-hero-copy{background:#234a3a;color:#fffaf4;background-image:url('/assets/christmas-evergreen.svg');background-repeat:no-repeat;background-size:260px;background-position:right -30px top -65px;padding-top:90px}
.seasonal-christmas .energy-hero-copy h1{color:#fffaf4;position:relative}
.seasonal-christmas .energy-hero-copy .headline-line-accent{background:transparent}
.seasonal-christmas .energy-hero-copy .headline-line-accent .headline-line-inner{background:#fff0d8;color:#234a3a}
.seasonal-christmas .energy-hero-copy>p{color:#f5ecdd;position:relative}
.seasonal-christmas .energy-hero-copy .eyebrow{color:#f4d59a;position:relative}
.seasonal-christmas .energy-hero-copy .energy-actions .button{background:#ff823c;color:#192c27;border-color:#ff823c}
.seasonal-christmas .energy-hero-copy .energy-actions .text-link{color:#fffaf4;border-color:#ebd1a7}
.seasonal-christmas .energy-hero,.seasonal-christmas .energy-route-hero,.seasonal-christmas .energy-gym-hero,.seasonal-christmas .energy-equipment-showcase{position:relative}
.seasonal-christmas .energy-hero::after,.seasonal-christmas .energy-route-hero::after,.seasonal-christmas .energy-gym-hero::after,.seasonal-christmas .energy-equipment-showcase::after{content:'';position:absolute;z-index:4;pointer-events:none;inset:0 0 auto;height:50px;background:url('/assets/christmas-lights.svg') repeat-x top center;background-size:1440px auto;opacity:.85}
.seasonal-christmas .energy-route-hero::before,.seasonal-christmas .energy-gym-hero::before,.seasonal-christmas .energy-equipment-showcase::before{content:'';position:absolute;z-index:3;pointer-events:none;top:0;right:0;width:235px;height:150px;background:url('/assets/christmas-evergreen.svg') no-repeat right top;background-size:contain}
.seasonal-christmas .footer{background-image:url('/assets/christmas-evergreen.svg');background-size:250px auto;background-repeat:no-repeat;background-position:right top}
.christmas-offers{position:relative;isolation:isolate}
.christmas-heading h2::after{content:'';display:block;width:65px;height:14px;margin-top:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 65 14'%3E%3Cpath d='M0 7h22M43 7h22M32 0l2 5 5 2-5 2-2 5-2-5-5-2 5-2Z' fill='%23e6c484' stroke='%23e6c484'/%3E%3C/svg%3E") no-repeat center}
@media(max-width:650px){.christmas-banner>.wrap{display:grid;grid-template-columns:20px 1fr auto;gap:3px 10px;min-height:72px;padding-block:10px}.christmas-banner svg{grid-row:1/3;width:18px}.christmas-banner strong{font-size:14px}.christmas-banner-date{grid-column:2;font-size:10px}.christmas-banner-link{grid-row:1/3;grid-column:3;font-size:10px;max-width:80px}.seasonal-christmas .energy-hero-copy{padding-top:62px;background-size:230px;background-position:right -48px top -30px}.seasonal-christmas .energy-hero::after,.seasonal-christmas .energy-route-hero::after,.seasonal-christmas .energy-gym-hero::after,.seasonal-christmas .energy-equipment-showcase::after{background-size:850px auto;height:45px}.seasonal-christmas .energy-route-hero::before,.seasonal-christmas .energy-gym-hero::before,.seasonal-christmas .energy-equipment-showcase::before{width:150px;height:100px;right:-15px}.seasonal-christmas .energy-route-hero,.seasonal-christmas .energy-gym-hero,.seasonal-christmas .energy-equipment-showcase{overflow:hidden}.seasonal-christmas .footer{background-size:160px}}
#christmas-title,#fitjoy-title{scroll-margin-top:140px}
.seasonal-christmas .header{border-bottom:3px solid #345d4b}
.seasonal-christmas .footer{border-top:5px solid #c3a26c}
.seasonal-christmas .footer-bottom{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 60'%3E%3Cg stroke='%2396af9c' stroke-width='2' fill='none'%3E%3Cpath d='M8 52L120 8M36 41L27 20M36 41L59 44M61 32L53 11M61 32L86 36M89 21L83 3M89 21L112 25'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;background-size:110px;padding-right:125px}
.christmas-offers{background:#244b3b;color:#fffaf4;padding:clamp(40px,6vw,80px) 0;border-bottom:5px solid #c3a26c}
.christmas-heading{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:40px;margin-bottom:32px}
.christmas-heading .eyebrow{color:#eed6af;line-height:1.7}
.christmas-heading h2{font-size:clamp(34px,4.5vw,64px);line-height:1.07;letter-spacing:-.04em;margin:16px 0}
.christmas-heading p{color:#f1ede2;font-size:18px}
.christmas-heading figure{margin:0;overflow:hidden;border-radius:8px}
.christmas-heading img{width:100%;aspect-ratio:1.8;object-fit:cover;display:block}
.christmas-offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.christmas-offer-card{background:#fffaf4;color:#192c27;padding:clamp(22px,2.5vw,34px);border-radius:8px;display:flex;flex-direction:column;align-items:flex-start}
.christmas-offer-card .eyebrow{color:#614b2e;line-height:1.6;font-size:11px}
.christmas-offer-card h3{font-size:clamp(23px,2.3vw,32px);line-height:1.2;letter-spacing:-.035em;margin:20px 0;min-height:2.4em}
.christmas-price{display:flex;flex-direction:column;gap:8px;margin:0 0 18px;min-height:95px}
.christmas-price strong{font-size:52px;line-height:1;letter-spacing:-.05em;color:#192c27}
.christmas-price span{font-size:13px;line-height:1.6}
.christmas-offer-card>p:not(.christmas-price){font-size:15px;line-height:1.65;margin:0 0 24px}
.christmas-offer-card .button{margin-top:auto;font-size:12px;min-height:48px;max-width:100%;white-space:normal;text-align:left}
.christmas-terms{color:#eee6d9;font-size:13px;line-height:1.8;max-width:1000px;margin:24px 0 0}
.christmas-membership-offer{margin-top:22px;color:#192c27;max-width:310px}
.christmas-stamp{display:block;width:fit-content;border:2px solid #345d4b;outline:1px solid #345d4b;outline-offset:4px;padding:12px 18px;margin:5px 5px 22px;text-transform:uppercase;letter-spacing:.1em;font-size:10px;line-height:1.8;color:#244b3b;transform:rotate(-3deg)}
.christmas-stamp strong{font-size:17px;letter-spacing:.015em;line-height:1.3}
.christmas-stamp span{display:block;font-size:11px;letter-spacing:0;text-transform:none;margin-top:8px;font-weight:700}
.christmas-stamp{text-decoration:none;background:#f1eadb}
.christmas-stamp:hover{background:#e8f1df}
.christmas-membership-offer p{font-size:13px;line-height:1.7;margin:12px 0}
.christmas-membership-offer .fine{font-size:12px}
.christmas-membership-offer .text-link{font-size:12px}
.fitjoy-section{padding:clamp(28px,5vw,64px);background:#e8f1df;border-radius:10px;margin-bottom:70px}
.fitjoy-heading{display:grid;grid-template-columns:1.5fr 1fr;align-items:center;gap:40px}
.fitjoy-heading h2{font-size:clamp(34px,4vw,54px);line-height:1.1;letter-spacing:-.04em;margin:16px 0}
.fitjoy-heading p{max-width:610px;line-height:1.8}
.fitjoy-logo{background:#080808;border:1px solid #344237;border-radius:8px;margin:0;width:100%;max-width:380px;justify-self:end;padding:36px 28px;box-shadow:0 8px 24px #192c270c}
.fitjoy-logo img{width:100%;height:auto;display:block;object-fit:contain;aspect-ratio:971/299}
.fitjoy-logo figcaption{position:static;background:none;color:#fff;font-family:Georgia,'Times New Roman',serif;font-size:clamp(11px,1.1vw,15px);font-weight:700;text-transform:uppercase;letter-spacing:.025em;text-align:center;padding:0;margin-top:16px;line-height:1.5}
.fitjoy-options{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:32px 0;border-block:1px solid #b4c6af;padding:28px 0}
.fitjoy-options p{font-size:15px;line-height:1.8;max-width:430px}
.fitjoy-options .fitjoy-price{display:flex;align-items:baseline;gap:9px;margin:16px 0}
.fitjoy-price strong{font-size:48px;line-height:1;letter-spacing:-.04em;color:#192c27}
.fitjoy-price span{font-size:14px}
.fitjoy-options .fine,.fitjoy-note{font-size:13px;line-height:1.8}
.fitjoy-note{max-width:800px;margin-bottom:24px}
@media(max-width:950px){.christmas-offer-card h3{font-size:23px}.christmas-offer-card .button{width:100%}.christmas-offer-card .eyebrow{min-height:3.2em}.christmas-heading{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.christmas-heading,.christmas-offer-grid,.fitjoy-heading,.fitjoy-options{grid-template-columns:1fr;gap:22px}.christmas-heading figure{max-width:440px}.christmas-offer-card h3{min-height:0;font-size:29px}.christmas-offer-card .eyebrow{min-height:0}.christmas-price{min-height:0}.christmas-offer-card .button{width:auto}.fitjoy-section{width:calc(100% - 32px);padding:26px;margin-bottom:40px}.fitjoy-logo{max-width:300px}.fitjoy-options>div+div{border-top:1px solid #b4c6af;padding-top:22px}.seasonal-christmas .footer-bottom{padding-right:0;background-size:75px;background-position:right bottom;padding-bottom:55px}}

/* Christmas campaign artwork extends behind its headline. */
.christmas-heading{position:relative;isolation:isolate;display:block;min-height:410px;padding:44px;border-radius:10px;overflow:hidden;background:#234a3a}
.christmas-heading>div{position:relative;z-index:2;max-width:510px}
.christmas-heading figure{position:absolute;inset:0;z-index:-2;border-radius:0}
.christmas-heading img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 60%}
.christmas-heading::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#183c30 0%,#183c30f2 29%,#183c30b8 46%,#183c3033 66%,transparent 82%)}
@media(max-width:650px){.christmas-heading{min-height:460px;padding:28px 24px}.christmas-heading>div{max-width:100%}.christmas-heading figure{inset:0}.christmas-heading img{object-fit:contain;object-position:center bottom}.christmas-heading::before{background:linear-gradient(180deg,#234a3a 0%,#234a3a 35%,#234a3acc 48%,transparent 68%)}}

/* One edge-to-edge campaign banner, with live text over the image. */
.christmas-offers{padding-top:0}
.christmas-heading{width:100vw;margin-left:calc(50% - 50vw);min-height:480px;border-radius:0;padding:64px max(24px,calc((100vw - 1168px)/2));margin-bottom:40px}
.christmas-heading>div{max-width:540px}
@media(max-width:650px){.christmas-heading{min-height:490px;padding:36px 24px;margin-bottom:28px}.christmas-heading img{object-fit:contain;object-position:center bottom}.christmas-heading::before{background:linear-gradient(180deg,#234a3a 0%,#234a3a 45%,#234a3ad9 54%,transparent 70%)}}

@media(max-width:650px){.christmas-heading figure{inset:auto 0 0;height:56vw;mask-image:linear-gradient(180deg,transparent 0%,#000 22%)}.christmas-heading img{object-fit:cover}}

/* A fuller evergreen layer, kept clear of copy and interactive controls. */
.seasonal-christmas .energy-hero-copy{background-image:url('/assets/christmas-ornament-sprig.svg');background-size:330px;background-position:right -24px top -48px}
.seasonal-christmas .energy-route-hero::before,.seasonal-christmas .energy-gym-hero::before,.seasonal-christmas .energy-equipment-showcase::before{width:300px;height:195px;background-image:url('/assets/christmas-ornament-sprig.svg');opacity:1}
.seasonal-christmas .footer{position:relative;background-image:url('/assets/christmas-ornament-sprig.svg');background-size:260px auto;background-position:right -20px top -75px;border-top-color:#d2b47d;margin-top:30px}
.seasonal-christmas .footer::before{content:'';position:absolute;top:-42px;left:50%;transform:translateX(-50%);width:84px;height:84px;background:#192c27 url('/assets/christmas-wreath.svg') center/78px no-repeat;border:1px solid #bfa374;border-radius:50%;pointer-events:none}
.seasonal-christmas .footer-top{padding-top:32px}
.seasonal-christmas .energy-section-heading>.eyebrow,.seasonal-christmas .detail-heading>.eyebrow{padding-left:21px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m8 0 2 6 6 2-6 2-2 6-2-6-6-2 6-2Z' fill='%23b08043'/%3E%3C/svg%3E") no-repeat left center;background-size:12px}
.christmas-offer-card{border-top:3px solid #d3b47d;box-shadow:0 5px 22px #122b231a}
@media(max-width:650px){.seasonal-christmas .energy-hero-copy{background-size:235px;background-position:right -40px top -22px}.seasonal-christmas .energy-route-hero::before,.seasonal-christmas .energy-gym-hero::before,.seasonal-christmas .energy-equipment-showcase::before{width:145px;height:95px;right:-8px}.seasonal-christmas .footer{background-size:165px}.seasonal-christmas .footer::before{width:68px;height:68px;top:-34px;background-size:64px}.seasonal-christmas .footer-top{padding-top:23px}}

/* Gift-card styling for the three Christmas offers, shared by home and memberships. */
.membership-christmas-deals{background:#f6f0e5;padding-block:48px;border-bottom:1px solid #d7c5a2}
.membership-christmas-intro{max-width:680px;margin-bottom:30px}
.membership-christmas-intro>.eyebrow{color:#745127;line-height:1.8}
.membership-christmas-intro h2{font-size:clamp(32px,3.7vw,48px);line-height:1.12;letter-spacing:-.04em;margin:14px 0;color:#214737}
.membership-christmas-intro p{line-height:1.7;color:#4b574d}
.christmas-offer-card{position:relative;isolation:isolate;overflow:hidden;border:1px solid #c3a06b;border-top:4px solid #bd8b48;border-radius:18px;background:linear-gradient(135deg,#fffdf7,#f2e8d5);box-shadow:0 12px 30px #122b2314;padding:32px;transition:transform .2s ease,box-shadow .2s ease}
.christmas-offer-card::before{content:'';position:absolute;z-index:-1;top:-8px;right:-20px;width:145px;height:125px;background:url('/assets/christmas-ornament-sprig.svg') no-repeat right top;background-size:contain;opacity:.65;pointer-events:none}
.christmas-offer-card>.eyebrow{padding-right:28px;max-width:100%;color:#67451e;font-size:10px;letter-spacing:.09em;min-height:3.2em}
.christmas-offer-card h3{color:#224c3a;font-size:clamp(25px,2.4vw,34px);margin-block:18px 24px;min-height:2.4em;line-height:1.2}
.christmas-offer-card .christmas-price{width:100%;border-block:1px solid #c8ad7e;padding-block:18px;min-height:135px;margin-bottom:20px}
.christmas-offer-card .christmas-price strong{font-size:clamp(54px,5vw,72px);color:#8b471f;letter-spacing:-.055em}
.christmas-offer-card .christmas-price span{font-size:12px;color:#465343;max-width:240px}
.christmas-offer-card .button{width:100%;justify-content:space-between;min-height:50px;background:#224c3a;color:#fff8e9;border:1px solid #224c3a;border-radius:999px;padding:14px 18px;line-height:1.5}
.christmas-offer-card .button:hover{background:#38634b}
.christmas-offer-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px #122b2322}
.membership-christmas-deals .christmas-terms{color:#4e584e;max-width:1000px}
@media(max-width:950px){.christmas-offer-card{padding:24px}.christmas-offer-card h3{font-size:25px}.christmas-offer-card .christmas-price{min-height:135px}}
@media(max-width:650px){.membership-christmas-deals{padding-block:32px}.christmas-offer-card{padding:28px}.christmas-offer-card h3,.christmas-offer-card>.eyebrow{min-height:0}.christmas-offer-card .christmas-price{min-height:0;padding-block:18px}.christmas-offer-card .button{width:100%}.christmas-offer-card::before{width:125px;height:105px}}
@media(prefers-reduced-motion:reduce){.christmas-offer-card{transition:none}.christmas-offer-card:hover{transform:none}}
