/*
Theme Name: Digital Crate DJs
Theme URI: https://cratesdjs.com
Author: Digital Crate DJs
Description: Official Digital Crate DJs website theme — luxury DJ services for Wisconsin and beyond.
Version: 1.0
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=Inter:wght@300;400;500;600&display=swap');

*{margin:0;padding:0;box-sizing:border-box;}

:root{
  --gold:#c9a84c;--gold-light:#e8c97a;--gold-dim:#7a5f22;
  --black:#070707;--dark:#0d0d0d;--dark2:#111;--dark3:#161616;--dark4:#1c1c1c;
  --border:#1e1e1e;--border2:#272727;
  --text:#f5f0e8;--muted:#7a7570;--dim:#333;
  --serif:'Cormorant Garamond',serif;--sans:'Inter',sans-serif;
}

html{scroll-behavior:smooth;}
body{background:var(--black);color:var(--text);font-family:var(--sans);line-height:1.6;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;height:72px;border-bottom:1px solid var(--border);background:rgba(7,7,7,0.95);backdrop-filter:blur(12px);}
.nav-logo{display:flex;align-items:center;gap:14px;}
.nav-logo img{height:36px;filter:invert(1);opacity:0.9;}
.nav-logo span{font-family:var(--serif);font-size:18px;font-weight:300;letter-spacing:1px;}
.nav-links{display:flex;gap:2.5rem;}
.nav-links a{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);transition:color 0.2s;}
.nav-links a:hover,.nav-links a.active{color:var(--gold);}
.nav-book{font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:600;border:1px solid var(--gold);color:var(--gold);padding:10px 24px;transition:all 0.2s;}
.nav-book:hover{background:var(--gold);color:var(--black);}
.nav-toggle{display:none;background:none;border:none;color:var(--text);font-size:20px;cursor:pointer;}
#mob-drawer{display:none;position:fixed;top:72px;left:0;right:0;z-index:99;background:var(--dark);border-bottom:1px solid var(--border);padding:1.5rem;}
#mob-drawer a{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);padding:0.75rem 0;border-bottom:1px solid var(--border);}

/* UTILITIES */
.gold-line{width:60px;height:1px;background:var(--gold);margin:1.5rem 0;}
.gold-line.center{margin:1.5rem auto;}
.inner{max-width:1000px;margin:0 auto;}
.sec-tag{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:1.25rem;}
.sec-title{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.5rem);font-weight:300;line-height:1.15;letter-spacing:-0.5px;}
.sec-title em{font-style:italic;color:var(--gold);}
.sec-sub{font-size:14px;color:var(--muted);margin-top:1rem;max-width:520px;line-height:1.9;font-weight:300;}
section{padding:7rem 3rem;border-bottom:1px solid var(--border);}
.reveal{opacity:0;transform:translateY(24px);transition:opacity 0.7s ease,transform 0.7s ease;}
.reveal.visible{opacity:1;transform:none;}

/* BUTTONS */
.btn-gold{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;font-weight:600;background:var(--gold);color:var(--black);padding:16px 40px;display:inline-block;transition:all 0.2s;}
.btn-gold:hover{background:var(--gold-light);}
.btn-outline{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;font-weight:500;border:1px solid var(--border2);color:var(--muted);padding:16px 40px;display:inline-block;transition:all 0.2s;}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);}

/* ── GLOBAL ATMOSPHERE ── */
.atm-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 70% 40%,rgba(201,168,76,0.10) 0%,transparent 60%),
    radial-gradient(ellipse 60% 80% at 20% 80%,rgba(201,168,76,0.06) 0%,transparent 50%),
    linear-gradient(160deg,#0d0d0d 0%,#070707 60%,#0a0800 100%);
  pointer-events:none;z-index:0;
}
.atm-grid{
  position:absolute;inset:0;
  background-image:linear-gradient(rgba(201,168,76,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,76,0.04) 1px,transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(ellipse 80% 70% at 60% 40%,black 20%,transparent 80%);
  pointer-events:none;z-index:0;
}
.atm-glow{
  position:absolute;top:15%;right:8%;width:500px;height:500px;
  background:radial-gradient(circle,rgba(201,168,76,0.11) 0%,transparent 70%);
  pointer-events:none;z-index:0;
}
.atm-glow-left{
  position:absolute;bottom:10%;left:5%;width:360px;height:360px;
  background:radial-gradient(circle,rgba(201,168,76,0.06) 0%,transparent 70%);
  pointer-events:none;z-index:0;
}
.atm-vinyl{
  position:absolute;right:-80px;top:50%;transform:translateY(-50%);
  width:500px;height:500px;opacity:0.055;pointer-events:none;z-index:0;
}
.atm-content{position:relative;z-index:1;}

/* Section atmosphere strips */
section{position:relative;}
section::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-dim),transparent);
  opacity:0;transition:opacity 0.3s;
}

