/* Festive landing — evergreen night, holly, candle gold, snow */
:root{--pine:#12352B;--pine-2:#0D2A22;--holly:#A3202E;--gold:#D9A441;--snow:#FBF8F2;--bark:#2A1E17;--frost:#E6EEF0}
body.festive{background:var(--snow);color:var(--bark)}
.festive h1,.festive h2,.festive h3{font-family:"Fraunces",Georgia,serif;font-optical-sizing:auto;letter-spacing:-.01em}
.festive .topbar{background:var(--holly)}
.festive header.site{background:var(--pine);border-bottom:0}
.festive header.site .logo,.festive header.site nav.main a:not(.btn){color:var(--snow)}
.festive header.site .btn.small{background:var(--gold);color:var(--bark)}
/* hero: winter window */
.fx-hero{position:relative;background:radial-gradient(ellipse at 70% 30%,#1D4A3C 0%,var(--pine) 45%,var(--pine-2) 100%);color:var(--snow);overflow:hidden;padding:64px 0 150px}
.fx-snow{position:absolute;inset:-200px 0 0;pointer-events:none;background-image:radial-gradient(2px 2px at 20px 30px,#fff,transparent),radial-gradient(2px 2px at 140px 80px,#fff,transparent),radial-gradient(3px 3px at 260px 160px,rgba(255,255,255,.9),transparent),radial-gradient(2px 2px at 380px 40px,#fff,transparent),radial-gradient(1.5px 1.5px at 90px 200px,#fff,transparent),radial-gradient(2.5px 2.5px at 320px 260px,rgba(255,255,255,.8),transparent);background-size:420px 300px;opacity:.55;animation:fx-fall 22s linear infinite}
.fx-snow.b{background-size:300px 240px;opacity:.35;animation-duration:34s;filter:blur(.6px)}
@keyframes fx-fall{to{transform:translateY(300px)}}
@media (prefers-reduced-motion:reduce){.fx-snow{animation:none}}
.fx-hero .wrap{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.fx-hero h1{font-size:clamp(2.4rem,5vw,4.1rem);line-height:1.04;font-weight:600;margin:0 0 20px;color:var(--snow)}
.fx-hero .lead{font-size:1.25rem;line-height:1.6;color:#DCE6E1;max-width:34em}
.fx-hero ul.fx-checks{list-style:none;padding:0;margin:22px 0 30px;display:grid;gap:10px;font-size:1.1rem}
.fx-hero ul.fx-checks li{padding-left:34px;position:relative}
.fx-hero ul.fx-checks li::before{content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(217,164,65,.25)}
.fx-btn{display:inline-block;background:var(--gold);color:var(--bark);font-weight:700;font-size:1.25rem;padding:20px 34px;border-radius:999px;text-decoration:none;box-shadow:0 10px 30px rgba(217,164,65,.35)}
.fx-btn:hover{background:#E6B65A}.fx-btn:focus-visible{outline:3px solid var(--snow);outline-offset:3px}
.fx-btn.dark{background:var(--holly);color:#fff;box-shadow:none}
/* the transformation: photos -> card */
.fx-stage{position:relative;height:540px}
.fx-pol{position:absolute;background:#fff;padding:9px 9px 34px;box-shadow:0 14px 30px rgba(0,0,0,.35);width:150px}
.fx-pol img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.fx-pol:nth-child(1){left:0;top:40px;transform:rotate(-9deg)}
.fx-pol:nth-child(2){left:40px;top:200px;transform:rotate(5deg)}
.fx-pol:nth-child(3){left:6px;top:360px;transform:rotate(-4deg)}
.fx-card{position:absolute;right:0;top:0;width:330px;background:#fff;padding:12px;box-shadow:0 30px 60px rgba(0,0,0,.45);transform:rotate(3deg)}
.fx-card img{display:block;width:100%}
.fx-spark{position:absolute;left:170px;top:190px;width:150px;height:120px;color:var(--gold)}
.fx-tag{position:absolute;font-family:"Great Vibes",cursive;font-size:1.9rem;color:var(--gold)}
.fx-tag.a{left:10px;top:0}.fx-tag.b{right:20px;bottom:-14px}
.fx-hill{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:120px;display:block}
@media(max-width:900px){.fx-hero{padding:40px 0 120px}.fx-hero .wrap{grid-template-columns:1fr}.fx-stage{height:430px;max-width:420px;margin:10px auto 0;width:100%}.fx-card{width:250px}.fx-pol{width:112px}.fx-pol:nth-child(2){top:160px}.fx-pol:nth-child(3){top:290px}.fx-spark{left:110px;top:150px;width:110px}}
/* sections */
.fx-sec{padding:76px 0}.fx-sec h2{font-size:clamp(1.9rem,3.4vw,2.7rem);text-align:center;margin:0 0 14px;color:var(--pine)}
.fx-sec .fx-sub{text-align:center;font-size:1.15rem;color:#5B4A3E;max-width:40em;margin:0 auto 38px}
.fx-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;max-width:1000px;margin:0 auto;counter-reset:s}
.fx-steps li{list-style:none;text-align:center}
.fx-steps li::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:58px;height:58px;margin:0 auto 14px;border-radius:50%;background:var(--holly);color:#fff;font:600 1.6rem "Fraunces",serif;box-shadow:0 0 0 6px #F3DADC}
.fx-steps h3{font-size:1.35rem;margin:0 0 6px;color:var(--bark)}.fx-steps p{margin:0;font-size:1.05rem;line-height:1.6;color:#5B4A3E}
@media(max-width:800px){.fx-steps{grid-template-columns:1fr;gap:26px}}
/* scene strip */
.fx-strip{background:var(--pine);color:var(--snow)}.fx-strip h2{color:var(--snow)}.fx-strip .fx-sub{color:#CFDDD6}
.fx-rail{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 24px 30px;margin:0 auto;max-width:1400px;scrollbar-color:var(--gold) transparent}
.fx-rail figure{flex:0 0 220px;margin:0;scroll-snap-align:center;text-align:center}
.fx-rail img{width:100%;display:block;background:#fff;padding:8px;box-shadow:0 14px 28px rgba(0,0,0,.35)}
.fx-rail figure:nth-child(odd) img{transform:rotate(-1.5deg)}.fx-rail figure:nth-child(even) img{transform:rotate(1.5deg)}
.fx-rail figcaption{margin-top:14px;font-size:1.05rem;color:#E9E2D2}
.fx-railnote{text-align:center;color:#CFDDD6;font-size:.95rem;margin:0}
/* postcard */
.fx-post{display:grid;grid-template-columns:1fr 1.2fr;gap:50px;align-items:center;max-width:1100px;margin:0 auto}
.fx-post h2{text-align:left}.fx-post p{font-size:1.18rem;line-height:1.65;color:#5B4A3E}
.fx-post img{width:100%;box-shadow:0 20px 40px rgba(42,30,23,.18);transform:rotate(-1.5deg)}
@media(max-width:800px){.fx-post{grid-template-columns:1fr}.fx-post h2{text-align:center}}
/* gift-tag prices */
.fx-tags{display:flex;justify-content:center;gap:46px;flex-wrap:wrap;margin-top:10px}
.fx-giftag{position:relative;width:290px;background:#fff;padding:52px 30px 32px;text-align:center;clip-path:polygon(50% 0,100% 13%,100% 100%,0 100%,0 13%);filter:drop-shadow(0 12px 20px rgba(42,30,23,.15))}
.fx-giftag::before{content:"";position:absolute;top:22px;left:50%;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--snow);box-shadow:inset 0 0 0 3px var(--gold)}
.fx-giftag.alt{background:var(--holly);color:#fff}.fx-giftag.alt li,.fx-giftag.alt .muted{color:#F6DADC}
.fx-giftag h3{margin:6px 0 4px;font-size:1.3rem}.fx-giftag .amount{font:600 2.8rem "Fraunces",serif;margin:6px 0}
.fx-giftag ul{list-style:none;padding:0;margin:16px 0 0;font-size:1rem;line-height:1.9;color:#5B4A3E}
.fx-string{display:block;width:2px;height:40px;background:var(--gold);margin:0 auto -6px}
/* deadline ribbon */
.fx-ribbon{background:var(--holly);color:#fff;text-align:center;padding:22px 16px;font-size:1.25rem}
.fx-ribbon strong{color:#FFE7A8}
/* faq */
.fx-faq{max-width:780px;margin:0 auto}
.fx-faq details{background:none;border:0;border-bottom:1px solid #E5DCCB;border-radius:0;margin:0;padding:6px 0}.fx-faq summary{font-size:1.2rem;font-weight:600;padding:16px 44px 16px 0}.fx-faq summary::after{right:4px}.fx-faq details .ans{padding:0 0 20px}
.fx-final{background:var(--pine);color:var(--snow);text-align:center;padding:80px 0;position:relative;overflow:hidden}.fx-final h2{color:var(--snow);margin-bottom:26px}
.fx-giftag.alt h3,.fx-giftag.alt .amount{color:#fff}
.fx-tag.a{top:-34px;left:20px}
.fx-steps{padding:0}
.fx-hero ul.fx-checks,.fx-giftag ul{padding:0}
@media(max-width:600px){.fx-sec h2{font-size:1.75rem}}
