/*
Theme Name: Santa's Playlist
Theme URI: https://santasplaylist.com
Author: USA Radio Network
Description: Year-round Santa's Playlist / Classic Hits Now shared-stream theme with persistent player and Hub-connected voting and contact forms.
Version: 1.3.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: santas-playlist
*/
:root{--green:#006c3d;--dark:#003326;--red:#d70918;--gold:#f4c35e;--ink:#14251d}*{box-sizing:border-box}html{margin:0!important}body{margin:0;background:#faf8f3;color:var(--ink);font-family:Arial,sans-serif;padding-bottom:116px}a{text-decoration:none;color:inherit}button{cursor:pointer;font:inherit}.site-head{height:100px;background:#fff;display:flex;align-items:center;padding:0 3vw 0 205px;position:relative;z-index:20;box-shadow:0 2px 18px #00291d1a}.brand{position:absolute;left:3vw;top:0;width:145px;height:145px}.brand img{width:100%;height:100%;object-fit:cover;border-radius:0 0 12px 12px}.nav{display:flex;gap:25px;align-items:center;text-transform:uppercase;font-weight:800;color:#075d38;font-size:14px}.nav a{padding:39px 0 15px;border-bottom:3px solid transparent}.nav a:hover{border-color:var(--red)}.popup-link{margin-left:auto;border:0;border-radius:8px;background:var(--red);color:white;padding:14px 20px;font-weight:900;text-transform:uppercase}.hero{min-height:390px;position:relative;isolation:isolate;display:flex;align-items:center;padding:55px 5vw;color:white;background:linear-gradient(105deg,#b7020e 0%,#d50b16 39%,#064d36 39%,#002d25 100%);overflow:hidden}.hero:after{content:"";position:absolute;inset:0;background:url('assets/hero.png') center/cover no-repeat;z-index:-1}.hero-copy{max-width:680px;text-shadow:0 3px 8px #3f000080}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:900;color:var(--gold)}h1{font-family:Georgia,serif;font-size:clamp(52px,6vw,86px);line-height:.9;margin:12px 0 18px}.tagline{font-size:clamp(20px,2vw,30px);font-weight:700;color:#ffe492}.btn{display:inline-flex;margin:20px 12px 0 0;padding:15px 23px;border-radius:8px;border:1px solid #ddd;background:white;color:var(--green);font-weight:900;text-transform:uppercase}.btn.primary{background:var(--red);color:#fff;border-color:#ef5961}.cards{padding:13px 3vw;display:grid;grid-template-columns:1.05fr 1.05fr .95fr 1fr .9fr;gap:12px}.card{background:white;border:1px solid #e4e1d9;border-radius:10px;min-height:240px;padding:15px;box-shadow:0 4px 12px #123b2720}.card h2{font-size:14px;color:var(--green);margin:0 0 12px;text-transform:uppercase}.vote-row{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:center;padding:9px 0;border-bottom:1px solid #eee}.vote-row strong,.vote-row span{display:block}.vote-row strong{font-size:12px}.vote-row span{font-size:10px;color:#66726c}.vote-row b{font-size:10px;padding:6px;border-radius:6px;background:#e7f5ec;color:#087340}.vote-row b:last-child{background:#fdebec;color:#a4101d}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.countdown div{background:var(--red);color:#fff;text-align:center;border-radius:6px;padding:10px 3px}.countdown strong,.countdown small{display:block}.countdown strong{font-size:24px}.countdown small{font-size:8px}.card-center{text-align:center}.card-center .icon{font-size:42px}.contact-area{max-width:1050px;margin:15px auto 35px;padding:35px;background:white;border-radius:16px;box-shadow:0 10px 40px #0033221f}.contact-area h2{font-family:Georgia,serif;color:var(--green);font-size:32px}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.contact-form label{font-size:12px;font-weight:900;color:var(--green);text-transform:uppercase}.contact-form input,.contact-form textarea{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid #d2d7d3;border-radius:7px}.contact-form .wide{grid-column:1/3}.form-status{grid-column:1/3;color:var(--green);font-weight:bold}.footer{background:var(--green);color:#fff;padding:25px 4vw;text-align:center}.player{position:fixed;left:0;right:0;bottom:0;z-index:80;min-height:112px;background:linear-gradient(90deg,#00442f,#00704a);color:white;display:flex;align-items:center;gap:18px;padding:12px 3vw;box-shadow:0 -8px 30px #002d2240;border-radius:16px 16px 0 0}.art{width:84px;height:84px;border-radius:9px;overflow:hidden;background:linear-gradient(145deg,#8b0010,#ed0e1c,#005b3e);display:grid;place-items:center;font-size:40px}.art img{width:100%;height:100%;object-fit:cover}.track{min-width:250px}.track h3{font-family:Georgia,serif;margin:7px 0 3px;font-size:20px}.track p{margin:0}.live{display:inline-block;background:#fff;color:var(--red);padding:5px 9px;border-radius:7px;font-size:10px;font-weight:900;text-transform:uppercase}.schedule{display:block;color:#ffe49a;font-size:10px;margin-top:5px;font-weight:800}.wave{flex:1;text-align:center;letter-spacing:6px}.vote-controls{text-align:center}.vote-controls span{display:block;font-size:9px;text-transform:uppercase;font-weight:900}.vote-controls button,.play{width:48px;height:48px;border:1px solid #fff;background:#ffffff1e;color:white;border-radius:50%;font-size:20px;margin:4px}.vote-controls button.selected,.vote-controls button:hover,.play:hover{background:#fff;color:var(--red)}.popout{border:1px solid #fff;border-radius:99px;padding:10px 14px;background:transparent;color:#fff;font-weight:900}.menu-toggle{display:none}.season-note{background:#fff2cd;color:#664d03;padding:10px 4vw;text-align:center;font-weight:800;font-size:13px}.snow{position:fixed;inset:0;pointer-events:none;z-index:30;overflow:hidden}.snow i{position:absolute;top:-5vh;color:#fff;animation:fall 13s linear infinite;text-shadow:0 0 5px #487b70}@keyframes fall{to{transform:translateY(110vh)}}
@media(max-width:900px){.cards{grid-template-columns:1fr 1fr}.cards .card:nth-child(3){grid-column:1/3}.nav{display:none;position:absolute;left:0;right:0;top:78px;background:#fff;padding:15px 22px;box-shadow:0 12px 20px #00291d2b;flex-direction:column;align-items:stretch}.nav.open{display:flex}.nav a{padding:11px 0}.menu-toggle{display:block;margin-left:auto;border:0;border-radius:8px;background:var(--green);color:#fff;padding:11px 14px;font-weight:900}.popup-link{display:none}.site-head{height:78px;padding-left:100px}.brand{width:82px;height:82px;left:12px}.hero{min-height:510px;align-items:flex-end;padding:80px 22px 35px}.hero:after{opacity:.45;background-position:65% center}.player{display:grid;grid-template-columns:64px 1fr auto;min-height:165px;padding:12px}.art{width:64px;height:64px}.track{min-width:0}.track h3{font-size:16px}.wave{display:none}.vote-controls{grid-column:1/3;display:flex;align-items:center}.vote-controls span{margin-right:8px}.popout{grid-column:2;grid-row:2}.play{grid-column:3;grid-row:1/3}.contact-form{grid-template-columns:1fr}.contact-form .wide,.form-status{grid-column:auto}body{padding-bottom:170px}.sleigh{width:210px}.now-card{align-items:flex-start}.large-art{width:90px;height:90px;flex-basis:90px}}@media(max-width:600px){.cards{grid-template-columns:1fr}.cards .card:nth-child(3){grid-column:auto}.now-card{display:block}.large-art{margin-bottom:18px}}@media(prefers-reduced-motion:reduce){.snow,.sleigh{display:none!important}}

.sleigh{position:fixed;z-index:29;pointer-events:none;top:125px;left:-360px;width:310px;filter:drop-shadow(0 8px 10px #001b1666);animation:sleigh-flight 34s linear infinite}.sleigh img{display:block;width:100%;height:auto}@keyframes sleigh-flight{0%,8%{transform:translateX(-10vw) translateY(35px)}45%{transform:translateX(65vw) translateY(-20px)}82%,100%{transform:translateX(135vw) translateY(30px)}}.page-shell{min-height:calc(100vh - 300px);padding:36px 4vw 60px;background:linear-gradient(145deg,#f9f4e9,#eef8f3)}.page-hero,.page-card{max-width:1050px;margin:auto}.page-hero{padding:25px 0}.page-hero h1,.page-card h1{font-family:Georgia,serif;color:var(--green);font-size:clamp(38px,5vw,62px);margin:8px 0}.page-card{background:#fff;border-radius:16px;padding:clamp(24px,4vw,48px);box-shadow:0 10px 40px #0033221f}.page-card h2{color:var(--green)}.now-card{display:flex;gap:24px;align-items:center}.large-art{width:130px;height:130px;flex:0 0 130px}.embedded-form{max-width:850px}.honeypot{position:absolute!important;left:-9999px!important}.notice-card{padding:20px;border-radius:10px;background:#fff6d7;border-left:5px solid var(--gold)}
@media(max-width:900px){.sleigh{width:210px}}@media(prefers-reduced-motion:reduce){.snow,.sleigh{display:none!important}}

/* Flight direction and Rudolph beacon. These overrides intentionally follow the base animation. */
.sleigh{left:auto;right:-360px;animation-name:sleigh-flight-reverse}
.rudolph-nose{position:absolute;left:5.1%;top:33.2%;width:8px;height:8px;border-radius:50%;background:#ff1010;box-shadow:0 0 4px 2px #ff2424,0 0 12px 6px #ff0000;animation:nose-blink 1.1s ease-in-out infinite}
@keyframes nose-blink{0%,45%,100%{opacity:1;transform:scale(1)}55%,80%{opacity:.25;transform:scale(.65)}}
@keyframes sleigh-flight-reverse{0%,8%{transform:translateX(10vw) translateY(35px)}45%{transform:translateX(-65vw) translateY(-20px)}82%,100%{transform:translateX(-135vw) translateY(30px)}}
.player-status{display:block;margin-top:5px;color:#fff;font-weight:800}.player-status.error{color:#ffd0d0}.player-status.playing{color:#bfffd8}
.voice-recorder{max-width:820px}.voice-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.voice-fields label,.upload-fallback{font-size:12px;font-weight:900;color:var(--green);text-transform:uppercase}.voice-fields label span{font-weight:400;text-transform:none}.voice-fields input{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid #d2d7d3;border-radius:7px}.recorder-panel{margin:24px 0;padding:22px;border-radius:14px;background:#f1f8f4;border:1px solid #cfe4d8}.record-time{font-size:22px;font-weight:900;color:var(--red)}.recorder-panel audio{display:block;width:100%;margin-top:18px}.recorder-panel audio[hidden]{display:none}.upload-fallback{display:block;margin-top:18px}.upload-fallback input{display:block;margin-top:8px}.voice-consent{display:block;margin:18px 0;font-weight:700}.voice-consent input{margin-right:8px}@media(max-width:700px){.voice-fields{grid-template-columns:1fr}}