/* ── HERO ── */
.hero{
  min-height:100vh;display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;padding:8rem 2rem 6rem;
  border-bottom:1px solid var(--border);position:relative;overflow:hidden;
}
.hero-logo{height:120px;filter:invert(1);opacity:0.95;margin-bottom:3rem;position:relative;z-index:1;}
.hero-eyebrow{font-size:10px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:1.5rem;position:relative;z-index:1;}
.hero h1{font-family:var(--serif);font-size:clamp(3rem,7vw,6rem);font-weight:300;letter-spacing:-1px;line-height:1.05;max-width:800px;position:relative;z-index:1;}
.hero h1 em{font-style:italic;color:var(--gold);}
.hero-sub{font-size:14px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-top:2rem;max-width:480px;line-height:2;font-weight:300;position:relative;z-index:1;}
.hero-divider{display:flex;align-items:center;gap:1.5rem;margin:3rem 0;width:100%;max-width:400px;position:relative;z-index:1;}
.hero-divider span{flex:1;height:1px;background:var(--border2);}
.hero-divider i{color:var(--gold);font-size:12px;letter-spacing:3px;}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;position:relative;z-index:1;}
.hero-stats{display:flex;gap:4rem;margin-top:5rem;padding-top:3rem;border-top:1px solid var(--border);flex-wrap:wrap;justify-content:center;position:relative;z-index:1;}
.hero-stat{text-align:center;}
.hero-stat strong{display:block;font-family:var(--serif);font-size:3rem;font-weight:300;color:var(--gold);line-height:1;}
.hero-stat span{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:6px;display:block;}

/* Section header gradient accent */
#about .inner,#services .inner,#roster .inner,#calendar .inner,#booking .inner,#contact .inner{position:relative;}
#about::after,#services::after,#roster::after{
  content:'';position:absolute;top:0;right:0;width:40%;height:100%;
  background:radial-gradient(ellipse 60% 50% at 100% 50%,rgba(201,168,76,0.04) 0%,transparent 70%);
  pointer-events:none;
}

/* Enhanced section cards */
.service-card{background:var(--dark3);padding:2.5rem 2rem;position:relative;overflow:hidden;transition:background 0.2s,transform 0.2s;}
.service-card::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 0% 100%,rgba(201,168,76,0.06) 0%,transparent 60%);opacity:0;transition:opacity 0.3s;}
.service-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transition:transform 0.35s;transform-origin:left;}
.service-card:hover{background:var(--dark4);}
.service-card:hover::before{opacity:1;}
.service-card:hover::after{transform:scaleX(1);}
.service-num{font-family:var(--serif);font-size:3rem;font-weight:300;color:var(--border2);line-height:1;margin-bottom:1.5rem;}
.service-card h3{font-family:var(--serif);font-size:1.3rem;font-weight:400;margin-bottom:0.75rem;}
.service-card p{font-size:13px;color:var(--muted);line-height:1.8;font-weight:300;}

/* DJ cards glow */
.dj-card{background:var(--dark3);padding:2rem 1rem;text-align:center;transition:background 0.2s;position:relative;overflow:hidden;}
.dj-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--gold);transform:scaleX(0);transition:transform 0.3s;transform-origin:center;}
.dj-card:hover{background:var(--dark4);}
.dj-card:hover::after{transform:scaleX(0.6);}
.dj-initial{width:52px;height:52px;border-radius:50%;border:1px solid var(--gold-dim);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-family:var(--serif);font-size:1.4rem;font-weight:300;color:var(--gold);transition:box-shadow 0.2s;}
.dj-card:hover .dj-initial{box-shadow:0 0 16px rgba(201,168,76,0.2);}
.dj-card h3{font-family:var(--serif);font-size:1rem;font-weight:400;}
.dj-card p{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-top:4px;}

