/*
Theme Name: Key West Radio Show
Theme URI: https://keywestradioshow.com/
Author: Larry Sheffer / OpenAI
Description: Editable Key West Radio Show theme with rolling homepage photography, automatic Act/Venue directories, and a dynamic music calendar powered by existing ACF fields and custom post types.
Version: 2.3.0
Text Domain: kwrs
*/

:root{
  --kwrs-bg:#0d1321;
  --kwrs-panel:#131d2e;
  --kwrs-text:#f7f7f2;
  --kwrs-muted:#b9c2cf;
  --kwrs-accent:#e3b23c;
  --kwrs-border:#2b3850;
  --kwrs-content:#ffffff;
  --kwrs-content-text:#172033;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--kwrs-content);color:var(--kwrs-content-text);line-height:1.6}
a{color:inherit}
img{max-width:100%;height:auto}
.kwrs-wrap{width:min(1180px,92%);margin:0 auto}
.site-header{background:var(--kwrs-bg);color:var(--kwrs-text);border-bottom:1px solid var(--kwrs-border)}
.site-header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:78px}
.site-branding a{text-decoration:none;color:var(--kwrs-text);font-weight:800;font-size:1.35rem;letter-spacing:.02em}
.site-nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.site-nav a{text-decoration:none;color:var(--kwrs-text);font-weight:650;font-size:.95rem}
.site-nav a:hover,.site-nav a:focus{color:var(--kwrs-accent)}
.kwrs-announcement{background:var(--kwrs-accent);color:#111;padding:10px 16px;text-align:center;font-weight:700}
.kwrs-hero{position:relative;background:var(--kwrs-bg);color:var(--kwrs-text);overflow:hidden}
.kwrs-slider{position:relative;min-height:520px;background:#111827}
.kwrs-slide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;background-size:cover;background-position:center}
.kwrs-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,8,18,.78),rgba(3,8,18,.30),rgba(3,8,18,.55))}
.kwrs-slide.is-active{opacity:1}
.kwrs-hero-content{position:relative;z-index:3;min-height:520px;display:flex;align-items:center;padding:64px 0}
.kwrs-hero-copy{max-width:700px}
.kwrs-hero h1{font-size:clamp(2.2rem,5vw,4.8rem);line-height:1.02;margin:0 0 18px}
.kwrs-hero p{font-size:clamp(1.05rem,2vw,1.35rem);color:#edf1f5;max-width:58ch}
.kwrs-slider-controls{position:absolute;z-index:4;right:4%;bottom:26px;display:flex;gap:8px}
.kwrs-slider-controls button{width:46px;height:46px;border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.35);color:#fff;border-radius:50%;font-size:1.2rem;cursor:pointer}
.kwrs-slider-controls button:hover,.kwrs-slider-controls button:focus{background:rgba(0,0,0,.65)}
.kwrs-section{padding:56px 0}
.kwrs-section.alt{background:#f3f5f8}
.kwrs-section h2{font-size:clamp(1.7rem,3vw,2.5rem);margin-top:0}
.kwrs-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.kwrs-card{border:1px solid #dde2ea;border-radius:12px;background:#fff;overflow:hidden}
.kwrs-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.kwrs-card-body{padding:18px}
.kwrs-card h3{margin:0 0 8px}
.kwrs-card a{text-decoration:none}
.kwrs-card a:hover{text-decoration:underline}
.kwrs-directory-header,.kwrs-page-header{background:var(--kwrs-bg);color:var(--kwrs-text);padding:50px 0}
.kwrs-directory-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:42px 0}
.kwrs-directory-item{border:1px solid #dde2ea;border-radius:10px;padding:18px;background:#fff}
.kwrs-directory-item h2{font-size:1.25rem;margin:0 0 6px}
.kwrs-calendar{padding:36px 0}
.kwrs-day{margin:0 0 38px}
.kwrs-day h2{border-bottom:3px solid var(--kwrs-accent);padding-bottom:9px;margin-bottom:0}
.kwrs-show{display:grid;grid-template-columns:160px minmax(0,1fr) minmax(0,1fr);gap:20px;padding:15px 10px;border-bottom:1px solid #e2e6ec;align-items:center}
.kwrs-time{font-weight:800}
.kwrs-act a,.kwrs-venue a{font-weight:700;text-decoration:none}
.kwrs-act a:hover,.kwrs-venue a:hover{text-decoration:underline}
.kwrs-profile{padding:42px 0}
.kwrs-profile-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:34px}
.kwrs-meta{border:1px solid #dde2ea;border-radius:10px;padding:20px;background:#f8fafc}
.kwrs-meta dl{margin:0}.kwrs-meta dt{font-weight:800}.kwrs-meta dd{margin:0 0 14px}
.kwrs-upcoming{margin-top:34px}
.kwrs-upcoming-row{display:grid;grid-template-columns:160px 1fr 1fr;gap:18px;padding:12px 0;border-bottom:1px solid #e6e9ee}
.site-footer{background:var(--kwrs-bg);color:var(--kwrs-muted);padding:38px 0;margin-top:56px}
.site-footer a{color:var(--kwrs-text)}
.entry-content{padding:38px 0}
@media(max-width:800px){
  .site-header-inner{align-items:flex-start;flex-direction:column;padding:18px 0}
  .kwrs-slider,.kwrs-hero-content{min-height:430px}
  .kwrs-card-grid,.kwrs-directory-list,.kwrs-profile-grid{grid-template-columns:1fr}
  .kwrs-show,.kwrs-upcoming-row{grid-template-columns:1fr;gap:4px}
}


/* 1.9 profile and calendar refinements */
.kwrs-profile-lead{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:34px;align-items:start}
.kwrs-profile-photo{border-radius:12px;overflow:hidden;margin-bottom:22px}
.kwrs-profile-photo img{display:block;width:100%;height:auto}
.kwrs-profile-copy > :first-child{margin-top:0}
.kwrs-profile-copy:empty{display:none}
.kwrs-meta h2{margin-top:0;font-size:1.25rem}
.kwrs-meta dd a{overflow-wrap:anywhere}
.kwrs-show-link{font-size:.92rem}
.kwrs-show-link a{text-decoration:none;color:#526174}
.kwrs-show-link a:hover{text-decoration:underline}
.kwrs-calendar .kwrs-show{background:#fff}
.kwrs-calendar .kwrs-show:nth-child(odd){background:#fafbfc}
.kwrs-calendar-head{display:grid;grid-template-columns:160px minmax(0,1fr) minmax(0,1fr);gap:20px;padding:9px 10px;background:#f1f3f6;border-bottom:1px solid #dfe4eb;font-weight:800}
.kwrs-empty{padding:28px;border:1px solid #e0e4ea;border-radius:10px;background:#f8fafc}
.kwrs-directory-item .kwrs-small-meta{color:#5a6575;font-size:.92rem;margin-top:6px}
.kwrs-badge{display:inline-block;padding:3px 8px;border-radius:999px;background:#eef2f7;font-size:.82rem;margin:0 6px 6px 0}
@media(max-width:800px){.kwrs-profile-lead,.kwrs-calendar-head{grid-template-columns:1fr}.kwrs-calendar-head{display:none}}

/* 2.0 musician profile */
.kwrs-eyebrow{margin:0 0 5px;color:var(--kwrs-accent);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}
.kwrs-musician-header h1{margin:.1em 0 .35em;font-size:clamp(2.3rem,5vw,4rem)}
.kwrs-profile-tags{display:flex;flex-wrap:wrap;gap:8px}
.kwrs-profile-tags .kwrs-badge{background:#202b3e;color:#f6f7f9;border:1px solid #34425d;margin:0}
.kwrs-profile-hero-card{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.5fr);gap:34px;align-items:stretch;margin-bottom:30px}
.kwrs-musician-photo-wrap{min-height:340px}
.kwrs-musician-photo{height:100%;min-height:340px;border-radius:14px;overflow:hidden;background:#e9edf2}
.kwrs-musician-photo img{display:block;width:100%;height:100%;object-fit:cover}
.kwrs-photo-placeholder{display:flex;align-items:center;justify-content:center;padding:30px;text-align:center;color:#687486;border:1px dashed #b9c2cf}
.kwrs-musician-intro{border:1px solid #dde2ea;border-radius:14px;padding:28px;background:#fff}
.kwrs-musician-intro h2{margin-top:0}
.kwrs-profile-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.kwrs-button{display:inline-block;text-decoration:none;background:var(--kwrs-bg);color:#fff;padding:10px 15px;border-radius:8px;font-weight:800}
.kwrs-button:hover,.kwrs-button:focus{background:#1c2940}
.kwrs-button-secondary{background:#eef2f7;color:#172033;border:1px solid #d5dce5}
.kwrs-button-secondary:hover,.kwrs-button-secondary:focus{background:#e3e8ef}
.kwrs-profile-columns{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.75fr);gap:24px;margin:28px 0}
.kwrs-info-panel{border:1px solid #dde2ea;border-radius:12px;padding:22px;background:#f8fafc}
.kwrs-info-panel h2{margin-top:0;font-size:1.3rem}
.kwrs-detail-list{margin:0}
.kwrs-detail-row{display:grid;grid-template-columns:minmax(150px,.75fr) minmax(0,1.25fr);gap:18px;padding:10px 0;border-bottom:1px solid #e3e8ef}
.kwrs-detail-row:last-child{border-bottom:0}
.kwrs-detail-row dt{font-weight:800}
.kwrs-detail-row dd{margin:0}
.kwrs-booking-panel{background:#fff8e4;border-color:#ead79d}
.kwrs-booking-panel a{overflow-wrap:anywhere}
.kwrs-profile-section{margin-top:38px}
.kwrs-link-chips{display:flex;flex-wrap:wrap;gap:10px}
.kwrs-link-chips a{display:inline-block;text-decoration:none;border:1px solid #d5dce5;border-radius:999px;padding:7px 12px;background:#fff;font-weight:700}
.kwrs-link-chips a:hover{text-decoration:underline}
.kwrs-performance-row{display:grid;grid-template-columns:190px 110px minmax(0,1fr) minmax(0,1fr);gap:18px;padding:13px 0;border-bottom:1px solid #e1e6ed;align-items:center}
.kwrs-performance-date,.kwrs-performance-time{font-weight:700}
.kwrs-performance-row a{text-decoration:none;font-weight:700}
.kwrs-performance-row a:hover{text-decoration:underline}
.kwrs-muted{color:#697587}
.kwrs-verified{margin-top:36px;color:#697587;font-size:.9rem}
@media(max-width:800px){
  .kwrs-profile-hero-card,.kwrs-profile-columns,.kwrs-detail-row,.kwrs-performance-row{grid-template-columns:1fr}
  .kwrs-musician-photo-wrap,.kwrs-musician-photo{min-height:280px}
  .kwrs-performance-row{gap:3px;padding:16px 0}
}

/* 2.1 venue profile */
.kwrs-venue-header h1{margin:.1em 0 .35em;font-size:clamp(2.3rem,5vw,4rem)}
.kwrs-venue-hero-card{align-items:stretch}
.kwrs-venue-photo-wrap{min-height:320px}
.kwrs-venue-photo{height:100%;min-height:320px;border-radius:14px;overflow:hidden;background:#e9edf2}
.kwrs-venue-photo img{display:block;width:100%;height:100%;object-fit:cover}
.kwrs-venue-intro{border:1px solid #dde2ea;border-radius:14px;padding:28px;background:#fff}
.kwrs-venue-intro h2{margin-top:0}
.kwrs-button-accent{background:var(--kwrs-accent);color:#111}
.kwrs-button-accent:hover,.kwrs-button-accent:focus{background:#d2a12d}
.kwrs-section-heading-row{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-bottom:1px solid #e1e6ed;margin-bottom:4px}
.kwrs-section-heading-row h2{margin-bottom:12px}
.kwrs-text-link{font-weight:700;text-decoration:none;color:#40516a}
.kwrs-text-link:hover{text-decoration:underline}
.kwrs-venue-show-row{grid-template-columns:190px 110px minmax(0,1fr) 120px}
.kwrs-performance-detail a{text-decoration:none;font-weight:700;color:#526174}
.kwrs-performance-detail a:hover{text-decoration:underline}
@media(max-width:800px){
  .kwrs-venue-show-row{grid-template-columns:1fr}
  .kwrs-section-heading-row{align-items:flex-start;flex-direction:column;gap:0}
  .kwrs-venue-photo-wrap,.kwrs-venue-photo{min-height:260px}
}


/* 2.2 combined Musicians & Bands directory */
.kwrs-people-directory{padding:42px 0 10px}
.kwrs-directory-section{margin-bottom:48px}
.kwrs-directory-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}
.kwrs-directory-section-head h2{margin:0;font-size:clamp(1.55rem,3vw,2rem)}
.kwrs-directory-section-head p{margin:0;color:#687486}
.kwrs-profile-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.kwrs-profile-card{border:1px solid #dde2ea;border-radius:12px;background:#fff;overflow:hidden;min-width:0}
.kwrs-profile-card-media{display:block;aspect-ratio:4/3;background:#e9edf2;overflow:hidden}
.kwrs-profile-card-media img{display:block;width:100%;height:100%;object-fit:cover}
.kwrs-profile-card-placeholder{display:flex;align-items:center;justify-content:center;height:100%;padding:24px;text-align:center;color:#687486}
.kwrs-profile-card-body{padding:18px}
.kwrs-profile-card h3{margin:0 0 6px;font-size:1.25rem}
.kwrs-profile-card h3 a{text-decoration:none}
.kwrs-profile-card h3 a:hover{text-decoration:underline}
.kwrs-profile-card-meta{color:#5f6b7b;font-size:.92rem}
.kwrs-directory-empty{padding:24px;border:1px solid #e0e4ea;border-radius:10px;background:#f8fafc}
@media(max-width:900px){.kwrs-profile-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.kwrs-profile-card-grid{grid-template-columns:1fr}.kwrs-directory-section-head{display:block}.kwrs-directory-section-head p{margin-top:5px}}
