/*
Theme Name: Listen Once Home
Theme URI: https://example.com/
Author: OpenAI
Description: Homepage-first WordPress theme for displaying Listen Once shortcodes with devotional buttons.
Version: 1.0.1
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: listen-once-home
*/

:root{
  --bg:#060914;
  --bg2:#0d1430;
  --card:rgba(255,255,255,.07);
  --line:rgba(255,255,255,.12);
  --text:#f8f9ff;
  --muted:#c6cee9;
  --accent:#8a73ff;
  --accent2:#6ed9ff;
  --success:#1ec98b;
  --shadow:0 20px 50px rgba(0,0,0,.28);
  --radius:22px;
  --max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 12% 14%, rgba(138,115,255,.28), transparent 24%),
    radial-gradient(circle at 88% 8%, rgba(110,217,255,.18), transparent 18%),
    radial-gradient(circle at 50% 100%, rgba(158,243,210,.10), transparent 24%),
    linear-gradient(180deg,#050711 0%,#0a1020 40%,#0d1430 100%);
  min-height:100vh;
  position:relative;
  overflow-x:hidden;
}
body:before,body:after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
}
body:before{
  background-image:
    radial-gradient(2px 2px at 10% 20%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(1.5px 1.5px at 25% 72%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(1.5px 1.5px at 42% 17%, rgba(255,255,255,.75), transparent 60%),
    radial-gradient(2px 2px at 58% 48%, rgba(255,255,255,.8), transparent 60%),
    radial-gradient(1.5px 1.5px at 76% 22%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(1.5px 1.5px at 84% 65%, rgba(255,255,255,.78), transparent 60%),
    radial-gradient(2px 2px at 92% 36%, rgba(255,255,255,.72), transparent 60%),
    radial-gradient(1.5px 1.5px at 14% 88%, rgba(255,255,255,.78), transparent 60%),
    radial-gradient(2px 2px at 63% 82%, rgba(255,255,255,.8), transparent 60%);
  opacity:.8;
}
body:after{
  background:
    radial-gradient(circle at 20% 10%, rgba(138,115,255,.16), transparent 22%),
    radial-gradient(circle at 80% 20%, rgba(110,217,255,.10), transparent 18%),
    radial-gradient(circle at 50% 60%, rgba(255,255,255,.03), transparent 28%);
  filter:blur(40px);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
button,input,textarea,select{font:inherit}
.site-shell{min-height:100vh;display:flex;flex-direction:column}
.site-header{
  position:sticky;top:0;z-index:50;
  backdrop-filter:blur(16px);
  background:rgba(5,9,20,.62);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.site-header__inner,.site-footer__inner,.hero,.song-grid-wrap,.page-wrap,.single-wrap,.archive-wrap,.not-found-wrap{
  width:min(calc(100% - 32px),var(--max));
  margin:0 auto;
}
.site-header__inner{
  min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:18px;
}
.branding{display:flex;align-items:center;gap:12px}
.custom-logo,.branding__logo img{max-height:52px;width:auto}
.branding__text{display:flex;flex-direction:column;gap:4px}
.branding__title{font-weight:800;font-size:1rem}
.branding__tagline{color:var(--muted);font-size:.88rem}
.primary-menu,.primary-menu ul,.footer-menu,.footer-menu ul{list-style:none;margin:0;padding:0}
.primary-menu{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.primary-menu a,.footer-menu a{
  display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border-radius:999px;color:var(--muted);
}
.primary-menu a:hover,.primary-menu .current-menu-item>a,.footer-menu a:hover{background:rgba(255,255,255,.08);color:var(--text)}
.hero{padding:72px 0 28px}
.hero__box{
  position:relative;overflow:hidden;padding:clamp(28px,4vw,54px);
  background:linear-gradient(135deg, rgba(138,115,255,.14), rgba(110,217,255,.1));
  border:1px solid rgba(255,255,255,.12);border-radius:30px;box-shadow:var(--shadow);
}
.hero__box:before,.hero__box:after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;
}
.hero__box:before{
  inset:-20% auto auto -10%;width:220px;height:220px;background:radial-gradient(circle, rgba(138,115,255,.28), transparent 70%);
}
.hero__box:after{
  right:-40px;top:-30px;width:260px;height:260px;background:radial-gradient(circle, rgba(110,217,255,.18), transparent 70%);
}
.hero__eyebrow{
  display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;
  color:#e7ebff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;
}
.hero h1{margin:18px 0 12px;font-size:clamp(2rem,6vw,4.2rem);line-height:1.02;max-width:850px}
.hero p{margin:0;max-width:760px;color:var(--muted);font-size:clamp(1rem,1.8vw,1.15rem);line-height:1.75}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.loh-btn,button,input[type="submit"],a.button,.wp-element-button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 18px;
  border-radius:999px;border:1px solid transparent;cursor:pointer;font-weight:700;text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.loh-btn:hover,button:hover,input[type="submit"]:hover,a.button:hover,.wp-element-button:hover{transform:translateY(-1px)}
.loh-btn--primary{background:linear-gradient(135deg,var(--accent),#b197ff);color:#fff;box-shadow:0 14px 30px rgba(138,115,255,.25)}
.loh-btn--secondary{background:rgba(255,255,255,.06);color:var(--text);border-color:rgba(255,255,255,.12)}
.song-grid-wrap{padding:18px 0 72px}
.song-grid__header{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px}
.song-grid__header h2{margin:0 0 6px;font-size:clamp(1.5rem,3vw,2rem)}
.song-grid__header p{margin:0;color:var(--muted)}
.song-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.listen-once-card{
  position:relative;overflow:hidden;padding:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);
}
.listen-once-card:before{
  content:"";position:absolute;inset:0 0 auto;height:1px;
  background:linear-gradient(90deg, rgba(138,115,255,.2), rgba(110,217,255,.55), rgba(158,243,210,.3));
}
.listen-once-card:after{
  content:"";position:absolute;right:-36px;bottom:-36px;width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle, rgba(138,115,255,.16), transparent 68%);pointer-events:none;
}
.listen-once-card__title{margin:0 0 14px;font-size:1.15rem}
.listen-once-card__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.listen-once-card__content>*:first-child{margin-top:0}
.listen-once-card__content>*:last-child{margin-bottom:0}
.listen-once-card__content a,
.listen-once-card__content button,
.listen-once-card__content input[type="submit"],
.listen-once-card__content .button,
.listen-once-card__content .wp-element-button{
  margin-top:6px;background:rgba(255,255,255,.08);color:var(--text);border-color:rgba(255,255,255,.12);
}
.listen-once-card__devo{background:linear-gradient(135deg, rgba(30,201,139,.95), rgba(13,157,108,.95));color:#fff}
.empty-state,.content-card,.page-card,.not-found-card{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);box-shadow:var(--shadow);
}
.empty-state{padding:24px;border-style:dashed;color:var(--muted)}
.content-card,.page-card,.not-found-card{padding:clamp(22px,3vw,36px)}
.archive-wrap,.single-wrap,.page-wrap,.not-found-wrap{padding:42px 0 72px}
.entry-title,.page-title{margin-top:0;margin-bottom:14px}
.entry-meta,.entry-content,.not-found-card p{color:var(--muted);line-height:1.75}
.site-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);background:rgba(5,8,17,.65)}
.site-footer__inner{
  display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;padding:24px 0;color:var(--muted);font-size:.94rem;
}
.footer-menu{display:flex;flex-wrap:wrap;gap:8px}
.screen-reader-text{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
@media (max-width:860px){
  .site-header__inner{flex-direction:column;align-items:stretch;padding:14px 0}
}
@media (max-width:640px){
  .hero{padding-top:42px}
  .song-grid{grid-template-columns:1fr}
  .site-footer__inner,.song-grid__header{align-items:start;flex-direction:column}
}

.loh-randomizer-slot{
  margin: 0 auto 18px;
  max-width: 860px;
}
.loh-search-wrap{
  margin: 0 auto 24px;
  max-width: 760px;
}
.loh-search-input{
  width: 100%;
  min-height: 52px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color: var(--loh-text);
  outline: none;
  box-shadow: var(--loh-shadow);
}
.loh-search-input::placeholder{
  color: var(--loh-muted);
}
.loh-search-input:focus{
  border-color: rgba(110,217,255,.55);
  box-shadow: 0 0 0 3px rgba(110,217,255,.12), var(--loh-shadow);
}

.loh-search-title{
  margin: 0 0 10px;
  text-align: center;
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #eef4ff;
}
.loh-search-wrap{
  padding: 18px 18px 20px;
  border-radius: 26px;
  background: linear-gradient(135deg, rgba(138,115,255,.14), rgba(110,217,255,.12));
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: var(--loh-shadow);
}
.loh-search-input{
  min-height: 58px;
  padding: 14px 20px;
  border: 1px solid rgba(110,217,255,.35);
  background: rgba(8,14,32,.72);
  box-shadow: 0 0 0 1px rgba(138,115,255,.08), var(--loh-shadow);
}

.loh-song-count{
  margin-top: 10px;
  color: #eef4ff;
  font-weight: 700;
  letter-spacing: .02em;
}