/* Stat boxes */
.stat-box{background:var(--dark3);padding:2rem;text-align:center;position:relative;overflow:hidden;transition:background 0.2s;}
.stat-box::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:0.4;}
.stat-box strong{display:block;font-family:var(--serif);font-size:3rem;font-weight:300;color:var(--gold);line-height:1;}
.stat-box span{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:8px;display:block;}

/* Promise items accent */
.promise-item{display:flex;gap:12px;align-items:flex-start;padding:1rem 0;border-bottom:1px solid var(--border);transition:padding-left 0.2s;}
.promise-item:hover{padding-left:8px;}
.promise-item:first-child{border-top:1px solid var(--border);}
.promise-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);margin-top:6px;flex-shrink:0;}
.promise-item p{font-size:12px;color:var(--muted);line-height:1.7;font-weight:300;}

/* Form glow on focus */
.form-field{background:var(--dark3);padding:1.75rem 1.5rem;display:flex;flex-direction:column;gap:8px;transition:background 0.2s;}
.form-field:focus-within{background:var(--dark4);}
.form-field.full{grid-column:1/-1;}
.form-field.submit-field{grid-column:1/-1;background:transparent;padding:1.5rem 0 0;}
.form-field label{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);}
.form-field input,.form-field select,.form-field textarea{background:transparent;border:none;border-bottom:1px solid var(--border2);color:var(--text);font-size:14px;padding:8px 0;outline:none;font-family:var(--sans);font-weight:300;transition:border-color 0.2s;width:100%;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--gold);}
.form-field textarea{resize:vertical;min-height:80px;}
.form-field select option{background:var(--dark3);}
.btn-submit{font-size:11px;letter-spacing:3px;text-transform:uppercase;font-weight:600;background:var(--gold);color:var(--black);border:none;cursor:pointer;padding:18px 48px;transition:all 0.2s;width:100%;}
.btn-submit:hover{background:var(--gold-light);}

/* Contact item hover */
.contact-item{padding:1.25rem 0;border-bottom:1px solid var(--border);transition:padding-left 0.2s;}
.contact-item:hover{padding-left:6px;}
.contact-item:first-of-type{border-top:1px solid var(--border);}

/* ABOUT */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;margin-top:4rem;align-items:start;}
.about-text p{font-size:15px;color:var(--muted);line-height:2;margin-bottom:1.25rem;font-weight:300;}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);}
.stat-box{background:var(--dark3);padding:2rem;text-align:center;}
.stat-box strong{display:block;font-family:var(--serif);font-size:3rem;font-weight:300;color:var(--gold);line-height:1;}
.stat-box span{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-top:8px;display:block;}

/* SERVICES */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:4rem;}
.service-card{background:var(--dark3);padding:2.5rem 2rem;position:relative;overflow:hidden;transition:background 0.2s;}
.service-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transition:transform 0.3s;transform-origin:left;}
.service-card:hover{background:var(--dark4);}
.service-card:hover::after{transform:scaleX(1);}
.service-num{font-family:var(--serif);font-size:3rem;font-weight:300;color:var(--border2);line-height:1;margin-bottom:1.5rem;}
.service-card h3{font-family:var(--serif);font-size:1.3rem;font-weight:400;margin-bottom:0.75rem;}
.service-card p{font-size:13px;color:var(--muted);line-height:1.8;font-weight:300;}

/* ROSTER */
.roster-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--border);margin-top:4rem;}
.dj-card{background:var(--dark3);padding:2rem 1rem;text-align:center;transition:background 0.2s;}
.dj-card:hover{background:var(--dark4);}
.dj-initial{width:52px;height:52px;border-radius:50%;border:1px solid var(--gold-dim);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-family:var(--serif);font-size:1.4rem;font-weight:300;color:var(--gold);}
.dj-card h3{font-family:var(--serif);font-size:1rem;font-weight:400;}
.dj-card p{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-top:4px;}

