/* Four distinct joyful seasons; dates still come from pp_visual_season(). */
body.pp-season-spring{--season-accent:#dcb3c2;--season-accent-2:#eadca8;--season-wash:#f8eff2;--season-deep:#695660}
body.pp-season-summer{--season-accent:#dfcc83;--season-accent-2:#f0e4b2;--season-wash:#faf5e5;--season-deep:#625b3e}
body.pp-season-autumn{--season-accent:#c69b79;--season-accent-2:#dec798;--season-wash:#f6eee4;--season-deep:#765b48}
body.pp-season-winter{--season-accent:#a6c0cd;--season-accent-2:#e2d9bd;--season-wash:#eef4f7;--season-deep:#4c6572}
.pp-joy-icon{display:block;width:100%;height:100%;overflow:visible;filter:saturate(.78) drop-shadow(0 2px 2px #56382314)}
.pp-joy-scene{z-index:2;pointer-events:none}
.pp-joy-float{position:absolute;left:var(--x);top:var(--y);width:var(--joy-size);height:var(--joy-size);opacity:.83;animation:pp-joy-drift var(--joy-speed) ease-in-out var(--joy-delay) infinite alternate;transform:rotate(var(--joy-turn))}
.pp-joy-float:nth-child(3n+1),.pp-joy-ribbon>span:nth-child(3n+1),.pp-joy-rails>span:nth-child(3n+1){--leaf-color:#b67b42}
.pp-joy-float:nth-child(3n+2),.pp-joy-ribbon>span:nth-child(3n+2),.pp-joy-rails>span:nth-child(3n+2){--leaf-color:#e99f3d}
.pp-joy-float:nth-child(3n),.pp-joy-ribbon>span:nth-child(3n),.pp-joy-rails>span:nth-child(3n){--leaf-color:#cb6238}
@keyframes pp-joy-drift{from{transform:translate3d(-5px,-8px,0) rotate(var(--joy-turn))}to{transform:translate3d(9px,18px,0) rotate(calc(var(--joy-turn) + 17deg))}}
body.pp-season-autumn .pp-joy-float{animation-name:pp-joy-fall}
@keyframes pp-joy-fall{from{transform:translate3d(-6px,-15px,0) rotate(-14deg)}to{transform:translate3d(13px,32px,0) rotate(28deg)}}
body.pp-season-winter .pp-joy-float{animation-name:pp-joy-snow}
@keyframes pp-joy-snow{from{transform:translate3d(-8px,-14px,0) rotate(-12deg)}to{transform:translate3d(6px,30px,0) rotate(16deg)}}
/* Decorative strips occupy their own space: no moving sticker crosses a price or a button. */
.pp-joy-ribbon{display:flex;align-items:center;justify-content:center;gap:13px;pointer-events:none;min-height:34px;flex:none}
.pp-joy-ribbon>span{display:block;width:32px;height:32px;animation:pp-joy-bob 7s ease-in-out infinite alternate}
.pp-joy-ribbon>span:nth-child(2){animation-delay:-2s;transform:rotate(-10deg)}
.pp-joy-ribbon>span:nth-child(3){animation-delay:-4s}
@keyframes pp-joy-bob{from{transform:translateY(-3px) rotate(-9deg)}to{transform:translateY(3px) rotate(8deg)}}
.pp-welcome-top>span .pp-joy-ribbon{margin-top:6px;gap:6px;justify-content:flex-end}
.pp-welcome-top>span .pp-joy-ribbon>span{width:23px;height:23px}
.pp-signature-season .pp-joy-ribbon{justify-content:flex-start;gap:7px;min-height:27px}
.pp-signature-season .pp-joy-ribbon>span{width:23px;height:23px}
.pp-signature-season:has(.pp-joy-ribbon):before{display:none}
.pp-journey-heading>p.pp-signature-season{gap:12px;letter-spacing:.06em}
.pp-season-shop-banner>.pp-joy-ribbon{margin-left:auto}
.pp-maison-heading>div>.pp-joy-ribbon{justify-content:flex-start;margin:0 0 17px}
.pp-club-hero>.pp-joy-ribbon{justify-content:flex-start;margin:0 0 18px;gap:10px}
.pp-club-hero>.pp-joy-ribbon>span{width:35px;height:35px}
.pp-joy-rails{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.pp-joy-rails>span{position:absolute;width:24px;height:24px;opacity:.7;animation:pp-joy-rail var(--joy-speed) ease-in-out var(--joy-delay) infinite alternate}
.pp-joy-rails>span:nth-child(odd){left:3px}.pp-joy-rails>span:nth-child(even){right:5px}
.pp-joy-rails>span:nth-child(1),.pp-joy-rails>span:nth-child(2){top:29%}
.pp-joy-rails>span:nth-child(3),.pp-joy-rails>span:nth-child(4){top:57%}
.pp-joy-rails>span:nth-child(5),.pp-joy-rails>span:nth-child(6){top:83%}
@keyframes pp-joy-rail{from{transform:translateY(-18px) rotate(-17deg)}to{transform:translateY(20px) rotate(15deg)}}
.pp-motion-paused :is(.pp-joy-float,.pp-joy-ribbon>span,.pp-joy-rails>span){animation-play-state:paused!important}
@media(max-width:1050px){.pp-joy-rails{display:none}}
@media(max-width:760px){
 .pp-joy-float{width:calc(var(--joy-size)*.75);height:calc(var(--joy-size)*.75)}
 .pp-joy-float:nth-child(1){left:89%;top:7px}.pp-joy-float:nth-child(2){left:84%;top:54px}.pp-joy-float:nth-child(n+3){display:none}
 #pp-welcome-modern h2{font-size:28px;line-height:1.1}#pp-journey-dialog h2{font-size:35px;line-height:1.1}
 .pp-journey-kinds>button strong{font-family:"Nunito","Avenir Next",sans-serif;font-size:20px;font-weight:750}
 .pp-welcome-top>span .pp-joy-ribbon{gap:5px;min-height:22px}.pp-welcome-top>span .pp-joy-ribbon>span{width:21px;height:21px}
 .pp-welcome-main{margin-top:19px}.pp-journey-heading>p.pp-signature-season{display:block;font-size:8px;margin-bottom:16px}.pp-signature-season .pp-joy-ribbon{margin-bottom:11px}
 .pp-season-shop-banner{flex-wrap:wrap;gap:12px}.pp-season-shop-banner>.pp-joy-ribbon{width:100%;justify-content:flex-start;margin-top:3px}
 .pp-maison-heading>div>.pp-joy-ribbon{margin-bottom:13px}
}
@media(prefers-reduced-motion:reduce){.pp-joy-float,.pp-joy-ribbon>span,.pp-joy-rails>span{animation:none!important;transform:none!important}}

/* Shared brand rules: one rounded family, calm backgrounds and a clear welcome offer. */
:root,body{
 --pp-font-body:"Nunito","Avenir Next",Arial,sans-serif;
 --pp-font-display:var(--pp-font-body);
 --pp-body:var(--pp-font-body);--pp-display:var(--pp-font-body);
 --pp-signature-serif:var(--pp-font-body);
 --pp-green:#31594b;--pp-ink:#293e35;--pp-cream:#fcfaf5;--pp-lime:#dfe9d6;
 --pp-signature-rule:color-mix(in srgb,var(--season-deep) 16%,#fffdf8);
 --pp-depth-shadow:color-mix(in srgb,var(--season-deep) 10%,transparent);
}
body{font-weight:500}
body :is(h1,h2,h3,h4,h5,h6,button,input,select,textarea),
.pp-welcome-stamp strong,.pp-welcome-stamp strong span,.pp-journey-kinds>button strong,
.pp-welcome-top>span small,.pp-club-points>strong,.pp-club-levels strong{
 font-family:var(--pp-font-body)!important;
}
body :is(h1,h2,h3,h4,h5,h6){font-weight:800;letter-spacing:-.025em}
body .pp-maison-hero h1,body .pp-maison-heading h2{line-height:1.08!important;letter-spacing:-.03em!important}
body .pp-maison-hero h1 em,body .pp-maison-heading h2 em,
#pp-welcome-modern h2 em,#pp-journey-dialog h2 em,.pp-club-hero h2 em{
 font-family:inherit!important;font-style:normal!important;font-weight:700!important;
}
body .pp-kicker{letter-spacing:.07em!important;font-weight:700}
.pp-welcome-top>span small{font-style:normal;font-weight:700}
.pp-journey-kinds>button strong{font-weight:700;letter-spacing:-.02em}
.pp-journey-kinds>button:after{font-style:normal;font-weight:600}
.pp-club-hero h2,.pp-club-terms h3,.pp-club-levels strong,.pp-club-points>strong{font-weight:800}
.pp-arrival-bar{background-color:var(--season-wash)}
.pp-welcome-open>span{border-radius:999px;box-shadow:none;background:#fffdf9}
.pp-announcement{background:var(--season-wash);color:var(--season-deep)}
.pp-maison-hero{
 background-image:var(--pp-grain),radial-gradient(ellipse at 14% 10%,#fffdf9,transparent 65%),linear-gradient(115deg,#fcfaf5,var(--season-wash));
}
.pp-maison-hero:before{opacity:.55;box-shadow:inset 1px 2px 4px #fff9,12px 20px 38px -20px var(--pp-depth-shadow)}
.pp-season-badge span{background:var(--season-wash);color:var(--season-deep);border:1px solid var(--pp-signature-rule);box-shadow:none}
.pp-season-shop-banner{background-image:var(--pp-grain),linear-gradient(115deg,#fcfaf5,var(--season-wash))}
body :is(.pp-button,.pp-maison-btn,.woocommerce a.button,.woocommerce button.button,.pp-shop-add),
.pp-welcome-main-cta,#pp-journey-save,.pp-company-code-row button{
 background-image:linear-gradient(180deg,#ffffff0c,transparent)!important;
 box-shadow:inset 0 1px #fff2,0 3px 8px #203c2e14;
}
#pp-welcome-modern,#pp-journey-dialog{
 border-radius:24px;box-shadow:0 18px 60px #243c3026;
 background-image:var(--pp-grain),linear-gradient(145deg,#fffefb,color-mix(in srgb,var(--season-wash) 35%,#fffefb));
}
#pp-welcome-modern{max-width:580px;padding:28px}
.pp-welcome-top{padding-bottom:16px;align-items:center}
.pp-welcome-main{display:block;margin:22px 0 18px}
#pp-welcome-modern h2{font-size:38px;font-weight:800;line-height:1.12;letter-spacing:-.025em;margin:8px 0 10px;color:var(--pp-ink)}
#pp-welcome-modern h2 em{color:var(--season-deep);opacity:1}
.pp-welcome-main>div>p:not(.pp-kicker){font-size:14px;line-height:1.5;margin-bottom:0}
#pp-welcome-modern .pp-kicker{font-size:10px;line-height:1.4}
.pp-welcome-stamp{
 display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:20px;
 width:100%;min-height:0;padding:19px 23px;margin-top:20px;
 border:1px solid var(--pp-signature-rule);border-radius:18px;
 background:var(--season-wash);color:var(--season-deep);transform:none;
 box-shadow:inset 0 1px #fff9,0 5px 14px #392b1d06;text-align:left;
}
.pp-welcome-stamp:before,.pp-welcome-stamp:after{display:none}
.pp-welcome-stamp strong{flex:none;font-size:52px;font-weight:800;line-height:1;letter-spacing:-2px;text-shadow:none;white-space:nowrap}
.pp-welcome-stamp strong span{font-size:28px;font-weight:700;letter-spacing:-1px;margin-left:3px}
.pp-welcome-stamp small{font-size:15px;font-weight:700;line-height:1.4;margin:0;max-width:230px}
.pp-welcome-benefits{padding:14px 0!important;gap:12px}
.pp-welcome-benefits strong{font-size:12px;font-weight:800;line-height:1.3}
.pp-welcome-benefits span{font-size:11px;line-height:1.4}
.pp-welcome-benefits svg{width:23px;height:23px}
.pp-welcome-main-cta,#pp-journey-save,.pp-company-code-row button{
 background-color:var(--pp-green);color:#fff;border-color:var(--pp-green);border-radius:14px;font-weight:800;
}
.pp-welcome-main-cta{font-size:14px;margin-top:17px;min-height:48px;line-height:1.35;padding:13px 18px}
.pp-welcome-conditions{font-size:11px;line-height:1.5;margin:11px 0 16px}
.pp-welcome-once{gap:13px;padding-top:16px}.pp-welcome-once>span{font-size:12px}
.pp-welcome-once strong{font-size:11px;line-height:1.5}.pp-welcome-once button{border-radius:11px;font-weight:700}
.pp-welcome-later{font-size:12px}.pp-welcome-main>div>p:not(.pp-kicker) br{display:none}
#pp-journey-dialog h2{font-weight:800;line-height:1.12;letter-spacing:-.025em}
.pp-journey-kinds>button,#pp-journey-home,#pp-company-access{border-radius:16px}
.pp-journey-heading>p:not(.pp-kicker):not(.pp-signature-season){font-size:14px;line-height:1.6}
.pp-routine-offer{background-color:var(--season-wash);color:var(--pp-ink);border-radius:20px;transform:none;box-shadow:0 7px 16px #132f2420}
.pp-routine-discount{letter-spacing:-.035em;font-weight:800}
@media(max-width:760px){
 #pp-welcome-modern{padding:21px 18px;width:calc(100% - 24px);max-height:calc(100dvh - 24px)}
 #pp-welcome-modern h2{font-size:29px;line-height:1.12;letter-spacing:-.025em}
 .pp-welcome-main{margin-top:17px;margin-bottom:14px}
 .pp-welcome-main>div>p:not(.pp-kicker){font-size:12px}
 .pp-welcome-stamp{padding:16px 18px;gap:16px;margin-top:16px;border-radius:16px;min-height:0;transform:none}
 .pp-welcome-stamp strong{font-size:46px;letter-spacing:-1.7px}
 .pp-welcome-stamp strong span{font-size:25px}.pp-welcome-stamp small{font-size:13px}
 .pp-welcome-benefits{gap:9px;padding:12px 0!important}
 .pp-welcome-benefits strong{font-size:11px}.pp-welcome-benefits span{font-size:10px}
 .pp-welcome-main-cta{font-size:12px;padding:12px;margin-top:14px;min-height:46px}
 .pp-welcome-conditions{font-size:10px;margin:10px 0 13px}
 .pp-welcome-once{padding-top:13px}.pp-welcome-once>span{font-size:11px}
 .pp-welcome-once strong{font-size:10px}.pp-welcome-once button{font-size:10px}
 .pp-welcome-top>span small{font-size:13px}
 .pp-journey-heading{padding-right:0}
 #pp-journey-dialog h2{font-size:32px}
 .pp-journey-kinds>button strong{font-size:20px}
}
