/* Class schedule, dress code guide and season calendar, styled to match aotadance.com */
.w-controls{display:grid;gap:18px;margin:34px 0 34px}
.seg{display:inline-flex;justify-self:center;border:2px solid var(--navy)}
.seg button{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;background:#fff;color:var(--navy);border:0;padding:14px 26px;min-width:170px;cursor:pointer;transition:background .15s,color .15s}
.seg button+button{border-left:2px solid var(--navy)}
.seg button[aria-pressed="true"]{background:var(--navy);color:#fff}
.seg button:not([aria-pressed="true"]):hover{background:var(--lav)}
.search{position:relative}
.search svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:2}
.search input{width:100%;font:inherit;font-size:16px;font-weight:300;padding:15px 16px 15px 46px;border:1px solid #cfd3dc;border-radius:0;outline:none;background:#fff;transition:border-color .15s,box-shadow .15s}
.search input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(47,68,95,.15)}
.chips-label{font-family:var(--display);font-weight:700;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:-6px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-family:var(--display);font-weight:700;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;background:#fff;color:var(--slate);border:1px solid #cfd3dc;padding:10px 16px;cursor:pointer;transition:all .15s}
.chip:hover{border-color:var(--navy);color:var(--navy)}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.w-empty{text-align:center;padding:50px 20px;border:1px dashed #cfd3dc;color:var(--muted)}
.w-empty b{display:block;font-family:var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--slate);font-size:14px;margin-bottom:6px}

.sched-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;align-items:start}
.cat-card{background:#fff;border:1px solid var(--line);border-top:0}
.cat-head{min-height:72px;background:var(--navy);color:#fff;padding:18px 24px;border-top:6px solid var(--accent-c,var(--peri));display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cat-head h3{font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.2em;text-transform:uppercase;line-height:1.35}
.cat-note{font-family:var(--display);font-weight:700;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;background:var(--butter);color:var(--navy);padding:6px 10px}
.cat-list{list-style:none;margin:0;padding:6px 24px}
.cat-list>li{padding:16px 0;border-bottom:1px solid var(--line)}
.cat-list>li:last-child{border-bottom:0}
.cls-name{font-weight:500;font-size:16.5px;color:var(--ink);line-height:1.35;margin-bottom:8px}
.times{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.time{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--slate);background:#F5F4F8;padding:5px 10px 5px 8px;line-height:1.2}
.time svg{width:13px;height:13px;stroke:var(--navy);fill:none;stroke-width:2.2;flex:none}
.time b{font-weight:600;color:var(--navy)}

.days{display:grid;grid-template-columns:repeat(var(--cols,6),minmax(0,1fr));gap:14px;align-items:start}
.day{background:#fff;border:1px solid var(--line)}
.day h3{background:var(--navy);color:#fff;font-family:var(--display);font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;text-align:center;padding:14px 6px}
.day ol{list-style:none;margin:0;padding:8px}
.slot{padding:10px 10px 10px 12px;border-left:4px solid var(--accent-c,var(--peri));background:#FAF9FB;margin-bottom:8px}
.slot .t{font-size:12.5px;font-weight:600;color:var(--navy);letter-spacing:.02em}
.slot .n{font-size:14px;line-height:1.3;color:var(--ink);margin-top:2px}
.slot .x{font-size:12px;color:var(--muted)}
.minis{margin-top:28px;background:var(--lav);padding:22px 26px}
.minis h4{font-family:var(--display);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);margin-bottom:10px}
.minis ul{margin:0;padding-left:18px;font-size:15px}

.legend{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:0 0 18px;font-size:13px;color:var(--slate)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:12px;height:12px;background:var(--accent-c)}

.policies{margin-top:40px;background:var(--lav);padding:30px 34px}
.policies h3{font-family:var(--display);font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);margin-bottom:14px}
.policies ul{margin:0;padding:0;list-style:none;display:grid;gap:10px;font-size:15.5px}
.policies li{padding-left:22px;position:relative}
.policies li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;background:var(--peri)}
.policies b{font-weight:600;color:var(--navy)}

.dc-intro{text-align:center;max-width:720px;margin:0 auto}
.dc-intro .eyebrow{font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.dc-intro h2{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--slate);font-size:clamp(22px,3vw,30px);line-height:1.3;margin-bottom:18px;text-wrap:balance}
.dc-intro p{font-size:17px;text-wrap:pretty}
.dc-photo{max-width:900px;margin:34px auto 30px}
.dc-photo img{width:100%;height:auto}
.dc-cta{text-align:center}
.dc-cta .btn{min-width:300px;border-color:var(--navy)}
.dc-guide{margin-top:80px}
.dc-guide .sub{text-align:center;color:var(--muted);margin-top:8px}
.dc-guide .chips{justify-content:center}
.dc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.dc-card{border:1px solid var(--line);background:#fff;padding:22px 22px 20px;transition:box-shadow .2s,transform .2s}
.dc-card:hover{box-shadow:0 12px 30px rgba(47,68,95,.1);transform:translateY(-2px)}
.dc-card h3{display:flex;align-items:center;gap:8px;font-family:var(--body);font-weight:600;font-size:17px;color:var(--ink);margin-bottom:6px;line-height:1.3}
.dot{width:14px;height:14px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.dc-card dl{margin:0}
.dc-card dt{font-family:var(--display);font-weight:700;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.dc-card dd{margin:4px 0 0;font-size:15px;line-height:1.5}
.dc-card .tag{display:inline-block;font-family:var(--display);font-weight:700;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);background:var(--lav);padding:4px 8px;margin-bottom:10px}
.bun{margin-top:24px;background:var(--butter);text-align:center;padding:16px 20px;font-size:15.5px;color:var(--navy)}
.bun[hidden]{display:none}
.dc-foot{text-align:center;max-width:620px;margin:40px auto 0;font-size:15px;color:var(--muted)}
.dc-foot .btn{margin-top:18px;min-width:220px;border-color:var(--navy)}

.cal-head{text-align:center}
.cal-head .sub{font-family:var(--accent);font-style:italic;font-size:clamp(22px,2.6vw,30px);color:var(--navy);margin-top:12px}
.cal-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:26px}
.cal-actions .btn{min-height:50px;font-size:11px;width:290px;max-width:100%}
.cal .chips{justify-content:center}
.months{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;align-items:start}
.month{background:#fff;border:1px solid var(--line)}
.month header{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--navy);color:#fff;padding:16px 22px}
.month header h3{font-family:var(--display);font-size:15px;letter-spacing:.24em;text-transform:uppercase}
.month header .badge{font-family:var(--display);font-weight:700;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;background:var(--butter);color:var(--navy);padding:6px 10px}
.month ol{list-style:none;margin:0;padding:6px 14px 10px}
.ev{display:grid;grid-template-columns:76px 1fr;gap:14px;align-items:center;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:12px 8px;font:inherit;cursor:pointer;transition:background .15s}
.month li:last-child .ev{border-bottom:0}
.ev:hover{background:#F7F6FA}
.ev .d{background:var(--lav);color:var(--navy);text-align:center;padding:8px 4px;font-family:var(--display);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;line-height:1.35}
.ev .tt{font-weight:500;font-size:15.5px;color:var(--ink);line-height:1.35}
.ev .cat{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--slate);margin-top:3px}
.ev .cat i{width:10px;height:10px;background:var(--accent-c);display:inline-block}
.c-classes{--accent-c:var(--peri)}
.c-shows{--accent-c:var(--mint)}
.c-rehearsals{--accent-c:var(--slate)}
.c-themes{--accent-c:var(--butter-dk)}
.c-closures{--accent-c:#D98A8A}
.month .none{padding:20px 8px;color:var(--muted);font-size:15px}
.ev-modal .panel{max-width:560px;padding:50px 40px 40px}
.ev-modal .cat{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-weight:700;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--navy);background:var(--lav);padding:6px 10px}
.ev-modal .cat i{width:10px;height:10px;background:var(--accent-c)}
.ev-modal h3{font-family:var(--display);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:20px;line-height:1.35;color:var(--ink);margin:16px 0 6px}
.ev-modal .when{font-family:var(--accent);font-style:italic;font-size:20px;color:var(--navy);margin-bottom:14px}
.ev-modal .btn{min-height:48px;font-size:11px;margin-top:10px;border-color:var(--navy)}

@media (max-width:1100px){
  .days{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  .sched-grid,.months{grid-template-columns:1fr}
  .dc-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .seg{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .seg button{min-width:0;padding:13px 6px;font-size:11px;letter-spacing:.14em}
  .days{grid-template-columns:1fr}
  .dc-grid{grid-template-columns:1fr}
  .cat-head,.cat-list{padding-left:18px;padding-right:18px}
  .policies{padding:24px 20px}
  .cal-actions .btn{width:100%}
  .ev{grid-template-columns:66px 1fr;gap:12px}
  .dc-cta .btn,.dc-foot .btn{min-width:0;width:100%}
}
@media print{
  .site-header,.topbar,.site-footer,.float-social,.register-tab,.cal-actions,.chips,.chips-label,.fam-top,.offers,.mobile-menu{display:none!important}
  .months{grid-template-columns:1fr 1fr}
  .month{break-inside:avoid}
}