/* EVENTS CTA */
.events-cta{text-align:center;}
.events-cta .sec-sub{margin:0 auto;}

/* BOOKING */
.booking-inner{display:grid;grid-template-columns:1fr 2fr;gap:5rem;margin-top:4rem;align-items:start;}
.booking-info h3{font-family:var(--serif);font-size:1.6rem;font-weight:300;line-height:1.4;margin-bottom:1rem;}
.booking-info p{font-size:13px;color:var(--muted);line-height:1.9;font-weight:300;}
.booking-promise{margin-top:2rem;}
.promise-item{display:flex;gap:12px;align-items:flex-start;padding:1rem 0;border-bottom:1px solid var(--border);}
.promise-item:first-child{border-top:1px solid var(--border);}
.promise-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);margin-top:6px;flex-shrink:0;}
.promise-item p{font-size:12px;color:var(--muted);line-height:1.7;font-weight:300;}
.booking-form{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);}
.form-field{background:var(--dark3);padding:1.75rem 1.5rem;display:flex;flex-direction:column;gap:8px;}
.form-field.full{grid-column:1/-1;}
.form-field.submit-field{grid-column:1/-1;background:transparent;padding:1.5rem 0 0;}
.form-field label{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);}
.form-field input,.form-field select,.form-field textarea{background:transparent;border:none;border-bottom:1px solid var(--border2);color:var(--text);font-size:14px;padding:8px 0;outline:none;font-family:var(--sans);font-weight:300;transition:border-color 0.2s;width:100%;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--gold);}
.form-field textarea{resize:vertical;min-height:80px;}
.form-field select option{background:var(--dark3);}
.btn-submit{font-size:11px;letter-spacing:3px;text-transform:uppercase;font-weight:600;background:var(--gold);color:var(--black);border:none;cursor:pointer;padding:18px 48px;transition:all 0.2s;width:100%;}
.btn-submit:hover{background:var(--gold-light);}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;margin-top:4rem;}
.contact-block h3{font-family:var(--serif);font-size:1.4rem;font-weight:300;margin-bottom:1.5rem;}
.contact-item{padding:1.25rem 0;border-bottom:1px solid var(--border);}
.contact-item:first-of-type{border-top:1px solid var(--border);}
.contact-item label{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:4px;}
.contact-item p{font-size:15px;font-weight:300;}
.social-row{display:flex;gap:12px;margin-top:2rem;}
.soc-link{width:44px;height:44px;border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--muted);transition:all 0.2s;}
.soc-link:hover{border-color:var(--gold);color:var(--gold);}
.contact-quote{font-family:var(--serif);font-size:1.8rem;font-weight:300;font-style:italic;line-height:1.5;color:var(--muted);}
.contact-quote em{color:var(--gold);font-style:normal;}

/* FOOTER */
footer{padding:2.5rem 3rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;}
.footer-logo{display:flex;align-items:center;gap:12px;}
.footer-logo img{height:28px;filter:invert(1);opacity:0.3;}
.footer-logo span{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);}
footer p{font-size:11px;color:var(--dim);letter-spacing:0.5px;}

/* EVENTS PAGE */
.page-header{padding:10rem 3rem 5rem;border-bottom:1px solid var(--border);max-width:1000px;margin:0 auto;}
.page-tag{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:1.25rem;}
.page-title{font-family:var(--serif);font-size:clamp(3rem,6vw,5rem);font-weight:300;line-height:1.1;letter-spacing:-0.5px;}
.page-title em{font-style:italic;color:var(--gold);}
.page-sub{font-size:14px;color:var(--muted);font-weight:300;line-height:1.9;max-width:500px;}
.events-layout{display:grid;grid-template-columns:280px 1fr;max-width:1000px;margin:0 auto;border-left:1px solid var(--border);}
.sidebar{border-right:1px solid var(--border);padding:3rem 2rem;position:sticky;top:72px;height:calc(100vh - 72px);overflow-y:auto;}
.sidebar-title{font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--gold-dim);margin-bottom:1.5rem;}
.filter-group{margin-bottom:2.5rem;}
.filter-group-label{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:0.75rem;display:block;}
.filter-chip{display:block;width:100%;text-align:left;font-size:12px;padding:10px 14px;margin-bottom:4px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;transition:all 0.15s;font-family:var(--sans);}
.filter-chip:hover{color:var(--text);border-color:var(--border2);}
.filter-chip.active{color:var(--gold);border-color:var(--gold-dim);background:rgba(201,168,76,0.05);}
.sidebar-divider{height:1px;background:var(--border);margin:1.5rem 0;}
.dj-filter-list{display:flex;flex-direction:column;gap:2px;}
.dj-chip{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);padding:8px 14px;cursor:pointer;border:1px solid transparent;background:none;text-align:left;font-family:var(--sans);transition:all 0.15s;}
.dj-chip:hover{color:var(--text);}
.dj-chip.active{color:var(--gold);}
.dj-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--border2);flex-shrink:0;transition:background 0.15s;}
.dj-chip.active .dot{background:var(--gold);}
.sidebar-count{font-size:10px;color:var(--dim);padding-top:1.5rem;border-top:1px solid var(--border);margin-top:1.5rem;}
.sidebar-count strong{color:var(--gold);}
.cal-main{padding:3rem 2.5rem;}
.month-block{margin-bottom:3rem;}
.month-heading{display:flex;align-items:baseline;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border);}
.month-name{font-family:var(--serif);font-size:1.6rem;font-weight:300;}
.month-count{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);}
.ev-card{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:1.5rem;padding:1.25rem 0;border-bottom:1px solid var(--border);transition:background 0.15s;}
.ev-card:hover{background:rgba(255,255,255,0.015);margin:0 -2.5rem;padding-left:2.5rem;padding-right:2.5rem;}
.ev-card.past{opacity:0.22;}
.ev-date{text-align:center;flex-shrink:0;}
.ev-num{font-family:var(--serif);font-size:2.4rem;font-weight:300;line-height:1;}
.ev-dow{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--dim);margin-top:3px;}
.ev-venue{font-size:15px;font-weight:400;}
.ev-dj{font-size:12px;color:var(--gold);margin-top:4px;}
.ev-dj.tbd{color:var(--dim);font-style:italic;}
.ev-badges{display:flex;gap:6px;align-items:center;flex-shrink:0;}
.badge{font-size:8px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;padding:4px 10px;}
.badge-tonight{background:var(--gold);color:var(--black);}
.badge-next{border:1px solid #2a4a2a;color:#5ab55a;}
.badge-tbd{border:1px solid var(--border2);color:var(--muted);}
.empty-state{padding:4rem 0;text-align:center;font-family:var(--serif);font-size:1.4rem;font-weight:300;font-style:italic;color:var(--muted);}
.cal-filters{display:flex;gap:8px;margin-bottom:2.5rem;}
.cal-btn{font-size:10px;letter-spacing:2px;text-transform:uppercase;padding:8px 20px;border:1px solid var(--border2);background:transparent;color:var(--muted);cursor:pointer;transition:all 0.2s;}
.cal-btn:hover{border-color:var(--muted);color:var(--text);}
.cal-btn.active{border-color:var(--gold);color:var(--gold);}

/* RESPONSIVE */
@media(max-width:900px){
  nav{padding:0 1.5rem;}
  .nav-links,.nav-book{display:none;}
  .nav-toggle{display:block;}
  section{padding:4.5rem 1.5rem;}
  .about-grid,.booking-inner,.contact-grid{grid-template-columns:1fr;gap:3rem;}
  .services-grid{grid-template-columns:1fr 1fr;}
  .roster-grid{grid-template-columns:repeat(2,1fr);}
  .booking-form{grid-template-columns:1fr;}
  .form-field.full{grid-column:1;}
  .events-layout{grid-template-columns:1fr;}
  .sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--border);padding:2rem 1.5rem;}
  .cal-main{padding:2rem 1.5rem;}
  .ev-card:hover{margin:0;padding-left:0;padding-right:0;}
  .page-header{padding:8rem 1.5rem 3rem;}
  footer{padding:2rem 1.5rem;}
}
@media(max-width:540px){
  .services-grid,.roster-grid{grid-template-columns:1fr;}
  .hero h1{font-size:2.8rem;}
  .hero-stats{gap:2rem;}
}
